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.

Feature: Push Notifications

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 181
    Push notifications and assignment tracking
  • docs/source/likeperson.md · line 116
    Scenariobaserte push-meldinger og kalendersynkronisering.
  • docs/source/likeperson.md · line 298
    Notification 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>