Push Notifications
Feature Detail
Description
Push Notifications delivers real-time alerts to peer mentor and coordinator devices via FCM (Android) and APNs (iOS). The system handles delivery of assignment dispatches, approval status updates, event reminders, and coordinator follow-up prompts. Notification payloads are constructed server-side and routed through the appropriate platform adapter, with delivery receipts tracked in the database. Deep-link routing from notification tap navigates the user directly to the relevant screen within the app.
User Flow
Analysis
Push notifications are the primary engagement mechanism for a mobile-first platform where users are not expected to open the app proactively. For peer mentors, timely alerts about new assignments or upcoming events directly increase activity completion rates and reduce missed follow-ups. For coordinators, real-time signals about pending approvals and overdue activities reduce administrative lag. The Hørselsforbundet workshop specifically cited scenario-based push messages as a key lever for improving the 40% dissatisfaction rate with peer mentor follow-up. Reliable push delivery is therefore a direct driver of both user retention and measurable program outcomes.
The Flutter app registers a push token on login via firebase_messaging (FCM) and the iOS APNs entitlement; tokens are persisted to the push_tokens table per device. The Next.js backend sends notifications through firebase-admin (FCM) and node-apns or a unified provider such as OneSignal. Notification payloads include a data object with entity_type and entity_id for deep-link routing on the client. The FCM/APNs Adapter component abstracts provider-specific calls behind a single NotificationGateway interface. Token refresh and device deregistration on logout are handled to prevent stale deliveries. Background message handling in Flutter uses onBackgroundMessage with a top-level handler to ensure delivery when the app is in the background or terminated.
Components (112)
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.