Creating Courses
Course Structure
POV Demo courses use a modular, path-based architecture. Each content item lives in its own directory.
Directory Layout
A complete course follows this structure:
kubernetes-fundamentals/
├── course.yml # Main course configuration
└── sections/
├── 01-introduction/
│ ├── 01-what-is-kubernetes/
│ │ └── lesson.yml
│ └── 02-kubernetes-quiz-1/
│ └── quiz.yml
├── 02-core-concepts/
│ ├── 01-pods-and-containers/
│ │ └── lesson.yml
│ ├── 02-deployments-lab/
│ │ └── lab.yml
│ └── 03-services-networking/
│ └── lesson.yml
└── 03-advanced-topics/
├── 01-configmaps-secrets/
│ └── lesson.yml
├── 02-storage-volumes/
│ └── lesson.yml
├── 03-advanced-concepts-quiz/
│ └── quiz.yml
└── 04-final-project-lab/
└── lab.ymlNaming convention: Prefix directories with numbers (
01-, 02-) to control ordering. The platform sorts content items by their order field in course.yml, not alphabetically.Path-Based References
Instead of embedding all content in course.yml, content items are referenced by directory path:
# course.yml
sections:
- id: "core-concepts"
title: "Core Concepts"
order: 2
contentItems:
- path: "sections/02-core-concepts/01-pods-and-containers"
order: 1
- path: "sections/02-core-concepts/02-deployments-lab"
order: 2
- path: "sections/02-core-concepts/03-services-networking"
order: 3The CLI reads the path, finds the YAML file inside it (lesson.yml, quiz.yml, or lab.yml), and determines the content type automatically.
Content File Detection
The platform auto-detects content type based on the YAML filename found in each directory:
| File | Content Type |
|---|---|
lesson.yml | Lesson — video content with transcript |
quiz.yml | Quiz — interactive knowledge assessment |
lab.yml | Lab reference — link to a POV Demo lab |
Modular Architecture Benefits
- Reusability — Content items can be shared and referenced across multiple courses.
- Maintainability — Update content in one place — all courses referencing it reflect the change.
- Collaboration — Teams can work on different content items simultaneously without merge conflicts.
- Version control — Track changes to individual lessons, quizzes, and labs independently.
- Incremental validation — Validate individual content items before assembling the full course.
