feat: add Guided Learning Paths feature
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
This commit is contained in:
56
schemas/learning-path-schema.json
Normal file
56
schemas/learning-path-schema.json
Normal file
@@ -0,0 +1,56 @@
|
||||
{
|
||||
"$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-]+$"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user