Service Layer medium complexity backend
0
Dependencies
0
Dependents
4
Entities
0
Integrations

Description

Business logic layer that orchestrates push notification delivery, scheduling, and lifecycle management. Coordinates between FirebaseMessagingClient for dispatch and NotificationRepository for persistence. Handles assignment dispatches, event reminders, and coordinator follow-up prompts.

Feature: Push Notifications

push-notification-service

Sources & reasoning

Notifications is a named bottom-nav tab (line 290), establishing it as a first-class MVP surface. HLF follow-up dissatisfaction data (line 116) confirms urgency. Blueprint marks push-notifications [MVP]. First phase ordinal = MVP.

  • Bottom nav with 5 tabs: Home, Contacts, Add (modal launcher for Activity and Event wizards), Work, Notifications
  • Oppfølging av likepersoner: 40 % var ikke fornøyd med oppfølgingen i spørreundersøkelse. Scenariobaserte push-meldinger og kalendersynkronisering.

Responsibilities

  • Compose and dispatch typed notification payloads for assignments, reminders, and follow-ups
  • Schedule time-based event reminder notifications
  • Track delivery status and update notification records on acknowledgement
  • Enforce role-based targeting so peers and coordinators receive relevant notifications only
  • Provide unread count for badge display in bottom navigation

Interfaces

sendAssignmentNotification(userId: string, assignmentId: string): Promise<void>
sendEventReminder(userId: string, eventId: string, scheduledAt: Date): Promise<void>
sendFollowUpPrompt(coordinatorId: string, context: FollowUpContext): Promise<void>
acknowledgeNotification(notificationId: string, userId: string): Promise<void>
getUnreadCount(userId: string): Promise<number>