CourseRepository
Component Detail
Data Layer
medium complexity
backend
0
Dependencies
0
Dependents
1
Entities
0
Integrations
Description
Manages persistence and retrieval of course catalog data, enrollment records, and organization-specific course configurations. Provides a data access interface for CourseRegistrationService and the UI screens. Abstracts the underlying storage layer for courses and enrollments.
course-repository
Sources & reasoning
Line 114 explicitly lists in-app course enrollment as an HLF certification requirement; line 124 confirms Barnekreftforeningen shares the need for onboarding training. The priority matrix (line 155) assigns SHOULD HAVE in Phase 3 (column value 3), which maps to v1.1 by ordinal. Line 355 confirms Phase 3 roadmap placement.
-
docs/source/likeperson.md · line 114Kursadministrasjon og sertifisering: Påmelding til kurs i appen, automatisk påminnelse ved utløp, digitale sertifikater. Det fysiske kortet er et «adelsmerke» og skal leve parallelt.
-
docs/source/likeperson.md · line 124Kursadministrasjon (delt med HLF) for opplæring av nye likepersoner og oppfølgingskurs.
-
docs/source/likeperson.md · line 155| Kursadministrasjon / sertifisering | ✓ | - | - | ✓ | ✓ | SHOULD (HLF + Barnekreft) | 3 |
-
docs/source/likeperson.md · line 355Kursadministrasjon og sertifisering (HLF + Barnekreftforeningen)
Responsibilities
- Fetch and cache course catalog entries scoped to an organization
- Persist and retrieve enrollment records with status tracking
- Query courses by filters such as category, availability, and prerequisite chain
- Store organization-specific course configuration overrides
- Provide CRUD operations for enrollment lifecycle management
Interfaces
getCoursesByOrganization(organizationId: string): Promise<Course[]>
getCourseById(courseId: string): Promise<CourseDetail>
createEnrollment(enrollment: NewEnrollment): Promise<Enrollment>
getEnrollmentsByUser(userId: string): Promise<Enrollment[]>
updateEnrollmentStatus(enrollmentId: string, status: EnrollmentStatus): Promise<void>