Skip to main content

shared/src/types/curriculum-types

Enumerations

EnumerationDescription
DifficultyLevelRepresents the curriculum difficulty level
EnrollmentStatusRepresents the enrollment status
LessonTypeRepresents the type of lesson content
ProgressActionTypeThe intended progress action to perform on a lesson.
ProgressStatusRepresents the progress status of a lesson

Interfaces

InterfaceDescription
AssessmentItemGeneric assessment item for questions and tests Reusable for quizzes, tests, and exercises
AssignmentLessonAssignment lesson type Extends base lesson with assignment-specific content
AssignmentLessonContentContent shape for assignment lessons
CodeExampleCode example with syntax highlighting
CodingExerciseLessonCoding exercise lesson type Extends base lesson with coding exercise-specific content
CodingExerciseLessonContentContent shape for coding exercise lessons
CompleteProgressAction-
ContentLayoutGeneric layout structure for content organization Used by lessons that need ordered, type-based content blocks
CurriculumRepresents a complete curriculum
CurriculumEnrollmentRepresents a student's enrollment in a curriculum
CurriculumLessonBaseBase interface for all curriculum lessons Contains common fields shared by all lesson types
CurriculumModuleRepresents a module within a curriculum
CurriculumWithStructureFull curriculum structure: curriculum + ordered modules + lesson summaries + progress
DescribedBase interface for entities with descriptions
IdentifiableBase interface for entities with unique identifiers
InstructionalGeneric interface for content that includes instructions Reusable across lessons that provide guidance to students
LessonImageInline image block, usable across lesson types
LessonProgressRepresents a student's progress on a specific lesson
LessonSummaryWithProgressA lesson summary bundled with the current user's progress. Used in curriculum structure overview.
LessonVideoInline video block, usable across lesson types
LessonWithProgressA full lesson bundled with the current user's progress. Used when opening a specific lesson.
LiveSessionLessonLive session lesson type Extends base lesson with live session-specific content
LiveSessionLessonContentContent shape for live session lessons
MarkerGeneric marker for position-based annotations Used for timestamps, bookmarks, milestones, etc.
ModuleWithLessonsA module with its ordered lesson summaries (each with optional progress)
ProgressActionBase-
ProjectDeliverableProject deliverable
ProjectLessonProject lesson type Extends base lesson with project-specific content
ProjectLessonContentContent shape for project lessons
ProjectStepProject step with instructions
QuizLessonQuiz lesson type Extends base lesson with quiz-specific content
QuizLessonContentContent shape for quiz lessons
QuizQuestionIndividual quiz question
ReadingLessonReading lesson type Extends base lesson with reading-specific content
ReadingLessonContentContent shape for reading lessons
ReadingSectionReading section with structured content
ResourceGeneric resource for supplementary learning materials Reusable across all lesson types
RubricCriterionRubric criterion for assignment grading
ScoreableBase interface for entities with point values
StartProgressAction-
SubmitProgressAction-
TaskTask for coding exercises Represents a coding challenge with test cases and completion tracking
TestCaseTest case for validating code exercises Used to define expected inputs and outputs for automated testing
TitledBase interface for entities with titles
VideoLessonVideo lesson type Extends base lesson with video-specific content
VideoLessonContentContent shape for video lessons

Type Aliases

Type AliasDescription
ContentBlockMapType-safe content block map for ID-based lookups Used for sections, examples, resources, steps, deliverables, etc.
CurriculumLessonDiscriminated union of all lesson types
LessonSummaryLightweight lesson fields for sidebar lists. Excludes content, resources, and timestamps.
ProgressAction-
ProjectContentBlockTypeContent block type for project lessons
ProjectResourceProject resource (specialized Resource type)
QuizAnswerMapUser's answers to a quiz, keyed by question ID. Single-answer questions store a string; multi-select stores a string array.
QuizQuestionTypeQuiz question type
ReadingContentBlockTypeContent block type for reading lessons
ResourceTypeResource type for supplementary materials
VideoTimestampVideo timestamp for marking sections in a video Specialized marker for video content