medium complexity extracted Certification & Training Confidence: 100%
9
Components
106
Shared
0
User Stories
Yes
Analyzed

Description

Course Registration enables peer mentors and coordinators to browse, register for, and manage their participation in training courses directly within the Meander Mobile App. Users can view available courses, check schedules and prerequisites, submit registrations, and receive confirmation and reminder notifications. The system tracks enrollment status, completion, and links course participation to certification records for automatic certificate issuance upon completion.

User Flow

Course Registration user flow
Click to expand

Analysis

Business Value

Centralizing course registration within the app removes friction from the training lifecycle, increasing participation rates among peer mentors and coordinators. Organizations like HLF have explicitly requested in-app course management with automatic reminders upon certificate expiry. By linking registrations to certification records, the platform ensures compliance with organizational standards and reduces administrative overhead for coordinators who currently manage registrations manually. This directly supports volunteer retention by making professional development accessible and visible within the tool they use daily.

Implementation Notes

Course data is stored in the shared PostgreSQL database with tables for courses, course_registrations, and certification_types. The Flutter client fetches course listings via the REST API and presents them in a filterable list view. Registration submissions create records in course_registrations linked to the authenticated user. Push notifications are triggered on registration confirmation, course reminders, and certificate expiry warnings via the existing FCM/APNs adapter. The admin portal exposes course management to Org Admins. BLoC manages enrollment state transitions (available → registered → completed → certified).

Components (115)

User Interface (4)

Service Layer (2)

Data Layer (2)

Infrastructure (1)

Shared Components

These components are reused across multiple features

Service Layer (34)

Data Layer (22)

Infrastructure (38)

infrastructure Keychain/Keystore Adapter low Shared infrastructure JWT Claims Extractor low Shared infrastructure Organization Labels Adapter low Shared infrastructure Keychain/Keystore Adapter low Shared infrastructure Auth API Client medium Shared infrastructure REST API Client medium Shared infrastructure WCAG Accessibility Adapter low Shared infrastructure Registration API Client low Shared infrastructure Accounting API Client high Shared infrastructure PDF Renderer Adapter medium Shared infrastructure File Share Adapter low Shared infrastructure FCM/APNs Adapter high Shared infrastructure Share Sheet Adapter low Shared infrastructure Share Plus Adapter low Shared infrastructure Platform Accessibility Bridge medium Shared infrastructure Semantics Override Adapter high Shared infrastructure URL Launcher Adapter low Shared infrastructure Markdown Content Renderer low Shared infrastructure Network Connectivity Monitor low Shared infrastructure Expense Receipt Storage Adapter low Shared infrastructure Audit Log Writer low Shared infrastructure Feature Flag Checker low Shared infrastructure Logo Upload Adapter low Shared infrastructure Terminology Constants Registry low Shared infrastructure Feature Flag Cache Adapter low Shared infrastructure Org Scope JWT Resolver medium Shared infrastructure Association Audit Logger low Shared infrastructure Token Blocklist medium Shared infrastructure Analytics Tracker low Shared infrastructure SEO Metadata Config low Shared infrastructure Analytics Tracker low Shared infrastructure Analytics Tracker low Shared infrastructure Sales Analytics Tracker low Shared infrastructure Email Provider Adapter low Shared infrastructure Terms of Service Content Provider low Shared infrastructure Legal PDF Asset Provider low Shared infrastructure Consent-Gated Script Loader low Shared infrastructure Legal Page Layout low Shared

User Stories

No user stories have been generated for this feature yet.