Configure Per-Category Notification Preferences
The Notification Settings Screen allows each user to control which push notification categories they subscribe to. A master toggle at the top enables or disables all notifications globally. Below it, individual category toggles cover scenarios such as new assignments, follow-up reminders, activity milestones, calendar sync confirmations, and coordinator alerts. Each toggle is labelled with the category name and a short description of what triggers that type. Changes are persisted in real time to the push_notification_configs table in Supabase via the Notification Repository. The server-side Notification Scenario Engine respects these preferences before enqueuing any notification for the user.
User Story
Acceptance Criteria
- Given a user navigates to Notification Settings, when the screen loads, then all current preference states are fetched from push_notification_configs and rendered accurately
- Given a user toggles off the global master switch, when the change is saved, then no push notifications of any category are sent to that user until the master switch is re-enabled
- Given a user disables a specific category (e.g., follow-up reminders), when a qualifying scenario event fires for that user, then no notification is dispatched for that category
- Given a user re-enables a previously disabled category, when a qualifying scenario event fires, then the notification is dispatched normally
- Given a user makes changes to preferences, when they navigate away, then the changes are persisted and reflected on next app launch
Business Value
Notification fatigue is a well-documented cause of app uninstallation and disengagement. Providing granular per-category opt-out gives users agency over their notification experience, increasing long-term retention. For coordinators and organization administrators who may receive high notification volumes, the ability to suppress lower-priority categories while preserving critical alerts (e.g., new assignments) is essential. Organizations can also trust that the system respects user preferences, reducing complaints and support burden.