Components
312 components across 4 layers
UI Components
The primary authentication entry point presenting email and password input fields with form validati...
A multi-step screen guiding users through the password reset flow: email entry, confirmation of emai...
Full-screen flow for initiating and completing BankID authentication. Launches the BankID OAuth2/OID...
Prompt and feedback UI for device biometric re-authentication (Face ID on iOS, fingerprint on Androi...
Full-screen flow for initiating and completing Vipps login. Launches the Vipps OAuth2/OIDC flow, han...
Displayed when an authenticated user's role does not grant access to a given route or context. Provi...
Presented post-login when a user belongs to multiple organizations or local associations. Allows the...
An in-app widget that allows users with multiple roles to toggle their active role without re-authen...
Review screen displayed after all wizard steps are completed, showing a full summary of the about-to...
Full-screen selector presenting all available activity types seeded per organization from Supabase. ...
Multi-step wizard screen managing the full activity registration flow: contact selection, date, time...
Inline settings widget embedded in the wizard allowing users to view and update their stored default...
Multi-step wizard screen for creating group events with multiple participants. Guides the user throu...
Screen displaying full details of a created event including title, date, time, location, summary, an...
Searchable multi-select widget for adding participants to an event. Renders a debounced search input...
Inline widget rendered during and after bulk submission that shows the real-time status of each ment...
Full-screen coordinator interface for selecting multiple peer mentors and a shared activity template...
Reusable widget that renders a searchable, filterable list of peer mentors by applying a 'peer_mento...
Role-guarded screen that renders the full activity wizard on behalf of a chosen peer mentor, providi...
Composable overlay widget that wraps any Flutter TextEditingController to enable speech dictation in...
Stateful widget that manages the full recording lifecycle: microphone permission requests, animated ...
Inline widget embedded in the activity summary screen and activity detail view that displays attache...
Full-screen modal that presents the user with options to capture a photo via camera, pick from galle...
Reusable card component rendering a single contact or peer mentor entry in the list. Displays name, ...
Slide-up or inline panel allowing users to filter the contact list by status, area, custom fields, o...
Inline search bar with debounced input triggering Supabase queries filtered by organisation membersh...
Primary screen displaying the full contact and peer mentor roster with role-specific views. Coordina...
Toggle widget allowing users to switch between Contacts and Peer Mentors list views. The selected vi...
Full-screen view displaying all information for a single contact, including personal details, custom...
Scrollable timeline widget that renders chronological notes tied to a contact, showing author, times...
Reusable table widget that renders organisation-defined custom fields for a contact, supporting both...
Step-by-step reactive form screen for editing contact records, built with Flutter's Form widget and ...
Compact summary card for peer mentors used in list views and search results. Accepts a PeerMentor do...
Full-screen profile view for a peer mentor showing all role-specific attributes including certificat...
Compact inline widget providing a quick availability toggle usable from the peer mentor's profile or...
Full-screen view displaying a peer mentor's current availability status with options to activate or ...
Coordinator-facing screen providing a real-time overview of all open assignments, showing per-assign...
Peer-mentor-facing widget that renders the decrypted content of a received assignment only after the...
Coordinator-facing screen for composing and dispatching encrypted assignments to peer mentors. Displ...
Custom Flutter widget rendered as a map marker representing a single peer mentor's home area. Displa...
Horizontal filter bar at the top of the map view allowing coordinators to filter visible pins by ava...
Interactive map screen displaying peer mentor location pins across a coordinator's operational area....
Bottom sheet panel that slides up when a coordinator taps a location pin, showing a compact peer men...
Reusable amount entry widget used for toll fees, parking costs, and public transit fares where a fix...
Multi-step Flutter wizard screen that guides peer mentors and coordinators through registering trave...
Dropdown-based selection widget that enforces mutually exclusive expense type choices, preventing in...
Specialised input widget for mileage-based reimbursement claims that accepts kilometre distance and ...
Reusable widget that integrates with the device camera and photo library via the `image_picker` Flut...
Displays a single receipt thumbnail within the upload screen grid. Tapping the thumbnail opens a ful...
Primary screen for attaching receipt images to an expense item. Displays a thumbnail grid of already...
Coordinator-facing screen displaying all pending reimbursement submissions requiring manual review. ...
Reusable status indicator widget surfacing the current approval state of a reimbursement submission ...
Full detail view of a single reimbursement submission, enabling coordinators to review all expense i...
Full-page screen for registering driver honorarium payments linked to driving engagements. Displays ...
Full-page screen that presents the NDA agreement document fetched from Supabase Storage, guides the ...
Main screen for coordinators and administrators to initiate, view, and manage Bufdir grant reports. ...
Reusable widget for selecting reporting periods (quarter, half-year, annual) as defined by Bufdir's ...
Screen that renders a structured preview of the generated Bufdir report before export. Shows aggrega...
A reusable Flutter chart widget built on fl_chart that visualises peer mentor activity trends over t...
The main screen presenting a peer mentor's personal activity statistics. Displays an overview of com...
An at-a-glance summary card widget displaying key metrics such as total activities, total hours, uni...
The primary dashboard screen for coordinators and organization administrators showing aggregated sta...
A toolbar widget embedded in the coordinator dashboard that triggers CSV export of the currently fil...
A multi-select filter panel that enables coordinators to slice dashboard data by area, organization ...
Dedicated screen displaying a peer mentor's cumulative assignment count and progress toward honorari...
Reusable progress indicator widget that renders a peer mentor's current assignment count versus the ...
Modal dialog presented to the user when a potential duplicate activity is detected before submission...
Reusable list tile widget representing a single notification entry. Renders icon, title, body, times...
Per-category opt-in/opt-out settings screen allowing users to control which push notification scenar...
Full-screen notification center listing all received push notifications for the authenticated user. ...
Coordinator-facing screen for drafting and sending an encrypted assignment to a selected peer mentor...
Full-detail screen for an individual decrypted assignment showing sensitive personal information inc...
Primary screen for peer mentors to view all received encrypted assignments. Displays a list of assig...
Coordinator-facing dashboard listing all open assignments with real-time delivery and read receipt s...
Reusable inline widget that displays the current encryption and delivery state of an assignment. Sho...
Sticky filter toolbar on the Assignment Status Screen allowing coordinators to narrow the assignment...
Full-screen view displaying all assignments with their current lifecycle state. Coordinators see a c...
Reusable badge widget that visually communicates assignment urgency level based on elapsed days sinc...
Vertical timeline widget rendering the full immutable state history of a single assignment. Each tim...
Visually engaging widget that animates numeric impact statistics using Flutter's AnimationController...
In-app notification card widget that appears in the Notifications screen to invite the user to view ...
Full-screen animated retrospective presentation inspired by Spotify Wrapped that guides the user thr...
Reusable widget that renders a single themed story slide within the Yearly Impact Summary sequence. ...
Full-screen view displaying all badge categories with earned and locked states. Users can browse mil...
Reusable Flutter widget that renders a single badge illustration with locked/unlocked visual state, ...
Main screen for the member recruitment feature, displaying the user's referral link, recruitment sta...
Widget that generates, displays, and shares a personalized referral link tied to the user's profile ...
Full-page Flutter screen displaying available courses with real-time seat availability and enrollmen...
Detailed Flutter page presenting full course information including description, prerequisites, sched...
Modal or full-page confirmation screen shown before finalizing enrollment. Summarizes course name, d...
Renders an individual certificate entry with the certificate name, issue date, expiry date, and a do...
Main screen listing all certificates earned by the peer mentor, displaying colour-coded validity ind...
Inline UI widget that surfaces expiry warnings on certificate cards and the certificate screen when ...
Coordinator-facing UI component for creating new mentor-mentee pairings by selecting from available ...
Primary screen displaying active mentor-mentee pairings as a list with status indicators for each pa...
Detail view for a specific mentor-mentee pairing showing full pairing history, milestone completion ...
Screen that displays and manages the list of participants enrolled in a workshop session. Pulls cont...
Lightweight checklist widget scoped per workshop session for tracking follow-up tasks arising during...
Overview screen listing all workshop sessions for the logged-in coordinator, grouped by status (upco...
Embeddable rich-text note-taking widget scoped to a single workshop session. Supports structured fre...
Primary coordinator-facing screen for managing individual workshop sessions from creation through co...
Read-only screen presenting a chronological audit trail of all administrative actions performed with...
Primary administrative interface screen providing a unified overview for organization administrators...
Configuration management screen allowing administrators to adjust organization-level settings includ...
Screen for managing users within the administrator's organizational scope, including viewing user pr...
Full-screen interface that displays all organizations a user is a member of and allows switching the...
Compact widget displayed in the app shell header or profile area showing the currently active organi...
Slim contextual banner displayed at the top of activity registration and reporting screens to remind...
Admin screen for bulk-importing organizational structure from a CSV file, reducing manual data entry...
Detail view for a specific organizational unit showing its name, type, parent association, child cou...
Reusable widget representing a single node in the organizational hierarchy. Displays the org unit na...
Full-screen view that renders the complete organizational hierarchy from national associations down ...
Utility widget that accepts a label key and renders the organization-specific string for that key. F...
Admin portal screen for configuring organization-specific terminology. Presents a form-based editor ...
Displays full details of a single document including its type, upload date, expiry, signing status, ...
Primary screen for viewing, uploading, and managing legal and medical documents such as powers of at...
Reusable widget that embeds the document signing flow within the app, supporting both BankID-based e...
Handles file selection, camera capture, and metadata entry for uploading legal or medical documents....
A comprehensive Flutter widget library where every component — AppButton, AppTextField, navigation i...
A reduced-complexity navigation layout that limits simultaneous choices and surfaces only the most c...
A visible step progress indicator displayed in multi-step wizard flows to provide users with clear o...
Full-screen settings page where users configure font scale and contrast theme preferences. Displays ...
Selection widget presenting three theme options — Standard, High Contrast, and Reduced Motion — each...
Interactive slider widget that lets users choose a font scale factor between 85% and 200% of the bas...
Displays the current sync status for all configured accounting integrations per organization. Shows ...
Admin UI widget that displays the health and status of member system synchronization per organizatio...
Admin screen allowing HLF administrators to configure the boundary between the Likeperson app and th...
Scrollable list widget rendering peer mentor cards extended with coordinator-specific metadata such ...
Primary coordinator screen displaying a comprehensive list of all peer mentors and members within th...
Multi-select filter chip bar allowing coordinators to filter the member list by availability status,...
Main screen presenting pending activity registrations scoped to the coordinator's organizational hie...
Confirmation dialog presented when a coordinator initiates a bulk approval action. Summarizes the co...
Inline or modal editor allowing coordinators to perform field-level edits on submitted activity regi...
Modal dialog for coordinators to provide a mandatory rejection reason when dismissing an invalid act...
The primary navigation widget rendering five tabs — Home, Contacts, Add, Work, and Notifications — a...
The top-level scaffold widget that wraps all tab branches using Flutter's StatefulShellRoute. It hos...
Reusable card widget that represents a single settings section or action item in the settings screen...
Main settings screen accessible from the hamburger menu on all tabs. Displays logical card-based sec...
A shared internal Flutter widget library (lib/shared/widgets) providing all common UI primitives — A...
Service Components
Business logic layer orchestrating all email/password authentication operations including login, log...
Orchestrates the BankID OAuth2/OIDC authentication flow end-to-end. Builds the authorization URL, ha...
Manages device biometric enrollment and re-authentication using Flutter's local_auth package. After ...
Orchestrates the Vipps login OAuth2/OIDC flow, including token exchange and optional personnummer ex...
GoRouter redirect hook that enforces role-based access on every protected route. Each route declares...
Core BLoC-based service that manages the active role state for the current session. Evaluates which ...
Core service orchestrating the full activity registration lifecycle from wizard initiation through s...
Stateless validation service that enforces business rules on activity data at each wizard step and o...
Business logic layer for event lifecycle management including creation, editing, participant managem...
Handles individual proxy submissions, enforcing role-based authorization at the service layer before...
Orchestrates all-or-nothing batch activity registration by invoking a Supabase RPC call wrapped in a...
On-device service responsible for audio signal preparation before it is passed to the native recogni...
Business logic layer that wraps Flutter's speech_to_text package and manages the full recognition se...
Business logic service responsible for uploading files to Supabase Storage using the {org_id}/{activ...
BLoC state management controller for the contacts list screen. Handles search, filter, view-mode, an...
Business logic layer that executes debounced, role-scoped contact searches against Supabase. Applies...
Core business logic service for reading, creating, and updating contact records. Orchestrates intera...
Riverpod provider-based service that computes the derived status of a peer mentor by combining avail...
Service responsible for notifying a peer mentor's assigned coordinator whenever the mentor's availab...
Core business logic service managing availability status transitions for peer mentors. Validates all...
Supabase scheduled Edge Function that checks all open assignment dispatches for records that have no...
Tracks and records delivery and read receipt events for encrypted assignments. Emits a delivery even...
Manages asymmetric key pair lifecycle for each user, including generation during onboarding, secure ...
Core service responsible for end-to-end asymmetric encryption and decryption of assignment payloads....
Core business logic service that retrieves peer mentor location and availability data, computes prox...
Manages peer mentor opt-in consent for location storage in compliance with GDPR requirements. Presen...
BLoC state management component that orchestrates the full expense registration wizard flow, managin...
Riverpod provider that exposes organisation-specific reimbursement rules including per-kilometre rat...
Dual-layer validation service that enforces expense registration rules both client-side for immediat...
Orchestrates the end-to-end receipt lifecycle: client-side image compression, upload to Supabase Sto...
Handles manual coordinator attestation of reimbursement submissions, invoking authenticated Supabase...
Supabase Edge Function triggered on insert to travel_expense_reports that evaluates configurable org...
Business logic service that calculates driver honorarium amounts based on organization-specific rate...
Service responsible for enforcing NDA gating logic — checking whether a peer mentor has a valid, non...
Core service that orchestrates asynchronous aggregation of all activity, event, and participant data...
Service responsible for rendering finalized Bufdir reports into exportable formats including PDF and...
Server-side service (Supabase Edge Function or materialized view) that aggregates activity data for ...
Core business logic service that enforces role-based data scoping for all coordinator report queries...
Utility service that translates a user's role and organizational memberships into a concrete data sc...
Business logic service that determines honorarium eligibility and rates based on organization-specif...
Thin orchestration service that listens for threshold-crossing events from the Honorarium Calculatio...
Server-side service that evaluates a candidate activity record against existing activities for the s...
Integrates with the device native calendar using the device_calendar Flutter plugin to write, update...
Server-side Supabase Edge Function service that evaluates configurable scenario rules against databa...
Core Flutter client-side service managing FCM/APNs token registration, foreground/background/termina...
Core service responsible for end-to-end encryption of assignment payloads using libsodium (via the F...
Service that writes a read receipt record to assignment_read_receipts when the peer mentor opens an ...
Core business logic service managing the assignment finite state machine. Enforces valid state trans...
Supabase Edge Function running on a cron schedule that detects assignments where no completion event...
Backend service that aggregates raw activity logs, assignment honorarium records, and contact intera...
Client-side service that generates a shareable static image or deep-link URL from the current impact...
Scheduled service that fires on configurable trigger dates (31 December for annual, 30 June for half...
Background service that evaluates badge eligibility after each activity save and after period-end ca...
Core business logic service that orchestrates member recruitment through referral links. Handles ref...
Core business logic service orchestrating the full enrollment lifecycle. Validates prerequisite comp...
Core business logic service responsible for certificate lifecycle management including creation, ren...
Core business logic service managing pairing lifecycle, status transitions, and milestone tracking f...
Core service that orchestrates the full lifecycle of workshop sessions from creation through archiva...
Core business logic service orchestrating all administrative operations for the Admin Portal. Enforc...
Business logic service that detects when a user is about to register an activity that appears to dup...
Core business logic service managing all aspects of a user's multi-organization memberships. Handles...
Flutter BLoC state management component that holds the currently active organization context for the...
Service responsible for walking the organizational hierarchy upward to aggregate activity counts at ...
Core business logic service managing all CRUD operations for the organizational hierarchy. Enforces ...
Core service that fetches the active organization's label configuration from Supabase on app startup...
Monitors document expiry dates and triggers push notifications and in-app alerts for documents appro...
Manages signing session creation, status polling, and completion handling for both BankID-based e-si...
Core service managing the full lifecycle of power of attorney and medical documentation including up...
Runs Flutter AccessibilityGuideline automated tests during development and CI to detect missing sema...
Centralizes the generation and management of ARIA-equivalent semantic labels, hints, and announcemen...
Reads user accessibility preferences from AccessibilityPreferencesRepository and exposes a reactive ...
Core service that reads persisted accessibility preferences from ThemeRepository and constructs a Fl...
Utility service that programmatically asserts minimum contrast ratios (4.5:1 for normal text, 3:1 fo...
Coordinates post-approval sync triggers for both Xledger and Dynamics connectors. Listens for approv...
Handles all outbound data synchronization to the Microsoft Dynamics accounting platform used by HLF....
Handles all outbound data synchronization to the Xledger accounting platform used by Blindeforbundet...
Handles bidirectional synchronization between the app and the Consio member management system via RE...
Handles bidirectional synchronization between the app and the Cornerstone member management system v...
Intercepts successful Vipps SSO authentication events and extracts the returned personnummer to enri...
Backend service that subscribes to inbound webhook payloads from the HLF Dynamics portal and updates...
Riverpod-based service that orchestrates data retrieval and business logic for the coordinator membe...
Core BLoC-based service orchestrating all state transitions for activity registrations within the ap...
Validates field-level edits made by coordinators during the correction workflow against activity sch...
Configures and manages the go_router instance with StatefulShellRoute for branch-based tab navigatio...
Business logic layer for reading and writing user preferences. Persists preferences locally via shar...
A Riverpod-based provider that manages the active theme state (default vs. high-contrast) and inject...
Manages Supabase Realtime channel subscriptions using Riverpod StreamProviders, enabling coordinator...
Singleton Riverpod provider that initializes and exposes the Supabase Flutter client with environmen...
Data Components
Data access abstraction that wraps all Supabase Auth API calls behind a clean interface, decoupling ...
Provides secure persistence and retrieval of authentication tokens and biometric credentials using F...
Local cache layer for role and membership data fetched from Supabase. Stores resolved role state to ...
Queries Supabase for the authenticated user's roles and organization memberships. Returns structured...
Data access layer managing all CRUD operations for activity records and activity logs in Supabase. I...
Local cache and data access layer for organization-specific activity type definitions seeded in Supa...
Data access layer for events and event participants, providing CRUD operations and query methods bac...
Data access layer for the delegation_grants table, providing read and write operations for all proxy...
Persists user-level speech input preferences locally using shared_preferences. Stores settings such ...
Data access layer for the activity_documents table, managing CRUD operations for document metadata r...
Data access layer providing read operations for contacts and peer mentors from Supabase with local c...
Data access layer for creating, reading, updating, and deleting contact notes, backed by Supabase wi...
Data access layer responsible for reading and updating peer mentor profile data from Supabase, joini...
Data access layer managing CRUD operations on the peer_mentor_availability table in Supabase. Handle...
Data access layer for all assignment-related entities: assignments, dispatches, and read receipts. P...
Data access layer for peer mentor location records stored as municipality or postal code area centro...
Repository layer responsible for all CRUD operations on the `travel_expense_reports` and `expense_it...
Data store that reads and caches expense type configurations from Supabase, enabling per-organisatio...
Data access layer for the `receipts` table in Supabase. Handles CRUD operations for receipt records,...
Data access layer for the reimbursement_approvals table, providing CRUD operations and a Riverpod st...
Data access component managing all read and write operations for the nda_agreements table. Stores si...
Data access layer for Bufdir report snapshots and reporting periods. Stores immutable generated repo...
Data access layer responsible for querying and caching computed statistics for a peer mentor. Calls ...
Data access layer that executes aggregation queries against the Supabase database and manages a per-...
Data access layer that maintains a denormalized assignment count field per peer mentor, updated by S...
Data access layer responsible for executing the similarity queries used by the Duplicate Detection S...
Data access layer for the notifications and push_notification_configs tables in Supabase. Provides C...
Data access layer providing CRUD operations for assignments, assignment_dispatches, and assignment_r...
Data access layer for assignment lifecycle management. Implements Supabase row-level security to enf...
Data access layer that provides CRUD operations for the impact_summaries table in Supabase, supporti...
Data access layer managing the achievement_badges and user_badges tables. Badge definitions are stor...
Data access layer for all recruitment and referral data stored in the member_recruitments table. Pro...
Data access layer backed by Supabase tables for courses and course_enrollments. Implements row-level...
Data access layer for certificate and certification renewal records in the Supabase database. Provid...
Data access layer persisting mentor-mentee pairings and milestone data to Supabase. Applies row-leve...
Data access layer that persists and retrieves all workshop-related records to and from Supabase usin...
Data access layer for all admin portal persistence operations, querying user accounts, organizationa...
Data access layer for all membership-related persistence operations. Wraps Supabase queries against ...
Data access layer managing the four linked database tables that form the organizational hierarchy: o...
Data access layer responsible for reading and writing organization label configurations in Supabase....
Data access layer for all power of attorney and encrypted document records, providing CRUD operation...
Persists and retrieves per-user accessibility preferences including screen reader mode, sensitive fi...
Manages persistence and retrieval of per-user accessibility preference records from the Supabase bac...
Data access layer responsible for reading and writing accessibility preference records (font scale, ...
Manages per-organization integration configuration records including API credentials, field mappings...
Provides read and write access to the sync_logs table, recording all outbound sync attempts with the...
Data access layer for all member synchronization state, including last-sync timestamps, conflict res...
Data access layer that persists portal integration configuration, deep link mappings, feature owners...
Data access layer responsible for fetching and caching the coordinator's scoped member list from Sup...
Data access layer managing all CRUD operations for activity corrections, approval records, and assoc...
A Riverpod provider (or BLoC) that holds and exposes the current active tab index, the authenticated...
Data access layer for user preferences, bridging local shared_preferences storage and the Supabase a...
The centralized Dart token definition layer implemented as a Flutter ThemeExtension with typed token...
Defines the complete relational database schema for all application tables managed via Supabase migr...
Infrastructure Components
The Supabase platform's built-in authentication service providing email/password identity management...
Low-level HTTP client for all communication with the BankID OIDC provider. Handles authorization end...
Low-level HTTP client for communication with the Vipps Login OIDC provider. Handles authorization UR...
Platform abstraction layer that wraps the speech_to_text Flutter package and the underlying native s...
Supabase Storage bucket infrastructure for activity documents with RLS policies restricting access t...
Supabase Edge Function that runs on a daily cron schedule to check certification expiry dates across...
Device-level and platform-level encryption infrastructure combining Flutter Secure Storage for priva...
Shared infrastructure component that dispatches push notifications to mobile devices via FCM or APNs...
Infrastructure layer that configures flutter_map with OpenStreetMap tile providers to avoid Google M...
Utility that provides mileage distance validation logic and optional route distance estimation to pr...
Supabase Storage bucket configuration and access-policy layer for receipt images. Enforces row-level...
Supabase platform infrastructure supporting the auto-approval Edge Function triggered on insert to t...
Infrastructure component handling secure storage and retrieval of signed NDA documents and signature...
Infrastructure component managing communication with Bufdir's external endpoints once they become av...
Supabase PostgreSQL database trigger that automatically increments the denormalized assignment count...
Device-level secure storage adapter using Flutter Secure Storage to persist private encryption keys ...
Supabase Realtime subscription manager that streams assignment state changes to coordinator clients ...
Supabase Edge Function deployed with a pg_cron schedule (e.g., daily at 08:00 UTC) that invokes the ...
Configuration store that manages the trigger dates, period types, and organisation-level feature fla...
Supabase Edge Function that resolves incoming referral short URLs, decodes the encoded user ID and o...
Supabase Storage bucket integration for secure hosting of digital certificate asset files (PDFs, ima...
Supabase Edge Function that intercepts administrative write operations and appends immutable audit e...
Supabase Row Level Security policy definitions that govern cross-organization data access for multi-...
Supabase Row Level Security policies that restrict write access on org hierarchy tables to admin-lev...
Dart constants file defining all supported label keys and their default values. Ensures type safety ...
Infrastructure component managing encrypted file storage for sensitive legal and medical documents u...
Supabase Edge Function layer that abstracts both the Xledger REST API and the Microsoft Dynamics ODa...
Unified HTTP gateway layer that abstracts communication with external member management systems (Cor...
Supabase Edge Function endpoint that receives inbound webhook payloads from the HLF Dynamics portal,...
TypeScript/Deno server-side functions deployed on Supabase Edge Functions infrastructure for process...
The hosted Supabase project instance providing PostgreSQL database, Auth, Realtime, Storage, and Edg...