MEDIUM story-contact-list-management-peer-mentor-008 13 pts
13
Story Points
Medium
Priority
Contact List Management
Feature

User Story

As a Peer Mentor (Likeperson)
I want to switch from the list view to a map view showing peer mentors' locations with filtering options
So that I can make geographically optimal assignment decisions, especially for large regions where travel distance is a significant factor

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.