App Settings & Preferences
Feature Detail
Description
App Settings & Preferences provides a centralized screen for configuring personal application behavior, including notification preferences, display settings, accessibility overrides, and account-level options. Accessible from the hamburger menu, this screen persists user choices locally via Drift and syncs with the backend where applicable. It serves both Peer Mentors and Coordinators as a self-service configuration surface that does not require admin portal involvement for personal options, keeping organizational and personal configuration concerns clearly separated.
Sources & reasoning
Lines 290 and 298 explicitly describe settings as a named navigation entry and screen in the mobile architecture. Home-navigation is always-on core (line 240), placing this feature firmly in MVP. Accessibility-sensitive user populations described at lines 31-38 and 104-106 reinforce that personal display and accessibility overrides are not deferrable beyond launch.
-
docs/source/likeperson.md · line 290Settings accessible from hamburger menu
-
docs/source/likeperson.md · line 298Settings and preferences
-
docs/source/likeperson.md · line 240**Mobile App:** `authentication-access-control`, `home-navigation`, `accessibility`, `help-support`, `profile-management`.
Analysis
A dedicated settings screen reduces support burden by empowering users to adjust the app to their personal needs without contacting administrators. For accessibility-sensitive user groups - stroke survivors in NHF, visually impaired users in Blindeforbundet - the ability to adjust font scale, contrast mode, or notification behavior is directly tied to usability and WCAG 2.2 AA compliance. Keeping personal preferences separate from organizational configuration creates a clear separation of concerns that reduces accidental misconfiguration. Offline persistence of preferences ensures consistent UX even without connectivity, supporting the platform's offline-first architecture and the diverse digital skill levels of the user base.
Implemented as AppSettingsScreen backed by AppPreferencesService and AppPreferencesRepository. Preferences are stored in the Drift local database and optionally synced to the backend for cross-device consistency. The service layer abstracts storage from the UI, allowing individual settings to migrate between local-only and synced modes independently. Accessibility settings integrate with Flutter's MediaQuery and Semantics layers, applying immediately without restart. Settings state is provided via a Riverpod StateNotifier, ensuring reactive UI updates across the app when preferences change. WCAG 2.2 AA requires the settings screen itself to be fully keyboard-navigable with visible focus indicators on all interactive controls.
Components (10)
Shared Components
These components are reused across multiple features
User Stories
No user stories have been generated for this feature yet.