Event Sign-up
Feature Detail
Description
Event Sign-up allows peer mentors and coordinators to register themselves or others for an event directly from the mobile app. The registration flow is a single-screen action with a confirmation step, keeping the interaction as lightweight as possible. The system prevents duplicate registrations and provides immediate feedback on registration status. Coordinators can register contacts or peer mentors on their behalf, supporting the proxy-registration pattern established elsewhere in the platform.
User Flow
Analysis
Frictionless event sign-up is directly tied to participation rates and the overall engagement metrics that feed into Bufdir reporting. If registration is cumbersome, peer mentors will not sign up, leading to underreporting of group activity. The feature also reduces coordinator workload by empowering peer mentors to self-register while still providing coordinators with the ability to register on behalf of others for users who face digital barriers. Accurate registration data supports capacity planning, attendance tracking, and downstream analytics that demonstrate program impact to funding bodies like Bufdir.
The sign-up action calls POST /api/v1/events/{eventId}/registrations with the authenticated user's ID or a target user ID for proxy registration. The API enforces duplicate detection and capacity limits at the database level using a unique constraint on (event_id, user_id) in the event_registrations table. The Event Registration Service in Flutter handles optimistic UI updates with rollback on API error. For proxy registration, the coordinator must have a valid local association relationship to the target user, enforced server-side. The confirmation screen shows registration details and links back to the event listing. WCAG compliance requires the registration action button to meet minimum touch target size and have a clear accessible label.
Components (111)
Shared Components
These components are reused across multiple features
User Interface (12)
Service Layer (34)
Data Layer (22)
Infrastructure (38)
User Stories
No user stories have been generated for this feature yet.