low complexity extracted Notifications Confidence: 100%
4
Components
106
Shared
0
User Stories
Yes
Analyzed

Description

Notification Settings allows each user to control which notification types they receive and through which channels. The preferences screen presents a categorized list of notification scenarios (assignments, activities, events, expenses, certificates) with per-category toggles for push, email, and SMS. Preferences are persisted to notification_settings and push_tokens tables and are enforced by the rule engine before dispatch. The screen is accessible via the Settings menu and must meet WCAG 2.2 AA standards including full screen reader support and sufficient touch target sizing.

User Flow

Notification Settings user flow
Click to expand

Analysis

Business Value

User control over notifications is both a legal requirement under GDPR (right to withdraw consent for direct communications) and a usability prerequisite for high adoption. Users who cannot manage notification frequency will disable all notifications or uninstall the app, eliminating the engagement benefits the platform depends on. Providing granular per-category and per-channel controls respects the diversity of the user base: a coordinator may want all channels enabled, while a peer mentor with low digital skills may prefer only push for direct assignments. Notification settings are also the enforcement point for the platform's GDPR consent model for communications.

Implementation Notes

The NotificationPreferencesScreen is a Flutter screen rendered from a fetched notification_settings record. Toggles are grouped by category using a categorized ListView with semanticLabel on each switch for screen reader support. On toggle change, a PATCH request updates the relevant field in notification_settings. Default preferences are created on user registration with sensible opt-in defaults; users are never auto-enrolled in SMS without explicit opt-in. The Push Token Store component handles FCM/APNs token storage and deletion: disabling push notifications revokes the push token on the server so no push is attempted. The Notification Rule Engine reads notification_settings before each dispatch and skips users who have opted out of the relevant category and channel.

Components (110)

User Interface (2)

Service Layer (2)

Shared Components

These components are reused across multiple features

Service Layer (34)

Data Layer (22)

Infrastructure (38)

infrastructure Keychain/Keystore Adapter low Shared infrastructure JWT Claims Extractor low Shared infrastructure Organization Labels Adapter low Shared infrastructure Keychain/Keystore Adapter low Shared infrastructure Auth API Client medium Shared infrastructure REST API Client medium Shared infrastructure WCAG Accessibility Adapter low Shared infrastructure Registration API Client low Shared infrastructure Accounting API Client high Shared infrastructure PDF Renderer Adapter medium Shared infrastructure File Share Adapter low Shared infrastructure FCM/APNs Adapter high Shared infrastructure Share Sheet Adapter low Shared infrastructure Share Plus Adapter low Shared infrastructure Platform Accessibility Bridge medium Shared infrastructure Semantics Override Adapter high Shared infrastructure URL Launcher Adapter low Shared infrastructure Markdown Content Renderer low Shared infrastructure Network Connectivity Monitor low Shared infrastructure Expense Receipt Storage Adapter low Shared infrastructure Audit Log Writer low Shared infrastructure Feature Flag Checker low Shared infrastructure Logo Upload Adapter low Shared infrastructure Terminology Constants Registry low Shared infrastructure Feature Flag Cache Adapter low Shared infrastructure Org Scope JWT Resolver medium Shared infrastructure Association Audit Logger low Shared infrastructure Token Blocklist medium Shared infrastructure Analytics Tracker low Shared infrastructure SEO Metadata Config low Shared infrastructure Analytics Tracker low Shared infrastructure Analytics Tracker low Shared infrastructure Sales Analytics Tracker low Shared infrastructure Email Provider Adapter low Shared infrastructure Terms of Service Content Provider low Shared infrastructure Legal PDF Asset Provider low Shared infrastructure Consent-Gated Script Loader low Shared infrastructure Legal Page Layout low Shared

User Stories

No user stories have been generated for this feature yet.