high complexity extracted Geographic Map View Confidence: 100%
8
Components
18
Shared
0
User Stories
Yes
Analyzed

Description

Assignment Matching by Geography automates the recommendation of suitable peer mentors for incoming assignments based on proximity to the contact's location. The feature calculates geographic distance between available peer mentors and assignment targets, surfacing ranked suggestions to coordinators. This reduces the manual effort of assignment dispatch and improves match quality by factoring in travel feasibility alongside existing matching criteria such as certification validity, availability status, and workload thresholds.

Sources & reasoning

Line 99 directly ties geographic visualization to matching and assignment dispatch (oppdragstildeling), providing the provenance for this feature as a distinct matching capability beyond simple map display. Line 358 places it in Fase 3, normalizing to v1.1. The blueprint lists this feature under Geographic Map View at [v1.1]. Kept as a separate feature from peer-mentor-map because matching logic and the dispatch integration are distinct from rendering the map layer.

Analysis

Business Value

Automated geographic matching addresses the operational burden of manual assignment dispatch, a stated pain point for Blindeforbundet coordinators managing mentors across large regions. Proximity-ranked suggestions allow coordinators to make faster, better-informed decisions that reduce travel costs and improve timeliness of contact outreach. The feature integrates with assignment threshold tracking, so coordinators can see which geographically positioned mentors can take new assignments without exceeding workload limits. This supports both mentor retention and contact satisfaction by reducing overload and improving response times.

Implementation Notes

The feature builds on the geographic_locations table and peer_mentor_profiles data established by the Peer Mentor Map. Distance calculation uses the Haversine formula server-side, with the API returning a ranked candidate list for a given assignment location. The matching algorithm must respect peer mentor availability status (active vs paused) and certification validity, joining across peer_mentor_profiles, peer_mentor_status_history, and certifications tables. Results surface in the assignment dispatch flow within EncryptedAssignmentService, with MapService providing the geographic context layer. Backend must enforce tenant scoping on all geographic queries.

Quality Assurance

Coordinator (primary)
1
Scenarios
6
UAT Steps
24
A11y Annotations
1
Role Boundaries
Coordinator

Coordinator

Quick UAT

  1. Logg inn i Meander-appen som Koordinator. Naviger til Oppdrag-seksjonen og velg et ulest oppdrag som mangler tildelt likeperson.
  2. Trykk pÄ 'Finn likeperson' for oppdraget. Bekreft at geografisk matchpanel Äpnes og viser en rangert liste over tilgjengelige likepersoner med avstand, matchscore og sertifiseringsstatus.
  3. Åpne avstandsfilteret Ăžverst i panelet. Sett maksimal reiseavstand til 30 km og bekreft at listen oppdateres til Ă„ vise kun kandidater innenfor denne radiusen.
  4. Trykk pÄ en likepersonkort i listen for Ä Äpne detaljskuffen. Bekreft at fullt profil vises med sertifiseringsdato, arbeidsmengde og avstand til kontaktens adresse.
  5. Lukk detaljskuffen. Velg den hĂžyest rangerte likepersonen og trykk 'Tildel oppdrag'. Bekreft at en bekreftelsesdialog vises med navn og avstand.
  6. Bekreft tildelingen. Bekreft at oppdraget er merket som tildelt og at likepersonens navn vises pÄ oppdragskortet i innboksen.

Quick UAT — Accessibility

  1. Logg inn i Meander-appen som Koordinator. Naviger til Oppdrag-seksjonen og velg et ulest oppdrag som mangler tildelt likeperson.
    • Screen reader Sideoverskrift 'Oppdrag' annonseres ved navigasjon; uleste oppdrag har ARIA-label med status 'Ikke tildelt'.
    • Keyboard / focus Tab-rekkefĂžlge: bunnavigasjon → oppdragsliste → oppdragskort. Enter Ă„pner oppdraget.
    • Focus visibility Synlig fokusring pĂ„ aktivt oppdragskort.
  2. Trykk pÄ 'Finn likeperson' for oppdraget. Bekreft at geografisk matchpanel Äpnes og viser en rangert liste over tilgjengelige likepersoner med avstand, matchscore og sertifiseringsstatus.
    • Screen reader Knapp annonseres som 'Finn likeperson'. PanelĂ„pning annonseres: 'Geografisk match, X kandidater funnet'.
    • Keyboard / focus Tab nĂ„r til 'Finn likeperson'-knapp; Enter aktiverer. Fokus flyttes til paneltoppen ved Ă„pning.
    • Focus visibility Fokus settes automatisk til fĂžrste kandidatkort i panelet etter Ă„pning.
    • Live region 'X kandidater funnet innenfor valgt radius' annonseres som polite live region.
  3. Åpne avstandsfilteret Ăžverst i panelet. Sett maksimal reiseavstand til 30 km og bekreft at listen oppdateres til Ă„ vise kun kandidater innenfor denne radiusen.
    • Screen reader Filterkontroll annonseres med gjeldende verdi og enhet 'km'. Listeendring annonseres som 'Y kandidater innenfor 30 km'.
    • Keyboard / focus Tab til filterrad; Enter utvider; piltaster eller tallinndata justerer radius; Tab bekrefter og lukker.
    • Touch target Filterknapp og slider-kontroll ≄ 24×24 CSS px.
    • Live region 'Liste oppdatert, Y kandidater' annonseres ved filterendring.
    • Zoom Filterrad og kandidatliste lesbar og brukbar ved 200% zoom uten horisontal scrolling.
  4. Trykk pÄ en likepersonkort i listen for Ä Äpne detaljskuffen. Bekreft at fullt profil vises med sertifiseringsdato, arbeidsmengde og avstand til kontaktens adresse.
    • Screen reader Kort annonseres med navn, avstand og matchscore. Skuff annonseres som dialog med overskrift 'Likepersonprofil'.
    • Keyboard / focus Enter pĂ„ kortfokus Ă„pner skuffen. Fokus flyttes til skuffens innhold; Escape lukker og returnerer fokus til kortet.
    • Focus visibility Synlig fokusring pĂ„ alle interaktive elementer i skuffen; semantiske overskrifter strukturerer innholdet.
    • Contrast Arbeidsmengdeindikator og sertifiseringsstatus kommuniseres med tekst i tillegg til farge; 4.5:1 kontrast for all tekst.
  5. Lukk detaljskuffen. Velg den hĂžyest rangerte likepersonen og trykk 'Tildel oppdrag'. Bekreft at en bekreftelsesdialog vises med navn og avstand.
    • Screen reader Skuff-lukking annonseres. 'Tildel oppdrag'-knapp har tydelig label. Dialog annonseres med tittel og innhold ved Ă„pning.
    • Keyboard / focus Escape lukker skuffen. Tab nĂ„r 'Tildel oppdrag'; Enter Ă„pner bekreftelses-dialog. Dialog er modal med focus trap.
    • Focus visibility Fokus flyttes til dialog ved Ă„pning; bakgrunn er inert.
    • Touch target 'Tildel oppdrag'-knapp og dialogknapper ≄ 24×24 CSS px.
  6. Bekreft tildelingen. Bekreft at oppdraget er merket som tildelt og at likepersonens navn vises pÄ oppdragskortet i innboksen.
    • Screen reader Bekreftelsesknapp annonseres. Etter bekreftelse: 'Oppdrag tildelt til [navn]' annonseres som live region.
    • Keyboard / focus Tab mellom Avbryt og Bekreft i dialog; Enter aktiverer valgt knapp.
    • Focus visibility Etter bekreftelse returneres fokus til det oppdaterte oppdragskortet i innboksen.
    • Live region 'Oppdrag tildelt til [navn]. Oppdragsstatus oppdatert.' annonseres som polite live region.

Role Boundaries

1 role(s) must NOT access this feature
  • Peer Mentor

    Geografisk matchpanel finnes ikke i navigasjonen for likepersoner; direkte deep-link til matchpanelet returnerer 403.

Expected End State

Oppdraget er tildelt valgt likeperson, matchresultatet er lagret i MatchResultStore med brukt filter og valgt kandidat, og oppdragskortet i koordinatorens innboks viser likepersonens navn og tildelingsstatus.

User Stories

No user stories have been generated for this feature yet.