Contact List & Search
Feature Detail
Description
Contact List & Search gives peer mentors and coordinators a role-specific, searchable view of all contacts in their organization. The list filters at query time - peer mentors see only their assigned contacts; coordinators see the full organizational roster. Full-text search across names and notes enables rapid lookup, while WCAG 2.2 AA compliance ensures the feature is fully accessible via screen readers, keyboard navigation, and sufficient contrast for users with visual or cognitive impairments.
Sources & reasoning
Line 152 marks contact search as MUST/Phase 1 across all four organizations. Line 284 lists "Contacts list with role-specific views" as a named mobile screen, and line 311 places "Kontaktliste og likepersonsoversikt" in the Fase 1 MVP scope. Phase 1 maps to MVP by the first-phase ordinal rule.
-
docs/source/likeperson.md ยท line 152Basic search (contact og notater) | โ | โ | โ | โ | MUST | 1
-
docs/source/likeperson.md ยท line 284Contacts list with role-specific views
-
docs/source/likeperson.md ยท line 311Kontaktliste og likepersonsoversikt
Analysis
All four organizations marked basic contact and notes search as MUST/Phase 1 in the priority matrix, making this a universal launch blocker. Every downstream workflow - activity logging, assignment dispatch, proxy reporting, and statistics - depends on reliably finding a contact. Role-scoped views reduce cognitive load, which is especially important given the platform's WCAG mandate for users with cognitive or sensory challenges. For NHF, whose users include stroke survivors, a clear and minimal search flow is a core accessibility requirement, not a convenience. Without reliable contact lookup the app is operationally unusable.
Built as a Flutter widget backed by Drift local database with SQLite FTS5 full-text search. Role filtering is applied at query time via a Riverpod ContactsRepository provider; peer mentor queries add a user_id WHERE clause while coordinator queries scope to organization_id. Pagination or infinite scroll is required for organizations with hundreds of contacts. Offline reads are native to Drift; mutations enqueue through the shared outbox. All list items, search inputs, and empty-state messages must pass WCAG 2.2 AA: 4.5:1 contrast, โฅ24ร24 px touch targets, and semantic labels for screen readers.
Components (45)
Shared Components
These components are reused across multiple features
Service Layer (11)
Data Layer (23)
Infrastructure (7)
User Stories
No user stories have been generated for this feature yet.