Service Layer
88 components in the service layer layer
Service Layer components contain business logic, orchestrate operations, and provide core application functionality.
Business logic layer orchestrating all email/password authentication operations including login, logout, password reset, and session lifecyc...
Orchestrates the BankID OAuth2/OIDC authentication flow end-to-end. Builds the authorization URL, handles token exchange via the BankID API ...
Manages device biometric enrollment and re-authentication using Flutter's local_auth package. After initial BankID/Vipps login, stores an en...
Orchestrates the Vipps login OAuth2/OIDC flow, including token exchange and optional personnummer extraction. After successful token exchang...
GoRouter redirect hook that enforces role-based access on every protected route. Each route declares its required role and permission set; t...
Core BLoC-based service that manages the active role state for the current session. Evaluates which roles a user holds, determines the activ...
Core service orchestrating the full activity registration lifecycle from wizard initiation through submission. Manages default value fetchin...
Stateless validation service that enforces business rules on activity data at each wizard step and on final submission. Validates required f...
Business logic layer for event lifecycle management including creation, editing, participant management, and aggregation for Bufdir reportin...
Handles individual proxy submissions, enforcing role-based authorization at the service layer before inserting activity records with the pee...
Orchestrates all-or-nothing batch activity registration by invoking a Supabase RPC call wrapped in a database transaction. Accepts a list of...
On-device service responsible for audio signal preparation before it is passed to the native recognition engine. Manages microphone input le...
Business logic layer that wraps Flutter's speech_to_text package and manages the full recognition session lifecycle. Delegates to the platfo...
Business logic service responsible for uploading files to Supabase Storage using the {org_id}/{activity_id}/{filename} path convention, gene...
BLoC state management controller for the contacts list screen. Handles search, filter, view-mode, and pagination events, maintaining a singl...
Business logic layer that executes debounced, role-scoped contact searches against Supabase. Applies organisation membership filtering and e...
Core business logic service for reading, creating, and updating contact records. Orchestrates interactions between the UI, contact repositor...
Riverpod provider-based service that computes the derived status of a peer mentor by combining availability and certification data with real...
Service responsible for notifying a peer mentor's assigned coordinator whenever the mentor's availability status changes. Resolves the corre...
Core business logic service managing availability status transitions for peer mentors. Validates allowed state transitions (active → paused,...
Supabase scheduled Edge Function that checks all open assignment dispatches for records that have not been acknowledged within 10 days and t...
Tracks and records delivery and read receipt events for encrypted assignments. Emits a delivery event when the encrypted payload is successf...
Manages asymmetric key pair lifecycle for each user, including generation during onboarding, secure local storage via Flutter Secure Storage...
Core service responsible for end-to-end asymmetric encryption and decryption of assignment payloads. Retrieves the recipient's public key to...
Core business logic service that retrieves peer mentor location and availability data, computes proximity rankings relative to a target assi...
Manages peer mentor opt-in consent for location storage in compliance with GDPR requirements. Presents the privacy disclosure flow to peer m...
BLoC state management component that orchestrates the full expense registration wizard flow, managing wizard step transitions, accumulated e...
Riverpod provider that exposes organisation-specific reimbursement rules including per-kilometre rates, auto-approval distance thresholds, r...
Dual-layer validation service that enforces expense registration rules both client-side for immediate user feedback and with server-side con...
Orchestrates the end-to-end receipt lifecycle: client-side image compression, upload to Supabase Storage with bucket-policy enforcement, thu...
Handles manual coordinator attestation of reimbursement submissions, invoking authenticated Supabase RPC calls that append immutable audit r...
Supabase Edge Function triggered on insert to travel_expense_reports that evaluates configurable organisation thresholds and automatically a...
Business logic service that calculates driver honorarium amounts based on organization-specific rate configuration, validates driving engage...
Service responsible for enforcing NDA gating logic — checking whether a peer mentor has a valid, non-expired NDA on file before granting acc...
Core service that orchestrates asynchronous aggregation of all activity, event, and participant data within a reporting period and organizat...
Service responsible for rendering finalized Bufdir reports into exportable formats including PDF and structured data (CSV/Excel). Handles fo...
Server-side service (Supabase Edge Function or materialized view) that aggregates activity data for the authenticated peer mentor. Computes ...
Core business logic service that enforces role-based data scoping for all coordinator report queries. Maps the authenticated user's role and...
Utility service that translates a user's role and organizational memberships into a concrete data scope key used to scope all report queries...
Business logic service that determines honorarium eligibility and rates based on organization-specific threshold configurations stored in in...
Thin orchestration service that listens for threshold-crossing events from the Honorarium Calculation Service and delegates to the shared Pu...
Server-side service that evaluates a candidate activity record against existing activities for the same peer mentor within a configurable ti...
Integrates with the device native calendar using the device_calendar Flutter plugin to write, update, and remove scheduled activity and even...
Server-side Supabase Edge Function service that evaluates configurable scenario rules against database state changes and enqueues push notif...
Core Flutter client-side service managing FCM/APNs token registration, foreground/background/terminated message handling, and local notifica...
Core service responsible for end-to-end encryption of assignment payloads using libsodium (via the Flutter cryptography package). Encrypts p...
Service that writes a read receipt record to assignment_read_receipts when the peer mentor opens an assignment detail screen for the first t...
Core business logic service managing the assignment finite state machine. Enforces valid state transitions, records each transition as an im...
Supabase Edge Function running on a cron schedule that detects assignments where no completion event exists and the last state change exceed...
Backend service that aggregates raw activity logs, assignment honorarium records, and contact interaction data for a given user and reportin...
Client-side service that generates a shareable static image or deep-link URL from the current impact summary payload, enabling peer mentors ...
Scheduled service that fires on configurable trigger dates (31 December for annual, 30 June for half-year) to invoke impact calculation for ...
Background service that evaluates badge eligibility after each activity save and after period-end calculations. Supports per-organisation ba...
Core business logic service that orchestrates member recruitment through referral links. Handles referral link generation with encoded user ...
Core business logic service orchestrating the full enrollment lifecycle. Validates prerequisite completion and seat availability before writ...
Core business logic service responsible for certificate lifecycle management including creation, renewal, expiry checking, and physical card...
Core business logic service managing pairing lifecycle, status transitions, and milestone tracking for the mentor programme. Enforces coordi...
Core service that orchestrates the full lifecycle of workshop sessions from creation through archival. Enforces role-based access ensuring o...
Core business logic service orchestrating all administrative operations for the Admin Portal. Enforces role-scoped data access policies, coo...
Business logic service that detects when a user is about to register an activity that appears to duplicate an existing registration across a...
Core business logic service managing all aspects of a user's multi-organization memberships. Handles fetching all affiliated organizations, ...
Flutter BLoC state management component that holds the currently active organization context for the entire session. Broadcasts context chan...
Service responsible for walking the organizational hierarchy upward to aggregate activity counts at each level for accurate Bufdir reporting...
Core business logic service managing all CRUD operations for the organizational hierarchy. Enforces cascade validation to prevent orphaned n...
Core service that fetches the active organization's label configuration from Supabase on app startup and caches it in the Riverpod state lay...
Monitors document expiry dates and triggers push notifications and in-app alerts for documents approaching or past their expiry. Ensures coo...
Manages signing session creation, status polling, and completion handling for both BankID-based e-signatures and in-app acknowledgment flows...
Core service managing the full lifecycle of power of attorney and medical documentation including upload, versioning, signing status trackin...
Runs Flutter AccessibilityGuideline automated tests during development and CI to detect missing semantic labels, insufficient tap target siz...
Centralizes the generation and management of ARIA-equivalent semantic labels, hints, and announcements for all UI components in the applicat...
Reads user accessibility preferences from AccessibilityPreferencesRepository and exposes a reactive simplified layout flag consumed by scree...
Core service that reads persisted accessibility preferences from ThemeRepository and constructs a Flutter ThemeData object applied at the Ma...
Utility service that programmatically asserts minimum contrast ratios (4.5:1 for normal text, 3:1 for large text and UI components) against ...
Coordinates post-approval sync triggers for both Xledger and Dynamics connectors. Listens for approval events from the reimbursement and hon...
Handles all outbound data synchronization to the Microsoft Dynamics accounting platform used by HLF. Communicates via Microsoft's OData-base...
Handles all outbound data synchronization to the Xledger accounting platform used by Blindeforbundet. Communicates via Xledger's REST API wi...
Handles bidirectional synchronization between the app and the Consio member management system via REST API with API key authentication. Runs...
Handles bidirectional synchronization between the app and the Cornerstone member management system via REST API with API key authentication....
Intercepts successful Vipps SSO authentication events and extracts the returned personnummer to enrich member records in source systems. Add...
Backend service that subscribes to inbound webhook payloads from the HLF Dynamics portal and updates local Supabase state accordingly. Handl...
Riverpod-based service that orchestrates data retrieval and business logic for the coordinator member overview. Issues coordinator-scoped Su...
Core BLoC-based service orchestrating all state transitions for activity registrations within the approval workflow: pending → approved, pen...
Validates field-level edits made by coordinators during the correction workflow against activity schema rules and business constraints. Ensu...
Configures and manages the go_router instance with StatefulShellRoute for branch-based tab navigation with preserved state. Applies role-bas...
Business logic layer for reading and writing user preferences. Persists preferences locally via shared_preferences for immediate UI response...
A Riverpod-based provider that manages the active theme state (default vs. high-contrast) and injects the resolved MaterialApp ThemeData at ...
Manages Supabase Realtime channel subscriptions using Riverpod StreamProviders, enabling coordinators and peer mentors to receive live updat...
Singleton Riverpod provider that initializes and exposes the Supabase Flutter client with environment-based configuration for dev, staging, ...
Other Component Types
User Interface components handle presentation logic, user interactions, and visual elements of the application.
Data Layer components manage data persistence, storage operations, and data access patterns throughout the application.
Infrastructure components provide foundational utilities, system integrations, and supporting functionality for the application.