medium complexity extracted Coordinator & Admin Tools Confidence: 100%
8
Components
198
Shared
14
User Stories
Yes
Analyzed

Description

Provides coordinators with a real-time summary of activity across their peer mentor roster: total activities registered this month and year, hours of peer mentor support delivered, reimbursement amounts pending approval, and the number of active versus paused peer mentors. The dashboard serves both operational oversight and motivational purposes. For individual peer mentors, a personal statistics view shows their own contribution over time — feeding into the gamification 'Spotify Wrapped' concept planned for Phase 4. The coordinator view aggregates across all peer mentors they supervise and supports filtering by time period and activity type.

Analysis

Business Value

Gives coordinators situational awareness without manual Excel work. Provides early signals of underreporting or inactive peer mentors who may need support. Lays the data foundation for the Phase 4 gamification and Wrapped features.

Implementation Notes

Queries run against Supabase views pre-aggregated by org_id + coordinator_id + month. Cache results for 15 minutes to avoid repeated heavy queries. Coordinator sees only their own peer mentors (RLS). Org admin sees all coordinators. Charts: bar chart for monthly activity count, donut for activity type breakdown. Flutter charts library (e.g. fl_chart).

Components (206)

User Interface (3)

Service Layer (2)

Data Layer (1)

Infrastructure (2)

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 (14)

Access Personal Activity Statistics as Coordinator
medium 3 pts

As a As a Coordinator

I want to switch to a personal stats view showing only my own registered activities, hours, and activity type breakdown

So that I can track my own contributions separately from my team oversight role, since coordinators may also register peer support activities themselves

Acceptance Criteria
  • Given the coordinator is on the statistics screen, When they tap 'My Activity' toggle, Then all dashboard widgets switch to display only the coordinator's own activity data
  • Given the personal view is active, When the coordinator selects a different time period, Then personal stats update for that period
  • Given the coordinator switches back to 'My Team' view, When the switch occurs, Then team statistics are restored without a full data reload if cached
  • +2 more
View Full Story →
Access Personal Activity Statistics as Coordinator
medium 3 pts

As a As a Organization Administrator

I want to switch to a personal stats view showing only my own registered activities, hours, and activity type breakdown

So that I can track my own contributions separately from my team oversight role, since coordinators may also register peer support activities themselves

Acceptance Criteria
  • Given the coordinator is on the statistics screen, When they tap 'My Activity' toggle, Then all dashboard widgets switch to display only the coordinator's own activity data
  • Given the personal view is active, When the coordinator selects a different time period, Then personal stats update for that period
  • Given the coordinator switches back to 'My Team' view, When the switch occurs, Then team statistics are restored without a full data reload if cached
  • +2 more
View Full Story →
View Monthly Activity Bar Chart
high 5 pts

As a As a Coordinator

I want to see a bar chart showing the number of activities registered per month across my team

So that I can quickly identify trends, seasonal dips, and months where engagement dropped so I can intervene proactively

Acceptance Criteria
  • Given the coordinator is on the statistics screen, When the monthly chart renders, Then each visible month in the selected window is represented by a bar with the correct activity count
  • Given the coordinator taps a bar on the chart, When the navigation fires, Then they are taken to an activity list filtered to that specific month
  • Given a screen reader is active, When the chart is focused, Then each bar announces its month name and activity count via semantic labels
  • +2 more
View Full Story →
View Activity Type Distribution Donut Chart
high 5 pts

As a As a Coordinator

I want to see a donut chart breaking down activities by type (e.g., home visit, phone call, group session, digital meeting) for the selected period

So that I can understand which types of peer support are being delivered most and ensure the mix aligns with Bufdir category requirements

Acceptance Criteria
  • Given the coordinator views the statistics screen, When the donut chart renders, Then each activity type in the selected period is shown as a segment with a percentage label
  • Given the organization uses custom activity type labels, When the chart legend renders, Then labels match the organization's configured terminology not generic defaults
  • Given the coordinator taps a donut segment, When the filter applies, Then the peer mentor stats list below updates to show only activities of the tapped type
  • +2 more
View Full Story →
Validate Statistics Against Bufdir Alignment Requirements
high 8 pts

As a As a Coordinator

I want to see a Bufdir alignment indicator on the statistics screen that tells me whether my chapter's activity data meets the required reporting thresholds and category distributions for the current grant period

So that I can identify gaps before the Bufdir reporting deadline and coach peer mentors to register missing activities while there is still time to correct the data

Acceptance Criteria
  • Given the coordinator views the statistics screen with 'This Year' selected, When the Bufdir alignment section renders, Then it shows an overall status indicator (on track / at risk / below threshold)
  • Given one or more activity categories are below the Bufdir minimum threshold, When the alignment section renders, Then each shortfall category is listed with the current count and the required minimum
  • Given the coordinator taps a shortfall category, When navigation fires, Then they are taken to the peer mentor stats list filtered to that activity type so they can identify who to follow up with
  • +2 more
View Full Story →
View Monthly Activity Bar Chart
high 5 pts

As a As a Organization Administrator

I want to see a bar chart showing the number of activities registered per month across my team

So that I can quickly identify trends, seasonal dips, and months where engagement dropped so I can intervene proactively

Acceptance Criteria
  • Given the coordinator is on the statistics screen, When the monthly chart renders, Then each visible month in the selected window is represented by a bar with the correct activity count
  • Given the coordinator taps a bar on the chart, When the navigation fires, Then they are taken to an activity list filtered to that specific month
  • Given a screen reader is active, When the chart is focused, Then each bar announces its month name and activity count via semantic labels
  • +2 more
View Full Story →
View Activity Type Distribution Donut Chart
high 5 pts

As a As a Organization Administrator

I want to see a donut chart breaking down activities by type (e.g., home visit, phone call, group session, digital meeting) for the selected period

So that I can understand which types of peer support are being delivered most and ensure the mix aligns with Bufdir category requirements

Acceptance Criteria
  • Given the coordinator views the statistics screen, When the donut chart renders, Then each activity type in the selected period is shown as a segment with a percentage label
  • Given the organization uses custom activity type labels, When the chart legend renders, Then labels match the organization's configured terminology not generic defaults
  • Given the coordinator taps a donut segment, When the filter applies, Then the peer mentor stats list below updates to show only activities of the tapped type
  • +2 more
View Full Story →
Validate Statistics Against Bufdir Alignment Requirements
high 8 pts

As a As a Organization Administrator

I want to see a Bufdir alignment indicator on the statistics screen that tells me whether my chapter's activity data meets the required reporting thresholds and category distributions for the current grant period

So that I can identify gaps before the Bufdir reporting deadline and coach peer mentors to register missing activities while there is still time to correct the data

Acceptance Criteria
  • Given the coordinator views the statistics screen with 'This Year' selected, When the Bufdir alignment section renders, Then it shows an overall status indicator (on track / at risk / below threshold)
  • Given one or more activity categories are below the Bufdir minimum threshold, When the alignment section renders, Then each shortfall category is listed with the current count and the required minimum
  • Given the coordinator taps a shortfall category, When navigation fires, Then they are taken to the peer mentor stats list filtered to that activity type so they can identify who to follow up with
  • +2 more
View Full Story →
Filter Statistics by Time Window
critical 3 pts

As a As a Coordinator

I want to filter all statistics on the dashboard using preset time windows (current week, current month, last 3 months, current year) as well as a custom date range picker

So that I can compare performance across different reporting periods and prepare data for quarterly or annual Bufdir reports without manual calculation

Acceptance Criteria
  • Given the coordinator is on the statistics screen, When they tap a period preset chip, Then all dashboard widgets refresh to show data for that period only
  • Given the coordinator selects 'Custom Range', When the date picker appears, Then they can select a start and end date and all widgets update accordingly
  • Given a time window is selected, When the coordinator navigates to a detail screen and returns, Then the same time window remains active
  • +2 more
View Full Story →
View Team Activity Summary Cards
critical 5 pts

As a As a Coordinator

I want to see a dashboard with summary cards showing total activities registered, number of active peer mentors, total hours contributed, and unique contacts reached within my chapter

So that I can instantly assess the overall health and productivity of my peer mentor team without having to dig through individual records

Acceptance Criteria
  • Given the coordinator opens the statistics screen, When the data loads, Then four summary cards are displayed: Total Activities, Active Peer Mentors, Total Hours, and Unique Contacts
  • Given the dashboard is loaded, When the coordinator taps a summary card, Then they are navigated to the corresponding detail list filtered by the current time window
  • Given the coordinator belongs to multiple chapters, When the dashboard loads, Then statistics are scoped to the currently active chapter context
  • +2 more
View Full Story →
View Per-Peer-Mentor Activity Breakdown List
critical 8 pts

As a As a Coordinator

I want to see a ranked list of all peer mentors in my chapter showing each mentor's activity count, total hours, and last activity date for the selected period

So that I can identify which mentors are active, which are inactive, and prioritize follow-up conversations with those who have not registered any activities recently

Acceptance Criteria
  • Given the coordinator views the statistics screen, When the peer mentor list renders, Then each mentor shows their name, activity count, total hours, and last activity date
  • Given the list is rendered, When the coordinator taps a column header to sort, Then the list re-orders accordingly without a full data reload
  • Given a mentor has zero activities in the selected period, When they appear in the list, Then they are visually distinguished (e.g., dimmed row with a 'No activity' badge)
  • +2 more
View Full Story →
Filter Statistics by Time Window
critical 3 pts

As a As a Organization Administrator

I want to filter all statistics on the dashboard using preset time windows (current week, current month, last 3 months, current year) as well as a custom date range picker

So that I can compare performance across different reporting periods and prepare data for quarterly or annual Bufdir reports without manual calculation

Acceptance Criteria
  • Given the coordinator is on the statistics screen, When they tap a period preset chip, Then all dashboard widgets refresh to show data for that period only
  • Given the coordinator selects 'Custom Range', When the date picker appears, Then they can select a start and end date and all widgets update accordingly
  • Given a time window is selected, When the coordinator navigates to a detail screen and returns, Then the same time window remains active
  • +2 more
View Full Story →
View Team Activity Summary Cards
critical 5 pts

As a As a Organization Administrator

I want to see a dashboard with summary cards showing total activities registered, number of active peer mentors, total hours contributed, and unique contacts reached within my chapter

So that I can instantly assess the overall health and productivity of my peer mentor team without having to dig through individual records

Acceptance Criteria
  • Given the coordinator opens the statistics screen, When the data loads, Then four summary cards are displayed: Total Activities, Active Peer Mentors, Total Hours, and Unique Contacts
  • Given the dashboard is loaded, When the coordinator taps a summary card, Then they are navigated to the corresponding detail list filtered by the current time window
  • Given the coordinator belongs to multiple chapters, When the dashboard loads, Then statistics are scoped to the currently active chapter context
  • +2 more
View Full Story →
View Per-Peer-Mentor Activity Breakdown List
critical 8 pts

As a As a Organization Administrator

I want to see a ranked list of all peer mentors in my chapter showing each mentor's activity count, total hours, and last activity date for the selected period

So that I can identify which mentors are active, which are inactive, and prioritize follow-up conversations with those who have not registered any activities recently

Acceptance Criteria
  • Given the coordinator views the statistics screen, When the peer mentor list renders, Then each mentor shows their name, activity count, total hours, and last activity date
  • Given the list is rendered, When the coordinator taps a column header to sort, Then the list re-orders accordingly without a full data reload
  • Given a mentor has zero activities in the selected period, When they appear in the list, Then they are visually distinguished (e.g., dimmed row with a 'No activity' badge)
  • +2 more
View Full Story →