190
Shared Components
4
Component Types
190
Feature Links

UI Components

Role Switch Widget

Shared widget that allows users holding multiple roles to switch their active role within the app session. Triggers role...

medium shared ui
Role-Based Access Control
Role-Aware Bottom Navigation

Bottom navigation bar that conditionally renders tabs and restricts navigation options based on the user's active role. ...

medium shared ui
Role-Based Access Control
Activity Type Selection Screen

Mobile screen shown during the activity registration wizard that allows a peer mentor to pick an activity type from thei...

low shared ui
Activity Type Configuration
Speech-to-Text Field Overlay

A per-field microphone trigger widget that activates Flutter's speech_to_text package and appends the transcription resu...

medium shared ui
Structured Post-Session Report
Receipt Capture Widget

Reusable widget for capturing or selecting a receipt photo via the device camera or gallery using image_picker. Displays...

medium shared ui
Travel & Expense Registration
Peer Mentor Single Selector

Searchable list of peer mentors drawn from the coordinator's existing contact list, allowing selection of exactly one pe...

low shared ui
Bulk & Proxy Registration
Proxy Audit Badge Widget

Reusable inline widget that renders a subtle 'Recorded by coordinator' badge on any activity card or detail view where r...

low shared ui
Bulk & Proxy Registration
Export Period Picker

Date range picker pre-configured with common Bufdir reporting periods (quarterly, annual). Users can also pick a custom ...

low shared ui
Bufdir Report Export
Contact Card Widget

Reusable card widget displaying a contact's key information (name, role, organization, notes snippet). Styled with desig...

low shared ui
Contact List Management
Contact Search Bar

Accessible search input component with debounce support for filtering contacts by name and notes. Built on the shared Ap...

low shared ui
Contact List Management
Peer Mentor Card Widget

Reusable card widget for displaying peer mentor-specific information including availability status, assigned members cou...

low shared ui
Contact List Management
Activity History List

Scrollable list section within the contact detail screen showing the contact's past activities, dates, and durations. Pr...

low shared ui
Contact Detail & Edit Screen
Multi-Chapter Affiliation Chip Widget

Reusable chip/tag widget displaying a contact's membership across up to 5 local chapters simultaneously (NHF requirement...

medium shared ui
Contact Detail & Edit Screen
Certification Status Badge

Reusable widget rendering a pill-shaped badge indicating a peer mentor's certification state: active, paused, or expired...

low shared ui
Peer Mentor Profile & Status Screen
Duplicate Activity Warning Dialog

Dismissible warning dialog surfaced during activity submission when the system detects a potential duplicate across coor...

medium shared ui
Multi-Chapter Membership Handling
Mentor Multi-Select Widget

Reusable multi-select contact list widget that allows coordinators to pick one or more peer mentors from their managed c...

medium shared ui
Coordinator Proxy Registration for Contacts
Map Filter Panel

Collapsible filter panel allowing coordinators to narrow visible mentor markers by availability status or specialization...

medium shared ui
Geographic Peer Mentor Map View
Claim Status Badge

Compact, reusable chip widget that renders the current status of a claim (draft, submitted, approved, rejected, exported...

low shared ui
Threshold-Based Expense Approval Workflow
Export Date Range Picker

Reusable UI component for selecting a configurable start and end date for export operations. Used in both accounting exp...

low shared ui
Accounting System Export and Integration
Custom Date Range Picker

Reusable date range selection widget used when predefined presets do not cover the required period. Enforces logical dat...

low shared ui
Bufdir Report Period Selection
Proxy Activity Form

Reusable activity form pre-configured for proxy entry. Shows all standard activity fields (date, type, duration, notes) ...

medium shared ui
Proxy & Bulk Activity Registration
Proxy Peer Mentor Selector

Search and select widget that lets a coordinator pick one or more peer mentors from their chapter's roster. Supports typ...

medium shared ui
Proxy & Bulk Activity Registration
Expected Return Date Picker

Reusable date selection widget used within the pause activation flow to capture an optional expected return date. Enforc...

low shared ui
Peer Mentor Pause & Status Management
Pause Activation Screen

Full-screen modal allowing a peer mentor to activate or lift a pause. Collects optional expected return date and display...

low shared ui
Peer Mentor Pause & Status Management
Pause Status Indicator

Reusable badge/chip widget rendering the peer mentor's status enum (active, paused, expired_cert, resigned) with appropr...

low shared ui
Peer Mentor Pause & Status Management
Admin KPI Stat Widget

Reusable stat card widget displaying a single KPI metric (e.g., active peer mentors, activities this month, pending reim...

low shared ui
Organisation Admin Portal
Organisation Hierarchy Navigator

Tree-based navigation component for browsing deeply nested org structures (NHF: national association → region → local ch...

high shared ui
Organisation Admin Portal
Bufdir Period Selector Widget

Reusable date-range picker pre-configured for common Bufdir reporting periods (quarter, half-year, full year). Validates...

low shared ui
Bufdir Reporting & Export
Export History List

Displays the audit log of past Bufdir exports for the current organisation, showing who triggered each export, the perio...

medium shared ui
Bufdir Reporting & Export
Activity Type Donut Chart

Donut chart built with fl_chart showing breakdown of activities by type for the selected coordinator and period. Include...

medium shared ui
Coordinator Statistics Dashboard
Monthly Activity Bar Chart

Bar chart built with fl_chart showing activity count per month for the selected period. Supports tap-to-highlight and an...

medium shared ui
Coordinator Statistics Dashboard
Statistics Period Filter Bar

Horizontal filter bar allowing selection of time period (this month, last 3 months, this year, custom range) and optiona...

low shared ui
Coordinator Statistics Dashboard
Statistics Summary Cards

Row of stat cards displaying key coordinator KPIs: total activities this month and year-to-date, hours of peer mentor su...

low shared ui
Coordinator Statistics Dashboard
Notification Badge Widget

Unread count badge overlaid on the Notifications tab in the bottom navigation bar. Subscribes to a real-time unread coun...

low shared ui
Push Notification Delivery
Certificate Expiry Status Indicator

Reusable widget that visually communicates a peer mentor's certificate status across multiple surfaces such as coordinat...

low shared ui
Certificate Expiry Notifications
Animated Stat Card Widget

Reusable animated card that reveals a single statistic (e.g., total hours volunteered, number of people helped) with a c...

medium shared ui
Annual Impact Summary (Wrapped)
In-App Notification Banner

WCAG 2.2 AA compliant in-app banner component that renders scenario-based notification messages while the user is active...

low shared ui
Scenario-Based Engagement Push Notifications
Accessible Modal Sheet Widget

Wraps bottom sheets and modal dialogs with correct focus trapping, initial focus placement, and focus restoration on clo...

high shared ui
Screen Reader Support
Live Region Announcer

Provides live-region announcements for asynchronous state changes such as loading completions, form submission results, ...

medium shared ui
Screen Reader Support
Semantics Wrapper Widget

A reusable Flutter widget that wraps interactive elements with Flutter Semantics properties, providing labels, roles, hi...

medium shared ui
Screen Reader Support
Sensitive Field Warning Dialog

An OS-level alert dialog that fires before a screen reader vocalises a field flagged as containing sensitive personal da...

high shared ui
Screen Reader Support
Confirm Before Submit Screen

A reusable summary screen inserted as the final step of every activity or report wizard. Lists all entered values in a r...

medium shared ui
Cognitive Accessibility
Inline Contextual Help Widget

Provides field-level and screen-level help text inline within the UI, replacing separate help sections. Help is revealed...

low shared ui
Cognitive Accessibility
Labelled Navigation Bar

Flutter NavigationBar implementation that enforces labelled icons — no icon-only buttons. All tabs display both icon and...

low shared ui
Cognitive Accessibility
Plain Language Error Display

Renders form and server errors in plain Norwegian using a two-part structure: what went wrong and how to fix it. Never s...

low shared ui
Cognitive Accessibility
Single-Action Screen Layout

A composable screen wrapper that enforces the cognitive accessibility rule of at most three primary choices per screen. ...

medium shared ui
Cognitive Accessibility
Wizard Progress Indicator

Displays current step position and total step count in all multi-step wizards. Enforces the maximum of 5 steps and provi...

low shared ui
Cognitive Accessibility
Accessible Text Style System

Provides a Flutter TextTheme derived entirely from design tokens, ensuring all body copy uses FontWeight.w400 or heavier...

medium shared ui
Visual Design Accessibility
Accessible Touch Target Wrapper

A Flutter widget wrapper that enforces a minimum 44×44 pt tappable area for all interactive controls. Wraps GestureDetec...

low shared ui
Visual Design Accessibility
Contrast-Safe Color Palette Widget

A Flutter ThemeData color scheme built exclusively from contrast-verified token pairs. Exposes foreground/background pai...

medium shared ui
Visual Design Accessibility
Accessible Bottom Navigation Bar

A persistent five-tab bottom navigation bar built on StatefulShellRoute that preserves tab state across navigation event...

medium shared ui
Navigation & Gesture Accessibility
Modal Close Button

A clearly labelled close IconButton injected into every ModalBottomSheet, AlertDialog, and full-screen overlay. Ensures ...

low shared ui
Navigation & Gesture Accessibility
Persistent Back Button

A back control that appears on every screen that is not a root tab destination, providing an explicit tap-based way to n...

low shared ui
Navigation & Gesture Accessibility
Vertical Scroll Container

A scroll view wrapper that enforces vertical-only scrolling throughout the application, preventing horizontal carousels ...

low shared ui
Navigation & Gesture Accessibility
Organization Card Widget

Reusable card widget that displays a single partner organization with its logo, display name, and a brief descriptor. Re...

low shared ui
Organization Selection & Onboarding
Terminology-Aware Text Widget

A drop-in replacement for Flutter Text widgets that automatically resolves label keys through the active organization's ...

low shared ui
Dynamic Terminology & Labels System
FeatureGate Widget

A conditional rendering wrapper widget that gates any child widget behind a single boolean feature flag check. Accepts a...

low shared ui
Organization-scoped Feature Flags
Chapter Switcher

Slack-style workspace-switching bottom sheet that appears for users (typically NHF peer mentors) who belong to multiple ...

medium shared ui
Organizational Hierarchy & Structure Management

Service Components

Authentication Service

Application-layer service orchestrating authentication flows against the Supabase Auth backend. Abstracts Supabase SDK c...

medium shared service
Email and Password Login
Authentication Session Manager

Centralized Supabase session lifecycle manager shared across all authentication methods. Persists, refreshes, and invali...

medium shared service
BankID and Vipps Login
Biometric Authentication Service

Wraps Flutter's local_auth package to manage device-level biometric authentication for returning users. Checks hardware ...

medium shared service
BankID and Vipps Login
Permission Checker Service

Evaluates whether the current active role is authorized to access a specific screen, action, or data set. Used by route ...

medium shared service
Role-Based Access Control
Role State Manager

BLoC/Riverpod-based state manager that holds the current active role and exposes role change events to the widget tree. ...

medium shared service
Role-Based Access Control
No-Access Route Guard

GoRouter redirect callback that intercepts navigation for users whose role is flagged as mobile-blocked. Acts as a termi...

low shared service
No-Access Screen for Restricted Roles
Activity Type Metadata Resolver

Service that reads the JSON metadata column of an activity type and exposes strongly typed accessors for downstream feat...

low shared service
Activity Type Configuration
Chapter Scope Resolver

Service that determines the set of chapter IDs a coordinator is authorized to query. Handles NHF's multi-chapter members...

medium shared service
Activity Statistics Dashboard
Organisation Hierarchy Resolver

Resolves the organisational scope for export queries. Given a scope ID and level (local/region/national), returns all ch...

medium shared service
Bufdir Report Export
Coordinator Notification Service

Service responsible for delivering push and in-app notifications to coordinators when a peer mentor changes status. Reso...

medium shared service
Peer Mentor Pause & Reactivation
Duplicate Activity Detection Service

Compares a pending activity submission against existing activity records for the same contact across all chapters they b...

high shared service
Multi-Chapter Membership Handling
Mentor Filter Service

Encapsulates filtering logic for mentor search criteria including availability status and specialization tags. Translate...

low shared service
Geographic Peer Mentor Map View
Receipt Threshold Validator

Evaluates whether a receipt attachment is required or optional based on the org-configurable monetary threshold (default...

low shared service
Receipt Capture and Attachment
Approval Status Notification Service

Sends push notifications to the submitting peer mentor when their claim status changes (approved or rejected). Uses Supa...

medium shared service
Threshold-Based Expense Approval Workflow
Threshold Evaluation Service

Shared Dart utility implementing the threshold decision logic used both client-side (immediate UX feedback) and server-s...

medium shared service
Threshold-Based Expense Approval Workflow
Declaration Encryption Service

Encrypts confidentiality declaration content before upload to Supabase Storage, consistent with the encrypted assignment...

high shared service
Driver Administration and Confidentiality Declarations
Organization Feature Flag Service

Provides read access to organization-level feature flags, including the driver administration feature toggle. Used by bo...

low shared service
Driver Administration and Confidentiality Declarations
Participant Deduplication Service

Ensures that unique participant counts are accurate by detecting and excluding double-counted records arising from coord...

high shared service
Bufdir Data Aggregation
Reporting Period Service

Manages the definition and boundaries of Bufdir reporting periods (typically annual). Determines which activity records ...

medium shared service
Bufdir Data Aggregation
Activity Attribution Service

Manages the distinction between who registered an activity and who it is attributed to. Ensures every proxy entry stores...

low shared service
Proxy & Bulk Activity Registration
Proxy Duplicate Detection Service

Detects conflicting activity entries by querying all registrations matching the triple (peer mentor ID, date, activity t...

medium shared service
Proxy & Bulk Activity Registration
Pause Management Service

Core business logic service handling all peer mentor status transitions. Enforces valid state machine transitions (activ...

medium shared service
Peer Mentor Pause & Status Management
Pause Notification Service

Handles dispatch of push and in-app notifications to coordinators when a peer mentor's pause status is activated, lifted...

medium shared service
Peer Mentor Pause & Status Management
Admin Export Service

Generates CSV and Excel exports of org-level data for Bufdir grant reporting and internal governance. Queries activity, ...

medium shared service
Organisation Admin Portal
Admin Row-Level Security Guard

Middleware service that enforces Supabase row-level security policies for org_admin and super_admin roles. Intercepts al...

high shared service
Organisation Admin Portal
Organisation Hierarchy Service

Resolves and traverses the organisation tree structure, supporting both NHF's deeply nested model (national → region → c...

high shared service
Organisation Admin Portal
User Management Service

Business logic layer for creating, updating, deactivating, and role-assigning user accounts within an admin's org scope....

high shared service
Organisation Admin Portal
Role Access Validator

Validates and scopes statistics access based on user role. Coordinators may only see their own peer mentors via Supabase...

low shared service
Coordinator Statistics Dashboard
Peer Mentor Stats Aggregator

Computes aggregated activity statistics for a peer mentor required by badge criteria evaluation, including total assignm...

medium shared service
Achievement Badges & Status Recognition
Notification Preference Service

Business logic layer for reading, updating, and enforcing notification opt-out preferences per user and scenario type. A...

low shared service
Scenario-Based Engagement Push Notifications
Scenario Deep-Link Router

Mobile-side service that parses incoming push notification payloads and routes the user to the correct in-app screen. Ha...

medium shared service
Scenario-Based Engagement Push Notifications
Scenario Notification Content Builder

Service responsible for generating localised, personalised notification copy for each scenario type. Injects user-specif...

medium shared service
Scenario-Based Engagement Push Notifications
Badge Criteria Integration

Acts as the bridge between recruitment attribution events and the badge and recognition system. Evaluates recruitment mi...

medium shared service
Membership Recruitment (Verving)
Activity Summary Aggregator

Reads the volunteer's registered activity data and aggregates session count and total duration to pre-populate the calcu...

low shared service
Volunteer Benefit Calculator
Focus Management Service

Centralizes screen reader focus management for navigation transitions, dialog opens/closes, and dynamic content updates....

medium shared service
Screen Reader Support
Screen Reader Detection Service

Detects whether a screen reader (VoiceOver or TalkBack) is active on the device and exposes this state as a reactive str...

medium shared service
Screen Reader Support
Sensitive Field Privacy Guard

Business logic service that intercepts screen reader focus events on fields flagged as sensitive and orchestrates the wa...

high shared service
Screen Reader Support
Plain Language Content Service

Centrally manages all user-facing copy to ensure it meets plain-language guidelines. Provides keyed access to labels, er...

medium shared service
Cognitive Accessibility
Wizard State Manager

BLoC-based state manager for all multi-step wizards, implementing pause-and-resume semantics. Persists partial wizard st...

medium shared service
Cognitive Accessibility
Tab State Manager

A Riverpod-backed service that tracks and restores per-tab navigation state using StatefulShellRoute branch navigators. ...

medium shared service
Navigation & Gesture Accessibility
Organization Route Guard

go_router redirect guard that intercepts navigation for unauthenticated users or users without an active organization co...

medium shared service
Organization Selection & Onboarding
Tenant Context Service

Central service responsible for seeding and maintaining the active tenant context after an organization is selected. Loa...

high shared service
Organization Selection & Onboarding
Label Key Resolver Service

Stateless utility service that applies resolution logic to raw terminology maps: handles missing keys with fallbacks, su...

low shared service
Dynamic Terminology & Labels System
Organization Labels Notifier

A Riverpod StateNotifier that manages the active organization's terminology map lifecycle. On login it fetches the JSONB...

medium shared service
Dynamic Terminology & Labels System
FeatureFlagProvider (Riverpod)

A Riverpod provider that exposes the resolved feature flag map for the currently active organization. Reads flags from t...

medium shared service
Organization-scoped Feature Flags
Access Scope Service

Determines the set of organization units a given user may read or write data for, based on their assignments and role. U...

high shared service
Organizational Hierarchy & Structure Management
Hierarchy Aggregation Service

Rolls activity data upward through the hierarchy tree from local chapter level to regional and national levels. Used by ...

high shared service
Organizational Hierarchy & Structure Management
Hierarchy Service

Core business logic service for managing organization unit trees. Wraps Supabase queries for the recursive adjacency-lis...

high shared service
Organizational Hierarchy & Structure Management
Unit Assignment Service

Manages the junction table that links users to one or more organization units. Enforces the is_primary constraint (only ...

medium shared service
Organizational Hierarchy & Structure Management

Data Components

Authentication Repository

Data layer repository providing a stable interface for authentication persistence operations. Manages local session cach...

low shared data
Email and Password Login
Auth Token Store

Secure local storage adapter for OAuth tokens (Vipps, BankID) and Supabase session data. Uses Flutter Secure Storage to ...

low shared data
BankID and Vipps Login
Secure Session Storage

Encrypted key-value store backed by flutter_secure_storage that persists the Supabase session token, its expiry timestam...

low shared data
Biometric Session Authentication
Activity Type Cache Provider

Riverpod AsyncNotifier that fetches activity types on login and holds them in memory for the session. Serves cached data...

medium shared data
Activity Type Configuration
Receipt Storage Adapter

Adapter encapsulating all interactions with Supabase Storage for receipt image management. Handles image compression bef...

medium shared data
Travel & Expense Registration
Proxy Contact List Provider

Riverpod provider that exposes the coordinator's peer mentor contact list filtered and ready for use in proxy and bulk s...

low shared data
Bulk & Proxy Registration
Contact Repository

Data access layer for contacts and peer mentors backed by Supabase. All queries are scoped by organization ID and rely o...

medium shared data
Contact List Management
Contact Detail Repository

Data access layer for retrieving and updating full contact profiles, including extended attributes like chapter affiliat...

medium shared data
Contact Detail & Edit Screen
Peer Mentor Repository

Data access layer for peer mentor profile records in Supabase. Provides typed Dart models for peer mentor data including...

low shared data
Peer Mentor Profile & Status Screen
Mentor Status Repository

Data access layer for reading and writing peer mentor status fields in Supabase. Manages the status enum (active, paused...

low shared data
Peer Mentor Pause & Reactivation
Contact Chapter Repository

Data access layer for the contact_chapters junction table in Supabase, providing CRUD operations for contact-to-chapter ...

medium shared data
Multi-Chapter Membership Handling
Contact Cache Sync Repository

Maintains a local Drift SQLite cache of contacts and notes fetched from Supabase, used by the offline search repository....

low shared data
Contact & Notes Search
Organisation Rate Configuration Repository

Fetches and caches the organisation-level per-km reimbursement rate and auto-approval threshold from Supabase. Provides ...

low shared data
Mileage Reimbursement Entry
Multi-Organization Data Isolator

Enforces strict per-organization data isolation across all database queries, ensuring that NHF, Blindeforbundet, HLF, an...

medium shared data
Bufdir Data Aggregation
Bufdir Aggregation Repository

Read-only data access layer that queries the aggregated activity records used by the Bufdir reporting pipeline. Shared w...

low shared data
Bufdir Report Period Selection
Report File Storage Client

Supabase Storage adapter managing upload, retrieval, and signed URL generation for exported Bufdir report files. Enforce...

low shared data
Bufdir Report History & Audit Log
Certification Status Repository

Supabase data access layer for peer mentor certification records. Stores certification type, issue date, expiry date, an...

low shared data
Peer Mentor Pause & Status Management
Peer Mentor Status Repository

Supabase data access layer for peer mentor status records and pause history. Manages the peer_mentor_status table includ...

medium shared data
Peer Mentor Pause & Status Management
Statistics Cache Manager

In-memory cache for statistics query results with a 15-minute TTL to avoid repeated heavy Supabase queries. Cache is key...

low shared data
Coordinator Statistics Dashboard
In-App Notification Repository

Data access layer for persisting and retrieving in-app notification records displayed in the Notifications tab. Supports...

low shared data
Assignment Follow-up Reminders
Pause Status Record Repository

Data access layer for reading peer mentor pause status records and resolving coordinator relationships from the org memb...

low shared data
Pause Status Change Notifications
Activity Aggregation Repository

Executes aggregation queries over the activity table to compute session counts, total hours, and other metrics for a giv...

medium shared data
Periodic Activity Summaries
Notification Preferences Repository

Persistence layer for user-level notification preference records keyed by user ID and scenario type. Provides fast upser...

low shared data
Scenario-Based Engagement Push Notifications
Scenario Notification Repository

Data access layer for persisting and querying scenario-based push notification records, including trigger history, deliv...

medium shared data
Scenario-Based Engagement Push Notifications
Sensitive Field Configuration

Defines and persists the list of form fields throughout the app that are designated as containing sensitive personal dat...

low shared data
Screen Reader Support
Error Message Registry

Static registry mapping every application error code to a plain-language two-part message object containing a cause desc...

low shared data
Cognitive Accessibility
Help Content Registry

Stores and serves inline contextual help texts keyed by screen identifier and field identifier. Loaded from a bundled as...

low shared data
Cognitive Accessibility
Wizard Draft Repository

Persists and retrieves partial wizard answers locally using shared preferences or Hive, enabling pause-and-resume withou...

low shared data
Cognitive Accessibility
Design Token Provider

Central repository of all design tokens (colors, typography, spacing, sizing, radii) for the application. Tokens are def...

medium shared data
Visual Design Accessibility
Organization Repository

Data access layer responsible for fetching, caching, and exposing organization records from Supabase. Provides the compl...

medium shared data
Organization Selection & Onboarding
Terminology Local Cache Adapter

Persists terminology maps to device-local storage (e.g., SharedPreferences or Hive) so that labels are available immedia...

low shared data
Dynamic Terminology & Labels System
Organization Unit Repository

Supabase data access layer for the organization_units table which implements a recursive adjacency-list structure (paren...

high shared data
Organizational Hierarchy & Structure Management
Unit Assignment Repository

Data access layer for the user_organization_unit_assignments junction table. Manages user-to-unit relationships includin...

medium shared data
Organizational Hierarchy & Structure Management

Infrastructure Components

Keyboard-Aware Layout Utility

Utility widget or mixin providing keyboard-aware scrolling behavior for form screens. Automatically adjusts scroll offse...

low shared infrastructure
Email and Password Login
Supabase Auth Client

Infrastructure wrapper around the Supabase Flutter SDK's auth module. Provides an injectable singleton client used acros...

low shared infrastructure
Email and Password Login
Deep Link / OAuth Redirect Handler

Intercepts incoming deep links during OAuth flows for both Vipps and BankID. Registers the app's custom URI scheme, pars...

medium shared infrastructure
BankID and Vipps Login
Secure Storage Adapter

Thin wrapper around Flutter Secure Storage providing a consistent interface for encrypted local persistence. Used by mul...

low shared infrastructure
BankID and Vipps Login
Supabase Session Manager

Centralized service responsible for Supabase session lifecycle operations including token refresh, session validation, a...

medium shared infrastructure
Biometric Session Authentication
URL Launcher Utility

Thin wrapper around the Flutter url_launcher package used by the admin portal link widget to open external URLs in the d...

low shared infrastructure
No-Access Screen for Restricted Roles
Local Storage Adapter

Thin wrapper around the device key-value store (SharedPreferences on Flutter) providing a typed, async interface for per...

low shared infrastructure
Quick Activity Registration
Supabase Activity Client

Low-level Supabase client wrapper scoped to the activities table. Abstracts PostgREST query construction and error mappi...

low shared infrastructure
Quick Activity Registration
Organization Labels Provider

Riverpod provider that loads and exposes the per-organisation terminology overrides used throughout the app. Extended fo...

low shared infrastructure
Activity Type Configuration
Supabase Client

Shared singleton that initialises and exposes the Supabase client instance used by all repository layers throughout the ...

low shared infrastructure
Activity Type Configuration
Organisation Field Config Loader

Fetches and parses the JSON field configuration stored in Supabase that defines org-specific form fields. Supports addin...

medium shared infrastructure
Structured Post-Session Report
Speech-to-Text Adapter

Wraps Flutter's speech_to_text package and exposes a simplified interface for per-field transcription. Handles microphon...

medium shared infrastructure
Structured Post-Session Report
File Download Handler

Flutter utility that receives a file URL or byte payload from the edge function and triggers the native device download ...

low shared infrastructure
Bufdir Report Export
Duplicate Reviewed Flag Middleware

Lightweight interceptor layer that injects the duplicate_reviewed field into the activity insert payload based on user r...

low shared infrastructure
Duplicate Activity Detection
Contact RLS Query Builder

Utility that constructs Supabase query filters aligned with the Row Level Security policies for the contacts and peer_me...

low shared infrastructure
Contact List Management
Contact Form Validator

Client-side validation utilities for the edit contact form, enforcing required field rules, format constraints (e.g., ph...

low shared infrastructure
Contact Detail & Edit Screen
Design Token Theme

Flutter ThemeData extension exposing the project's design token system (colors, typography, spacing, radii) as typed Dar...

low shared infrastructure
Peer Mentor Profile & Status Screen
Supabase Client Provider

Riverpod provider exposing the initialized Supabase client instance to all repository layers. Centralizes client configu...

low shared infrastructure
Peer Mentor Profile & Status Screen
Search Debounce Utility

Wraps a RxDart or Timer-based debounce around the search input stream to prevent excessive Supabase queries on every key...

low shared infrastructure
Contact & Notes Search
Expense Type Analytics Tracker

Lightweight event tracker that records which expense types are selected and how often mutual exclusion is triggered, pro...

low shared infrastructure
Expense Type Selection with Mutual Exclusion
Receipt Image Picker Integration

Wraps the Flutter image_picker package to provide a unified interface for both camera capture and gallery/file-picker se...

low shared infrastructure
Receipt Capture and Attachment
CSV / JSON File Generator

Utility that converts structured export records into a downloadable CSV or JSON file. Handles encoding, column ordering,...

medium shared infrastructure
Accounting System Export and Integration
Coordinator Role Guard

Utility that enforces coordinator or higher role authorization before granting access to proxy registration UI and servi...

low shared infrastructure
Proxy & Bulk Activity Registration
Nightly Job Scheduler

Infrastructure component that schedules and triggers backend cron jobs, specifically the nightly certification expiry ch...

medium shared infrastructure
Peer Mentor Pause & Status Management
Supabase RLS Policy Configuration

Database-level row-level security policy definitions for org_admin and super_admin roles in Supabase. Policies are appli...

high shared infrastructure
Organisation Admin Portal
Export File Storage Adapter

Uploads generated export files and attachment ZIPs to Supabase Storage under organisation-scoped paths. Generates time-l...

low shared infrastructure
Bufdir Reporting & Export
Supabase Storage Adapter

Wraps the Supabase Storage SDK to provide a typed interface for file upload, deletion, and signed URL generation. Config...

low shared infrastructure
Document Attachments for Activities
Peer Mentor Pause Management Service

Shared service that handles transitioning a peer mentor into and out of paused status. Used by the certification feature...

medium shared infrastructure
Peer Mentor Certification Management
Push Notification Service

Shared infrastructure service that delivers push notifications to mobile devices. Used by the reminder dispatch service ...

low shared infrastructure
Assignment Follow-up Reminders
fl_chart Adapter

Thin adapter layer wrapping the fl_chart Flutter library to provide typed, app-specific chart configuration builders. Ce...

medium shared infrastructure
Coordinator Statistics Dashboard
FCM Push Notification Sender

Shared infrastructure component responsible for sending push notifications via Firebase Cloud Messaging. Used across cer...

medium shared infrastructure
Certificate Expiry Notifications
FCM Notification Dispatcher

Shared Firebase Cloud Messaging dispatch function that sends push notifications to device tokens and writes in-app notif...

medium shared infrastructure
Pause Status Change Notifications
Push Notification Dispatcher

Shared infrastructure component responsible for sending push notifications via the platform push service (FCM/APNs throu...

medium shared infrastructure
Scenario-based Follow-up Prompts
Supabase Realtime Subscription Service

Manages Supabase Realtime channel subscriptions for the notifications table, scoped to the current user's user_id. Emits...

medium shared infrastructure
In-app Notification Centre
Organisation Data Isolation Guard

Middleware utility that enforces organisation-scoped row-level security on all summary-related Supabase queries. Ensures...

low shared infrastructure
Periodic Activity Summaries
Deep Link Handler

Processes incoming deep links containing referral tokens when a new member taps the referral URL. Extracts the referral ...

medium shared infrastructure
Membership Recruitment (Verving)
QR Code Generator

Utility wrapper around a Flutter QR code rendering package (e.g., qr_flutter). Accepts a referral URL string and returns...

low shared infrastructure
Membership Recruitment (Verving)
Share Sheet Bridge

Wraps the Flutter Share plugin (share_plus) to invoke the native iOS and Android system share sheet. Packages the referr...

low shared infrastructure
Membership Recruitment (Verving)
Semantics Service Facade

Abstracts Flutter's SemanticsService and platform accessibility APIs behind a unified interface to simplify testing and ...

medium shared infrastructure
Screen Reader Support
Accessibility Design Token Enforcer

Ensures all UI components consume colour, typography, and spacing values exclusively from the project's design token sys...

medium shared infrastructure
Cognitive Accessibility
Accessible Theme Builder

Assembles the final Flutter ThemeData by composing the contrast-safe color scheme, the accessible text theme, and token-...

medium shared infrastructure
Visual Design Accessibility
Navigation Route Configuration

Central GoRouter configuration that defines all application routes with accessibility constraints built in: StatefulShel...

medium shared infrastructure
Navigation & Gesture Accessibility
Accessibility Live Region Announcer

A shared utility that posts accessibility announcements to the platform's screen reader via Flutter's SemanticsService. ...

low shared infrastructure
Speech-to-Text Input
Feature Flag Provider

Infrastructure component that loads and exposes the organization-specific feature flag configuration fetched from Supaba...

low shared infrastructure
Organization Selection & Onboarding
Supabase RLS Tenant Scope Configurator

Infrastructure utility that injects the selected organization ID into the Supabase client configuration so all subsequen...

medium shared infrastructure
Organization Selection & Onboarding
Label Key Registry

A compile-time constant registry of all label keys used across the application, defined as a Dart abstract class with st...

low shared infrastructure
Dynamic Terminology & Labels System
Terminology Riverpod Providers

Defines the Riverpod provider graph for the terminology system: the root organizationLabelsProvider, derived providers f...

low shared infrastructure
Dynamic Terminology & Labels System
WCAG Semantics Label Resolver

Infrastructure utility that bridges the terminology system with Flutter's Semantics tree to satisfy WCAG 2.2 AA requirem...

low shared infrastructure
Dynamic Terminology & Labels System
Feature Flag Key Constants

A centralized constants file defining all valid feature flag keys as typed string constants. Prevents magic strings scat...

low shared infrastructure
Organization-scoped Feature Flags
RLS Policy Manager

Manages Supabase Row Level Security policies that join through the unit assignment junction table to enforce data access...

high shared infrastructure
Organizational Hierarchy & Structure Management