medium complexity extracted Home & Navigation Confidence: 100%
2
Components
39
Shared
0
User Stories
Yes
Analyzed

Description

The App Settings & Preferences feature provides a centralized settings screen accessible from the hamburger menu, allowing users to manage personal preferences that persist across sessions. This includes notification preferences, language selection, display options, accessibility overrides (such as text size and high-contrast mode), and account-level actions such as sign-out and biometric toggle. Preferences are stored both in the backend (for cross-device consistency) and cached locally via Drift for offline access. The screen is structured to expose only settings relevant to the current user role, keeping the interface uncluttered for peer mentors while giving coordinators access to additional organizational preference controls.

Analysis

Business Value

Giving users control over their experience is a prerequisite for accessibility compliance and long-term retention. For organizations serving users with diverse sensory and cognitive needs - particularly NHF (cognitive accessibility) and Blindeforbundet (screen reader users) - the ability to adjust text size, contrast, and readout behaviour is not a convenience but a functional requirement. Centralizing these controls reduces support burden on coordinators and org admins, who otherwise field individual requests. Cross-device preference sync ensures a consistent experience when a user moves between devices, which is important for coordinators who may switch between a personal phone and a work device. Offering biometric toggle from settings also reinforces the security posture communicated to prospective customers via the sales website.

Implementation Notes

Build the Settings Screen as a Flutter widget using Riverpod state management; the Preferences Service handles reads and writes via the REST API and caches the latest preference snapshot in Drift. Accessibility overrides (text scale, high contrast) should hook into Flutter's MediaQuery/ThemeExtension pipeline so they propagate app-wide without per-screen handling. The biometric toggle calls into the existing Secure Token Store from the authentication area. Language selection must enumerate only languages with complete localization bundles to avoid partial UI strings. Settings screen must itself be fully WCAG 2.2 AA compliant - all controls require semantic labels, focus indicators, and minimum touch targets. Use a declarative list-item widget pattern (title, subtitle, trailing control) that is easy to extend as new preferences are added without modifying layout logic.

Components (41)

User Interface (1)

Service Layer (1)

Shared Components

These components are reused across multiple features

User Stories

No user stories have been generated for this feature yet.