Components
429 components across 4 layers
UI Components
Email and password sign-in form rendered in both the mobile app and admin portal. Displays accessibl...
Shown when a returning BankID identity does not automatically match an existing Meander account. Pre...
Primary mobile screen that initiates and manages the BankID authentication flow. Displays loading an...
Full-screen entry point for the Vipps OpenID Connect login flow on mobile. Displays the Vipps-brande...
Flutter widget that triggers the platform biometric authentication dialog using the local_auth packa...
Static Flutter widget displayed when an authenticated user navigates to a surface outside their assi...
Form screen for editing personal profile data including name, contact details, profile photo, and la...
Read-only view of the user's personal information including name, contact details, profile photo, la...
Hamburger menu widget that renders the user's active organization memberships and enables single-tap...
Lightweight Next.js static route rendered under the sales or admin domain that displays the shared p...
Mobile screen that presents a preview of the shareable peer mentor profile card and provides platfor...
Bottom-sheet modal that guides the user through the FIDO2 registration ceremony, collecting an optio...
Lists all registered passkeys for the current user, showing credential name, device name, creation d...
A minimal, accessible form screen for recording a peer mentor activity. Pre-fills today's date and a...
A prominent floating action button surfaced on both Peer Mentor and Coordinator home screens, provid...
Multi-step wizard container screen orchestrating the full activity registration flow via Flutter Nav...
Step widget for selecting the activity type from the organisation's configured list. Types are rende...
Optional final step for attaching supporting documents such as invitations or screenshots required f...
Step widget for selecting the contact associated with the activity. Renders a searchable, paginated ...
Step widget covering date, start time, and activity duration. Defaults to today's date and a configu...
Accessible step progress widget displayed in the wizard chrome. Communicates current step index and ...
Step widget for entering a free-text narrative summary of the activity. Integrates with the speech-t...
Dedicated screen where users grant calendar permission and configure sync preferences. Displays conn...
Reusable Flutter widget that attaches to any opt-in TextFormField as a microphone icon button. Manag...
Animated overlay widget that renders inside the Speech Input Widget to signal active listening state...
Searchable multi-select widget that fetches and renders the coordinator's managed peer mentor list f...
Full proxy registration screen that prepends a peer-mentor selection step to the standard activity w...
Main coordinator screen for bulk activity registration. Combines a shared-fields activity form (type...
Multi-step guided wizard for creating events in the Meander mobile app. Presents discrete input step...
Read-only detail view for a single event record fetched by ID. Displays the full event record includ...
Scrollable, paginated list of upcoming and past events scoped to the user's organization. Displays e...
Reusable modal widget that lets coordinators select a contact from their organization roster for pro...
Stateful BLoC widget embedded in the Event Detail Screen that manages participant registration flow....
Expense Form Screen
Flutter widget integrating device camera and photo library for capturing receipt images within the e...
Inline progress indicator rendered inside the expense form during active receipt upload. Displays pe...
Flutter widget that renders the organization-specific expense type list dynamically from backend con...
Declaration Form Screen
Inline search input built on the shared AppTextField widget that filters the contact list in real ti...
Main screen displaying a scrollable, role-filtered list of contacts assigned to the current user. Us...
Full-screen view displaying all stored information for an individual contact, including personal det...
Inline edit mode rendered within the Contact Detail Screen, toggled via a local boolean state flag r...
Displays all caregiver and next-of-kin records linked to a contact. Rendered inline within the conta...
Modal bottom sheet form for creating and editing caregiver records. Uses a lightweight subset of the...
Riverpod-managed Flutter screen displaying all notes for the current user. Shows creation date, asso...
Inline widget embedded in the Note Editor Screen that renders the list of attachments for the curren...
Flutter screen for creating and editing individual notes. Provides a multi-line AppTextField for fre...
Full-screen Flutter view displaying a peer mentor's personal activity statistics: total activities, ...
Reusable Flutter widget wrapping fl_chart (or charts_flutter) that renders a bar or line chart for t...
Drill-down screen displaying an individual peer mentor's contribution breakdown within the coordinat...
Inline filter controls embedded in the team report screen allowing coordinators to scope the report ...
Main coordinator report screen showing aggregate activity totals across all peer mentors in the coor...
Next.js admin portal page for Organization Admins and Global Admins to generate and review Bufdir re...
Flutter mobile screen for coordinators to initiate, preview, and review Bufdir government funding re...
Reusable Flutter widget for selecting the Bufdir reporting period (quarterly or annual) with date ra...
Lightweight bottom-sheet or dropdown widget that lets users choose the export format (PDF, CSV, XML)...
Read-only list widget embedded in the Bufdir report screen that surfaces the last N export log entri...
Prominent export trigger widget displayed on the Bufdir report screen in both the mobile app and adm...
Presents decrypted sensitive assignment content (name, address, medical summary) after an explicit a...
Displays the peer mentor's inbox of incoming assignments showing sender, date, and status without re...
Coordinator-facing Flutter widget displaying each peer mentor's current assignment count, distance t...
Unread count badge overlay rendered on the Notifications tab in the bottom navigation bar. Subscribe...
Full-screen inbox displaying paginated notification history for the authenticated user, with unread/...
Full-screen settings view allowing users to toggle notification categories per channel (push, email,...
Accessible time-range picker for quiet hours start and end, displaying values in the device locale w...
Primary screen for generating and distributing personalized invite links and QR codes. Displays the ...
Reusable Flutter widget that renders a QR code image from a URL string using the qr_flutter package ...
Reusable StatelessWidget rendering a single row in the recruiter leaderboard. Shows peer mentor disp...
Coordinator-facing Flutter StatelessWidget that displays referral funnel metrics: invitations sent, ...
Paginated browsable list of available training courses with dates, availability, and prerequisites. ...
Multi-step enrollment flow following the Activity Wizard pattern. Collects enrollment details, displ...
Inline banner widget that surfaces an expiry warning when the certificate validity window is within ...
Renders the peer mentor's digital certificate as a styled card showing mentor name, issuing organiza...
Read-heavy screen displaying workshop session metadata, participant roster, and session schedule. Fe...
Embeddable note-taking widget scoped to a workshop session context rather than a user context. Store...
Animated year-in-review screen sequence that presents the peer mentor's annual impact data using pro...
Captures a static image snapshot of the peer mentor's key stats using Flutter's RepaintBoundary widg...
Flutter screen displaying the full badge catalogue with earned and locked states. Computes lock/unlo...
Flutter screen that presents the peer mentor's accumulated impact as animated metric cards. Calls th...
Reusable Flutter widget that displays a single impact metric (label, numeric value, unit, formula to...
Small status banner displayed at the top of the Advantage Calculator Screen when the current impact ...
Full-screen card deck display for peer mentors, presenting conversation-starter cards organized by t...
A library of reusable Flutter widgets that wrap primitives with mandatory semantic labels, ARIA-equi...
A Flutter-native design token system that encodes WCAG 2.2 AA contrast ratios, minimum touch target ...
Accessible modal overlay that intercepts screen reader focus on annotated sensitive fields and prese...
Flutter Semantics wrapper widget applied at the data-binding layer to any widget rendering an annota...
Settings widget that lists available locales and conditionally surfaces Northern Sami only when the ...
Persistent five-tab bottom navigation bar (Home, Contacts, Add, Work, Notifications) that anchors th...
Entry screen for Coordinator role users, assembled at runtime from the enabled module set. Surfaces ...
Entry screen for Peer Mentor role users, assembled at runtime from the enabled module set via the Mo...
Centralized settings screen accessible from the hamburger menu, rendered as a declarative list-item ...
Reusable list-item widget rendering a single external resource link with icon, display name, and des...
Flutter screen displaying a curated, org-configurable catalogue of external URLs grouped by category...
Minimal support contact screen presenting email, phone, and in-app request form options. Always acce...
Renders the platform's privacy policy as formatted, scrollable text inside the mobile app. Applies p...
Flutter screen that fetches and displays the versioned accessibility statement content from the back...
Displays frequently asked questions organized into expandable category sections using ExpansionTile ...
Settings screen panel for sync diagnostics that exposes detailed sync health information including p...
Home screen status bar widget that surfaces real-time sync state to the user, including pending muta...
The admin portal home screen displaying real-time KPI stat cards for coordinators and org admins. Re...
Reusable stat card component rendering a single KPI metric with its label, value, and trend indicato...
Infinite-scroll list rendered in the admin portal displaying a chronological stream of recent organi...
Combined view and edit page for a single user, displaying contact details, organization memberships,...
Modal form for inviting a new user by email address. Collects the invitee's email, target organizati...
Server-side rendered admin page displaying a paginated, filterable list of users within the requesti...
Role Assignment Widget
Contextual toolbar that appears on the Users List Page when one or more rows are selected. Renders s...
Modal dialog shown before executing bulk deactivation. Displays the count of affected users and a no...
Checkbox controls embedded in the Users List Page table that manage three selection states: individu...
Expandable side panel rendered alongside the review queue that displays the full record of a selecte...
Server-side rendered Next.js page providing coordinators and org admins with a paginated queue of pe...
A compact inline widget rendered on individual activity rows and detail views in the admin portal, a...
An admin portal widget embedded on the Activity Review page that surfaces potential duplicate activi...
Server-side-rendered Next.js page providing coordinators and org admins with a paginated, filterable...
Slide-over or modal panel rendered within the Expense Approval Page that displays the full detail of...
Next.js server component presenting threshold rules as structured form inputs for organization admin...
Read-only dry-run panel embedded within the Auto-Approval Config Widget that executes a historical b...
Widget embedded in the Reimbursement Dashboard Page that allows admins to narrow aggregate metrics b...
Next.js server component delivering aggregate expense metrics to organization admins. Displays KPI c...
Responsive paginated table component rendering per-peer-mentor activity rows within the Team Reports...
Composite filter control bar rendered above the reports table, providing date range picker, activity...
Row of summary stat cards displayed at the top of the Team Reports page showing key aggregate metric...
Server-side rendered Next.js page providing coordinators and organization admins with aggregated act...
Primary action button in the Admin Web Portal that triggers the Bufdir export pipeline with a single...
Tabular view in the Reporting & Export section listing all past Bufdir exports for the organization....
Modal overlay that appears after export is triggered and polls the export_logs table via the status ...
Admin Web Portal page providing the full report builder interface: dimension pickers (activity type,...
Reusable dynamic table widget that renders paginated JSON report results with sortable column header...
Primary admin portal page for managing an organization's operational configuration. Renders structur...
Admin portal form that lists every overrideable label key alongside its current organization value a...
Admin portal page listing all toggleable platform areas for an organization, showing current enabled...
Full-page admin interface for viewing and managing the multi-level organization tree (national, regi...
Admin web portal page for managing user memberships within a selected organizational unit. Displays ...
Admin page for configuring per-organization external portal connections. Exposes fields for OAuth 2....
Embedded widget displayed within the integration config page and the admin security dashboard, showi...
Admin UI widget for configuring per-organization accounting system connections. Allows administrator...
Server-side rendered Next.js page providing organization administrators with a real-time overview of...
Expandable inline panel or slide-over drawer that shows the full detail of a single audit log entry....
Reusable filter control bar for the audit log page. Renders date range picker, event type multi-sele...
Paginated, server-side-rendered admin portal page displaying the immutable audit trail. Provides fil...
Next.js SSR admin page listing all active sessions for users within the administrator's organization...
A guided multi-step qualification flow that helps prospective organizations assess whether Meander m...
The primary marketing entry point for the Meander platform, presenting the value proposition, key ca...
Static Next.js page presenting Meander platform capabilities organized by functional area. Each area...
Companion section covering onboarding process, support channels, SLA basics, and available training ...
Main interactive calculator page on the sales website allowing prospective organizations to input pa...
Accessible form component with labeled numeric inputs for organization size, active mentor count, av...
Summary card component displaying headline ROI metrics computed from user inputs, including projecte...
Export action component that triggers the browser print dialog with print-optimized styles applied t...
Two-column comparison table rendered as a React component in the Next.js sales website. Displays man...
Server-rendered Next.js page presenting the demo booking form to prospective organizations. Collects...
Server-side rendered Next.js route displayed immediately after a successful demo booking submission....
Static Next.js route at /privacy-policy rendering the full GDPR-compliant privacy policy for the Mea...
Static Next.js route at /terms-of-service rendering the full contractual terms between Norse Digital...
Static Next.js page at /data-processing-agreement rendering the full GDPR Article 28 Data Processing...
Site-wide consent banner displayed on first visit to the sales website. Blocks non-essential cookies...
Static Next.js page at /cookie-policy that discloses all cookies and tracking technologies used on t...
Static Next.js page at /sla presenting the full Service Level Agreement document. Renders uptime com...
Service Components
Core authentication service that handles email and password credential validation, JWT access token ...
Server-side handler for the BankID OIDC flow via a certified Norwegian broker (Criipto or Signicat)....
Implements the Vipps Login API (OpenID Connect) provider on the Authentication Module backend. Expos...
Orchestrates the full biometric unlock flow: checks device capability, retrieves the stored refresh ...
Platform-native secure storage adapter that persists and retrieves the refresh token using Flutter S...
Mobile-side utility that decodes the role claim from the access token at session start and passes it...
Backend middleware that reads the role claim array from the validated JWT access token on every prot...
Orchestrates all read and write operations for user profile data between the remote REST API and the...
Manages the stream of OrganizationMembership objects fetched at login and cached in Drift. Orchestra...
Flutter infrastructure service using the app_links package that listens for incoming deep links matc...
Backend service that generates JWT-signed snapshot URLs for shareable peer mentor profile cards via ...
Orchestrates the full FIDO2 WebAuthn registration and assertion ceremonies by coordinating the WebAu...
Flutter platform channel that abstracts native WebAuthn authenticator APIs on iOS (ASAuthorizationCo...
Core business logic service for activity registration. Handles activity CRUD operations, fetches and...
Service responsible for uploading activity attachment files to the backend via multipart POST. In of...
Riverpod Notifier that owns the complete wizard session state including current step index, per-step...
Handles all interaction with the device calendar via the Flutter device_calendar plugin, abstracting...
Utility service responsible for requesting, caching, and re-checking microphone permission on iOS an...
Flutter service that wraps the speech_to_text plugin, abstracting iOS SFSpeechRecognizer and Android...
Backend-authoritative service that validates coordinator role claims, retrieves the coordinator's ma...
Backend API handler that accepts a batch registration payload of shared activity fields plus an arra...
Handles all business logic for event creation including input validation, offline-first local persis...
Generic BLoC-driven multi-step wizard controller managing step state, validation gating, and the sin...
Backend service handling participant registration and deregistration for events. Enforces same-organ...
Expense Service
Expense Step Controller
Client-side Dart service that compresses captured or selected images to a maximum of 1 MB before upl...
Mobile service that enqueues compressed receipt image bytes into the Drift mutation outbox when the ...
Backend REST service exposing a multipart/form-data endpoint for receipt image upload. Validates fil...
Backend REST service that exposes the active expense type configuration for the authenticated user's...
Declaration Service
Riverpod provider exposing a reactive combined state of the full contact list and the current search...
Riverpod provider that subscribes to a reactive Drift query for a single contact record and its rela...
Domain service orchestrating the optimistic mutation pattern for contact edits. Immediately writes t...
Handles all business logic and CRUD operations for caregiver and next-of-kin records. Provides a rea...
Riverpod provider encapsulating all business logic for the notes list. Queries the local Drift DAO w...
Service responsible for picking files or photos from the device using platform file/camera pickers, ...
Riverpod StateNotifier that listens to note body changes in the editor and persists drafts to the lo...
Riverpod AsyncNotifierProvider that queries the local Drift database to aggregate the current user's...
Riverpod FutureProvider-based service fetching and caching coordinator team report data from the RES...
Core backend service that orchestrates Bufdir report generation by querying PostgreSQL for activity ...
Specialized backend service handling the complex data aggregation logic required for Bufdir report c...
Admin-portal-only service that enables Global Admins to trigger exports across multiple organization...
Core backend service that receives a validated Bufdir report payload and transforms it into the requ...
Flutter-side service that receives the export binary from the backend, writes it to the device downl...
Implements the connector interface pattern for pushing approved expense batches to external accounti...
Manages the registry of available accounting connector modules and their per-organization configurat...
Asynchronous background service that queues approved expense claims and dispatches them to the Accou...
Manages the full lifecycle of encrypted assignment dispatch: coordinators create and send assignment...
Scheduled server-side job that identifies assignments exceeding the configurable age threshold (defa...
Implements asymmetric end-to-end encryption using the peer mentor's public/private keypair, with the...
Admin-facing service for reading and writing organization-specific threshold rule sets stored as JSO...
Backend service responsible for evaluating threshold rules against confirmed-read assignment counts,...
Flutter-side service managing the complete lifecycle of FCM and APNs device tokens. Registers tokens...
Flutter-side handler for incoming FCM messages across all app lifecycle states - foreground, backgro...
Backend Next.js service that dispatches push notifications to user devices via the FCM HTTP v1 API. ...
Prevents duplicate message sends caused by upstream retry logic by generating idempotency keys per o...
Renders versioned server-side HTML email templates by injecting dynamic payload data and per-organiz...
Orchestrates all outbound email and SMS messages, routing transactional notification events to the c...
Handles outbound SMS dispatch via a Norwegian-compliant provider by normalizing recipient phone numb...
Manages opt-out requests for marketing-adjacent emails in compliance with Norwegian Markedsføringslo...
Scenario Dispatch Router
Scenario Rules Service
Manages reading and writing user notification preferences against both the local Drift cache and the...
Handles Flutter deep link routing for both cold-start and warm-start app launch scenarios so the ref...
Generates short, signed invite URLs with an embedded referrer token and configurable expiry window b...
Backend service exposing a paginated REST endpoint that aggregates referral data from the referrals ...
Riverpod AsyncNotifier on the mobile client that manages fetching and caching of recruitment analyti...
Business logic layer for course browsing and enrollment lifecycle. Handles paginated course fetching...
Backend service exposing the admin portal endpoints for manual certificate lifecycle management. Org...
Server-side scheduled job that queries certificates approaching expiry within the configurable warni...
Handles all client-side certificate operations including fetching the current user's certificate, ca...
Business logic layer for career workshop lifecycle management. Handles participant roster operations...
Server-side aggregation service that computes a peer mentor's annual impact metrics for a trailing 1...
Backend rule engine that evaluates badge trigger conditions as a post-save hook whenever an activity...
Service responsible for reading, writing, and caching the organization-level calculation model param...
Flutter-side service that persists the most recently received ImpactResult to the local Drift databa...
Backend service that receives an activity-summary payload for a user and returns a structured impact...
Handles fetching, versioning, and offline caching of talking card content from the backend. Manages ...
A service that collects and surfaces accessibility compliance status across screens, providing struc...
Manages the registry of field-level sensitivity annotations and per-screen warning behaviour configu...
Core i18n service that registers Northern Sami ARB files with Flutter's flutter_localizations and in...
Riverpod-based service that parses the bootstrap API response to extract the tenant's enabled module...
Handles all reads and writes for user preferences, persisting to the backend REST API for cross-devi...
Backend service exposing REST endpoints for managing and serving the org-configurable external link ...
Flutter-side service responsible for fetching the link catalogue from the backend, persisting result...
POSTs support requests to the backend endpoint, attaching device metadata (platform, OS version, app...
Fetches the privacy policy document from a versioned backend endpoint and caches it in the local Dri...
Fetches versioned static content (accessibility statement, privacy policy) from a backend endpoint a...
Fetches structured FAQ content (id, category, question, answer) from the backend public endpoint and...
Resolves conflicts when the same record was mutated both offline and on the server. Applies entity-s...
Manages the lifecycle of client-generated temporary UUIDs (v4) used for offline-created entities. On...
Applies writes immediately to the local Drift store so the UI remains responsive without waiting for...
Wraps the connectivity_plus package to expose a reactive stream of network state changes. Subscribes...
Implements truncated exponential backoff with jitter (delay = min(base * 2^attempt + jitter, max_del...
Core orchestrator that drains the mutation outbox in FIFO order by dispatching queued mutations thro...
Backend service that executes scoped aggregation queries against PostgreSQL to compute KPI values fo...
Server-side service that listens for writes to key tables (activities, expense_claims, assignments, ...
Service responsible for generating time-limited signed JWT invite tokens (48-hour expiry), persistin...
Core backend service implementing all user lifecycle operations for the admin portal REST API. Enfor...
Role Assignment Service
Server-side service that executes bulk operations against the users table inside database transactio...
Backend REST endpoint handler managing activity status transitions from pending to approved or retur...
Service layer responsible for fetching, paginating, and filtering the list of pending activity regis...
REST service that handles manual and automated flag lifecycle operations on activity records. Expose...
Server-side service that executes duplicate detection logic both synchronously on activity creation ...
Read-side backend service exposing a paginated, filterable REST endpoint that returns expense claims...
Backend service handling all approval and rejection mutations for expense claims. Wraps each decisio...
Backend service that persists auto-approval rule configuration per tenant and evaluates expense clai...
Streaming export service that writes filtered expense records directly to the HTTP response without ...
Backend service that computes and serves aggregate expense metrics by combining nightly-materialized...
Backend service implementing the /api/v1/reports/team endpoint. Aggregates activity data from the ac...
Utility service that constructs parameterized PostgreSQL aggregate queries for the team reports endp...
Server-side service that orchestrates the full Bufdir export pipeline. Receives the export job reque...
Frontend polling service used by the Export Progress Modal to track an in-flight export job. Calls t...
Backend service that receives a query descriptor from the client, validates every dimension and metr...
Shared service that serializes report result data into CSV or Excel format and streams the file to t...
Backend service handling all mutations to an organization's configuration via a dedicated settings A...
Flutter-side singleton service that resolves display labels for the authenticated user's organizatio...
Backend service managing CRUD operations for organization-scoped label overrides stored in the organ...
Backend service managing the enabled module set per organization tenant. Persists toggle changes, re...
Enforces level-scoped access control for all hierarchy management operations. Ensures that admins ca...
Backend service responsible for all CRUD operations on the organizational hierarchy. Uses recursive ...
Core backend service that manages the lifecycle of user-to-organization memberships. Enforces the si...
Generates and validates time-limited invitation tokens used to onboard peer mentors and coordinators...
Service responsible for encrypting, storing, and retrieving per-organization connection credentials ...
Backend connector service that ingests events and data from HLF's Dynamics-based external portal via...
Stateless service that translates between the external portal's data schema and Meander's internal u...
Pluggable adapter layer that routes approved expense claim payloads to the correct external accounti...
Internal event subscriber that listens for expense claim approval domain events emitted by the expen...
Evaluates security event streams against configurable per-tenant thresholds to identify patterns suc...
Core backend service querying audit_logs, sessions, and refresh_tokens tables to compute aggregated ...
Backend service that handles all read queries against the audit_logs table. Supports pagination, mul...
Core append-only backend utility that writes immutable audit log entries. Called by all authenticati...
Backend service that implements soft-deletion of refresh tokens by setting a revoked_at timestamp, c...
Lightweight client-side analytics integration using Plausible or Vercel Analytics to track page view...
Utility that loads and parses MDX files or headless CMS content for all sales website pages. Provide...
Pure client-side calculation module implementing conservative, documented ROI formulas covering time...
Holds the editable content configuration object defining all cost line items, labels, assumptions, a...
Pure function utility that takes a base cost configuration and an organization size value and return...
Server-side Next.js API route handler that receives booking form submissions, applies server-side Zo...
Shared Zod schema definitions and validation logic for the booking form, providing a single source o...
Server-side middleware that enforces per-IP and per-email submission rate limits and validates the h...
Generates and validates short-lived signed tokens embedded in the redirect URL from the booking form...
Sends a branded transactional confirmation email to the prospect immediately after a successful demo...
Provides versioned privacy policy content from MDX files or a headless CMS, enabling legal document ...
Backend service that manages Terms of Service versioning, serves the current version to the frontend...
Server-side utility that generates or serves a pre-rendered PDF of the current DPA document. Ensures...
Data Components
Data repository for active user sessions and their associated opaque refresh tokens. Persists sessio...
Stores rotating refresh tokens linked to sessions. Each token rotation invalidates the previous toke...
Canonical PostgreSQL table storing all user account data: personal fields, language preference, phot...
Drift-backed local cache and PostgreSQL server table for user-to-organization join records. Stores r...
Database table tracking active and expired profile share link metadata including hashed token, objec...
Drift ORM table definition and repository for activity records. Stores all activity logs including t...
Drift ORM table definition and repository for the fixed activity type catalogue. Stores the canonica...
Drift DAO for the activity_attachments table, storing file references, MIME types, upload status, an...
Persists the user's calendar sync opt-in state, selected calendar IDs, and sync direction preference...
Data-access layer for activity records that carry dual user references. Provides typed queries for c...
Local Drift table and corresponding backend PostgreSQL table storing event records. All rows are key...
Database table and repository layer storing participant records that link users or contacts to event...
Expense Claims Table
Expense Items Table
PostgreSQL table storing receipt image references linked to individual expense items. Each record ho...
Data access layer that reads and caches expense type definitions stored as JSON in the module_config...
Declarations Table
Drift table definition for offline-first local storage of contact records inside the SQLCipher-encry...
Drift-based local data access layer for reading and writing a single contact record together with it...
Drift table storing caregiver and next-of-kin records as a one-to-many child of the contacts table. ...
Drift DAO and table definition for the local SQLite notes store. Provides reactive queries filtered ...
Drift table definition and repository for note_attachments records. Each row stores a reference to a...
Drift DAO (Data Access Object) that encapsulates all SQL queries needed to aggregate activity statis...
PostgreSQL repository for persisting generated Bufdir reports with full metadata including reporting...
Database repository and access layer for the export_logs table. Records every export attempt with th...
Persists a complete audit trail of every integration event emitted by the Accounting API Connector a...
Records read receipt and delivery confirmation events for each assignment, capturing event type (del...
Persists encrypted assignment records including the ciphertext blob, sender and recipient metadata, ...
Data layer adapter for the assignment_status_tracking table. Records per-assignment milestone events...
Backend repository managing persistence and querying of notification records in the notifications ta...
Backend repository managing CRUD operations against the push_tokens table. Supports one token record...
Persists a durable audit record for every outbound email and SMS, capturing channel, recipient, temp...
Notification Cooldown Log Table
Notification Rules Table
Scenario Registry Table
Drift table definition and repository mirroring the notification_settings PostgreSQL table. Stores o...
PostgreSQL table that persists referral records containing referrer_user_id, nullable invitee_user_i...
Repository for course enrollment records linking users to courses. Persists enrollment state, suppor...
Repository and local cache adapter for course records. Reads course data from the shared PostgreSQL ...
Repository adapter for the certificates table. Manages certificate CRUD operations and provides quer...
Data component representing the workshop_participants join table that links users to workshop sessio...
PostgreSQL repository for persisted annual summary records, one row per user per year. Stores the ag...
PostgreSQL table storing badge definitions as declarative trigger rules. Each row defines a badge ty...
PostgreSQL table recording awarded badges per user with a timestamp and reference to the triggering ...
Database table storing per-organization impact calculation parameters. Each row represents one tenan...
Drift table providing offline-first local storage for the external link catalogue fetched from the b...
PostgreSQL table storing the org-configurable external resource link catalogue. Each row belongs to ...
Drift table and DAO that persists client-generated temporary UUID to server-assigned permanent ID ma...
Encrypted local SQLite database managed by Drift (Flutter's type-safe ORM). Provides full CRUD for a...
Persistent table and access layer that records every pending write with its operation type, entity t...
Riverpod AsyncNotifier that holds and broadcasts sync state (pending mutation count, last sync times...
Dedicated PostgreSQL table (feed_events) storing normalized event rows generated by the Feed Service...
Data access layer encapsulating all PostgreSQL queries against the users table and its joins with or...
User Roles Table
Database table storing flag records for both automated duplicate detections and manual flags. Each r...
Data access layer for expense approval workflow operations against the expense_claims, expense_items...
Database table storing per-tenant auto-approval rule configuration as structured rows with type, ope...
Data access layer that reads from the materialized expense_summary_snapshots table for pre-aggregate...
Database component managing the export_logs table, which tracks every Bufdir export job across its f...
PostgreSQL data component managing the organizations table with row-level tenant isolation enforced ...
Local Drift table on the Flutter client that stores the resolved label map received during session b...
PostgreSQL table storing key-value label overrides scoped to organization ID. Each row represents on...
PostgreSQL repository layer for the module_configurations table, scoped by organization ID and area ...
Data access layer for organization hierarchy queries against the organizations and organization_memb...
PostgreSQL table storing the many-to-many relationship between users and organizations. Holds role, ...
Stores per-organization external portal integration settings including connection type (OAuth 2.0 or...
Append-only event log of all sync operations performed by the External Portal Connector. Each row ca...
Persistent log of every accounting system delivery attempt per organization. Stores request payloads...
Short-TTL server-side cache scoped per tenant for computed security metric aggregates, preventing re...
PostgreSQL table storing the immutable, chronological trail of all security-relevant events. Schema ...
PostgreSQL table that persists all qualified booking form submissions as lead records. Stores the pr...
Database table storing immutable records of Terms of Service acceptance events. Each row captures th...
Infrastructure Components
Infrastructure utility wrapping bcrypt password hashing at minimum cost factor 12. Used exclusively ...
Infrastructure utility for signing and validating JWT access tokens. Supports per-tenant signing key...
HTTP client and configuration layer for communicating with the certified BankID broker over OpenID C...
Backend infrastructure adapter for reading and writing static JSON blobs to an S3-compatible object ...
REST API endpoint contract definitions for activity operations, consumed by Activity Service via the...
Riverpod provider configuration applying the keepAlive modifier to the WizardStepController, prevent...
Thin adapter wrapping the Flutter device_calendar plugin to provide a typed, testable interface over...
Thin infrastructure adapter that sends raw audio frames to a cloud speech-to-text API when on-device...
Server-side interceptor that fires on every proxy activity endpoint call to create a structured audi...
Backend adapter abstracting S3-compatible object storage for receipt binary files. Provides typed pu...
Versioned template store for the Bufdir government reporting specification. Decouples report structu...
Versioned server-side asset store for the Bufdir PDF report template. Ensures exported PDFs always u...
Infrastructure utility that enforces per-organization rate limits on export requests to prevent acci...
Manages encrypted storage and retrieval of per-organization accounting API credentials and endpoint ...
Wraps flutter_secure_storage and platform-native secure enclave APIs (iOS Secure Enclave, Android Ke...
Next.js admin portal UI component under Organization Management allowing org admins to define and ed...
Infrastructure wrapper around the Firebase Cloud Messaging HTTP v1 API for the Next.js backend. Mana...
Wraps the Twilio or Link Mobility REST API to dispatch SMS messages, abstracting provider authentica...
Wraps the SendGrid or Postmark API client to deliver multi-part HTML emails from Next.js API routes,...
Scenario Evaluation Cron Job
Thin wrapper around the share_plus Flutter package that invokes the device native share sheet with a...
Background job integration that schedules push notification reminders at enrollment time. Delegates ...
An automated accessibility audit step integrated into the Flutter CI pipeline that catches WCAG 2.2 ...
REST API endpoint that returns the current sensitive field annotation registry and per-context warni...
Flutter ARB translation file set for Northern Sami (locale code 'se') covering all externalised UI s...
Flutter utility wrapping the url_launcher package to open external URLs in the device browser or opt...
Bootstraps the SQLCipher encryption key used by the Drift database at app startup. Retrieves or gene...
Centralized HTTP client wrapping Dart's http or Dio with JWT bearer token injection, automatic token...
Registers and manages platform background execution tasks via the workmanager Flutter plugin, mappin...
Short-lived server-side cache layer (30-60 second TTL) for KPI aggregation results, reducing repeate...
Environment-variable-driven configuration for the activity feed, covering the polling interval (defa...
Next.js middleware applied to all admin user management API routes. Validates the incoming JWT, reso...
Cron-scheduled infrastructure job that triggers the nightly duplicate detection scan across all acti...
Thin infrastructure adapter that writes before/after snapshots of rule configuration changes to the ...
Scheduled background job that runs nightly to materialize expense aggregate metrics and statistical ...
Infrastructure service that transforms normalized Meander activity and organization data into the ex...
Thin adapter over Vercel Blob (primary) and S3 (fallback) for storing completed Bufdir export files....
Infrastructure utility that maintains the authoritative whitelist of permitted dimensions and metric...
Static registry defining every overrideable label key along with its platform default string. Adding...
API middleware that intercepts every request to a module-scoped endpoint and verifies the requesting...
Utility for constructing parameterized recursive Common Table Expression SQL fragments in PostgreSQL...
HTTP endpoint that accepts inbound webhook POST requests from the external Dynamics-based portal. Va...
Secure storage layer for per-organization accounting system credentials. Encrypts API keys, client s...
Next.js API route handler enforcing role-based access control at the API layer before delegating to ...
PostgreSQL-level safeguards that make the audit_logs table truly append-only regardless of applicati...
Static SEO configuration module providing page-level metadata, Open Graph tags, Twitter card markup,...
Next.js static export and Vercel deployment configuration that enables fast global CDN delivery, bui...
Next.js metadata configuration shared across all sales website pages. Defines page titles, descripti...
CSS print media query rules scoping browser print output to the results card only, hiding navigation...
DNS and sending-domain configuration required for transactional email deliverability. Covers SPF rec...
File-based or CMS-backed content storage for versioned legal documents (ToS, Privacy Policy, DPA, Co...
Shared Components
Data repository for active user sessions and their associated opaque refresh tokens. Persists sessio...
Infrastructure utility for signing and validating JWT access tokens. Supports per-tenant signing key...
Core authentication service that handles email and password credential validation, JWT access token ...
Canonical PostgreSQL table storing all user account data: personal fields, language preference, phot...
Utility service responsible for requesting, caching, and re-checking microphone permission on iOS an...
Reusable Flutter widget that attaches to any opt-in TextFormField as a microphone icon button. Manag...
Generic BLoC-driven multi-step wizard controller managing step state, validation gating, and the sin...
Reusable modal widget that lets coordinators select a contact from their organization roster for pro...
Drift table definition for offline-first local storage of contact records inside the SQLCipher-encry...
Riverpod provider exposing a reactive combined state of the full contact list and the current search...
Implements the connector interface pattern for pushing approved expense batches to external accounti...
Thin wrapper around the share_plus Flutter package that invokes the device native share sheet with a...
A library of reusable Flutter widgets that wrap primitives with mandatory semantic labels, ARIA-equi...
A Flutter-native design token system that encodes WCAG 2.2 AA contrast ratios, minimum touch target ...
Riverpod-based service that parses the bootstrap API response to extract the tenant's enabled module...
Persistent five-tab bottom navigation bar (Home, Contacts, Add, Work, Notifications) that anchors th...
Flutter utility wrapping the url_launcher package to open external URLs in the device browser or opt...
Fetches versioned static content (accessibility statement, privacy policy) from a backend endpoint a...
Encrypted local SQLite database managed by Drift (Flutter's type-safe ORM). Provides full CRUD for a...
Centralized HTTP client wrapping Dart's http or Dio with JWT bearer token injection, automatic token...
Reusable stat card component rendering a single KPI metric with its label, value, and trend indicato...
Next.js middleware applied to all admin user management API routes. Validates the incoming JWT, reso...
User Roles Table
Streaming export service that writes filtered expense records directly to the HTTP response without ...
Utility service that constructs parameterized PostgreSQL aggregate queries for the team reports endp...
Composite filter control bar rendered above the reports table, providing date range picker, activity...
Row of summary stat cards displayed at the top of the Team Reports page showing key aggregate metric...
Database component managing the export_logs table, which tracks every Bufdir export job across its f...
Shared service that serializes report result data into CSV or Excel format and streams the file to t...
PostgreSQL data component managing the organizations table with row-level tenant isolation enforced ...
Flutter-side singleton service that resolves display labels for the authenticated user's organizatio...
PostgreSQL table storing the many-to-many relationship between users and organizations. Holds role, ...
Pluggable adapter layer that routes approved expense claim payloads to the correct external accounti...
Core append-only backend utility that writes immutable audit log entries. Called by all authenticati...
Next.js metadata configuration shared across all sales website pages. Defines page titles, descripti...
Utility that loads and parses MDX files or headless CMS content for all sales website pages. Provide...
Provides versioned privacy policy content from MDX files or a headless CMS, enabling legal document ...
File-based or CMS-backed content storage for versioned legal documents (ToS, Privacy Policy, DPA, Co...
Site-wide consent banner displayed on first visit to the sales website. Blocks non-essential cookies...