high complexity extracted Contact & Peer Mentor Management Confidence: 100%
12
Components
198
Shared
12
User Stories
Yes
Analyzed

Description

Displays peer mentors on an interactive map for geographic matching and assignment planning. Primarily required by Blindeforbundet for large counties where finding a nearby peer mentor for a home visit assignment is otherwise done manually by phone. Coordinators can view mentor locations and filter by availability or specialization. This feature is a progressive enhancement and not part of the MVP. The map view should complement, not replace, the standard list view. Accessibility must be maintained: a list-based fallback must always be available for screen reader users who cannot use a visual map.

Analysis

Business Value

Significantly reduces coordinator time for assignment matching in geographically large regions (Blindeforbundet). Enables data-driven assignment decisions rather than relying on coordinator memory of who lives where.

Implementation Notes

Use flutter_map or Google Maps Flutter plugin. Store mentor location as a PostGIS point in Supabase (with explicit consent). Map markers must link to peer mentor detail screen. Always render a list-view toggle button accessible from keyboard/screen reader. Location data is sensitive — require explicit opt-in from peer mentors and document in privacy policy.

Components (210)

User Interface (6)

Service Layer (2)

Data Layer (1)

Infrastructure (3)

Shared Components

These components are reused across multiple features

User Interface (59)

ui Role Switch Widget medium Shared ui Role-Aware Bottom Navigation medium Shared ui Activity Type Selection Screen low Shared ui Speech-to-Text Field Overlay medium Shared ui Receipt Capture Widget medium Shared ui Peer Mentor Single Selector low Shared ui Proxy Audit Badge Widget low Shared ui Export Period Picker low Shared ui Contact Card Widget low Shared ui Contact Search Bar low Shared ui Peer Mentor Card Widget low Shared ui Activity History List low Shared ui Multi-Chapter Affiliation Chip Widget medium Shared ui Certification Status Badge low Shared ui Duplicate Activity Warning Dialog medium Shared ui Mentor Multi-Select Widget medium Shared ui Map Filter Panel medium Shared ui Claim Status Badge low Shared ui Export Date Range Picker low Shared ui Custom Date Range Picker low Shared ui Duplicate Activity Warning Dialog low Shared ui Proxy Activity Form medium Shared ui Proxy Peer Mentor Selector medium Shared ui Expected Return Date Picker low Shared ui Pause Activation Screen low Shared ui Pause Status Indicator low Shared ui Admin KPI Stat Widget low Shared ui Organisation Hierarchy Navigator high Shared ui Bufdir Period Selector Widget low Shared ui Export History List medium Shared ui Activity Type Donut Chart medium Shared ui Monthly Activity Bar Chart medium Shared ui Statistics Period Filter Bar low Shared ui Statistics Summary Cards low Shared ui Notification Badge Widget low Shared ui Certificate Expiry Status Indicator low Shared ui Animated Stat Card Widget medium Shared ui In-App Notification Banner low Shared ui Accessible Modal Sheet Widget high Shared ui Live Region Announcer medium Shared ui Semantics Wrapper Widget medium Shared ui Sensitive Field Warning Dialog high Shared ui Confirm Before Submit Screen medium Shared ui Inline Contextual Help Widget low Shared ui Labelled Navigation Bar low Shared ui Plain Language Error Display low Shared ui Single-Action Screen Layout medium Shared ui Wizard Progress Indicator low Shared ui Accessible Text Style System medium Shared ui Accessible Touch Target Wrapper low Shared ui Contrast-Safe Color Palette Widget medium Shared ui Accessible Bottom Navigation Bar medium Shared ui Modal Close Button low Shared ui Persistent Back Button low Shared ui Vertical Scroll Container low Shared ui Organization Card Widget low Shared ui Terminology-Aware Text Widget low Shared ui FeatureGate Widget low Shared ui Chapter Switcher medium Shared

Service Layer (52)

service Authentication Service medium Shared service Authentication Session Manager medium Shared service Biometric Authentication Service medium Shared service Biometric Authentication Service medium Shared service Biometric Authentication Service medium Shared service Permission Checker Service medium Shared service Role State Manager medium Shared service No-Access Route Guard low Shared service Activity Type Metadata Resolver low Shared service Chapter Scope Resolver medium Shared service Organisation Hierarchy Resolver medium Shared service Coordinator Notification Service medium Shared service Duplicate Activity Detection Service high Shared service Mentor Filter Service low Shared service Receipt Threshold Validator low Shared service Approval Status Notification Service medium Shared service Threshold Evaluation Service medium Shared service Declaration Encryption Service high Shared service Organization Feature Flag Service low Shared service Participant Deduplication Service high Shared service Reporting Period Service medium Shared service Activity Attribution Service low Shared service Proxy Duplicate Detection Service medium Shared service Pause Management Service medium Shared service Pause Notification Service medium Shared service Admin Export Service medium Shared service Admin Row-Level Security Guard high Shared service Organisation Hierarchy Service high Shared service User Management Service high Shared service Role Access Validator low Shared service Peer Mentor Stats Aggregator medium Shared service Push Notification Dispatcher medium Shared service Notification Preference Service low Shared service Scenario Deep-Link Router medium Shared service Scenario Notification Content Builder medium Shared service Badge Criteria Integration medium Shared service Activity Summary Aggregator low Shared service Focus Management Service medium Shared service Screen Reader Detection Service medium Shared service Sensitive Field Privacy Guard high Shared service Plain Language Content Service medium Shared service Wizard State Manager medium Shared service Tab State Manager medium Shared service Organization Route Guard medium Shared service Tenant Context Service high Shared service Label Key Resolver Service low Shared service Organization Labels Notifier medium Shared service FeatureFlagProvider (Riverpod) medium Shared service Access Scope Service high Shared service Hierarchy Aggregation Service high Shared service Hierarchy Service high Shared service Unit Assignment Service medium Shared

Data Layer (33)

Infrastructure (54)

infrastructure Keyboard-Aware Layout Utility low Shared infrastructure Supabase Auth Client low Shared infrastructure Deep Link / OAuth Redirect Handler medium Shared infrastructure Secure Storage Adapter low Shared infrastructure Supabase Session Manager medium Shared infrastructure URL Launcher Utility low Shared infrastructure Local Storage Adapter low Shared infrastructure Supabase Activity Client low Shared infrastructure Organization Labels Provider low Shared infrastructure Supabase Client low Shared infrastructure Organisation Field Config Loader medium Shared infrastructure Speech-to-Text Adapter medium Shared infrastructure File Download Handler low Shared infrastructure Duplicate Reviewed Flag Middleware low Shared infrastructure Contact RLS Query Builder low Shared infrastructure Contact Form Validator low Shared infrastructure Design Token Theme low Shared infrastructure Organization Labels Provider low Shared infrastructure Supabase Client Provider low Shared infrastructure Search Debounce Utility low Shared infrastructure Expense Type Analytics Tracker low Shared infrastructure Receipt Image Picker Integration low Shared infrastructure CSV / JSON File Generator medium Shared infrastructure Coordinator Role Guard low Shared infrastructure Nightly Job Scheduler medium Shared infrastructure Supabase RLS Policy Configuration high Shared infrastructure Export File Storage Adapter low Shared infrastructure Supabase Storage Adapter low Shared infrastructure Peer Mentor Pause Management Service medium Shared infrastructure Push Notification Service medium Shared infrastructure fl_chart Adapter medium Shared infrastructure Push Notification Service low Shared infrastructure FCM Push Notification Sender medium Shared infrastructure FCM Notification Dispatcher medium Shared infrastructure Push Notification Dispatcher medium Shared infrastructure Supabase Realtime Subscription Service medium Shared infrastructure Organisation Data Isolation Guard low Shared infrastructure Push Notification Dispatcher medium Shared infrastructure Deep Link Handler medium Shared infrastructure QR Code Generator low Shared infrastructure Share Sheet Bridge low Shared infrastructure Semantics Service Facade medium Shared infrastructure Accessibility Design Token Enforcer medium Shared infrastructure Accessible Theme Builder medium Shared infrastructure Navigation Route Configuration medium Shared infrastructure Accessibility Live Region Announcer low Shared infrastructure Feature Flag Provider low Shared infrastructure Secure Storage Adapter low Shared infrastructure Supabase RLS Tenant Scope Configurator medium Shared infrastructure Label Key Registry low Shared infrastructure Terminology Riverpod Providers low Shared infrastructure WCAG Semantics Label Resolver low Shared infrastructure Feature Flag Key Constants low Shared infrastructure RLS Policy Manager high Shared

User Stories (12)

Toggle Between Map View and List View for Peer Mentors
medium 3 pts

As a As a Coordinator

I want to seamlessly toggle between the geographic map view and a structured list view of peer mentors

So that I can use the view that best fits my current task — map for geographic matching and list for alphabetical or status-based browsing

Acceptance Criteria
  • Given the coordinator is on the map view, when they tap the view-toggle-button, then the interface transitions to the mentor-list-fallback list view within 300ms with the same filtered mentor set
  • Given the coordinator has active filters applied on the map, when they switch to list view, then the same filters remain applied and the list reflects the identical filtered result set
  • Given the coordinator is on the list view, when they tap the view-toggle-button again, then the map view is restored and any marker that was previously selected is still selected
  • +3 more
View Full Story →
Graceful Degradation to List View When Map is Unavailable
medium 5 pts

As a As a Coordinator

I want the app to automatically fall back to a structured list view when map rendering fails or network connectivity is insufficient

So that I can still access and manage peer mentor assignments even when operating in areas with poor connectivity

Acceptance Criteria
  • Given the coordinator opens the map view with no internet connection, when the map fails to initialise after 5 seconds, then the mentor-list-fallback activates automatically with a clear offline status banner at the top of the screen
  • Given the fallback list is showing, when the coordinator searches for a mentor by name, then the search filters the cached local dataset without requiring network access
  • Given the device regains internet connectivity while the fallback list is visible, when connectivity is restored, then a non-intrusive snackbar offers to reload the map view without forcing navigation
  • +3 more
View Full Story →
Toggle Between Map View and List View for Peer Mentors
medium 3 pts

As a As a Organization Administrator

I want to seamlessly toggle between the geographic map view and a structured list view of peer mentors

So that I can use the view that best fits my current task — map for geographic matching and list for alphabetical or status-based browsing

Acceptance Criteria
  • Given the coordinator is on the map view, when they tap the view-toggle-button, then the interface transitions to the mentor-list-fallback list view within 300ms with the same filtered mentor set
  • Given the coordinator has active filters applied on the map, when they switch to list view, then the same filters remain applied and the list reflects the identical filtered result set
  • Given the coordinator is on the list view, when they tap the view-toggle-button again, then the map view is restored and any marker that was previously selected is still selected
  • +3 more
View Full Story →
Graceful Degradation to List View When Map is Unavailable
medium 5 pts

As a As a Organization Administrator

I want the app to automatically fall back to a structured list view when map rendering fails or network connectivity is insufficient

So that I can still access and manage peer mentor assignments even when operating in areas with poor connectivity

Acceptance Criteria
  • Given the coordinator opens the map view with no internet connection, when the map fails to initialise after 5 seconds, then the mentor-list-fallback activates automatically with a clear offline status banner at the top of the screen
  • Given the fallback list is showing, when the coordinator searches for a mentor by name, then the search filters the cached local dataset without requiring network access
  • Given the device regains internet connectivity while the fallback list is visible, when connectivity is restored, then a non-intrusive snackbar offers to reload the map view without forcing navigation
  • +3 more
View Full Story →
View Peer Mentor Profile Summary from Map Marker
high 3 pts

As a As a Coordinator

I want to tap a peer mentor's map marker and see a quick summary popup with their key details and a direct link to their full profile

So that I can evaluate a potential match without leaving the map context and navigate to the full profile only when needed

Acceptance Criteria
  • Given the coordinator taps a peer mentor marker, when the popup appears, then it shows name, certification status badge, assigned contact count, and active/paused status without an additional network request
  • Given the popup is open, when the coordinator taps 'View Profile', then they are navigated to the peer mentor detail screen and can return to the map via back navigation
  • Given the popup is open on a small screen (375px width), when rendered, then it does not obscure more than 40% of the visible map area and remains fully readable
  • +3 more
View Full Story →
Filter Peer Mentors on Map by Specialty and Availability
high 5 pts

As a As a Coordinator

I want to filter the peer mentors shown on the map by availability status, certification status, and specialization area

So that I can narrow down candidates to only those who are both geographically suitable and qualified for the specific support need

Acceptance Criteria
  • Given the coordinator opens the filter panel, when they apply a 'certification valid' filter, then only peer mentors with a non-expired certification are shown as markers on the map
  • Given filters are applied, when the coordinator toggles to list view via the view-toggle-button, then the same filtered mentor set is shown in the mentor-list-fallback with identical results
  • Given the coordinator applies a 'paused' status filter, when the map refreshes, then paused peer mentors are visually distinguished (greyed-out markers) rather than completely hidden, so the coordinator is aware of the full roster
  • +3 more
View Full Story →
Manage Peer Mentor Location Consent for Map Visibility
high 5 pts

As a As a Coordinator

I want to see which peer mentors have granted location consent for map visibility and be prompted to invite non-consenting mentors to opt in

So that I can maximise the usefulness of the map while fully respecting each mentor's privacy choices

Acceptance Criteria
  • Given the coordinator opens the map view, when the screen loads, then a summary indicator shows the count of mentors visible on the map vs. total mentors in the chapter
  • Given the coordinator taps the 'X mentors not on map' indicator, when the action sheet opens, then they see options to view the list of non-consenting mentors or send a bulk opt-in invitation notification
  • Given the coordinator sends an opt-in invitation, when the action completes, then a confirmation toast confirms the notification was queued and the action cannot be repeated for the same mentors within 7 days to prevent harassment
  • +3 more
View Full Story →
View All Peer Mentors on Interactive Map
high 8 pts

As a As a Coordinator

I want to see all peer mentors in my chapter displayed as interactive markers on a geographic map

So that I can quickly assess geographic coverage and identify the closest available peer mentor to a contact who needs support

Acceptance Criteria
  • Given the coordinator opens the map view screen, when the screen loads, then all peer mentors with location consent granted are rendered as map markers within 3 seconds
  • Given there are peer mentors without location consent, when the map loads, then those mentors are excluded from the map and a count badge shows how many are hidden
  • Given the coordinator pans or zooms the map, when the viewport changes, then markers update dynamically without full reload and maintain their relative geographic positions
  • +3 more
View Full Story →
View Peer Mentor Profile Summary from Map Marker
high 3 pts

As a As a Organization Administrator

I want to tap a peer mentor's map marker and see a quick summary popup with their key details and a direct link to their full profile

So that I can evaluate a potential match without leaving the map context and navigate to the full profile only when needed

Acceptance Criteria
  • Given the coordinator taps a peer mentor marker, when the popup appears, then it shows name, certification status badge, assigned contact count, and active/paused status without an additional network request
  • Given the popup is open, when the coordinator taps 'View Profile', then they are navigated to the peer mentor detail screen and can return to the map via back navigation
  • Given the popup is open on a small screen (375px width), when rendered, then it does not obscure more than 40% of the visible map area and remains fully readable
  • +3 more
View Full Story →
Filter Peer Mentors on Map by Specialty and Availability
high 5 pts

As a As a Organization Administrator

I want to filter the peer mentors shown on the map by availability status, certification status, and specialization area

So that I can narrow down candidates to only those who are both geographically suitable and qualified for the specific support need

Acceptance Criteria
  • Given the coordinator opens the filter panel, when they apply a 'certification valid' filter, then only peer mentors with a non-expired certification are shown as markers on the map
  • Given filters are applied, when the coordinator toggles to list view via the view-toggle-button, then the same filtered mentor set is shown in the mentor-list-fallback with identical results
  • Given the coordinator applies a 'paused' status filter, when the map refreshes, then paused peer mentors are visually distinguished (greyed-out markers) rather than completely hidden, so the coordinator is aware of the full roster
  • +3 more
View Full Story →
Manage Peer Mentor Location Consent for Map Visibility
high 5 pts

As a As a Organization Administrator

I want to see which peer mentors have granted location consent for map visibility and be prompted to invite non-consenting mentors to opt in

So that I can maximise the usefulness of the map while fully respecting each mentor's privacy choices

Acceptance Criteria
  • Given the coordinator opens the map view, when the screen loads, then a summary indicator shows the count of mentors visible on the map vs. total mentors in the chapter
  • Given the coordinator taps the 'X mentors not on map' indicator, when the action sheet opens, then they see options to view the list of non-consenting mentors or send a bulk opt-in invitation notification
  • Given the coordinator sends an opt-in invitation, when the action completes, then a confirmation toast confirms the notification was queued and the action cannot be repeated for the same mentors within 7 days to prevent harassment
  • +3 more
View Full Story →
View All Peer Mentors on Interactive Map
high 8 pts

As a As a Organization Administrator

I want to see all peer mentors in my chapter displayed as interactive markers on a geographic map

So that I can quickly assess geographic coverage and identify the closest available peer mentor to a contact who needs support

Acceptance Criteria
  • Given the coordinator opens the map view screen, when the screen loads, then all peer mentors with location consent granted are rendered as map markers within 3 seconds
  • Given there are peer mentors without location consent, when the map loads, then those mentors are excluded from the map and a count badge shows how many are hidden
  • Given the coordinator pans or zooms the map, when the viewport changes, then markers update dynamically without full reload and maintain their relative geographic positions
  • +3 more
View Full Story →