high complexity extracted Coordinator & Admin Tools Confidence: 100%
10
Components
198
Shared
10
User Stories
Yes
Analyzed

Description

A dedicated administrative interface giving organisation-level admins visibility and control over their entire peer mentor and coordinator network. Admins can view aggregated statistics, manage user accounts, assign roles, and oversee the activity log across all local chapters within their organisation. The portal is identified as a MUST HAVE / Phase 1 requirement by all four partner organisations. The admin portal must support the deeply nested structure of NHF (national associations → regions → local chapters) as well as simpler flat structures. It surfaces activity summaries, pause statuses, and certification states in a single dashboard, and provides the data needed for Bufdir grant reporting and internal governance.

Analysis

Business Value

Enables central oversight without requiring manual Excel aggregation. Provides the reporting layer that justifies the app investment to decision-makers and funders. Critical for NHF's 1,400-chapter structure where no single coordinator can have a full picture.

Implementation Notes

Role: org_admin sees all data within their organisation tree; super_admin (Norse/global) has cross-org visibility. Implement row-level security in Supabase matching the org hierarchy. Dashboard widgets: active peer mentors, activities this month, pending reimbursements, paused mentors, expiring certifications. Export to CSV/Excel for Bufdir reporting. Consider separate web admin portal (Flutter Web) vs embedded in mobile app.

Components (208)

User Interface (6)

Service Layer (1)

Data Layer (2)

Infrastructure (1)

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

View and Audit Activity Logs for Compliance
medium 5 pts

As a As a Organization Administrator

I want to view a chronological audit log of all significant actions performed within my organisation — registrations, role changes, exports, and approvals

So that I can investigate disputes, verify compliance with Bufdir requirements, and demonstrate governance to stakeholders during audits

Acceptance Criteria
  • Given I open the activity log viewer, when the log loads, then I see a paginated list of events sorted newest-first with actor name, event type, timestamp, and a summary
  • Given I filter by event type 'proxy_registration', when results are displayed, then only proxy registration events appear and each entry shows the coordinator who registered on behalf of whom
  • Given I search for a specific peer mentor by name, when results return, then only events involving that person as actor or subject are shown
  • +3 more
View Full Story →
Send Administrative Notifications and Announcements to the Organisation
medium 8 pts

As a As a Organization Administrator

I want to send targeted push notifications and in-app announcements to subsets of my organisation — all coordinators, all peer mentors in a specific chapter, or users with expiring certifications

So that I can communicate important operational updates, training reminders, and compliance deadlines without relying on external email lists or SMS

Acceptance Criteria
  • Given I open the notification composer, when I select audience 'peer mentors with certifications expiring in 30 days', then the audience preview shows the count of recipients matching that filter
  • Given I compose a notification with an empty body, when I tap Send, then the form validates and prevents dispatch with a clear error message
  • Given I dispatch a notification to all coordinators in a chapter, when the delivery completes, then a dispatch record is created showing recipient count and delivery timestamp
  • +3 more
View Full Story →
Configure External System Integration Credentials and Field Mappings
medium 13 pts

As a As a Organization Administrator

I want to configure the connection settings, field mappings, and sync schedules for external integrations such as Xledger (accounting), Dynamics (HLF portal), or Bufdir API

So that data flows automatically between the peer mentor app and our existing back-office systems without manual re-entry, reducing errors and saving coordinator time

Acceptance Criteria
  • Given I open the integration dashboard, when I select 'Xledger', then the setup wizard prompts me for API credentials and walks me through field mapping for expense categories
  • Given I enter integration credentials, when I tap 'Test Connection', then the system performs a health check against the external API and confirms connectivity within 10 seconds
  • Given I configure a field mapping that maps an app field to an invalid Xledger account code, then the field mapping validator surfaces a warning before saving
  • +3 more
View Full Story →
Configure Organisation-Specific Terminology and Labels
high 8 pts

As a As a Organization Administrator

I want to customise the terminology used throughout the app — for example, replacing 'peer mentor' with 'likeperson', 'coordinator' with 'kontaktperson', or activity type names specific to my organisation

So that app language matches the terminology my organisation already uses, reducing confusion and training time for volunteers

Acceptance Criteria
  • Given I open the terminology settings screen, when I view the label list, then I can see all overridable keys with their default values and any existing org overrides highlighted
  • Given I type a custom label for 'peer_mentor_singular', when I tap 'Preview', then the terminology-aware text widget shows the change applied across sample screens in real time
  • Given I save a terminology change, when peer mentors and coordinators reload the app, then the updated labels appear within 60 seconds via Riverpod state propagation
  • +3 more
View Full Story →
Enable and Configure Feature Flags per Organisation
high 8 pts

As a As a Organization Administrator

I want to enable or disable specific features for my organisation — such as expense reimbursement, driver declarations, Bufdir reporting, or gamification

So that my organisation only sees functionality relevant to its workflows, reducing cognitive load and preventing accidental use of features we have not yet activated

Acceptance Criteria
  • Given I open the feature flags screen, when the list loads, then I see all feature flags with clear descriptions, current state for my org, and any dependency warnings
  • Given I disable the 'expense_reimbursement' feature flag, when a coordinator in my org opens the add menu, then the expense registration option is not displayed
  • Given I enable a feature flag with a rollout percentage of 20%, when users in my org open the app, then approximately 20% see the new feature based on deterministic user-ID-based evaluation
  • +3 more
View Full Story →
Export Organisational Data and Administrative Reports
high 8 pts

As a As a Organization Administrator

I want to export activity data, user lists, and summary statistics from the admin portal in standard formats (CSV, Excel, PDF)

So that I can share data with board members, prepare funding applications, respond to audit requests, and perform offline analysis without developer involvement

Acceptance Criteria
  • Given I select 'Export user roster' with the current date range, when I tap Export, then a CSV file is generated containing all users in my org scope with their role, status, and last activity date
  • Given I request an activity export for Q1, when the export completes, then the downloaded file contains one row per activity with peer mentor name, contact ID (anonymised per GDPR), activity type, date, duration, and chapter attribution
  • Given an export is in progress, when I navigate away and return, then the export progress indicator shows current status and does not restart the job
  • +3 more
View Full Story →
Monitor Peer Mentor Certification Status Across the Organisation
high 8 pts

As a As a Organization Administrator

I want to view a consolidated panel showing the certification status of all peer mentors in my organisation, with expiry warnings and renewal tracking

So that I can proactively manage compliance before certifications lapse, ensuring only qualified mentors are active and that HLF's requirement to auto-hide mentors with expired certifications is enforced

Acceptance Criteria
  • Given I open the certification status panel, when the data loads, then I see all peer mentors grouped by status: valid, expiring within 30 days, expiring within 60 days, and expired
  • Given a peer mentor's certification has expired, when I view the panel, then their entry is visually differentiated with an expired badge and they are listed first in the panel
  • Given the nightly certification expiry job runs, when a mentor's certification crosses the 30-day expiry threshold, then the mentor receives a push notification and their coordinator receives an in-app alert
  • +3 more
View Full Story →
Manage Organisation Hierarchy and Chapter Structure
high 13 pts

As a As a Organization Administrator

I want to view and edit the hierarchical structure of my organisation — regions, chapters, and sub-units — and assign users to the correct units

So that activity reporting, statistics, and Bufdir exports are correctly attributed to the right organisational unit and data isolation between chapters is enforced

Acceptance Criteria
  • Given I open the hierarchy admin portal, when the tree loads, then I can see all levels (national → regional → local) collapsed by default with expand/collapse controls
  • Given I create a new chapter node, when I assign a coordinator to it, then that coordinator's app immediately scopes all data access to that chapter
  • Given I archive a chapter, when existing users in that chapter log in, then they are shown a no-access screen until reassigned to an active chapter
  • +3 more
View Full Story →
View Organisation Admin Dashboard with Key Metrics
critical 8 pts

As a As a Organization Administrator

I want to see a centralised dashboard showing the health and activity metrics of my entire organisation at a glance

So that I can quickly identify issues, track engagement trends, and make informed decisions without manually querying reports

Acceptance Criteria
  • Given I am authenticated as an Organisation Admin, when I navigate to the admin section, then the dashboard loads within 2 seconds and shows aggregate stats scoped to my organisation
  • Given the dashboard is loaded, when there are peer mentors with certifications expiring within 30 days, then a prominent warning card is displayed with a count and a link to the certification management screen
  • Given the dashboard is loaded, when there are expense claims pending approval, then a stat card shows the count and links to the coordinator review queue
  • +2 more
View Full Story →
Manage User Accounts and Assign Roles
critical 13 pts

As a As a Organization Administrator

I want to create, edit, deactivate, and assign roles to user accounts within my organisation

So that the right people have the right level of access, onboarding of new coordinators and peer mentors is fast, and leavers are blocked promptly

Acceptance Criteria
  • Given I am on the user management screen, when I tap 'Invite User', then I can enter an email address and select an initial role, and the system sends an invitation email
  • Given a user is listed with role 'peer_mentor', when I tap 'Change Role' and select 'coordinator', then the role is updated immediately and the user's app access changes on their next session
  • Given I deactivate a user account, when the user attempts to log in, then they are shown the no-access screen with a support contact message
  • +3 more
View Full Story →