View Contact List in Map Mode for Geographic Assignment Planning
Blindeforbundet explicitly requested a geographic map view for matching peer mentors to contacts based on location, particularly for large counties. The map view must display mentor location markers on an interactive map, support filtering by certification status, availability, and distance, show a mentor info popup on marker tap, and fall back gracefully to the list view if location consent has not been granted. Location data must be handled according to a privacy configuration, and the initial consent dialog must be presented before any location data is shown or collected.
User Story
Audience Summaries
Blindeforbundet's peer mentor program depends on geographic proximity for in-person home visits across large Norwegian counties, where travel distance directly influences both operational reimbursement costs and mentor willingness to accept assignments. This map view transforms coordinator workflows from time-consuming manual cross-referencing — scanning separate lists and estimating distances — into a rapid visual process where suitable mentors are identified in seconds. The outcome is improved assignment quality, higher mentor satisfaction, lower travel-related costs, and reduced coordinator burnout. By fulfilling an explicitly stated client requirement, this feature reinforces Blindeforbundet's confidence in the platform and strengthens contract retention.
Geographic matching accuracy also enables the organization to serve more contacts per coordinator without increasing headcount, directly improving the program's operational scalability and sustainability across Norway's geographically dispersed population.
This story carries medium priority but has significant coordination requirements. It depends on story-contact-list-management-coordinator-001 and introduces a new technical domain — maps integration with privacy-sensitive location data — that requires input from both the mobile development team and a data privacy or legal stakeholder to validate the consent flow against Norwegian data protection requirements (GDPR/Personopplysningsloven). Delivery planning must account for: selecting and integrating a map SDK, implementing the location consent dialog and privacy configuration system, building filter logic (certification, availability, distance radius), designing the mentor info popup, and implementing graceful list-view fallback. UAT should verify consent flows with real coordinators on both iOS and Android.
Rollout risk centers on location consent UX — if the dialog is poorly phrased, mentors may decline, rendering the map unusable. Recommend a phased rollout starting with one county to validate the UX before broad release.
Implementation requires integrating a maps SDK (e.g., MapLibre GL or react-native-maps) with mentor location data sourced from the Supabase backend, subject to existing RLS policies ensuring coordinators only see mentors within their chapter. Location markers must be rendered conditionally — only for mentors who have granted location consent, with that consent state stored in a privacy configuration table and checked client-side before any location query is issued. The initial consent dialog must be presented before any location data is loaded, not after. Filtering (certification status, availability, distance) must apply to the marker layer, hiding non-matching mentors dynamically.
The mentor info popup on marker tap should reuse existing profile card components where possible. A key edge case: if all mentors lack consent, the map must fall back gracefully to the list view with a user-facing explanation. Distance calculation should use Haversine or a Supabase PostGIS function to avoid client-side performance issues at scale.
Acceptance Criteria
- Given I am on the contact list screen, when I tap the map view toggle, then the list is replaced by an interactive map showing mentor location markers
- Given the map is displayed, when I tap a mentor marker, then a mentor info popup appears showing the mentor's name, certification status, and an action button to view their full profile
- Given a mentor has not granted location consent, when the map loads, then no marker is shown for that mentor and their location is not requested
- Given I am viewing the map for the first time, when location display is triggered, then a location consent dialog explains how location data will be used before any data is loaded
- Given I apply a filter for available mentors only, when the filter is active, then paused or expired mentors are hidden from the map markers
Business Value
For Blindeforbundet operating across large Norwegian counties, geographic proximity is a primary matching criterion since peer mentor visits are often in-person home visits where travel distance directly affects both cost reimbursement and mentor willingness to accept assignments. A map view reduces the time required to identify geographically suitable mentors from minutes of manual cross-referencing to seconds of visual scanning, improving both assignment quality and mentor satisfaction.
Components
- Map View Screen ui
- Mentor Map Marker Widget ui
- Mentor Info Popup Card ui
- Map Filter Panel ui
- Map / List View Toggle Button ui
- Mentor List Fallback View ui
- Location Consent Dialog ui
- Mentor Location Service service
- Location Consent Service service
- Mentor Filter Service service
- Mentor Location Repository data
- Map Provider Integration infrastructure
- PostGIS Spatial Query Adapter infrastructure
- Location Privacy Configuration infrastructure