Creating Courses

Course Overview

Courses are structured learning paths that combine video lessons, quizzes, and hands-on labs.

What is a Course?

A course is a modular collection of content items organized into sections. All content is defined via YAML files in a directory structure, then deployed with the pov CLI.

The top-level course.yml file defines course metadata and references content items by path. Each content item lives in its own directory and contains either a lesson.yml, quiz.yml, or lab.yml.

Content Types

lesson.yml

Lessons

Video-based content with a transcript, key points, and optional resources. The course validator does not enforce a read-time limit.

quiz.yml

Quizzes

Interactive assessments with questions and options. The course validator does not enforce score ranges, attempt limits, or question-type-specific answer counts.

lab.yml

Lab References

References a lab by labSlug. The CLI requires a non-empty labSlug and labTitle but does not verify that the target lab exists.

Quick Start

  1. 1

    Create your course directory with course.yml, section subdirectories, and lesson.yml / quiz.yml / lab.yml content files.

  2. 2

    Run pov validate-course to check your structure and fix any reported errors.

  3. 3

    Run pov push-course to deploy to staging (the default), or set POV_ENV=production for a production deployment.