What I focused on
This part documents how course entities were structured and how enrollment interactions were translated into predictable API contracts.
Placeholder notes
- Validate input shape at request boundaries.
- Keep course, lesson, and enrollment concerns decoupled.
- Return stable response envelopes for frontend caching.
// Placeholder pseudo-contract
export type EnrollmentResponse = {
data: {
enrollmentId: string;
courseId: string;
status: 'active' | 'completed';
};
};
Next part idea
In Part 3, I’ll cover quiz attempts, scoring strategy, and progress calculation tradeoffs.