Service Layer high complexity backend
2
Dependencies
4
Dependents
3
Entities
0
Integrations

Description

Implements the full enrollment lifecycle including capacity checks, waitlist management, enrollment confirmation, and certificate eligibility evaluation at completion. Coordinates with the push notification infrastructure for enrollment and expiry reminders.

Feature: Course Registration

course-enrollment-service

Responsibilities

  • Enroll a user in a course with capacity validation and race-condition-safe waitlist fallback
  • Unenroll a user and promote the first waitlisted candidate automatically
  • Mark course attendance as confirmed and evaluate certificate eligibility on completion
  • Schedule enrollment confirmation and certificate expiry reminder notifications
  • Expose enrollment status queries for BLoC state management in the mobile client

Interfaces

enroll(userId, courseId): EnrollmentResult
unenroll(userId, enrollmentId): void
confirmAttendance(enrollmentId): void
getEnrollmentStatus(userId, courseId): EnrollmentStatus
listUserEnrollments(userId): Enrollment[]
evaluateCertificateEligibility(enrollmentId): CertificateEligibility
scheduleExpiryReminder(certificationId, expiryDate): void

Relationships

Dependencies (2)

Components this component depends on

Dependents (4)

Components that depend on this component

Related Data Entities (3)

Data entities managed by this component