Components
779 components across 4 layers
UI Components
Screen allowing users to request a password reset by entering their registered email address. Displa...
The primary authentication screen for the mobile app, presenting email and password input fields wit...
Primary authentication screen providing email and password input fields, validation feedback, and na...
Screen reached via the time-limited deep-link token sent to the user's email. Allows the user to ent...
Displays the BankID login option on the authentication screen and initiates the OAuth 2.0/OIDC flow ...
Presents the BankID authentication option on the login screen and manages the secure in-app browser ...
The authentication entry screen that presents the Vipps Login option to the user. Displays the Vipps...
Flutter screen presenting the Vipps Login option and managing the OAuth redirect flow. Displays the ...
Displays the native biometric authentication prompt (Face ID on iOS, fingerprint/face unlock on Andr...
Native biometric authentication prompt that displays Face ID or fingerprint verification UI on app f...
Displayed to Global Admins who attempt to use the mobile app. Shows a clear message that the mobile ...
A reusable Flutter widget wrapper that conditionally renders or hides child widgets based on the cur...
Flutter screen that displays the authenticated user's personal profile information including name, c...
Main profile view screen that displays the user's personal information including name, contact detai...
Centralized settings hub screen in Flutter where the user manages account-level preferences includin...
Centralized self-service hub where users edit personal details, update preferences such as language ...
Compact widget accessible from the home screen and navigation bar that displays the currently active...
A compact UI component accessible from the home screen and navigation that displays the user's curre...
Displays a preview of the peer mentor's public-facing profile data — name, areas of expertise, and a...
Displays a preview of the peer mentor's public-facing profile information before sharing. Shows name...
Guided wizard screen that walks the user through FIDO2 passkey registration on their device. Uses a ...
Guided wizard screen that walks users through FIDO2 passkey registration. Provides clear, accessible...
Lightweight overlay or snackbar confirming successful activity submission, displayed immediately aft...
Persistent bottom navigation 'Add' tab widget providing immediate access to activity logging from an...
Persistent bottom-navigation center tab widget providing immediate access to activity logging from a...
Multi-step wizard container that hosts a nested Flutter navigator for the full activity registration...
Multi-step wizard screen that guides users through a structured activity registration flow. Each ste...
Embedded widget that allows users to browse and select available device and Google calendars for syn...
Interactive widget that allows peer mentors and coordinators to select calendar accounts, view synce...
Full settings screen for managing calendar synchronization preferences. Allows users to configure sy...
Microphone activation control embedded within activity note fields and structured report fields in t...
A reusable Flutter widget that provides a microphone button, real-time recording indicator, and stop...
Searchable dropdown or list picker widget that loads peer mentors within the coordinator's local ass...
Full-screen flow for coordinators to register an activity on behalf of a peer mentor. Mirrors the st...
Coordinator-facing screen for registering activities on behalf of peer mentors. Presents a peer ment...
Primary screen for bulk activity registration, allowing coordinators to define an activity once and ...
Primary screen for bulk activity registration allowing coordinators to define a single activity and ...
Multi-step wizard screen guiding users through event creation with steps for title, date, time, dura...
Multi-step wizard screen guiding peer mentors and coordinators through structured event creation. Ea...
Reusable date and time selection widget used within the Event Creation Wizard steps for picking even...
Browsable, filterable list screen displaying all events relevant to the authenticated user within th...
Scrollable, filterable list view of events relevant to the authenticated user. Displays event title,...
Single-screen registration flow that displays event details and exposes a registration action button...
Single-screen registration flow that allows peer mentors and coordinators to sign up for an event. D...
Coordinator-only inline widget within the registration screen that allows selecting a contact or pee...
Primary mobile screen for registering travel expenses including kilometre allowances, toll fees, par...
Multi-section form screen for registering travel expenses with structured fixed-choice fields for ki...
In-app widget enabling peer mentors to capture receipt photos via the device camera or select images...
Provides in-app camera capture and gallery selection for receipt images. Uses Flutter image_picker t...
Renders the list of attached receipt thumbnails on the expense form, with options to view full-scree...
Admin portal page where organisation administrators manage their expense type catalogue. Provides CR...
Admin portal page that allows organisation administrators to manage their expense type catalogue, co...
Mobile widget that renders the organisation-scoped catalogue of allowable expense types as a selecta...
Interactive selection widget that presents the organisation's configured expense types with mutual-e...
Full-screen modal or wizard step that presents the confidentiality declaration text to the peer ment...
Full-screen modal presenting the confidentiality declaration text with a mandatory acknowledgement a...
Inline search bar component embedded in the contacts list that enables real-time contact lookup by n...
Reusable search input widget with debounced client-side filtering and fallback to server-side full-t...
Full-screen list view displaying all contacts accessible to the current user, with role-specific sco...
Primary screen displaying all contacts assigned to the current user or their local association. Impl...
Full-profile view of a single contact, presenting personal details, caregiver relationships, assigne...
Displays the full profile of a contact including personal details, caregiver relationships, assigned...
Inline edit form for updating a contact's personal details, built as a Flutter screen that reuses th...
Inline edit form for contact information using the shared AppTextField widget with appropriate input...
Displays caregiver and next-of-kin records as an expandable card section within the contact detail s...
Displays the list of caregivers and next-of-kin associated with a contact as expandable cards within...
Main Flutter screen displaying all notes associated with the current user's contacts in reverse-chro...
Main screen displaying all notes in reverse-chronological order with preview text, contact name, and...
Inline search bar and contact filter control rendered above the notes list. Supports keyword input f...
Reusable inline search widget that queries the contact store and returns a selected contact ID and d...
Full-screen Flutter form for creating and editing free-text notes linked to a specific contact. Host...
Flutter form screen for creating and editing free-text notes linked to a contact. Provides a TextEdi...
Companion widget to the chart that presents the same aggregated data as a plain, screen-reader-frien...
The primary screen presenting a peer mentor's personal activity statistics, including contribution t...
Main statistics screen presenting peer mentors with visual charts and tabular breakdowns of their pe...
Reusable Flutter widget that renders activity data as visual charts (bar, line, or pie) using the fl...
Compact filter control bar rendered at the top of the statistics dashboard, allowing the user to sel...
Compact widget rendered at the top of the Team Report Screen that allows coordinators with access to...
Reusable filter bar widget that allows coordinators to narrow report data by date range, activity ty...
Primary screen for coordinators to view aggregated activity data for all peer mentors within their l...
Primary screen presenting aggregated team activity data for coordinators. Displays summary cards wit...
Read-only Flutter screen that renders the compiled Bufdir report in structured layout before submiss...
Read-only structured layout displaying the compiled Bufdir report before submission. Renders aggrega...
Reusable Flutter widget for selecting the date range and organizational scope of a Bufdir report. Su...
Reusable widget that presents available export format options (PDF, Excel/CSV) as selectable tiles. ...
Primary screen for triggering Bufdir report exports. Displays the approved report summary, export fo...
Primary screen for triggering Bufdir report exports. Displays the current report period, format opti...
Per-organization configuration screen for connecting Meander to an external accounting system. Allow...
Admin-facing configuration screen where organization administrators set up and manage connections to...
Form screen for coordinators to compose a new encrypted assignment. Allows selection of a peer mento...
Full-screen view for a peer mentor to read an encrypted assignment after decryption. Displays sensit...
Displays the full details of an encrypted assignment including contact information, assignment statu...
Coordinator-facing dashboard widget that lists all open assignments with real-time delivery and read...
Team-level view for coordinators showing assignment counts and threshold status for all peer mentors...
Motivational progress widget displayed on the peer mentor's home screen showing cumulative assignmen...
A motivational progress widget displayed on the peer mentor's home screen showing cumulative assignm...
Displays a chronological list of received push notifications for the authenticated user, grouped by ...
Displays a chronological list of push notifications received by the user, with read/unread state ind...
Flutter screen presenting a categorized list of notification scenarios with per-category toggles for...
Flutter screen presenting a categorized list of notification scenarios (assignments, activities, eve...
On-device QR code renderer built on the qr_flutter package. Accepts a URL string and renders a scann...
Reusable widget that renders a QR code on-device from a given URL string using the qr_flutter packag...
Full-screen UI for peer mentors and coordinators to view, copy, and share their personalized referra...
Primary screen where peer mentors and coordinators generate and manage their personalized referral l...
Flutter widget that displays aggregated referral attribution data for coordinators and organization ...
Dashboard screen showing referral conversion metrics, top recruiters, and onboarding funnel status f...
Displays available training courses in a filterable list view for peer mentors and coordinators. Sup...
Displays a filterable, searchable list of available training courses with schedule details, prerequi...
Presents course details and allows users to submit a registration. Displays schedule, prerequisites,...
Presents course details including schedule, prerequisites, instructor information, and capacity, wit...
Displays the peer mentor's digital certificate card with issuing organization, validity dates, and c...
Displays the peer mentor's digital certificate as a styled card showing certification status, validi...
Dedicated facilitator view accessible only to coordinators running a workshop session. Aggregates pa...
Embeddable roster widget displaying all registered participants for a workshop session. Sources part...
Main screen for listing available career workshops and viewing workshop details. Extends the course ...
Primary screen for listing available career workshops and displaying workshop details. Shows upcomin...
Lightweight checklist widget for facilitators to manage session to-do items during a workshop. Items...
Composable widget that renders a shareable image or deep link from the annual summary data. Strips a...
Bottom sheet widget that presents sharing options for the annual summary. Renders a pre-composed sha...
Full-screen animated year-in-review experience rendered in a Spotify Wrapped-style sequence of slide...
Full-screen animated year-in-review experience inspired by Spotify Wrapped. Presents sequential anim...
Dedicated screen displaying all earned and locked achievement badges for a peer mentor. Renders badg...
Dedicated screen displaying all available and earned achievement badges in a grid layout. Shows lock...
Primary interactive screen for the Advantage Calculator feature. Renders input fields for activity h...
Interactive Flutter screen where peer mentors and coordinators input their activity hours, number of...
Full-screen Flutter widget presenting conversation-starter cards to the peer mentor during a support...
Main screen presenting curated conversation-starter cards to peer mentors during support sessions. S...
Centralized design token system enforcing WCAG 2.2 AA constraints at the component level. Encapsulat...
A shared design token system that enforces WCAG 2.2 AA compliance at the component level. It encapsu...
Reusable focus ring overlay widget that renders a visible, high-contrast focus indicator around any ...
A Flutter widget wrapper that annotates sensitive data fields and intercepts accessibility focus eve...
A wrapper widget that intercepts Flutter's accessibility focus and speak events on fields marked as ...
A dedicated settings screen that allows users to select their preferred app language, including Nort...
A dedicated settings screen that allows users to browse available languages, select a Sami language ...
The root home screen widget that branches the UI tree based on the authenticated user's role. Subscr...
The primary landing screen displayed after authentication, dynamically rendering role-specific conte...
Centralized settings screen accessible from the hamburger menu, presenting grouped configuration sec...
Centralized settings screen accessible from the hamburger menu, presenting grouped configuration sec...
Displays a curated, grouped list of external URLs and resources relevant to peer mentors and coordin...
Flutter screen displaying a grouped list of curated external links organized by category. Renders ca...
Static support screen in the Flutter mobile app that surfaces contextual contact options — email, ph...
In-app support screen presenting contextual contact options (email, phone, message form) based on th...
Scrollable, read-only Flutter screen that renders the platform privacy policy as rich text. Accessib...
A read-only, scrollable Flutter screen that renders the platform's privacy policy as rich text conte...
A static, scrollable screen that presents the platform's formal accessibility statement in complianc...
A read-only Flutter screen that renders the platform's accessibility statement as scrollable rich te...
Main FAQ screen for the mobile app that presents a searchable, categorized list of frequently asked ...
Main FAQ screen displaying a searchable, categorized list of frequently asked questions with expand/...
A persistent UI banner or icon that communicates the current network connectivity state to the user....
Server-side rendered Next.js page that displays the organization's key performance indicators in a r...
Server-side rendered Next.js page that presents organization-level key performance indicators in a r...
Paginated, filterable chronological list of recent activity events displayed in the admin portal das...
Paginated, filterable list component that renders a chronological stream of recent activity events a...
Collapsible filter control panel that allows administrators and coordinators to narrow the activity ...
Server-side rendered Next.js page that displays full profile information for a single user, includin...
Server-rendered Next.js page at /admin/users/[id] showing the full profile of a single user includin...
Modal dialog component for inviting new users by entering their email address and assigning an initi...
Server-side rendered Next.js page under /admin/users that displays a paginated, searchable, and filt...
Server-rendered Next.js page at /admin/users displaying a paginated, searchable table of all users w...
Admin portal UI component that renders a dropdown or toggle interface for selecting and modifying us...
Admin portal UI component for viewing and modifying user roles. Renders a role selection interface (...
Contextual toolbar that renders conditionally within the user list page when one or more users are s...
Contextual toolbar that appears when one or more users are selected in the user list. Renders action...
Slide-over or modal panel rendering the full detail of a selected activity registration including co...
Server-side rendered Next.js page displaying the paginated review queue of pending activity registra...
Server-side rendered Next.js page presenting the activity review queue. Displays pending activities ...
Reusable badge/chip widget that renders the approval status of an activity (pending_review, approved...
Contextual toolbar that appears when one or more activities are selected in the review queue, exposi...
Admin portal page that lists all flagged activities with contextual detail for investigation and res...
Admin portal page component that displays all flagged activities in a filterable, sortable list. Sho...
Modal dialog for confirming individual or batch approval or rejection decisions. Collects an optiona...
Server-side rendered Next.js page displaying all pending expense claims across the organization. Pro...
Server-rendered Next.js page presenting all pending expense claims in a filterable, paginated queue....
Inline image viewer for receipt photos attached to expense claims. Supports thumbnail display within...
Next.js admin page where Organization Admins create, edit, enable, and delete auto-approval rules fo...
Next.js admin page where Organization Admins create, edit, enable/disable, and delete threshold-base...
Next.js SSR page providing a consolidated view of all expense reimbursements across the organization...
Next.js SSR page providing organization administrators with a consolidated view of all expense reimb...
Sortable, paginated table component rendering the per-reimbursement breakdown with columns for peer ...
Filter controls panel for the reimbursement dashboard, supporting date-range selection, period granu...
Client-side chart component using Recharts to render bar and line visualizations of activity trends ...
UI component providing controls for filtering report data by date range, local association, activity...
Server-side rendered Next.js page that presents aggregated team activity data to coordinators and or...
Server-side rendered Next.js page providing coordinators and organization administrators with aggreg...
Main admin page for generating and downloading Bufdir-compliant export files. Provides reporting per...
Admin portal page that allows organization administrators to configure export parameters, preview ma...
Renders the Bufdir-mapped data in a structured, human-readable table before the file is downloaded. ...
Widget for selecting the start and end dates of the Bufdir reporting period. Validates that the sele...
A sub-panel within the Report Builder Page that lists all allowable report dimensions and metrics. U...
Allows users to add, edit, and remove multiple simultaneous filter conditions. Each condition target...
The primary admin portal page for constructing ad-hoc reports. Provides a checkbox-based or drag-and...
Interactive page where administrators and coordinators build ad-hoc reports by selecting dimensions,...
Displays the tabular output of a custom report execution. Renders dynamic columns based on the selec...
A side panel or modal that lists all report configurations saved by the current user and those share...
Displays personal and organization-shared saved report configurations with options to load, edit, du...
Server-side rendered Next.js admin page providing a structured form for managing all organization-wi...
Next.js server-side rendered admin page providing a centralized configuration panel for managing org...
Admin portal page (Next.js) that renders a grouped form for configuring organization-specific label ...
Admin portal page where organization administrators configure custom label overrides for their organ...
Inline preview component embedded in the Terminology Config Page that renders sample UI strings usin...
Admin portal page that displays all available feature flags for an organization with toggle switches...
Admin portal page displaying all available feature flags for the organization as a data table with t...
Full-page admin interface for viewing and managing the organizational tree structure. Renders a recu...
Admin portal page that renders the full organizational hierarchy as an interactive tree view. Suppor...
Inline editing panel that appears contextually within the hierarchy tree to allow administrators to ...
Reusable recursive React component that renders a single level of the organization hierarchy and rec...
An expandable inline UI panel displayed within each user row on the Member Association Page. Shows a...
A modal dialog that allows administrators to assign multiple users to a local association simultaneo...
The primary admin portal page for managing user-to-local-association memberships. Renders a searchab...
Admin portal page for managing user-to-local-association memberships. Renders a searchable user list...
Admin-facing page for managing the external Dynamics portal connection. Allows organization admins t...
Admin-facing configuration page where organization administrators manage external portal connection ...
Inline dashboard widget embedded in the Security Dashboard and Integration Settings Page that visual...
Admin-facing configuration page for connecting Meander to an organisation's accounting system. Allow...
Admin portal page for configuring accounting system connections per organization. Allows admins to e...
Next.js server-rendered admin page that presents a real-time overview of the platform's security pos...
Next.js server-rendered admin page that displays real-time security posture metrics including failed...
Paginated, filterable admin portal page displaying the full audit trail of platform actions. Support...
Admin portal page providing a paginated, filterable view of all audit log entries. Supports server-s...
Mobile app screen accessible from Settings that allows users to view and revoke their own active ses...
Server-rendered Next.js admin page that displays all active sessions for users within the administra...
Server-rendered Next.js admin page that displays all active user sessions within the administrator's...
Primary entry-point page for the Product Sales Website, rendering the hero section, benefit highligh...
The main product landing page built as a Next.js statically generated page. Renders the hero section...
Static Next.js SSG page that presents Meander's platform capabilities in a structured, scannable for...
Static Next.js page that presents Meander's core capabilities organized by product area (mobile app,...
Interactive client-side page that renders the full impact calculator tool for prospective organizati...
Full-page interactive impact calculator that allows prospective organizations to input operational v...
Interactive side-by-side comparison table presenting current-state manual workflows versus Meander S...
Responsive, accessible HTML table presenting side-by-side cost and capability comparisons between cu...
Multi-field Next.js page component that collects contact and organizational information from prospec...
Next.js page component providing a structured demo booking form for prospective organizations. Colle...
Server-side rendered Next.js page displayed immediately after a successful demo booking form submiss...
Server-rendered Next.js page displayed immediately after successful demo booking form submission. Sh...
Static Next.js page rendering the full GDPR-compliant privacy policy for the Meander sales website. ...
Static Next.js page that renders the full GDPR-compliant privacy policy for the Meander product sale...
Static Next.js page rendering the full Terms of Service agreement between Norse Digital Products and...
Static Next.js page rendering the full Terms of Service legal document with numbered sections, in-pa...
Static Next.js page rendering the full GDPR Article 28 Data Processing Agreement between Norse Digit...
Static Next.js page rendering the full GDPR Article 28 Data Processing Agreement with numbered artic...
Client-side React component displayed on first visit before any non-essential scripts are initialize...
Client-side React component rendered as a banner or modal on first visit, collecting visitor cookie ...
Static Next.js page listing all cookies and tracking technologies used on the Meander sales website,...
Static Next.js page displaying the full cookie policy with cookies categorized by purpose (strictly ...
Static Next.js page presenting the full SLA document with structured sections covering uptime target...
Static Next.js page rendering the full SLA document with structured sections covering availability t...
Service Components
Dart service responsible for all authentication-related HTTP communication with the Next.js REST API...
Service layer responsible for all authentication REST API communication including login, token refre...
Next.js server-side service handling the authentication business logic: verifying bcrypt-hashed pass...
Shared validation service enforcing minimum password security standards on both client (mobile) and ...
Orchestrates the full OAuth 2.0/OIDC authentication flow for BankID. Communicates with the backend t...
Orchestrates the complete OAuth 2.0 / OIDC authentication flow with the BankID identity provider. Ma...
Orchestrates the full Vipps Login OAuth 2.0 / OIDC authentication flow on the mobile client. Constru...
Backend service implementing the Vipps Login OAuth 2.0 / OIDC flow. Exchanges the authorization code...
Orchestrates the full biometric authentication flow using the local_auth Flutter plugin. On successf...
Orchestrates the biometric authentication flow by checking device biometric capability, invoking the...
Next.js middleware that runs on every protected API route (`/api/v1/...`) to validate the JWT access...
Core Flutter BLoC that loads the authenticated user's active role after login and emits permission s...
Central authorization service that enforces role-based access boundaries across the mobile app and b...
Flutter BLoC managing all state for the Profile and Profile Settings screens. Processes events such ...
Business logic service responsible for reading and updating the authenticated user's profile via the...
Business logic layer handling profile reads, updates, and validation against the REST API. Manages A...
Orchestrates the role-switching lifecycle: reads the set of roles resolved at login from the active ...
Core business logic service that manages the active role context for dual-role users. Handles updati...
Constructs the shareable payload for a peer mentor profile — either a deep link URL or plain-text su...
Constructs shareable payloads from the user's public profile data, generating either a deep link URL...
Orchestrates the full FIDO2 WebAuthn registration and authentication ceremonies by coordinating betw...
Core service managing the full FIDO2 WebAuthn lifecycle including registration ceremonies (attestati...
Core business logic service orchestrating the creation, validation, and submission of activity recor...
Core business logic service for activity registration. Handles form validation, default value resolu...
Stateless service that computes intelligent pre-fill values for the quick log form based on the user...
Business logic service responsible for constructing and submitting activity payloads to the REST API...
BLoC-based state manager that holds and coordinates the full wizard form state across all steps, han...
BLoC-based state manager that holds the complete form state across all wizard steps and orchestrates...
Resolves the ordered list of wizard steps and their field configurations based on the current organi...
Handles per-step and cross-step validation rules for the activity wizard. Enforces required field ch...
Stateless mapping service that converts between Meander's internal activity and event data models an...
Core orchestration service that mediates between the device calendar API, Google Calendar API, and t...
Core business logic service mediating between the device calendar API and the Meander REST API. Mana...
Manages the full speech recognition session lifecycle: initialisation, start, streaming partial resu...
Manages the speech recognition session lifecycle including start, stop, error handling, and timeout....
Business logic layer that constructs and submits a proxy activity registration to the backend API. A...
Business logic service handling proxy activity registration. Manages the on-behalf-of workflow by in...
Client-side guard that verifies a coordinator is authorized to proxy-register on behalf of a given p...
Orchestrates the atomic bulk activity creation by sending a batch request to the backend API with a ...
Backend service responsible for atomically creating individual activity records for each selected pa...
Validates bulk registration inputs before processing, ensuring all selected participants are active ...
Mobile-side REST client responsible for making authenticated HTTP calls to the Event Service endpoin...
Backend service handling all event lifecycle operations, including creation, retrieval, and org-scop...
Business logic service responsible for creating events via the REST API, applying organization-scope...
Flutter BLoC managing wizard step state, validation results, and draft persistence for the Event Cre...
BLoC/Riverpod-based state manager that maintains wizard progress, persists partial state locally for...
Low-level HTTP client wrapper that calls the events REST API endpoints, attaches JWT auth headers, s...
Business logic service responsible for fetching paginated events from the REST API, applying role-ba...
Manages event data retrieval from the REST API with local caching for offline access. Fetches pagina...
Core Flutter service (BLoC/Riverpod) that orchestrates the event sign-up flow, including optimistic ...
Business logic service handling event sign-up operations including self-registration and proxy regis...
Core service managing the full travel expense lifecycle including creation, submission, threshold ev...
Business logic service that manages expense creation, validation, and submission workflows. Fetches ...
Enforces client-side field-level validation that mirrors server-side constraints, including mutual e...
Manages chunked, resumable file uploads to the backend REST API, ensuring reliable delivery on poor ...
Handles client-side image compression and chunked, resumable uploads to the backend. Compresses imag...
Applies client-side JPEG and PNG compression using the flutter_image_compress package before upload,...
Evaluates whether a receipt is mandatory for a given expense based on organisation-configured thresh...
Enforces receipt requirement rules based on expense type and amount thresholds configured per organi...
Stateless rule evaluation engine that processes the JSON rules field on expense type records to dete...
Stateless rule-evaluation service that applies the expense type configuration rules (mutual-exclusiv...
Admin-facing service layer used by the Expense Type Config Page to orchestrate configuration changes...
Backend service that manages the lifecycle of organisation-scoped expense type catalogues, including...
Core business logic service that manages the expense type catalogue and enforces all associated busi...
Business logic layer responsible for fetching versioned declaration content, submitting signed decla...
Backend service managing the lifecycle of confidentiality declarations including version control of ...
Business logic layer responsible for fetching, filtering, and paginating contacts via the REST API. ...
Business logic service that manages contact retrieval, search operations, and role-based access enfo...
Fetches the full contact record including all related data needed to populate the Contact Detail Scr...
Business logic layer responsible for persisting contact edits to the backend via a PATCH request to ...
Business logic service handling contact record updates via PATCH to the REST API. Manages field-leve...
Handles all business logic for caregiver and next-of-kin management, including CRUD operations again...
Business logic layer for managing caregiver and next-of-kin records. Handles CRUD operations against...
Thin REST client responsible for all HTTP communication with the backend notes endpoints. Handles re...
BLoC-based service that orchestrates note retrieval from the REST API with pagination support. Imple...
Business logic layer managing note retrieval, search, and filtering. Implements client-side search f...
Orchestrates all write operations for notes: autosaving drafts to local SQLite, submitting notes to ...
Business logic service that handles creating, updating, and deleting notes via the REST API. Applies...
Shared speech-to-text service that delegates to the platform-specific STT Provider Adapter. Accepts ...
Core backend service that queries the shared PostgreSQL database to compute a peer mentor's personal...
Backend-oriented service that queries and aggregates activity records from the shared PostgreSQL dat...
Riverpod state management layer for the statistics feature. Manages async loading of aggregated stat...
BLoC/Riverpod service that fetches and manages aggregated team statistics for coordinators via the N...
Backend-driven service that queries activity data scoped to all peer mentors within the coordinator'...
Core backend service that aggregates registered activities, participant data, and outcome metrics in...
Core business logic service that aggregates registered activities, participant data, and outcome met...
Dedicated query service that retrieves and joins activity records, contact data, and approval status...
Enforces that only Coordinators and Organization Admins can trigger Bufdir exports, in accordance wi...
Core service responsible for orchestrating the Bufdir report export workflow. Validates that the req...
Orchestrates the export of approved Bufdir reports into the required submission format. Communicates...
Orchestrates the transfer of approved expense and reimbursement data to an external accounting syste...
Backend service that orchestrates communication with external accounting systems. Handles authentica...
Transforms Meander's internal expense and reimbursement schema into the field format required by the...
Orchestrates the full lifecycle of dispatching an encrypted assignment: fetches the recipient's publ...
Core service responsible for asymmetric end-to-end encryption of assignment payloads. Generates or r...
Handles all client-side cryptographic operations for assignment dispatch using asymmetric encryption...
Server-side scheduled job service that monitors assignment records and triggers automatic reminder n...
Manages the lifecycle of threshold configurations per organization, including creation, versioning, ...
Core business logic service that listens for assignment completion events, increments the cumulative...
Core backend service that listens for assignment completion events, increments per-mentor counters, ...
Client-side service that intercepts incoming push notification tap events and routes the user direct...
Backend service responsible for constructing notification payloads and dispatching them to the corre...
Orchestrates the full push notification lifecycle: registering and refreshing device tokens on login...
Backend service that orchestrates delivery of transactional emails and SMS messages triggered by bus...
Backend service that orchestrates sending transactional emails and SMS messages through the provider...
Prevents repeated notification sends by querying the notification audit log and comparing each candi...
Core backend service that evaluates all registered notification rules against current database state...
Central rule evaluation service that determines when, to whom, and through which channel notificatio...
Maintains the central, authoritative list of all notification rule definitions. Each rule is a typed...
Business logic layer responsible for fetching and updating a user's notification preferences via the...
Business logic layer that manages notification preference CRUD operations. Fetches the current notif...
Business logic service responsible for requesting, caching, and refreshing signed referral links fro...
Business logic layer responsible for generating, validating, and managing referral links. Communicat...
Backend service that manages the full referral lifecycle from link attribution through account activ...
Backend service that aggregates referral conversion data, computes recruitment metrics, and manages ...
Business logic layer for course management and registration. Handles REST API communication for fetc...
Manages course listing retrieval, registration submission, enrollment state transitions, and prerequ...
Handles all business logic for retrieving and managing the peer mentor's certification state via the...
Handles all business logic for retrieving, validating, and sharing digital peer mentor certificates....
Handles participant registration and deregistration for career workshops. Reuses the same registrati...
Core business logic service for career workshop management. Handles CRUD operations for workshops (s...
Business logic layer managing career workshop lifecycle including creation, registration, roster man...
Client-side BLoC/Riverpod service that orchestrates fetching, caching, and presenting the annual sum...
Core business logic service that fetches pre-computed annual summary data from the backend REST API....
Mobile service that renders the annual summary into a shareable static image or constructs a deep li...
Server-side backend service that computes per-user yearly statistics from the activities, contacts, ...
Core business logic service that evaluates badge eligibility against milestone thresholds defined in...
Core business logic service that manages badge eligibility evaluation, award processing, and progres...
Background job that triggers badge eligibility checks in response to relevant domain events such as ...
Pure business logic service that computes social and economic impact from peer mentor inputs. Applie...
Pure business logic service that computes social and economic impact values from user inputs. Uses o...
Service responsible for generating exportable summary cards from calculated impact results. Supports...
Business logic service responsible for loading, caching, filtering, and serving talking card content...
Retrieves, filters, and shuffles talking card content from the local store. Handles optional backgro...
Service that coordinates automated WCAG 2.2 AA validation using Flutter's SemanticsChecker and Acces...
Provides runtime and development-time checks against WCAG 2.2 AA criteria. Integrates with Flutter's...
Manages focus traversal order, visible focus indicators, and keyboard shortcut bindings to ensure ev...
Central service governing all screen reader semantics across the mobile app. Provides utilities for ...
Centralizes semantic labelling logic for all interactive widgets to ensure VoiceOver (iOS) and TalkB...
Business logic service that determines whether a given field is marked as sensitive based on organis...
Business logic service that determines whether a given field requires a readout warning based on the...
Wraps Flutter's LocalizationsDelegate and the intl package to provide runtime locale resolution and ...
Wraps Flutter's LocalizationsDelegate and intl package to provide a runtime locale-switching API. It...
BLoC-based service that orchestrates all data fetching for the home screen, subscribing to role-spec...
Orchestrates data fetching and aggregation for the role-specific home dashboard. Subscribes to appro...
Business logic layer that coordinates reading and writing user settings, persisting them locally and...
Business logic layer managing reading, writing, and synchronizing user settings. Persists preference...
Fetches organization-scoped external link content from the REST API and coordinates caching for offl...
Service layer that fetches external link content from the REST API scoped to the user's organization...
Business logic layer responsible for fetching organization-specific contact configuration and submit...
Backend service handling support request submission, routing, and organization-specific contact conf...
Retrieves the privacy policy content either from a bundled static asset or a backend/CMS endpoint, e...
Business logic layer responsible for fetching FAQ items from the backend REST API, applying client-s...
Business logic layer that fetches FAQ items from the backend API, handles pagination and role-based ...
Populates the local SQLite store with the user's operational data subset at login time and after suc...
Central orchestrator for offline-first operation. Monitors network connectivity, switches the data l...
Core service that orchestrates offline data operations, managing the transition between online and o...
Implements the repository pattern abstracting data source selection from feature-level BLoC/Riverpod...
Orchestrates background sync execution when the device regains connectivity. Reads the offline mutat...
Orchestrates automatic synchronization of queued offline mutations and data refreshes when the devic...
Detects and categorizes data conflicts arising when locally queued mutations clash with server-side ...
Enforces role-based visibility rules for dashboard metrics, ensuring coordinators only see their loc...
Backend service that computes all KPI metrics for the dashboard by running SQL aggregate queries aga...
Backend service that computes and aggregates key performance indicators by querying PostgreSQL with ...
Frontend data-fetching layer built on React Query (or SWR) that manages server state for the activit...
Backend API route and business logic layer that serves paginated, filtered activity feed data to the...
Backend service that powers the activity feed by querying activities with cursor-based pagination on...
Shared service that determines the data visibility scope for the authenticated user based on their r...
Business logic layer for all user lifecycle operations in the admin portal, including invitation, pr...
Backend service layer handling all user lifecycle operations including invitation-based creation, pr...
Backend service encapsulating all business logic for assigning and revoking user roles. Enforces esc...
Backend service encapsulating role assignment business logic. Validates role changes against the per...
Backend service that receives bulk operation requests dispatched as PATCH requests to /api/v1/users/...
Backend service that validates and executes bulk user operations within a single PostgreSQL transact...
Core backend service handling the approve, reject, and correct operations on activity registrations....
Backend service handling the approval and rejection workflow for submitted activities. Implements op...
Shared service that writes structured audit log entries for all approval workflow actions, capturing...
Server-side service that queries the activities table for records with pending_review status, scoped...
Core business logic service for creating, managing, and resolving activity flags. Enforces role-base...
Backend service managing the full lifecycle of activity flags including creation, resolution, and au...
Background service that runs on activity insert to detect suspected duplicate registrations. Compare...
Shared service that persists structured audit trail entries for all approval actions in the system. ...
Core business logic service handling all approval lifecycle operations for expense claims. Orchestra...
Backend service handling the business logic for expense claim review workflows. Processes individual...
REST API handler for managing auto-approval rule configuration, used exclusively by the admin portal...
Core backend service that synchronously evaluates an expense claim against all applicable auto-appro...
Backend service that manages auto-approval rule CRUD operations and evaluates submitted expenses aga...
Next.js API route handler at /api/v1/reimbursements/export that streams reimbursement result sets as...
Core backend service orchestrating reimbursement data aggregation for the overview dashboard. Execut...
Backend service that aggregates reimbursement data from the reimbursements, expenses, expense_approv...
Service that enforces data scoping rules for report queries based on the authenticated user's role a...
Backend service that executes aggregation queries against PostgreSQL using window functions and GROU...
Backend service responsible for aggregating activity data into team-level reports. Executes PostgreS...
Core server-side service that orchestrates the full Bufdir export pipeline. Queries activity records...
Server-side service that orchestrates the full Bufdir export pipeline: queries activity data for the...
Maps internal Meander activity and participant data to the exact fields and format required by the c...
Records structured audit log entries for every Bufdir export action. Captures the exporting user's I...
The primary backend service orchestrating custom report execution. Receives a declarative report spe...
Backend service that receives declarative report specifications, validates them against an allowed-f...
Manages CRUD operations for saved report configurations stored in the report_configs table. Handles ...
Generates downloadable CSV and XLSX files from report result sets. Streams large result sets to avoi...
Generates downloadable CSV and XLSX files from report result sets. Handles column header formatting,...
Server-side query builder class that translates declarative report specifications into parameterized...
Translates a validated declarative report specification into a parameterized PostgreSQL query. Maint...
Backend service layer handling all organization settings mutations and queries, consuming the REST A...
Backend service handling organization settings CRUD operations via the REST API endpoint PATCH /api/...
Next.js server-side context provider injected into the admin portal layout that resolves all UI labe...
Backend service responsible for reading, writing, and validating organization terminology maps store...
Backend service that manages the terminology override map for each organization. Handles CRUD operat...
Backend service responsible for reading and writing feature flag state per organization. Reads from ...
Backend service managing feature flag CRUD operations, cache invalidation, and propagation. Reads th...
Loads the static feature registry file that defines all known feature keys, their default states, hu...
Computes rolled-up statistics for a given organization by aggregating data from all descendant organ...
Resolves which nodes in the organization tree the requesting admin is authorized to view or modify. ...
Resolves the effective organization scope for a given user based on their JWT claims and role assign...
Core backend service exposing the organization hierarchy API. Handles CRUD operations for creating c...
Backend service managing the organizational hierarchy using a closure table pattern in PostgreSQL. P...
Core backend service responsible for all business logic around user-to-local-association membership ...
Backend service managing the many-to-many relationship between users and local associations. Handles...
A service component that analyses user activity records across their multiple association membership...
Handles secure storage and retrieval of API credentials for the external portal using envelope encry...
Abstract service interface that encapsulates all interaction with HLF's Dynamics-based external port...
Core business logic service behind an abstract ExternalPortalService interface that orchestrates dat...
Coordinates the dual sync strategy: event-driven webhook processing when the external portal support...
Core backend service orchestrating the export of approved expense reimbursements to external account...
Core backend service orchestrating expense export to external accounting systems. Manages transactio...
Manages scheduled and on-demand export job lifecycle for accounting integrations. Reads per-organisa...
Manages the mapping between Meander expense types and each organization's chart-of-account codes. Va...
Evaluates computed security metrics against configurable threshold rules to generate actionable aler...
Server-side service that runs scheduled aggregation queries against the audit_logs and sessions tabl...
Server-side service that runs scheduled aggregation queries over audit_logs and sessions tables to c...
Centralized service responsible for emitting, querying, and exporting audit log entries. Inserts app...
Centralized backend service responsible for emitting and querying audit events. All write operations...
Core backend service exposing REST endpoints for listing and revoking sessions. Enforces authorizati...
Backend service exposing REST endpoints for listing, inspecting, and revoking user sessions. Handles...
Provides structured page content for the landing page, separating data from presentation to support ...
Provides structured page content for the landing page, separating data from presentation. Fetches he...
Provides structured feature data — titles, descriptions, icons, and product-area groupings — consume...
Provides structured feature data including titles, descriptions, icons, and product-area groupings t...
Pure client-side computation service that applies static benchmark multipliers to user-provided inpu...
Client-side calculation engine that computes organizational impact estimates from user inputs using ...
Retrieves and structures pricing tier data and total cost of ownership calculations across a one-to-...
Provides structured pricing and feature-inclusion data for each Meander tier and the current-state b...
Server-side REST API handler that processes demo booking form submissions, persists lead data to Pos...
Server-side service handling demo booking form submissions via a REST API endpoint. Validates incomi...
Orchestrates post-submission confirmation logic, including resolving the masked lead reference to bo...
Backend service responsible for sending transactional confirmation emails to prospects after demo bo...
Loads and provides DPA article content from MDX source or CMS, enabling legal team updates without c...
Central service managing the full consent lifecycle on the sales website. Reads and writes consent s...
Lightweight client-side service managing consent state persistence, providing a Consent API that emb...
Loads and parses SLA document content from MDX files or a lightweight CMS, providing structured sect...
Fetches and structures the SLA document content from MDX or a lightweight CMS, enabling non-develope...
Data Components
Flutter data layer responsible for persisting and retrieving JWT access and refresh tokens using the...
Secure on-device storage adapter for JWT access and refresh tokens using flutter_secure_storage. On ...
Provides secure persistent storage for JWT access tokens and refresh tokens on the mobile device usi...
Manages the full lifecycle of JWT access and refresh tokens using flutter_secure_storage, backed by ...
Manages the lifecycle of encrypted JWT refresh tokens stored in platform-secure storage (iOS Keychai...
Local persistent store in the Flutter app that caches the user's assigned roles, active role, and or...
Manages the persistence and retrieval of role definitions, permission matrices, and user-role assign...
Local persistence layer for the authenticated user's profile data and preferences, implemented via R...
Local state and caching layer for the authenticated user's profile data, preferences, and organizati...
Manages the in-memory and secure-storage representation of the authenticated user's available roles ...
Secure local persistence layer that stores the user's currently active role and their list of availa...
Persists registered passkey credential metadata (credential ID, display name, creation timestamp, la...
Data layer responsible for persisting and retrieving FIDO2 public key credentials. Stores credential...
Local SQLite repository managing persisted activity records and offline submission queue on the devi...
Local data persistence layer for activity records using SQLite. Caches submitted and pending activit...
Local persistence layer that saves wizard draft state so users do not lose progress if the app is ba...
Local data store managing persisted activity records on the device. Shared with the Simple Activity ...
Local persistence layer that tracks the synchronization state between Meander records and their corr...
Local persistence layer for calendar sync state, mapping between Meander activities and device calen...
Flutter BLoC state manager for the proxy registration flow. Extends the standard activity form BLoC ...
Local data layer managing proxy-registered activity records. Extends the standard activity store wit...
Manages client-side state for the bulk registration operation, including the selected participant li...
Data layer managing bulk registration records including the batch metadata (coordinator, timestamp, ...
Riverpod-backed local persistence layer that saves in-progress wizard state to device storage, enabl...
Data access layer managing persistence and retrieval of events in the PostgreSQL events table. All q...
Data access layer managing event persistence through the shared PostgreSQL events table via REST API...
Local SQLite data access object that persists the most recently fetched events page for offline-capa...
Riverpod/BLoC state container that tracks per-event registration status for the current user, includ...
BLoC/Riverpod state store managing expense form draft state, local persistence of pending claims in ...
State management store that holds expense form state, cached expense type definitions with their val...
Manages local and remote CRUD operations for the expense_receipts table, linking receipt metadata an...
Local data layer managing receipt metadata and upload state on the device. Caches receipt references...
Mobile-side data store that caches the organisation's active expense type catalogue, including type ...
Data access layer managing persistence and retrieval of organisation-scoped expense type configurati...
Data access layer managing CRUD operations against the `documents` table for confidentiality declara...
Data access layer for confidentiality declaration records stored in the documents table. Manages dec...
Riverpod-based state management store holding the current contact list, pagination cursor, search qu...
Riverpod-based state management store that holds the current contact list, search state, pagination ...
Local data repository for contact records providing caching, optimistic state management, and synchr...
Local state and caching layer for caregiver records associated with a contact. Manages in-memory car...
Local state management and caching layer for caregiver records using Riverpod. Stores caregiver list...
Local SQLite cache layer for notes data, enabling offline access and reducing redundant API calls. S...
Local data layer providing offline-capable storage for notes using SQLite. Caches notes fetched from...
Local SQLite-backed storage for note drafts, enabling autosave and offline editing. Persists in-prog...
Lightweight local persistence layer for in-progress note drafts. Stores partial note content keyed b...
Local SQLite repository for submitted notes, shared between the Notes List and Note Editor features....
Local data store that caches aggregated statistics payloads on the device to support offline viewing...
Local data layer that caches aggregated statistics for offline viewing and manages state via Riverpo...
Riverpod state store that holds cached team report data for the current coordinator session, keyed b...
Data access layer managing persistence and retrieval of generated Bufdir report records in PostgreSQ...
Data access layer managing persistence and retrieval of Bufdir report records, draft states, and gen...
Data access layer for the accounting_exports table. Provides CRUD operations for export records that...
Local data store that persists export records including organization ID, export timestamp, report pe...
Data layer responsible for persisting per-organization accounting integration configurations, includ...
Manages persistence of accounting transfer records in the accounting_exports table. Stores per-trans...
Data access layer for the assignments table. Manages persistence of encrypted assignment blobs, deli...
Manages persistence and retrieval of encrypted assignment records, including dispatch metadata, deli...
Maintains pre-aggregated assignment completion counts per peer mentor per reporting period, eliminat...
Data access layer for the assignment_threshold_configs table, providing typed read and write operati...
Data access layer managing organization-specific threshold configurations including tier boundaries,...
Data access layer for the push_tokens table, managing the registration, refresh, and deregistration ...
Manages server-side message templates for both email and SMS channels with support for variable subs...
Server-side storage and retrieval of email and SMS message templates with variable placeholders. Tem...
Persists a record of every dispatched notification, capturing rule ID, recipient user ID, delivery c...
Records every notification sent by the rule engine with status, timestamp, rule ID, recipient, and e...
Persists notification rule definitions including event type, condition predicate, recipient strategy...
Data component managing FCM/APNs device token lifecycle including registration, refresh, and deletio...
Data component responsible for managing FCM and APNs push token persistence. Handles token registrat...
Data access layer that manages local caching and persistence of referral link data. Stores the curre...
Local data store managing cached referral link state on the mobile device. Persists the active refer...
Data access layer for referral links and referral tracking records. Provides repository methods for ...
Data access layer for referral tracking records, providing CRUD operations on the referral_trackings...
BLoC-based state store managing enrollment state transitions (available → registered → completed → c...
Local state management store using BLoC/Riverpod that caches course listings, user registration reco...
Local data layer responsible for caching certification records fetched from the REST API and persist...
Local data layer that caches the user's certification records and certification type definitions fet...
Local data store managing cached workshop data, registration state, facilitator session state (check...
Data access layer that communicates with the REST API to fetch pre-computed annual summary records. ...
Client-side data store that caches fetched annual summary responses to avoid redundant API calls dur...
Local data store that caches annual summary responses from the backend API. Stores the pre-computed ...
Data repository managing earned achievement records and achievement type definitions. Handles CRUD o...
Local data layer managing cached badge definitions, earned badges, and progress state using BLoC/Riv...
Local data store that caches organization-specific impact multipliers (hourly rates, cost equivalent...
Data access layer that reads organization-specific impact multipliers (hourly rates, cost equivalent...
Local data store that holds the bundled talking card content and any remotely refreshed updates. On ...
Local data store for talking card content bundled with the app. Stores card text, categories, and me...
Persists user-level accessibility overrides such as preferred text scale factor, high-contrast mode ...
Local data store that persists the organisation-level sensitive field configuration on the device so...
Local data store that persists the organisation-level sensitive field configuration retrieved from t...
Persists the user's chosen locale preference to local storage via shared_preferences and restores it...
Persists the user's selected locale preference to local storage (shared_preferences) and restores it...
Local SQLite-backed store that persists the last-known dashboard state per role, enabling immediate ...
Local persistence layer for user preferences, backed by SQLite or Flutter SharedPreferences. Stores ...
Local persistence layer for user application preferences using shared preferences or local SQLite. S...
Local SQLite persistence layer for the external link catalog. Stores link objects containing title, ...
Local SQLite data store for caching external link objects fetched from the API. Stores link title, U...
Local data store that caches FAQ items fetched from the API, enabling offline access and reducing re...
Local data store that caches FAQ items fetched from the backend for offline access and fast client-s...
Device-local SQLite database managed via the drift (formerly Moor) or sqflite Flutter plugin. Stores...
On-device SQLite database managed via a Flutter plugin (sqflite or drift) that stores a subset of th...
Persistent queue stored in local SQLite that records all data mutations (creates, updates, deletes) ...
Persistent queue that tracks all data mutations (creates, updates, deletes) made while offline, stor...
Persists the outcome of each background sync run to a local SQLite status table. Stores sync timesta...
Data access layer that executes optimized SQL aggregate queries against the PostgreSQL database to r...
Data access layer that encapsulates PostgreSQL queries for KPI aggregation, using indexed columns on...
Encapsulates the SQL construction logic for the activity feed endpoint. Builds parameterized Postgre...
Data access layer that abstracts all PostgreSQL queries against the users, organizations, user_role_...
Data access layer abstracting all PostgreSQL queries against the users, organizations, user_role_ass...
Data access layer for role assignments. Handles reads and writes to the user_roles and user_role_ass...
Data access layer for reading role definitions and reading/writing user role assignments. Provides t...
Data access layer that performs batched database queries for bulk user operations. Handles multi-row...
Data access layer encapsulating all read and write operations on the activity_approvals table and th...
Data access layer managing activity approval records and review queue queries. Handles status transi...
Data access layer for activity flag state, persisted as a status field and flag_reason column on the...
Data access layer managing all database interactions for expense approvals, expense claims, receipts...
Data access layer managing queries and mutations against the expense_approvals, expenses, expense_re...
Data access layer for the auto_approval_rules table, providing typed query methods used by both the ...
Data access layer for the auto_approval_rules table, handling persistence of rule configurations per...
Data access layer for reimbursement records, encapsulating all PostgreSQL queries including CTE-base...
Data access layer encapsulating PostgreSQL queries against the reimbursements, expenses, expense_app...
Data access layer that executes optimized PostgreSQL queries for activity aggregation, leveraging in...
Data access layer for team report queries against the PostgreSQL database. Provides optimized read q...
Data access layer for persisting and retrieving Bufdir export records, including export metadata, fi...
Stores and retrieves the versioned JSON configuration that defines how internal Meander fields map t...
Data access layer for the bufdir_reports table. Manages persistence of generated export records incl...
Data access layer for the report_configs PostgreSQL table. Provides parameterized queries for all CR...
Repository managing the report_configs table where saved report specifications are persisted. Stores...
Maintains the allowlist of queryable fields with metadata including display name, data type, source ...
Data access layer for the organization_settings and organizations tables, encapsulating all SQL quer...
Data access layer for organization settings persistence in PostgreSQL. Manages the organization_sett...
Flutter Riverpod provider that loads the organization terminology map from the session bootstrap pay...
Data access layer that reads and writes the JSONB terminology map field within the organization_sett...
Data access layer for reading and persisting terminology overrides in the organization_settings tabl...
Data access layer for the feature_flags PostgreSQL table. Handles CRUD operations for per-organizati...
Data access layer for the feature_flags table in PostgreSQL. Handles persistence of per-organization...
Data access layer implementing the PostgreSQL closure table pattern for the organizations table. Pro...
Data access layer managing the organization hierarchy closure table in PostgreSQL. Handles CRUD oper...
Manages the lifecycle of PostgreSQL materialized views used for aggregate reporting across the organ...
Data access layer providing all CRUD operations against the user_local_associations junction table. ...
Data access layer for the user_local_associations junction table. Manages persistence of user-to-ass...
Repository for persisting per-organization external portal configuration, including encrypted API cr...
Data persistence layer for storing portal integration configuration, sync operation history, retry q...
Append-only store for all sync operation outcomes. Each record captures entity type, direction, time...
Securely stores encrypted API credentials (OAuth2 tokens, API keys) for each organization's accounti...
Secure storage layer for per-organisation accounting system credentials. Encrypts API keys and OAuth...
Data access layer for persisting and querying accounting export records, account code mappings, and ...
Persists export batch records including status, timestamps, line item counts, external reference IDs...
Data access layer that executes parameterized PostgreSQL queries over the audit_logs and sessions ta...
Data access layer that executes PostgreSQL aggregation queries over audit_logs and sessions tables a...
Data access layer for the audit_logs table, enforcing append-only semantics with no UPDATE or DELETE...
Data access layer for the audit_logs table providing append-only insert operations and efficient cur...
Data access layer for the sessions and refresh_tokens tables. Handles CRUD operations for session re...
Data access layer managing the sessions and refresh_tokens tables in PostgreSQL. Provides CRUD opera...
Static or environment-driven data store holding hardcoded pricing tier definitions, comparison row l...
Data access layer responsible for all read and write operations on the demo_bookings and leads table...
Data access layer for demo bookings and leads in PostgreSQL. Provides repository methods for creatin...
localStorage-backed data layer that persists visitor cookie consent choices across page loads. Store...
Infrastructure Components
Flutter infrastructure component wrapping `flutter_secure_storage` to provide a unified API over iOS...
Platform-specific infrastructure adapter that wraps iOS Keychain and Android Keystore APIs via flutt...
Abstracts the integration with a certified Norwegian BankID broker (Criipto or BankID Norge) behind ...
Abstracts communication with the certified Norwegian BankID broker (e.g., Criipto or BankID Norge) b...
Low-level adapter that implements the shared OAuth provider interface for Vipps Login. Encapsulates ...
Infrastructure adapter encapsulating all HTTP communication with the Vipps Login API. Implements the...
Wraps the Flutter local_auth plugin to provide a stable, testable interface for biometric and device...
Shared utility used by both the mobile app and the Next.js backend to decode and validate JWT access...
Runtime adapter that resolves dynamic organization-specific field labels and terminology for the pro...
Platform-level secure storage adapter wrapping iOS Keychain and Android Keystore APIs via the Flutte...
Wraps Flutter's share_plus package to provide a consistent interface for invoking the native iOS and...
Shared HTTP client for all authentication-related REST API calls including login, token refresh, and...
Thin abstraction layer over Flutter's credential_manager (Android) and Sign in with Apple passkeys (...
Infrastructure adapter that abstracts platform-specific FIDO2 authenticator APIs. On iOS it interfac...
Shared HTTP client responsible for all communication between the Flutter mobile app and the Next.js ...
Lightweight instrumentation component that records wizard funnel events (step reached, step abandone...
Platform abstraction layer that encapsulates the differences between iOS EventKit and Android Calend...
Platform abstraction layer that normalizes differences between iOS EventKit and Android CalendarProv...
Handles runtime permission requests for calendar access on both iOS and Android. Presents platform-a...
Handles OAuth 2.0 authorization flow for Google Calendar integration, separate from the device-nativ...
Handles runtime microphone permission requests on iOS (NSMicrophoneUsageDescription) and Android (RE...
Abstracts the platform-specific speech recognition engines behind a single Dart interface, delegatin...
Abstracts platform-specific speech recognition engines behind a unified interface. Delegates to iOS ...
Thin HTTP client wrapper for the proxy activity registration endpoint. Handles POST /api/v1/activiti...
Backend infrastructure component that executes the atomic database transaction, creating one activit...
Infrastructure layer providing WCAG 2.2 AA accessibility annotations, semantic labels, and screen re...
Thin HTTP client adapter responsible for serializing and dispatching registration requests to the RE...
Backend facade that routes expense export requests to provider-specific adapters (Xledger for Blinde...
Flutter platform adapter wrapping the image_picker package, providing a unified interface for camera...
S3-compatible object storage adapter for securely persisting receipt images and PDFs on the backend....
Backend object storage adapter for securely persisting receipt images. Stores uploaded files in S3-c...
Low-level infrastructure adapter responsible for persisting and retrieving the expense type catalogu...
Backend content store adapter that manages versioned declaration text so it can be updated without a...
Infrastructure utility that manages cursor-based pagination state and request lifecycle for the cont...
Infrastructure adapter that coordinates the sync-on-reconnect flow for the notes feature. Listens fo...
Typed REST API client responsible for calling the stats aggregation endpoint on the Next.js backend....
Utility service that transforms team stats data payloads into export-ready formats (CSV and PDF stru...
Server-side PDF generation adapter using Puppeteer or a PDF rendering service to produce a submissio...
Abstracts the Flutter platform-specific file delivery mechanisms. On download, uses the `path_provid...
Server-side infrastructure adapter that triggers PDF generation for a given Bufdir report. Calls the...
Defines the pluggable adapter interface that all accounting system integrations must implement. Enfo...
Pluggable adapter layer implementing a standard interface for each supported accounting system. Each...
Stores and retrieves encrypted accounting system credentials on a per-organization basis. Encrypts A...
Infrastructure adapter that abstracts the encryption key management strategy and secure storage back...
Abstracts the encryption provider and device secure storage (Keychain on iOS, Keystore on Android) s...
Infrastructure adapter that subscribes to assignment status-change events from the backend event bus...
Infrastructure adapter that abstracts provider-specific push notification APIs behind a unified Noti...
Abstracts platform-specific push notification delivery behind a unified NotificationGateway interfac...
Vendor-agnostic adapter that wraps a transactional email SDK (e.g., SendGrid, Resend) and an SMS gat...
Abstraction layer wrapping a transactional email SDK (e.g., SendGrid, Resend) and an SMS gateway SDK...
Vercel Cron infrastructure that triggers the Notification Rule Engine on a configured schedule. Mana...
Cron-based scheduler that triggers the Notification Rule Engine at configured intervals. Runs as a V...
Intercepts incoming deep links on app install or first open using the app_links Flutter package. Ext...
Infrastructure adapter that configures and manages deep link interception using the app_links packag...
Thin wrapper around the share_plus Flutter package that triggers the native OS share sheet. Abstract...
Bridges course registration events to the shared push notification infrastructure. Schedules registr...
Wraps the iOS and Android native share sheet APIs to allow peer mentors to share their certificate a...
Infrastructure utility that loads and manages Lottie or Rive animation files used in the Wrapped sli...
Infrastructure adapter wrapping Rive or Lottie animation libraries for the Wrapped summary experienc...
Platform adapter wrapping Flutter's share_plus package for sharing annual summary content. Handles i...
Thin adapter wrapping Flutter's share_plus package to provide a testable, mockable interface for tri...
Infrastructure adapter that manages serving and caching of SVG badge assets from the backend CDN. Pr...
Infrastructure utility that captures a Flutter widget subtree as a bitmap (PNG) or renders it into a...
Infrastructure component that renders the calculated impact results into a shareable visual summary ...
Lightweight HTTP adapter that fetches the latest versioned talking card JSON from a backend endpoint...
Integrates with platform-specific accessibility testing tools (Flutter SemanticsChecker, Android Acc...
Thin platform-channel wrapper that queries the host OS for active assistive technology state (VoiceO...
Infrastructure adapter that bridges Flutter's built-in SemanticsChecker test utilities and the proje...
Low-level Flutter accessibility adapter that provides an abstraction over the Flutter Semantics fram...
Loads and parses ARB (Application Resource Bundle) files from the Flutter assets bundle at runtime, ...
Thin REST API client adapter scoped to the dashboard endpoints, wrapping the shared REST API client ...
Thin HTTP client wrapper responsible for syncing user preference changes that have a backend represe...
Wraps the flutter_url_launcher and flutter_inappwebview packages behind a unified interface. Handles...
Reusable Flutter widget that renders a markdown string as formatted rich text using a lightweight pa...
Infrastructure component that monitors the device's network connectivity status using platform APIs ...
Wraps the connectivity_plus Flutter package to provide a reactive stream of network availability eve...
Registers and manages background task execution using the flutter_workmanager plugin, which wraps BG...
Manages platform-specific background execution scheduling using flutter_workmanager, which wraps iOS...
Provides a unified interface over the flutter_workmanager plugin, abstracting iOS BGTaskScheduler an...
Next.js API route (`/api/v1/analytics/kpis`) that handles incoming KPI data requests, authenticates ...
Database migration that defines the PostgreSQL indexes required for performant cursor-based paginati...
Infrastructure component responsible for generating time-limited invitation tokens and dispatching i...
Infrastructure utility that implements optimistic concurrency control for the approval workflow, pre...
Scheduled or event-triggered infrastructure job that invokes the Duplicate Detection Service on acti...
Infrastructure adapter that generates short-lived signed URLs for receipt images stored in the objec...
Infrastructure utility that writes structured audit log entries to the audit_logs table. Used by the...
Utility used by the Auto-Approval Rule Engine to verify that the auto_approval_rules feature flag is...
Next.js API route handler at `/api/v1/reimbursements/export` that streams reimbursement data as a do...
In-memory or edge-cache layer that stores results of expensive aggregation queries with short TTLs. ...
Infrastructure component that manages the configurable Bufdir reporting format specification stored ...
Infrastructure utility that serializes mapped Bufdir data into downloadable XLSX or CSV file formats...
Enforces query complexity limits to protect PostgreSQL performance under concurrent reporting load. ...
Middleware that enforces query complexity limits before execution, including maximum number of joins...
Infrastructure adapter handling multipart form data uploads of organization logo images to object st...
Central constants file shared across both the admin portal and the mobile app that defines all valid...
Redis caching layer for feature flag resolution. Stores per-organization feature maps with a 60-seco...
Low-level PostgreSQL adapter that encapsulates all SQL for the closure table pattern on the organiza...
Database migration scripts that create the closure table schema for organization hierarchy, set up m...
Extracts and validates the organization scope claim from the admin's JWT at request time, determinin...
Infrastructure component that records all membership change events to the audit_logs table. Captures...
Infrastructure adapter that translates between the ExternalPortalService's canonical data model and ...
Infrastructure adapter implementing the abstract portal interface for the HLF Dynamics platform. Han...
Durable job queue for failed sync operations. Implements exponential back-off with a configurable ma...
Pluggable adapter interface that abstracts protocol and schema differences between multiple accounti...
Pluggable adapter layer abstracting protocol and schema differences between accounting backends. Pro...
In-process or Redis-backed cache layer that stores aggregated security metric results keyed by organ...
Handles streaming serialization of audit log entries to CSV and JSON formats for download. Processes...
Short-lived storage for revoked JWT access token JTIs to ensure immediate revocation takes effect wi...
Lightweight infrastructure component that integrates web analytics (e.g., Google Analytics or Plausi...
Integrates web analytics (Google Analytics or Plausible) to measure visitor behavior, conversion rat...
Provides page-level SEO configuration for the Features Page including meta tags, Open Graph properti...
Lightweight infrastructure component that fires analytics events for user interactions on the sales ...
Tracks user interactions with the impact calculator to measure engagement and conversion funnel effe...
Lightweight analytics instrumentation for tracking user engagement on sales website pages. Fires pag...
Thin adapter wrapping the external email service provider SDK to send transactional confirmation ema...
Zod schema definitions shared between the client-side React Hook Form integration and the server-sid...
Edge middleware component that tracks and limits the number of form submission requests per IP addre...
Abstracts integration with a transactional email provider (Resend or SendGrid) for sending branded H...
Infrastructure adapter that abstracts the transactional email provider (e.g., Resend or SendGrid) be...
Loads and parses privacy policy content from MDX or a lightweight CMS source, enabling the legal tea...
MDX or lightweight CMS adapter that supplies versioned legal content to the Terms of Service page wi...
Manages pre-rendered PDF files for legal documents stored in object storage, providing signed or pub...
Infrastructure utility that manages deferred loading of third-party analytics and marketing scripts ...
Shared layout component used across all legal and policy pages on the sales website (Privacy Policy,...
Shared Components
Secure on-device storage adapter for JWT access and refresh tokens using flutter_secure_storage. On ...
Platform-specific infrastructure adapter that wraps iOS Keychain and Android Keystore APIs via flutt...
Service layer responsible for all authentication REST API communication including login, token refre...
Shared validation service enforcing minimum password security standards on both client (mobile) and ...
Provides secure persistent storage for JWT access tokens and refresh tokens on the mobile device usi...
Manages the full lifecycle of JWT access and refresh tokens using flutter_secure_storage, backed by ...
Manages the lifecycle of encrypted JWT refresh tokens stored in platform-secure storage (iOS Keychai...
Shared utility used by both the mobile app and the Next.js backend to decode and validate JWT access...
Next.js middleware that runs on every protected API route (`/api/v1/...`) to validate the JWT access...
A reusable Flutter widget wrapper that conditionally renders or hides child widgets based on the cur...
Runtime adapter that resolves dynamic organization-specific field labels and terminology for the pro...
Platform-level secure storage adapter wrapping iOS Keychain and Android Keystore APIs via the Flutte...
Shared HTTP client for all authentication-related REST API calls including login, token refresh, and...
Shared HTTP client responsible for all communication between the Flutter mobile app and the Next.js ...
Local data store managing persisted activity records on the device. Shared with the Simple Activity ...
Business logic service responsible for constructing and submitting activity payloads to the REST API...
Searchable dropdown or list picker widget that loads peer mentors within the coordinator's local ass...
Infrastructure layer providing WCAG 2.2 AA accessibility annotations, semantic labels, and screen re...
Reusable date and time selection widget used within the Event Creation Wizard steps for picking even...
Local SQLite data access object that persists the most recently fetched events page for offline-capa...
Low-level HTTP client wrapper that calls the events REST API endpoints, attaches JWT auth headers, s...
Business logic service responsible for fetching paginated events from the REST API, applying role-ba...
Thin HTTP client adapter responsible for serializing and dispatching registration requests to the RE...
Coordinator-only inline widget within the registration screen that allows selecting a contact or pee...
Backend facade that routes expense export requests to provider-specific adapters (Xledger for Blinde...
Manages chunked, resumable file uploads to the backend REST API, ensuring reliable delivery on poor ...
Mobile-side data store that caches the organisation's active expense type catalogue, including type ...
Backend service that manages the lifecycle of organisation-scoped expense type catalogues, including...
Riverpod-based state management store that holds the current contact list, search state, pagination ...
Business logic service that manages contact retrieval, search operations, and role-based access enfo...
Local data repository for contact records providing caching, optimistic state management, and synchr...
Local SQLite repository for submitted notes, shared between the Notes List and Note Editor features....
Shared speech-to-text service that delegates to the platform-specific STT Provider Adapter. Accepts ...
Reusable inline search widget that queries the contact store and returns a selected contact ID and d...
Server-side PDF generation adapter using Puppeteer or a PDF rendering service to produce a submissio...
Reusable Flutter widget for selecting the date range and organizational scope of a Bufdir report. Su...
Abstracts the Flutter platform-specific file delivery mechanisms. On download, uses the `path_provid...
Maintains pre-aggregated assignment completion counts per peer mentor per reporting period, eliminat...
Data access layer for the push_tokens table, managing the registration, refresh, and deregistration ...
Abstracts platform-specific push notification delivery behind a unified NotificationGateway interfac...
Persists a record of every dispatched notification, capturing rule ID, recipient user ID, delivery c...
Data component managing FCM/APNs device token lifecycle including registration, refresh, and deletio...
Data component responsible for managing FCM and APNs push token persistence. Handles token registrat...
Thin wrapper around the share_plus Flutter package that triggers the native OS share sheet. Abstract...
Thin adapter wrapping Flutter's share_plus package to provide a testable, mockable interface for tri...
Data access layer that reads organization-specific impact multipliers (hourly rates, cost equivalent...
Persists user-level accessibility overrides such as preferred text scale factor, high-contrast mode ...
Thin platform-channel wrapper that queries the host OS for active assistive technology state (VoiceO...
Manages focus traversal order, visible focus indicators, and keyboard shortcut bindings to ensure ev...
Central service governing all screen reader semantics across the mobile app. Provides utilities for ...
Centralizes semantic labelling logic for all interactive widgets to ensure VoiceOver (iOS) and TalkB...
Centralized design token system enforcing WCAG 2.2 AA constraints at the component level. Encapsulat...
A shared design token system that enforces WCAG 2.2 AA compliance at the component level. It encapsu...
Reusable focus ring overlay widget that renders a visible, high-contrast focus indicator around any ...
Low-level Flutter accessibility adapter that provides an abstraction over the Flutter Semantics fram...
Wraps Flutter's LocalizationsDelegate and the intl package to provide runtime locale resolution and ...
Wraps Flutter's LocalizationsDelegate and intl package to provide a runtime locale-switching API. It...
Wraps the flutter_url_launcher and flutter_inappwebview packages behind a unified interface. Handles...
Reusable Flutter widget that renders a markdown string as formatted rich text using a lightweight pa...
Device-local SQLite database managed via the drift (formerly Moor) or sqflite Flutter plugin. Stores...
Persistent queue stored in local SQLite that records all data mutations (creates, updates, deletes) ...
Wraps the connectivity_plus Flutter package to provide a reactive stream of network availability eve...
Implements the repository pattern abstracting data source selection from feature-level BLoC/Riverpod...
Shared service that determines the data visibility scope for the authenticated user based on their r...
Shared service that writes structured audit log entries for all approval workflow actions, capturing...
Reusable badge/chip widget that renders the approval status of an activity (pending_review, approved...
Infrastructure adapter that generates short-lived signed URLs for receipt images stored in the objec...
Shared service that persists structured audit trail entries for all approval actions in the system. ...
Inline image viewer for receipt photos attached to expense claims. Supports thumbnail display within...
Infrastructure utility that writes structured audit log entries to the audit_logs table. Used by the...
Utility used by the Auto-Approval Rule Engine to verify that the auto_approval_rules feature flag is...
Data access layer that executes optimized PostgreSQL queries for activity aggregation, leveraging in...
Service that enforces data scoping rules for report queries based on the authenticated user's role a...
UI component providing controls for filtering report data by date range, local association, activity...
Records structured audit log entries for every Bufdir export action. Captures the exporting user's I...
Generates downloadable CSV and XLSX files from report result sets. Streams large result sets to avoi...
Generates downloadable CSV and XLSX files from report result sets. Handles column header formatting,...
Infrastructure adapter handling multipart form data uploads of organization logo images to object st...
Flutter Riverpod provider that loads the organization terminology map from the session bootstrap pay...
Central constants file shared across both the admin portal and the mobile app that defines all valid...
Next.js server-side context provider injected into the admin portal layout that resolves all UI labe...
Backend service responsible for reading, writing, and validating organization terminology maps store...
Backend service that manages the terminology override map for each organization. Handles CRUD operat...
Redis caching layer for feature flag resolution. Stores per-organization feature maps with a 60-seco...
Loads the static feature registry file that defines all known feature keys, their default states, hu...
Extracts and validates the organization scope claim from the admin's JWT at request time, determinin...
Resolves which nodes in the organization tree the requesting admin is authorized to view or modify. ...
Resolves the effective organization scope for a given user based on their JWT claims and role assign...
Infrastructure component that records all membership change events to the audit_logs table. Captures...
Core backend service responsible for all business logic around user-to-local-association membership ...
Data access layer that executes parameterized PostgreSQL queries over the audit_logs and sessions ta...
Centralized service responsible for emitting, querying, and exporting audit log entries. Inserts app...
Short-lived storage for revoked JWT access token JTIs to ensure immediate revocation takes effect wi...
Integrates web analytics (Google Analytics or Plausible) to measure visitor behavior, conversion rat...
Provides page-level SEO configuration for the Features Page including meta tags, Open Graph properti...
Lightweight infrastructure component that fires analytics events for user interactions on the sales ...
Tracks user interactions with the impact calculator to measure engagement and conversion funnel effe...
Lightweight analytics instrumentation for tracking user engagement on sales website pages. Fires pag...
Infrastructure adapter that abstracts the transactional email provider (e.g., Resend or SendGrid) be...
MDX or lightweight CMS adapter that supplies versioned legal content to the Terms of Service page wi...
Manages pre-rendered PDF files for legal documents stored in object storage, providing signed or pub...
Loads and provides DPA article content from MDX source or CMS, enabling legal team updates without c...
Infrastructure utility that manages deferred loading of third-party analytics and marketing scripts ...
Central service managing the full consent lifecycle on the sales website. Reads and writes consent s...
Lightweight client-side service managing consent state persistence, providing a Consent API that emb...
Shared layout component used across all legal and policy pages on the sales website (Privacy Policy,...