148
Total Service Layer
37
Low Complexity
65
Medium Complexity
46
High Complexity
15
Shared

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

Auth Service

Core authentication service that handles email and password credential validation, JWT access token issuance, rotating refresh token managem...

high shared Email & Password Login
BankID Integration Service

Server-side handler for the BankID OIDC flow via a certified Norwegian broker (Criipto or Signicat). Exposes initiate and callback endpoints...

high BankID Authentication
Vipps Integration Service

Implements the Vipps Login API (OpenID Connect) provider on the Authentication Module backend. Exposes /auth/vipps/initiate and /auth/vipps/...

high Vipps Authentication
Biometric Auth Service

Orchestrates the full biometric unlock flow: checks device capability, retrieves the stored refresh token from SecureTokenStore, calls POST ...

medium Biometric Login (Face ID / Fingerprint)
Secure Token Store

Platform-native secure storage adapter that persists and retrieves the refresh token using Flutter Secure Storage, which delegates to iOS Ke...

low Biometric Login (Face ID / Fingerprint)
JWT Role Claims Decoder

Mobile-side utility that decodes the role claim from the access token at session start and passes it to the Module Registry. Role changes ta...

low Role-Based Access Control
Route Guard Service

Backend middleware that reads the role claim array from the validated JWT access token on every protected request and rejects calls from rol...

medium Role-Based Access Control
Profile Service

Orchestrates all read and write operations for user profile data between the remote REST API and the local Drift cache. Applies optimistic m...

high Profile Data & Settings
Organization Membership Service

Manages the stream of OrganizationMembership objects fetched at login and cached in Drift. Orchestrates the full context-switch flow: POST /...

high Profile Switching
Deep Link Handler

Flutter infrastructure service using the app_links package that listens for incoming deep links matching the share profile URL pattern. When...

low Share Profile
Profile Share Service

Backend service that generates JWT-signed snapshot URLs for shareable peer mentor profile cards via POST /api/v1/profiles/{userId}/share-lin...

medium Share Profile
Passkey Service

Orchestrates the full FIDO2 WebAuthn registration and assertion ceremonies by coordinating the WebAuthn Bridge (platform channel) with the A...

high Authentication Methods (Passkeys)
WebAuthn Bridge Service

Flutter platform channel that abstracts native WebAuthn authenticator APIs on iOS (ASAuthorizationController) and Android (CredentialManager...

high Authentication Methods (Passkeys)
Activity Service

Core business logic service for activity registration. Handles activity CRUD operations, fetches and caches the activity type catalogue, inj...

medium Simple Activity Logging
Attachment Upload Service

Service responsible for uploading activity attachment files to the backend via multipart POST. In offline mode it serialises binary blobs in...

high Activity Registration Wizard
Wizard Step Controller

Riverpod Notifier that owns the complete wizard session state including current step index, per-step validated data, and the assembled draft...

high Activity Registration Wizard
Calendar Integration Service

Handles all interaction with the device calendar via the Flutter device_calendar plugin, abstracting iOS EventKit and Android CalendarProvid...

high Calendar Sync
Speech Permission Manager

Utility service responsible for requesting, caching, and re-checking microphone permission on iOS and Android. Surfaces a structured Permiss...

low shared Speech-to-Text Input
Speech-to-Text Service

Flutter service that wraps the speech_to_text plugin, abstracting iOS SFSpeechRecognizer and Android SpeechRecognizer behind a single async ...

medium Speech-to-Text Input
Proxy Registration Service

Backend-authoritative service that validates coordinator role claims, retrieves the coordinator's managed peer mentor list, and persists act...

high Coordinator Proxy Reporting
Bulk Activity Service

Backend API handler that accepts a batch registration payload of shared activity fields plus an array of peer mentor user IDs. Validates cro...

high Bulk Registration
Event Service

Handles all business logic for event creation including input validation, offline-first local persistence via Drift, and mutation enqueuing ...

medium Event Creation
Wizard Step Controller

Generic BLoC-driven multi-step wizard controller managing step state, validation gating, and the single commit action that finalizes the flo...

medium shared Event Creation
Event Sign-up Service

Backend service handling participant registration and deregistration for events. Enforces same-organization validation to prevent cross-tena...

medium Event Sign-up
Expense Service

Expense Service

medium Travel Expense Registration
Expense Step Controller

Expense Step Controller

medium Travel Expense Registration
Image Compression Service

Client-side Dart service that compresses captured or selected images to a maximum of 1 MB before upload using flutter_image_compress. Reduce...

low Receipt Photo Upload
Receipt Offline Queue Service

Mobile service that enqueues compressed receipt image bytes into the Drift mutation outbox when the device is offline, then schedules upload...

medium Receipt Photo Upload
Receipt Storage Service

Backend REST service exposing a multipart/form-data endpoint for receipt image upload. Validates file type (JPEG/PNG only) and enforces size...

medium Receipt Photo Upload
Expense Validation Service

Backend REST service that exposes the active expense type configuration for the authenticated user's organization, including mutual exclusiv...

medium Expense Types & Requirements
Declaration Service

Declaration Service

low Confidentiality Declarations
Contacts Service

Riverpod provider exposing a reactive combined state of the full contact list and the current search query, with the filtered view derived r...

medium shared Contact List & Search
Contact Detail Provider

Riverpod provider that subscribes to a reactive Drift query for a single contact record and its related data, emitting updated state to the ...

low Contact Detail & Edit
Contact Update Service

Domain service orchestrating the optimistic mutation pattern for contact edits. Immediately writes the updated contact to local Drift storag...

medium Contact Detail & Edit
Caregiver Service

Handles all business logic and CRUD operations for caregiver and next-of-kin records. Provides a reactive Riverpod provider stream so the co...

low Caregiver & Next-of-Kin
Notes Service

Riverpod provider encapsulating all business logic for the notes list. Queries the local Drift DAO with user-scoped filtering, exposes react...

low Notes List
Note Attachment Upload Service

Service responsible for picking files or photos from the device using platform file/camera pickers, storing a local file path in note_attach...

medium Note Editor
Note Draft Auto-Save Service

Riverpod StateNotifier that listens to note body changes in the editor and persists drafts to the local Drift database using a debounce time...

medium Note Editor
Statistics Service

Riverpod AsyncNotifierProvider that queries the local Drift database to aggregate the current user's activity data into typed statistics mod...

medium Personal Activity Statistics
Team Statistics Service

Riverpod FutureProvider-based service fetching and caching coordinator team report data from the REST API. Handles paginated peer mentor pay...

high Coordinator Team Reports
Bufdir Report Service

Core backend service that orchestrates Bufdir report generation by querying PostgreSQL for activity records within the specified period and ...

high Bufdir Report Generation
Report Data Aggregation Service

Specialized backend service handling the complex data aggregation logic required for Bufdir report content. Joins activity, contact, and coo...

high Bufdir Report Generation
Batch Export Service

Admin-portal-only service that enables Global Admins to trigger exports across multiple organizations in a single operation. Queues individu...

medium Bufdir Export
Export Generation Service

Core backend service that receives a validated Bufdir report payload and transforms it into the requested file format (PDF, CSV, or XML). Ha...

medium Bufdir Export
Mobile File Delivery Service

Flutter-side service that receives the export binary from the backend, writes it to the device downloads directory using Flutter file system...

low Bufdir Export
Accounting API Connector

Implements the connector interface pattern for pushing approved expense batches to external accounting systems. Each supported target (Xledg...

high shared Accounting System Integration
Connector Registry Service

Manages the registry of available accounting connector modules and their per-organization configuration. Resolves which connector type is ac...

medium Accounting System Integration
Expense Batch Dispatcher

Asynchronous background service that queues approved expense claims and dispatches them to the Accounting API Connector in batches. Implemen...

high Accounting System Integration
Assignment Dispatch Service

Manages the full lifecycle of encrypted assignment dispatch: coordinators create and send assignments, delivery and read receipts are tracke...

high Encrypted Assignment Dispatch
Assignment Reminder Service

Scheduled server-side job that identifies assignments exceeding the configurable age threshold (default 10 days) with no read record and tri...

medium Encrypted Assignment Dispatch
Encryption Service

Implements asymmetric end-to-end encryption using the peer mentor's public/private keypair, with the private key stored exclusively in the d...

high Encrypted Assignment Dispatch
Threshold Rules Config Service

Admin-facing service for reading and writing organization-specific threshold rule sets stored as JSON in the module_configurations table und...

low Assignment Threshold Tracking
Threshold Tracking Service

Backend service responsible for evaluating threshold rules against confirmed-read assignment counts, detecting milestone crossings, and enqu...

high Assignment Threshold Tracking
Device Token Registration Service

Flutter-side service managing the complete lifecycle of FCM and APNs device tokens. Registers tokens on login, subscribes to onTokenRefresh ...

high Push Notifications
Notification Message Handler

Flutter-side handler for incoming FCM messages across all app lifecycle states - foreground, background, and terminated. Uses flutter_local_...

high Push Notifications
Push Notification Service

Backend Next.js service that dispatches push notifications to user devices via the FCM HTTP v1 API. Constructs typed action payloads for Flu...

high Push Notifications
Dispatch Deduplication Guard

Prevents duplicate message sends caused by upstream retry logic by generating idempotency keys per outbound event and checking the dispatch ...

low Email/SMS Notifications
Email Template Engine

Renders versioned server-side HTML email templates by injecting dynamic payload data and per-organization terminology overrides, producing b...

medium Email/SMS Notifications
Email/SMS Dispatch Service

Orchestrates all outbound email and SMS messages, routing transactional notification events to the correct channel based on user preferences...

high Email/SMS Notifications
SMS Gateway Service

Handles outbound SMS dispatch via a Norwegian-compliant provider by normalizing recipient phone numbers to E.164 format, delegating to the S...

medium Email/SMS Notifications
Unsubscribe Handler

Manages opt-out requests for marketing-adjacent emails in compliance with Norwegian Markedsføringsloven, maintaining a per-user suppression ...

low Email/SMS Notifications
Scenario Dispatch Router

Scenario Dispatch Router

medium Notification Scenarios
Scenario Rules Service

Scenario Rules Service

high Notification Scenarios
Notification Settings Service

Manages reading and writing user notification preferences against both the local Drift cache and the backend REST API. Queries mandatory not...

medium Notification Settings
Deep Link Handler Service

Handles Flutter deep link routing for both cold-start and warm-start app launch scenarios so the referrer token embedded in invite URLs surv...

high Invite Link & QR Sharing
Referral Link Service

Generates short, signed invite URLs with an embedded referrer token and configurable expiry window by calling the backend REST API. Caches t...

medium Invite Link & QR Sharing
Recruitment Analytics Service

Backend service exposing a paginated REST endpoint that aggregates referral data from the referrals table. Executes a single JOIN query (ref...

medium Recruitment Tracking
Recruitment Summary Notifier

Riverpod AsyncNotifier on the mobile client that manages fetching and caching of recruitment analytics data. Calls the recruitment analytics...

low Recruitment Tracking
Course Service

Business logic layer for course browsing and enrollment lifecycle. Handles paginated course fetching, enrollment writes, role-based access e...

medium Course Registration
Certificate Admin Service

Backend service exposing the admin portal endpoints for manual certificate lifecycle management. Org Admins can issue, revoke, or extend cer...

medium Digital Peer Mentor Certificate
Certificate Expiry Background Job

Server-side scheduled job that queries certificates approaching expiry within the configurable warning window and enqueues push notification...

medium Digital Peer Mentor Certificate
Certificate Service

Handles all client-side certificate operations including fetching the current user's certificate, caching for offline access, and coordinati...

medium Digital Peer Mentor Certificate
Workshop Service

Business logic layer for career workshop lifecycle management. Handles participant roster operations, enforces Coordinator-and-above role re...

medium Career Workshops
Annual Summary Service

Server-side aggregation service that computes a peer mentor's annual impact metrics for a trailing 12-month window. Queries activities, even...

medium Annual Summary (Wrapped)
Badge Award Service

Backend rule engine that evaluates badge trigger conditions as a post-save hook whenever an activity, course enrollment, or contact record i...

medium Achievement Badges
Calculation Model Config Service

Service responsible for reading, writing, and caching the organization-level calculation model parameters (hourly value rates, professional-...

medium Advantage Calculator (Real-Time)
Impact Result Cache Service

Flutter-side service that persists the most recently received ImpactResult to the local Drift database so the Advantage Calculator Screen ca...

low Advantage Calculator (Real-Time)
Real-Time Impact Calculation Service

Backend service that receives an activity-summary payload for a user and returns a structured impact object containing computed metric value...

high Advantage Calculator (Real-Time)
Cards Content Service

Handles fetching, versioning, and offline caching of talking card content from the backend. Manages cache invalidation when new card sets ar...

low Talking Cards Toolbox
Accessibility Compliance Reporter

A service that collects and surfaces accessibility compliance status across screens, providing structured output for the CI audit step and d...

medium WCAG 2.2 AA Compliance
Sensitive Field Annotation Service

Manages the registry of field-level sensitivity annotations and per-screen warning behaviour configuration. Annotations are stored as metada...

medium Sensitive Field Readout Warning
Sami Localization Bundle

Core i18n service that registers Northern Sami ARB files with Flutter's flutter_localizations and intl package. Manages locale registration,...

medium Sami Language Support
Module Registry Service

Riverpod-based service that parses the bootstrap API response to extract the tenant's enabled module set, exposes reactive streams of active...

high shared Role-Specific Home Dashboard
Preferences Service

Handles all reads and writes for user preferences, persisting to the backend REST API for cross-device consistency and caching the latest sn...

medium App Settings & Preferences
Links Content Service

Backend service exposing REST endpoints for managing and serving the org-configurable external link catalogue. Returns links filtered by the...

low External Resource Links
Resource Links Sync Service

Flutter-side service responsible for fetching the link catalogue from the backend, persisting results to the local Drift cache with a config...

low External Resource Links
Support Request Service

POSTs support requests to the backend endpoint, attaching device metadata (platform, OS version, app version, user role) automatically. Hand...

low Contact Us
Policy Content Service

Fetches the privacy policy document from a versioned backend endpoint and caches it in the local Drift database with a configurable TTL for ...

low Privacy Policy
Versioned Content Service

Fetches versioned static content (accessibility statement, privacy policy) from a backend endpoint and caches it in Drift for offline availa...

low shared Accessibility Statement
FAQ Content Service

Fetches structured FAQ content (id, category, question, answer) from the backend public endpoint and caches it offline using Drift with a TT...

low FAQ
Conflict Resolver Service

Resolves conflicts when the same record was mutated both offline and on the server. Applies entity-scoped strategies: server-wins for activi...

high Offline Data Support
ID Mapping Service

Manages the lifecycle of client-generated temporary UUIDs (v4) used for offline-created entities. Once the server confirms entity creation i...

high Offline Data Support
Optimistic Update Service

Applies writes immediately to the local Drift store so the UI remains responsive without waiting for server confirmation. Registers a rollba...

high Offline Data Support
Connectivity Monitor Service

Wraps the connectivity_plus package to expose a reactive stream of network state changes. Subscribes to the stream and triggers an immediate...

low Background Sync
Retry Backoff Service

Implements truncated exponential backoff with jitter (delay = min(base * 2^attempt + jitter, max_delay), base=30s, max_delay=3600s, jitter ±...

medium Background Sync
Sync Queue Service

Core orchestrator that drains the mutation outbox in FIFO order by dispatching queued mutations through ApiHttpClient and committing results...

high Background Sync
KPI Aggregation Service

Backend service that executes scoped aggregation queries against PostgreSQL to compute KPI values for the authenticated user's organization....

medium Dashboard KPIs
Feed Service

Server-side service that listens for writes to key tables (activities, expense_claims, assignments, user_roles) and inserts normalized event...

medium Activity Feed
User Invite Token Service

Service responsible for generating time-limited signed JWT invite tokens (48-hour expiry), persisting them to the database, and dispatching ...

medium User CRUD
User Management Service

Core backend service implementing all user lifecycle operations for the admin portal REST API. Enforces org-scoped authorization so org admi...

medium User CRUD
Role Assignment Service

Role Assignment Service

medium Role Assignment
Bulk User Service

Server-side service that executes bulk operations against the users table inside database transactions. Accepts either an explicit list of u...

high Bulk Actions
Activity Approval Service

Backend REST endpoint handler managing activity status transitions from pending to approved or returned. Enforces tenant scoping and role gu...

medium Activity Review & Approval
Approval Queue Service

Service layer responsible for fetching, paginating, and filtering the list of pending activity registrations scoped strictly to the requesti...

low Activity Review & Approval
Activity Flag Service

REST service that handles manual and automated flag lifecycle operations on activity records. Exposes PATCH endpoints for flagging and unfla...

medium Activity Flagging
Duplicate Detection Service

Server-side service that executes duplicate detection logic both synchronously on activity creation and asynchronously during the nightly ba...

high Activity Flagging
Expense Approval Query Service

Read-side backend service exposing a paginated, filterable REST endpoint that returns expense claims scoped to the authenticated approver's ...

medium Expense Approval Queue
Expense Approval Service

Backend service handling all approval and rejection mutations for expense claims. Wraps each decision in a database transaction that atomica...

medium Expense Approval Queue
Threshold Rules Service

Backend service that persists auto-approval rule configuration per tenant and evaluates expense claims synchronously at submission time. App...

high Auto-Approval Rules
Expense CSV Export Service

Streaming export service that writes filtered expense records directly to the HTTP response without buffering the full result set in memory....

medium shared Reimbursement Overview
Reimbursement Analytics Service

Backend service that computes and serves aggregate expense metrics by combining nightly-materialized snapshots with a real-time current-day ...

high Reimbursement Overview
Report Generation Service

Backend service implementing the /api/v1/reports/team endpoint. Aggregates activity data from the activities and organization_memberships ta...

high Team Reports
Report Query Builder

Utility service that constructs parameterized PostgreSQL aggregate queries for the team reports endpoint. Accepts filter parameters and tena...

medium shared Team Reports
Admin Export Service

Server-side service that orchestrates the full Bufdir export pipeline. Receives the export job request, queries activities, peer mentor part...

high Bufdir Export
Export Status Poller

Frontend polling service used by the Export Progress Modal to track an in-flight export job. Calls the status endpoint on an interval, appli...

low Bufdir Export
Custom Report Service

Backend service that receives a query descriptor from the client, validates every dimension and metric against a server-side whitelist, enfo...

high Custom Reports
Report Export Service

Shared service that serializes report result data into CSV or Excel format and streams the file to the client. Accepts the same paginated JS...

medium shared Custom Reports
Organization Config Service

Backend service handling all mutations to an organization's configuration via a dedicated settings API endpoint. Enforces org-admin role aut...

medium Organization Settings
Label Resolution Service

Flutter-side singleton service that resolves display labels for the authenticated user's organization by reading from the local Drift cache ...

medium shared Custom Terminology
Organization Labels Service

Backend service managing CRUD operations for organization-scoped label overrides stored in the organization_labels table. Merges overrides w...

medium Custom Terminology
Module Configuration Service

Backend service managing the enabled module set per organization tenant. Persists toggle changes, resolves inter-module dependencies, assemb...

high Feature Toggles
Hierarchy Authorization Guard

Enforces level-scoped access control for all hierarchy management operations. Ensures that admins can only create, update, or delete organiz...

medium Multi-Organization Hierarchy
Hierarchy Service

Backend service responsible for all CRUD operations on the organizational hierarchy. Uses recursive CTEs in PostgreSQL to traverse the tree ...

high Multi-Organization Hierarchy
Local Chapter Management Service

Core backend service that manages the lifecycle of user-to-organization memberships. Enforces the single-primary-membership constraint via a...

medium Member Associations
Membership Invitation Service

Generates and validates time-limited invitation tokens used to onboard peer mentors and coordinators into a specific organizational unit. To...

medium Member Associations
Credential Vault Service

Service responsible for encrypting, storing, and retrieving per-organization connection credentials (OAuth 2.0 client secrets or API keys) f...

high External Portal Integration
External Portal Connector

Backend connector service that ingests events and data from HLF's Dynamics-based external portal via secure webhook or polling endpoint. Rea...

high External Portal Integration
Schema Translation Service

Stateless service that translates between the external portal's data schema and Meander's internal user and organization model. Applies the ...

high External Portal Integration
Accounting API Connector

Pluggable adapter layer that routes approved expense claim payloads to the correct external accounting system using per-organization configu...

high shared Accounting API
Expense Approval Event Listener

Internal event subscriber that listens for expense claim approval domain events emitted by the expense approval service. On each event it ch...

medium Accounting API
Anomaly Detection Service

Evaluates security event streams against configurable per-tenant thresholds to identify patterns such as N failed logins within T minutes or...

medium Security Dashboard
Security Metrics Service

Core backend service querying audit_logs, sessions, and refresh_tokens tables to compute aggregated security metrics with per-tenant scoping...

medium Security Dashboard
Audit Query Service

Backend service that handles all read queries against the audit_logs table. Supports pagination, multi-field filtering, and date range queri...

medium Audit Log
Audit Service

Core append-only backend utility that writes immutable audit log entries. Called by all authentication flows and every write operation acros...

high shared Audit Log
Session Revocation Service

Backend service that implements soft-deletion of refresh tokens by setting a revoked_at timestamp, cascading invalidation to all child token...

medium Session Management
Analytics Service

Lightweight client-side analytics integration using Plausible or Vercel Analytics to track page views, CTA interactions, and conversion funn...

low Product Landing Page
Sales Content Loader

Utility that loads and parses MDX files or headless CMS content for all sales website pages. Provides typed content interfaces so page compo...

low shared Feature Overview
ROI Calculation Service

Pure client-side calculation module implementing conservative, documented ROI formulas covering time savings, reporting accuracy improvement...

medium Impact Calculator
Cost Comparison Config Service

Holds the editable content configuration object defining all cost line items, labels, assumptions, and default organization profile values. ...

low Cost Comparison
Cost Scaling Service

Pure function utility that takes a base cost configuration and an organization size value and returns scaled manual-cost estimates. Applies ...

low Cost Comparison
Booking Service

Server-side Next.js API route handler that receives booking form submissions, applies server-side Zod validation, persists the lead record t...

low Booking Form
Lead Validation Service

Shared Zod schema definitions and validation logic for the booking form, providing a single source of truth for field rules used on both the...

low Booking Form
Spam Protection Service

Server-side middleware that enforces per-IP and per-email submission rate limits and validates the honeypot field on incoming booking reques...

low Booking Form
Booking Token Validator

Generates and validates short-lived signed tokens embedded in the redirect URL from the booking form to the confirmation page. Prevents raw ...

low Booking Confirmation
Confirmation Email Service

Sends a branded transactional confirmation email to the prospect immediately after a successful demo booking. Uses an HTML email template ve...

low Booking Confirmation
Legal Content Service

Provides versioned privacy policy content from MDX files or a headless CMS, enabling legal document updates without code deployments. Return...

low shared Privacy Policy
ToS Version Service

Backend service that manages Terms of Service versioning, serves the current version to the frontend, and records explicit acceptance events...

low Terms of Service
DPA PDF Service

Server-side utility that generates or serves a pre-rendered PDF of the current DPA document. Ensures the downloaded file matches the on-scre...

low Data Processing Agreement