Event Sign-up
Feature Detail
Description
Event Sign-up enables users to register participation in events with a minimal single-tap confirmation from the event detail screen. Participant records are written to the event_participants table, linking the user and event with a timestamp. The feature supports cancellation and coordinator proxy registration, allowing coordinators to add or remove attendees on behalf of peer mentors who cannot use the app independently. Optimistic mutation provides immediate UI feedback, with sync via the Drift mutation outbox when offline. Participant counts are reflected in both the event listing and event detail views after any sign-up or cancellation action.
Sources & reasoning
Event sign-up is marked [MVP] in the blueprint and is the functional completion of the event workflow: creation โ listing โ participation. The proxy principle in ยง2.4 explicitly covers coordinator registration on behalf of peer mentors, which extends naturally to event participation. Accurate participant counts are required for Bufdir reporting, making this feature business-critical even though the roadmap prose focuses on activity registration rather than events specifically.
No source references โ this artifact was included based on reasoning alone (see above).
Analysis
Participation tracking is central to Bufdir funding compliance: grant reporting requires accurate counts of participants in peer mentor activities including group events. A frictionless sign-up flow directly increases data completeness, closing the gap between actual and reported participation that currently causes chronic under-reporting. For coordinators, confirmed attendee lists enable better logistics planning - venue sizing, materials, and follow-up - without resorting to external tools. The proxy sign-up capability ensures less digitally confident peer mentors appear in records, honouring the platform's commitment to inclusive design and representative data across all four organisations.
Sign-up is implemented as an optimistic mutation: the UI toggles immediately and POST /api/v1/events/{id}/participants is queued in the Drift outbox if offline. The backend enforces a unique constraint on (user_id, event_id) to block duplicates. Cancellation calls DELETE /api/v1/events/{id}/participants/{userId} with the same optimistic pattern. Coordinator proxy sign-up sends POST with an explicit user_id body parameter; the backend validates the requesting coordinator's JWT org scope covers the target user before persisting. WCAG 2.2 AA requires the sign-up button to carry a descriptive accessible label naming the specific event, with minimum 24ร24 CSS pixel touch target size.
Components (46)
Shared Components
These components are reused across multiple features
Service Layer (11)
Data Layer (23)
Infrastructure (7)
User Stories
No user stories have been generated for this feature yet.