Contacts
Feature Detail
Description
Unified contact management combining list browsing, search, detail viewing, and editing capabilities for peer mentors and coordinators. Users can browse their assigned contacts, perform basic search across names and identifying fields, drill into individual contact records to see history and relationships, and edit contact information with proper validation. The list view supports role-specific filtering so peer mentors see their own contacts while coordinators see broader sets within their local association. Detail and edit screens surface organization-specific terminology (e.g. "Familie", "Bruker") via the labels system.
Sources & reasoning
Blueprint explicitly merges contact-list-search and contact-detail-edit into a single Contacts feature. Marked MUST/Phase 1 in the matrix and listed in MVP mobile screens (lines 219-220), so target_release is MVP.
-
docs/source/likeperson.md · line 112Basic search (contact og notater) | â | â | â | â | â | MUST | 1
-
docs/source/likeperson.md · line 219-220Contacts list with role-specific views Contact detail, edit, and peer mentor profile screens
-
docs/source/likeperson.md · line 231Organization labels system - per-org terminology overrides fetched from backend and cached offline (currently: `contacts`, `my_contacts`, `peer_mentors`
-
docs/source/likeperson.md · line 353contacts | Contacts | Contact List & Search, Contact Detail & Edit, Caregiver & Next-of-Kin
Analysis
Contacts are the primary operational entity around which every peer mentor's day revolves - activities, notes, assignments, and reports all link back to a contact. Without fast, reliable contact list, search, and edit capabilities, the entire activity registration flow collapses, because mentors cannot find the person they are logging an interaction for. Basic search across contact and notes was flagged as a MUST in the prioritization matrix by all four organizations plus Norse Test. Merging list/search with detail/edit into a single feature also reduces UI fragmentation and accelerates MVP delivery, since these screens share the same contact data model, terminology overrides, and offline sync paths. A coherent contacts experience is the foundation that activity registration, notes, and proxy reporting depend on.
Implement on Flutter mobile using Riverpod for state and Drift+SQLCipher for offline-first persistence, with optimistic mutations and automatic rollback on failure. The contact list uses paginated queries against the REST API (`/api/v1/contacts`) with local cache fallback when offline. Search runs against the local Drift index first for instant results, then reconciles with backend results when connectivity returns. Display strings ("Contact", "My Contacts") MUST resolve through the Organization Labels system so per-tenant terminology overrides (e.g. NHF's "Familie") render correctly. All interactive elements must meet WCAG 2.2 AA: 24x24 touch targets, 4.5:1 contrast, semantic labels for VoiceOver/JAWS, keyboard navigation. Edit screens validate inputs, surface clear error messages with remediation hints, and queue mutations into the sync outbox when offline.
Quality Assurance
Peer Mentor (primary) · Coordinator (same flow)Peer Mentor (Likeperson)
Quick UAT
- Logg inn i Meander-appen som Likeperson og Äpne fanen Kontakter fra bunnmenyen.
- Bekreft at listen viser dine tildelte kontakter med navn synlig, sortert alfabetisk.
- Skriv et delvis navn i sĂžkefeltet Ăžverst og bekreft at listen filtreres til treff innen ett sekund.
- Trykk pÄ en kontakt i listen for Ä Äpne detaljvisningen.
- Bekreft at detaljsiden viser kontaktens kjernedata, relaterte aktiviteter og notater.
- Trykk Rediger, endre telefonnummeret til et gyldig nummer, og trykk Lagre.
- Bekreft at endringen vises umiddelbart i detaljvisningen og at en bekreftelsesmelding er synlig.
Quick UAT â Accessibility
-
Logg inn i Meander-appen som Likeperson og Äpne fanen Kontakter fra bunnmenyen.
- Screen reader VoiceOver/TalkBack annonserer 'Kontakter, fane, valgt' ved aktivering.
- Focus visibility Synlig fokusring pÄ aktiv fane.
- Touch target Fane-knapp â„ 24Ă24 CSS px.
-
Bekreft at listen viser dine tildelte kontakter med navn synlig, sortert alfabetisk.
- Screen reader Hver listerad annonseres som 'Kontakt, [navn], knapp'.
- Keyboard / focus Piltaster opp/ned navigerer mellom rader; Enter aktiverer.
- Zoom Listen er brukbar ved 200 % zoom uten horisontal scroll.
-
Skriv et delvis navn i sĂžkefeltet Ăžverst og bekreft at listen filtreres til treff innen ett sekund.
- Screen reader SĂžkefelt har label 'SĂžk i kontakter'.
- Focus visibility Tastaturfokus forblir i sĂžkefeltet under skriving.
- Live region 'X treff funnet' annonseres hĂžflig etter filtrering.
-
Trykk pÄ en kontakt i listen for Ä Äpne detaljvisningen.
- Screen reader Sideoverskrift 'Kontaktdetaljer, [navn]' annonseres ved sideÄpning.
- Focus visibility Fokus flyttes til sideoverskrift i detaljvisningen.
- Touch target Hver listerad â„ 24Ă24 CSS px med tilstrekkelig vertikal padding.
-
Bekreft at detaljsiden viser kontaktens kjernedata, relaterte aktiviteter og notater.
- Screen reader Seksjonsoverskrifter ('Kjernedata', 'Aktiviteter', 'Notater') leses som overskriftsnivÄ 2.
- Zoom Innhold reflowes ved 200 % uten tap av funksjonalitet.
- Contrast Tekst minst 4.5:1 mot bakgrunn; status ikke kun via farge.
-
Trykk Rediger, endre telefonnummeret til et gyldig nummer, og trykk Lagre.
- Screen reader Rediger-knapp annonseres; skjemafelt har label 'Telefonnummer, obligatorisk'.
- Keyboard / focus Tab-rekkefÞlge fÞlger visuell rekkefÞlge; Lagre nÄs uten musepeker.
- Focus visibility Synlig fokusring pÄ alle skjemafelt og knapper.
-
Bekreft at endringen vises umiddelbart i detaljvisningen og at en bekreftelsesmelding er synlig.
- Live region 'Kontakt oppdatert' annonseres hĂžflig av skjermleser.
- Contrast Bekreftelsesmelding har kontrast â„ 4.5:1 og ikon i tillegg til farge.
Role Boundaries
3 role(s) must NOT access this feature-
Organization Administrator
Logger ikke inn i mobilappen; Kontakter-fanen finnes ikke i Admin Web Portal. Tilgang skjer kun via brukeradministrasjon, ikke som likepersons-kontaktliste.
-
Global Administrator
Ingen tilgang til organisasjonens kontaktdata uten eksplisitt, tidsbegrenset support-flagg satt av Org Admin. ForsÞk pÄ Ä Äpne kontaktlisten uten flagg gir 403 og logges i audit-loggen.
-
Prospective Buyer
Har ingen konto i mobilappen; deep-link til Kontakter returnerer 401/redirect til offentlig nettside.
Expected End State
Kontaktlisten er synlig og rollefiltrert, sÞk returnerer korrekte treff, valgt kontakts detaljside Äpnes, og en redigering av et kjernefelt er lagret persistent og synlig umiddelbart i detaljvisningen.
Components (22)
Shared Components
These components are reused across multiple features
User Stories
No user stories have been generated for this feature yet.