129
Total Service Layer
31
Low Complexity
64
Medium Complexity
34
High Complexity
9
Shared

Service Layer components contain business logic, orchestrate operations, and provide core application functionality.

Auth Service

Backend service responsible for validating email/password credentials, issuing JWT access and refresh tokens, enforcing rate limiting and ac...

high Email & Password Login
BankID Integration Service

Backend service that manages the BankID OIDC authorisation code exchange, identity token validation, and user account creation or linking. E...

high BankID Authentication
Vipps Integration Service

Backend service responsible for the full Vipps MobilePay Login OIDC flow. Handles authorisation code exchange against the Vipps token endpoi...

high Vipps Authentication
Biometric Service

BLoC-based service managing the full biometric authentication flow. Checks hardware availability and enrollment status, invokes the local_au...

high Biometric Login (Face ID / Fingerprint)
RBAC Service

Core authorization service encapsulating the permissions matrix for all four Meander roles - Peer Mentor, Coordinator, Organization Admin, a...

high Role-Based Access Control
Profile Form Validator

Validates all profile form fields before submission, enforcing required field constraints, email format, and phone number patterns. Produces...

low Profile Data & Settings
Profile Service

Business logic layer for reading and writing user profile data via the REST API. Fetches profile records tenant-scoped to the user's organiz...

medium Profile Data & Settings
Profile Switch Service

Business logic service managing the full profile-switching lifecycle. Queries the user_roles table to enumerate available roles and org/loca...

medium Profile Switching
Share Service

Backend-authenticated service that generates a controlled, tenant-scoped profile summary payload for sharing. Explicitly whitelists only pub...

low Share Profile
Passkey Challenge Service

Backend service responsible for issuing and validating single-use cryptographic challenges for FIDO2 registration and authentication flows. ...

high Authentication Methods (Passkeys)
Passkey Service

Core service managing the full FIDO2/WebAuthn lifecycle on the mobile client. Handles credential creation (registration), credential asserti...

high Authentication Methods (Passkeys)
Activity Service

Business logic layer for creating, validating, and submitting activity records. Posts validated activity drafts to the REST API, handles opt...

medium Simple Activity Logging
Default Values Manager

Encapsulates the logic for computing, persisting, and retrieving per-user activity defaults. Reads from and writes to the local SQLite cache...

low Simple Activity Logging
Activity Form Validator

Service enforcing field-level and cross-field validation rules for all wizard steps. Returns structured ValidationResult objects consumed by...

medium Activity Registration Wizard
Wizard State Manager

BLoC-based service that owns the in-progress activity registration as an immutable state object. Processes step events, updates state via co...

high Activity Registration Wizard
Calendar Integration Service

Core service that abstracts all calendar platform interactions behind a single Dart interface. Delegates to the iOS EventKit platform channe...

high Calendar Sync
Calendar Write-back Service

Optional service that creates calendar entries on the device for activities that have been successfully registered in Meander. Constructs a ...

low Calendar Sync
Speech-to-Text Service

Manages the full on-device speech recognition session lifecycle using Flutter's speech_to_text plugin (wrapping iOS Speech framework and And...

medium Speech-to-Text Input
Proxy Activity Service

BLoC-based service that orchestrates proxy activity submission. Validates coordinator-to-peer-mentor access boundaries server-side, attaches...

medium Coordinator Proxy Reporting
Batch Progress Tracker

Lightweight service that maintains real-time state of an in-progress bulk submission. Tracks total participants, processed count, and per-re...

low Bulk Registration
Bulk Activity Service

BLoC-layer service that orchestrates batch activity creation for bulk registration. Splits large participant lists into chunks, dispatches e...

high Bulk Registration
Proxy Activity Service

Shared service used by both coordinator proxy reporting and bulk registration to create activity records on behalf of a peer mentor or conta...

medium shared Bulk Registration
Event Form Validator

Stateless validation service enforcing field-level rules for each event wizard step before allowing progression. Returns structured validati...

low Event Creation
Event Service

Business logic layer responsible for submitting new events to the backend REST API and coordinating with the Event Repository for offline dr...

medium Event Creation
Event Wizard State Manager

BLoC that owns all transient wizard state across the six steps: current step index, per-field values, validation status, and submission life...

medium Event Creation
Event List BLoC

BLoC managing the reactive state of the Event List Screen, orchestrating load, filter-change, and pagination events. Translates user interac...

low Event Listing
Event Query Service

Service layer responsible for fetching, sorting, filtering, and cursor-based pagination of events from the REST API endpoint GET /api/v1/eve...

low Event Listing
Event Registration Service

Backend API service layer responsible for all business logic around event sign-ups. Enforces capacity limits, prevents duplicate registratio...

medium Event Sign-up
Expense Service

Business logic layer for travel expense submission and threshold evaluation. Accepts expense payloads from the UI, posts them to the REST AP...

medium Travel Expense Registration
Expense Type Service

Fetches and caches valid expense types and their combination rules from the backend. Provides the constraint logic that prevents invalid com...

low shared Travel Expense Registration
File Upload Service

Service responsible for compressing selected images with flutter_image_compress to stay under the 2 MB payload limit, then uploading them vi...

medium Receipt Photo Upload
Presigned URL Service

Backend service that generates time-limited presigned URLs for secure retrieval of stored receipt images by the admin portal. Ensures receip...

medium Receipt Photo Upload
Expense Type Service

Business logic layer that fetches the active expense type catalogue scoped to the authenticated user's organisation, applies exclusion rule ...

medium Expense Types & Requirements
Declaration Service

Business logic layer for confidentiality declarations. Retrieves the applicable declaration template for the user's organisation, posts sign...

low Confidentiality Declarations
Contact List BLoC

BLoC state manager for the contact list screen. Handles events for search input changes, filter selection, pagination, and pull-to-refresh. ...

medium Contact List & Search
Contact Search Service

Business logic service managing contact list retrieval, search, and filtering. Determines whether search should be performed client-side (sm...

medium Contact List & Search
Contact Detail BLoC

BLoC managing the complete state machine for the contact detail and edit flow across both screens. Drives state transitions from loading thr...

medium Contact Detail & Edit
Contact Service

Service layer responsible for all contact read and update operations via the REST API. Fetches the full contact object, submits PATCH update...

medium Contact Detail & Edit
Caregiver BLoC

Flutter BLoC managing caregiver list state independently from the parent Contact BLoC, enabling targeted refresh of caregiver data without r...

low Caregiver & Next-of-Kin
Caregiver Service

Business logic layer for caregiver CRUD operations. Orchestrates calls to the Caregivers Repository, enforces valid relationship type values...

low Caregiver & Next-of-Kin
Notes Service

Business logic layer coordinating note retrieval, search, and pagination for the notes list feature. Delegates data access to Notes Reposito...

low Notes List
Note Autosave Service

BLoC or Riverpod notifier that listens to text change events from the Note Editor Screen and triggers debounced write operations to prevent ...

medium Note Editor
Statistics Service

Business logic layer that fetches and transforms aggregated activity data for the authenticated peer mentor. Calls the Statistics Repository...

medium Personal Activity Statistics
Team Report Service

Riverpod-managed service that fetches pre-aggregated team report data from the backend REST API, scoped to the coordinator's local associati...

medium Coordinator Team Reports
Report Data Aggregator

Internal service layer responsible for running the SQL aggregation queries that transform raw activity and contact records into the structur...

high Bufdir Report Generation
Report Generator Service

Backend service that aggregates activity, contact, and organizational data from PostgreSQL into the Bufdir-required report structure for a g...

high Bufdir Report Generation
Export Service

Backend service that packages a finalized Bufdir report into the government-accepted file format (Excel, CSV, or structured PDF, to be confi...

medium shared Bufdir Export
Accounting Adapter Factory

Factory that instantiates the correct accounting system adapter based on the organization's integration config. Ensures the Accounting Integ...

medium Accounting System Integration
Accounting Integration Service

Adapter-based service that pushes approved expense and reimbursement data to external accounting systems (Xledger, Dynamics) after approval....

high Accounting System Integration
Assignment Dispatch Service

Backend service that handles coordinator-initiated assignment creation. Fetches the target peer mentor's public key, encrypts the sensitive ...

high Encrypted Assignment Dispatch
Assignment Status Service

Manages assignment lifecycle state transitions - dispatched, delivered, read, contact established - by communicating status updates to the R...

medium Encrypted Assignment Dispatch
Encryption Service

Implements end-to-end asymmetric encryption using libsodium NaCl box primitives. Generates and stores per-user keypairs on-device (iOS Keych...

high Encrypted Assignment Dispatch
Threshold Tracking Service

Backend service that queries assignment_status_logs for completed-status assignments per peer mentor, evaluates counts against organisation-...

medium Assignment Threshold Tracking
Device Token Registration Service

Handles registration, update, and deregistration of FCM/APNs device tokens on behalf of the Flutter client. Called on login and whenever fir...

medium Push Notifications
Foreground Notification Handler

Flutter-side service using flutter_local_notifications to display notifications when the app is in the foreground. Bridges the firebase_mess...

medium Push Notifications
Push Notification Service

Server-side service responsible for constructing notification payloads and dispatching them via the Push Notification Gateway abstraction la...

high Push Notifications
Email Notification Service

Dispatches transactional and operational emails to users via a configurable email provider (SendGrid or Resend). Applies organization-specif...

medium Email / SMS Notifications
SMS Notification Service

Sends SMS messages to users for urgent alerts and verification codes via a configurable SMS provider (Twilio or a Norwegian provider). Handl...

medium Email / SMS Notifications
Scenario Engine Service

Server-side scheduled job that evaluates configurable scenario rules against system events and user state to determine when to dispatch noti...

high Notification Scenarios
Notification Preferences Service

Business logic layer for reading and writing notification preferences. Applies role-based defaults during onboarding, validates preference c...

low Notification Settings
QR Code Generator

Client-side Flutter service that renders invite URLs as scannable QR codes using the qr_flutter package. Handles QR image export for saving ...

low Invite Link & QR Sharing
Referral Link Service

Manages generation, retrieval, and lifecycle of personalized referral invite tokens and short URLs. Communicates with the backend REST API t...

medium Invite Link & QR Sharing
Referral Status Sync Service

Handles backend-side status transition logic for referrals, triggered by onboarding completion webhooks. Updates referral records from invit...

medium Recruitment Tracking
Referral Tracking Service

Business logic layer that fetches referral summary data and detailed referral lists from the backend API. Handles RBAC enforcement so peer m...

medium Recruitment Tracking
Course Enrollment BLoC

Flutter BLoC managing enrollment state on the mobile client. Handles optimistic UI updates, error recovery, and loading states for enroll, u...

medium Course Registration
Course Enrollment Service

Implements the full enrollment lifecycle including capacity checks, waitlist management, enrollment confirmation, and certificate eligibilit...

high Course Registration
Certificate Expiry Scheduler

Scheduled backend job that queries for certificates expiring within 30 days and dispatches push notifications to affected peer mentors and t...

medium Digital Peer Mentor Certificate
Certificate Service

Backend service responsible for issuing, validating, and revoking peer mentor certificates. Generates signed certificate records in the cert...

medium Digital Peer Mentor Certificate
Workshop Notes Service

Business logic service that manages private session notes for workshop facilitators. Notes are scoped to coordinator-and-above visibility us...

medium Career Workshops
Workshop Session Service

Service handling workshop session lifecycle including creation, retrieval, and status management. Workshop sessions are modelled as course e...

medium Career Workshops
Summary Generation Service

Backend service that aggregates a peer mentor's activity, contact, event, and expense data across a calendar year into a structured annual s...

high Annual Summary (Wrapped)
Summary Share Service

Mobile-side service that generates a static shareable image or deep-link card from a given summary slide for distribution via platform share...

medium Annual Summary (Wrapped)
Badge Award Service

Backend service responsible for evaluating badge criteria and awarding badges to peer mentors. Triggered after activity saves, course enroll...

medium Achievement Badges
Badge Criteria Evaluator

Service that interprets configuration-driven badge criteria definitions and evaluates them against a user's collected data. Supports criteri...

medium Achievement Badges
Benefit Calculation Engine

Pure client-side computation library in Dart that applies cached organization benefit rates to user-provided inputs and returns itemized adv...

medium Advantage Calculator
Calculator Service

Backend service that exposes a REST endpoint for retrieving the current benefit configuration (mileage rates, course credit values, organiza...

low Advantage Calculator
Cards Cache Service

Manages local caching of the talking card dataset to improve reliability in low-connectivity environments. Fetches the card set from the RES...

low Talking Cards Toolbox
Accessibility Audit Service

Provides automated accessibility validation logic used both in CI and at runtime. Validates contrast ratios against WCAG 4.5:1 (text) and 3:...

high WCAG 2.2 AA Compliance
Screen Reader Annotation Service

Dart service layer that manages Flutter Semantics configuration for sensitive fields across the app. It builds and injects the correct Seman...

medium Sensitive Field Readout Warning
Localization Service

Central service managing runtime locale switching for the Flutter app using flutter_localizations and the intl package. Loads ARB files for ...

medium Sami Language Support
Dashboard Data Service

Business logic layer that fetches and aggregates role-scoped dashboard data from the REST API endpoint /api/v1/dashboard. Uses Riverpod prov...

medium Role-Specific Home Dashboard
Role Screen Router

Determines which home screen widget subtree to render at build time based on the authenticated user's role extracted from JWT claims via BLo...

low Role-Specific Home Dashboard
Resource Links Service

Riverpod provider that fetches the resource link list from /api/v1/resources with the authenticated user's JWT, caches the response with a 1...

low External Resource Links
Support Request Service

Riverpod provider that handles submission of support requests to the REST API endpoint. Detects connectivity state and delegates to the offl...

low Contact Us
Policy Content Loader

Service responsible for resolving the privacy policy content source - returning the bundled asset version for offline use or fetching a remo...

low Privacy Policy
FAQ Content Provider

Riverpod provider that manages FAQ content fetching, local caching, and keyword search state. Fetches question-answer pairs from the backend...

low FAQ
Conflict Resolution Service

Handles merge conflicts that arise when the same record is modified both on the device and on the server before sync occurs. Applies determi...

high Offline Data Support
Connectivity Listener Service

Monitors device network connectivity using the connectivity_plus Flutter package and emits state change events consumed by other offline ser...

low shared Offline Data Support
Offline Storage Service

Central coordinator for all offline read and write operations. Routes data access through the local SQLite cache when network is unavailable...

high shared Offline Data Support
Background Sync Service

Core orchestrator that processes the sync queue whenever network connectivity is available. Schedules periodic background tasks via the Work...

high Background Sync
Connectivity Monitor Service

Monitors device network connectivity state using the connectivity_plus Flutter package and emits a stream of connectivity change events. Tri...

low shared Background Sync
KPI Data Service

Server-side service that aggregates KPI metrics for an organization by executing optimized SQL aggregate queries against PostgreSQL. Enforce...

medium Dashboard KPIs
Activity Feed Service

Aggregates events from multiple source tables (activities, expenses, event_registrations, audit_logs) and normalizes them into a unified Fee...

high Activity Feed
User Invitation Service

Focused service handling the invitation token lifecycle: generation, storage, validation, and expiry. Generates cryptographically secure sin...

medium User CRUD
User Management Service

Backend service encapsulating all business logic for user lifecycle management: invitation dispatch, profile updates, deactivation, and cros...

high User CRUD
Role Assignment Service

Handles the business logic for assigning, changing, and removing user roles within an organization. Validates that the requesting admin's or...

medium Role Assignment
Audit Service

Shared service responsible for writing structured audit log entries to the audit_logs table. Used by bulk-action-service to record every ind...

medium shared Bulk Actions
Bulk Action Service

Server-side batch endpoint handler (POST /api/v1/users/bulk) that accepts an array of user IDs and an action descriptor. Validates each user...

high Bulk Actions
Activity Approval Service

Backend service that owns the approval workflow state machine for activity registrations. Handles status transitions from pending to approve...

medium Activity Review & Approval
Activity Flag Service

Core business logic service responsible for managing the full lifecycle of activity flag states. Handles flag creation with reason annotatio...

medium Activity Flagging
Duplicate Detection Service

Service that detects potential duplicate activity submissions across coordinators and local associations, fulfilling NHF's requirement to id...

medium Activity Flagging
Expense Approval Service

Backend service exposing PATCH endpoints for approve, reject, and request-clarification actions on expense claims. Validates actor role and ...

medium Expense Approval Queue
Auto-Approval Rules Service

Server-side evaluation engine that checks all active auto-approval rules for an organization at the moment of expense submission. Evaluates ...

medium Auto-Approval Rules
Reimbursement Reporting Service

Business logic layer that orchestrates aggregation queries, enforces role-based org scoping, and computes summary statistics for the reimbur...

medium Reimbursement Overview
Report Generation Service

Backend service that aggregates raw activity records into summary statistics using SQL GROUP BY queries on the activities, users, and organi...

medium Team Reports
Bufdir Export Service

Server-side service that aggregates all relevant activity data for a given reporting period and formats it according to Bufdir's specificati...

high Bufdir Export
Custom Report Service

Backend service that translates user-selected dimensions, metrics, and filters into parameterized PostgreSQL queries. Enforces strict input ...

high Custom Reports
Report Query Validator

Validates and sanitizes all incoming report query parameters before they reach the SQL layer. Maintains a whitelist of permitted dimension a...

medium Custom Reports
Organization Service

Backend service encapsulating all business logic for reading and writing organization settings. Validates incoming payloads against allowed ...

medium Organization Settings
Terminology Service

Backend service exposing a REST API for resolving, creating, updating, and deleting organization-specific terminology overrides. Serves the ...

medium Custom Terminology
Feature Flag Constants

Shared constants file defining all valid feature flag keys used by both the backend API and Flutter mobile client. Acts as the single source...

low shared Feature Toggles
Feature Flag Service

Backend service exposing REST endpoints for reading and updating organization-level feature flags. Serves the flag map to the Flutter mobile...

medium Feature Toggles
Organization Hierarchy Service

Core backend service implementing recursive PostgreSQL CTE queries to fetch ancestor and descendant chains in the organization tree. Enforce...

high Multi-Organization Hierarchy
Duplicate Report Detection Service

Background validation service that scans activity records to detect duplicate reporting across associations - i.e., the same user, date, and...

medium Member Associations
Local Association Service

Backend service providing CRUD endpoints and membership management APIs for local associations. Handles the multi-membership model where a p...

medium Member Associations
Dynamics Portal HTTP Client

Low-level HTTP adapter for the external Dynamics portal REST API. Manages request signing, OAuth token refresh, exponential backoff retries,...

medium External Portal Integration
Portal Integration Service

Core backend service managing the full integration lifecycle with the external Dynamics-based portal. Handles authentication, idempotent dat...

high External Portal Integration
Accounting API Integration Service

Provider-agnostic adapter service implementing the accounting integration interface for both Xledger and Dynamics REST APIs. Abstracts provi...

high Accounting API
Accounting Sync Service

Event-driven service that listens for expense approval events and orchestrates delivery to the configured accounting system. Implements at-l...

high Accounting API
Anomaly Detection Service

Lightweight rule-based service that evaluates authentication and session events against configurable thresholds to flag suspicious activity ...

medium Security Dashboard
Security Monitoring Service

Backend service that aggregates security-relevant data from audit_logs and sessions tables to produce real-time security metrics and anomaly...

high Security Dashboard
Audit Service

Core backend service responsible for writing audit log entries and querying them for the admin UI. Implements a fire-and-forget write queue ...

medium Audit Log
Session Management Service

Core business logic service for listing, monitoring, and terminating user sessions across both mobile (JWT refresh tokens) and admin portal ...

high Session Management
Feature Content Provider

Provides structured content data for all platform feature sections. Implemented as a static data module (TypeScript objects or JSON) enablin...

low Feature Overview
Calculator Logic Service

Pure utility module encapsulating all ROI calculation logic for the Impact Calculator. Accepts organizational parameters and returns project...

low Impact Calculator
Cost Comparison Service

Business logic layer that calculates total cost of ownership for both the status quo (manual tooling) and Meander, projecting costs over a c...

low Cost Comparison
Booking Service

Next.js API route handler that receives demo booking form submissions, validates all input server-side, persists the lead record to the data...

low Booking Form
Booking Email Service

Next.js API route handler that triggers a transactional confirmation email to the prospect immediately after a successful booking form save....

low Booking Confirmation
Cookie Consent Integration Service

Thin client-side service that bridges the Cookie Policy page with the active Cookie Management Platform. Provides the action link or modal t...

low shared Cookie Policy