PushNotificationService
Component Detail
Service Layer
medium complexity
backend
0
Dependencies
0
Dependents
8
Entities
0
Integrations
Description
Backend orchestration service that constructs, routes, and dispatches push notifications to peer mentors and coordinators based on platform events such as activity follow-ups and new assignment arrivals. It handles both foreground in-app banners and background delivery, and queues alerts in the Drift local database when the device is offline so no notification is lost.
push-notification-service
Sources & reasoning
Line 181 lists push notifications as a core always-available Mobile App capability, confirming MVP scope. Line 116 (HLF Phase 2) cites scenario-based push messages, but the base delivery infrastructure is required from launch. Line 298 confirms the inbox screen. Blueprint marks this [MVP].
-
docs/source/likeperson.md · line 181Push notifications and assignment tracking
-
docs/source/likeperson.md · line 116Scenariobaserte push-meldinger og kalendersynkronisering.
-
docs/source/likeperson.md · line 298Notification inbox
Responsibilities
- Listen for platform events and determine which users should receive a notification
- Build notification payloads with title, body, action metadata, and deep-link target
- Dispatch notifications via PushDeliveryProvider and track delivery status
- Persist outbound notifications to NotificationRepository for inbox history
- Retry or queue notifications when connectivity is unavailable via offline queue
Interfaces
sendNotification(recipientId: string, payload: NotificationPayload): Promise<DeliveryResult>
broadcastToRole(role: UserRole, payload: NotificationPayload): Promise<DeliveryResult[]>
scheduleNotification(recipientId: string, payload: NotificationPayload, sendAt: Date): Promise<void>
cancelScheduled(notificationId: string): Promise<void>
processOfflineQueue(): Promise<void>
Related Data Entities (8)
Data entities managed by this component