Foundations
Course identity, lessons, and progress
Keep the relationships behind the UI consistent across fixtures and implementation.
On this page
Model
| Model | Key fields | UI consequences |
|---|---|---|
| Course | id/_id, userId, title, status, topic, thumbnail, instructions, description | Identity, ownership, discovery, and public introduction. |
| Lesson | id, revision, title, embedCode, duration, description, actionItems, links, downloads | Active editor, learner media, resources, and queued saves. |
| Progress | Completed lesson IDs and action indices per lesson | Watching/completing a lesson and doing its actions are separate states. |
| Enrollment | Registration dates, timezone, stripeProductId, price | Availability and free/paid paths. |
| Review | Rating, comment, display state, course and reviewer identity | Submission and teacher moderation. |
Fictional but coherent
The reference follows Jordan Taylor’s three-lesson creative-practice class. Outline specimens use a six-lesson variant to demonstrate disclosure. Its sample dates, $49 price, 128 enrollments, student names, and resource labels are fixture values. Consistent relationships make the examples believable without implying a real account or real business results.
Source references
| File | Responsibility |
|---|---|
| src/types/course.ts | Course and lesson types |
| src/components/courses-public/logged-in/PrivateCourseView.tsx | Progress composition |
| src/app/make-class/[classId]/video-lessons/page.tsx | Revision-aware edits |
Interface examples
Native TeachKit interfaces with fictional course, account, and learner records. Service responses and media are isolated demonstrations; no customer data or live changes. Captured at 2× resolution or higher. Select an image to inspect it full size.
Related topics
Source audit: 2026-10-22 · Revision 903bbf05ca9d · Documentation v2.0.0