Implement PathManager to orchestrate multi-module learning journeys: - Add PathManager class with start/pause/resume functionality - Create learning-paths.json config with CSS Fundamentals path - Integrate path progress tracking with LessonEngine - Add path selection UI to homepage and navigation - Include JSON schema for learning path validation - Add comprehensive test suite for PathManager
57 lines
1.6 KiB
JSON
57 lines
1.6 KiB
JSON
{
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"title": "Code Crispies Learning Path Schema",
|
|
"description": "Schema for guided learning paths that organize modules into structured learning sequences",
|
|
"type": "object",
|
|
"required": ["id", "title", "goal", "estimatedTime", "difficulty", "modules"],
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"description": "Unique identifier for the learning path",
|
|
"pattern": "^[a-z0-9-]+$"
|
|
},
|
|
"title": {
|
|
"type": "string",
|
|
"description": "Display title of the learning path",
|
|
"minLength": 1,
|
|
"maxLength": 100
|
|
},
|
|
"goal": {
|
|
"type": "string",
|
|
"description": "Clear description of what the learner will achieve by completing this path",
|
|
"minLength": 1,
|
|
"maxLength": 500
|
|
},
|
|
"estimatedTime": {
|
|
"type": "integer",
|
|
"description": "Estimated time to complete the path in minutes",
|
|
"minimum": 1
|
|
},
|
|
"difficulty": {
|
|
"type": "string",
|
|
"enum": ["beginner", "intermediate", "advanced"],
|
|
"description": "Overall difficulty level of the learning path"
|
|
},
|
|
"modules": {
|
|
"type": "array",
|
|
"description": "Ordered array of module IDs that comprise this learning path",
|
|
"minItems": 1,
|
|
"items": {
|
|
"type": "string",
|
|
"description": "Module ID that references an existing module",
|
|
"pattern": "^[a-z0-9-]+$"
|
|
}
|
|
},
|
|
"prerequisites": {
|
|
"type": "array",
|
|
"description": "Optional array of learning path IDs that should be completed before this one",
|
|
"default": [],
|
|
"items": {
|
|
"type": "string",
|
|
"description": "Learning path ID that should be completed first",
|
|
"pattern": "^[a-z0-9-]+$"
|
|
}
|
|
}
|
|
}
|
|
}
|