Peer Mentor Map
Feature Detail
Description
The Peer Mentor Map feature provides a geographic visualization layer that displays the locations of active peer mentors across regions and local associations. Coordinators can view a map-based overview to identify coverage gaps, understand distribution, and make informed decisions about assignment dispatch. This is particularly critical for organizations such as Blindeforbundet operating across large counties where spatial awareness directly affects operational efficiency and response capacity for contact outreach.
Sources & reasoning
Line 99 explicitly names geographic map view as a unique Blindeforbundet need for peer mentor matching and assignment dispatch across large counties. Line 358 places it in Fase 3 (third phase), which normalizes to v1.1. The blueprint confirms area [v1.1]. Feature is scoped exactly as defined in the blueprint.
-
docs/source/likeperson.md · line 99Geografisk kartvisning av likepersoner for matching og oppdragstildeling (særlig store fylker).
-
docs/source/likeperson.md · line 358Geografisk kartvisning (Blindeforbundet)
Analysis
Geographic visualization enables coordinators to match assignments to the nearest available peer mentor, reducing travel time and improving response quality for contacts. For Blindeforbundet, who operate across large fylker, this capability directly supports encrypted assignment dispatch and ensures mentors are matched by proximity. The map also helps organizations identify underserved areas, supporting strategic planning for mentor recruitment and regional expansion. This spatial visibility translates to better contact outcomes and more efficient use of peer mentor time and travel budgets.
Implementation requires integration with a mapping provider such as Mapbox or Google Maps via a Flutter map widget (flutter_map or google_maps_flutter). Geographic coordinates are stored in the geographic_locations table and linked to peer_mentor_profiles. The MapProvider infrastructure component abstracts the map SDK to allow provider swapping without affecting business logic. WCAG 2.2 AA compliance requires a non-map fallback list view and accessible semantic labels for all interactive map elements. The backend exposes a geographic endpoint returning anonymized peer mentor locations scoped to the coordinator's organization, enforcing tenant isolation.
Quality Assurance
Coordinator (primary) · Peer Mentor (no access — not in nav)Coordinator
Quick UAT
- Logg inn i Meander-appen som Koordinator. Bekreft at kartikonet vises i navigasjonen.
- Trykk på kartfanen. Bekreft at kartet lastes og viser likepersonmarkører for ditt lokallag.
- Zoom ut til fylkesnivå. Bekreft at klyngemarkører vises der det er flere likepersoner tett.
- Trykk på en enkelt likepersonmarkør. Bekreft at en informasjonspanel vises med navn, aktiv status og region.
- Zoom inn igjen til lokal visning. Bekreft at regionsoverlegg viser dekningsgap med synlig fargekontrast.
- Skru av nettverkstilkobling. Bekreft at kartet viser sist bufret tilstand og et offlinevarsel.
Quick UAT — Accessibility
-
Logg inn i Meander-appen som Koordinator. Bekreft at kartikonet vises i navigasjonen.
- Screen reader Navigasjonsfane annonseres som 'Kart, fane, 4 av 5'; aktiv fane indikeres med 'valgt'.
- Keyboard / focus Tab-rekkefølge: logg inn-knapp → brukernavn → passord → logg inn; kartfane nås med piltaster i bunnavigasjon.
- Focus visibility Synlig fokusring på alle navigasjonselementer; ikonet har semantisk label 'Kart'.
- Touch target Kartfane-ikon minimum 44×44 CSS px (utvidet touchzone).
-
Trykk på kartfanen. Bekreft at kartet lastes og viser likepersonmarkører for ditt lokallag.
- Screen reader Etter lasting annonseres 'Kart lastet, X likepersoner vist' via polite live region.
- Live region 'Kart lastet. X likepersoner vises for ditt lokallag.'
- Zoom Ved 200 % zoom er kartbeholdere og markørknapper fullt synlige og ikke avklipt.
-
Zoom ut til fylkesnivå. Bekreft at klyngemarkører vises der det er flere likepersoner tett.
- Screen reader Klyngemarkør annonseres som 'Gruppe: X likepersoner, trykk for å utvide'.
- Keyboard / focus Zoom-kontroller (+ og −) nås med Tab; Enter/Mellomrom aktiverer.
- Touch target Klyngeknapper minimum 44×44 CSS px.
- Contrast Klyngetall lesbar mot markørbakgrunn — minimum 4.5:1; informasjon formidles ikke kun via farge.
-
Trykk på en enkelt likepersonmarkør. Bekreft at en informasjonspanel vises med navn, aktiv status og region.
- Screen reader Panel annonseres som dialog: 'Likepersonpanel — [Navn], Aktiv, [Region]'. Lukkeknapp er første fokuselement.
- Keyboard / focus Escape lukker panelet og returnerer fokus til kartet.
- Focus visibility Fokus flyttes automatisk til panelet ved åpning; returnerer til markøren ved lukking.
- Touch target Lukkeknapp minimum 44×44 CSS px.
-
Zoom inn igjen til lokal visning. Bekreft at regionsoverlegg viser dekningsgap med synlig fargekontrast.
- Screen reader Regionsoverlegg har aria-label som beskriver dekning: 'Region: Akershus nord, Dekning: Lav'.
- Zoom Legende og statusetiketter lesbare og ikke overlappende ved 200 % zoom.
- Contrast Dekningsgap-farger oppfyller 3:1 mot kartbakgrunn for UI-komponenter; legende forklarer status i tekst i tillegg til farge.
-
Skru av nettverkstilkobling. Bekreft at kartet viser sist bufret tilstand og et offlinevarsel.
- Screen reader Offlinevarsel annonseres via polite live region: 'Ingen nettverkstilkobling. Viser bufret kart.'.
- Live region 'Ingen nettverkstilkobling. Viser sist bufret kartdata.'
- Contrast Offlinevarsel-banner oppfyller 4.5:1 kontrast mot bakgrunn.
Role Boundaries
1 role(s) must NOT access this feature-
Peer Mentor
Kartikonet vises ikke i bunnavigasjonen for likepersoner; deep-link til kartskjermen returnerer 403.
Expected End State
Koordinatoren har fått visuell oversikt over aktive likepersoners geografiske fordeling, kan identifisere dekningsgap og er klar til å bruke kartet som grunnlag for oppdragstildeling.
Components (22)
Shared Components
These components are reused across multiple features
User Stories
No user stories have been generated for this feature yet.