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.

Feature: Course Registration

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 114
    Kursadministrasjon 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 124
    Kursadministrasjon (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 355
    Kursadministrasjon 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>

Related Data Entities (1)

Data entities managed by this component