Components
393 components across 4 layers
UI Components
The primary authentication entry point for the Meander mobile app. Presents email and password field...
Flutter screen that initiates the BankID OAuth/OIDC authentication flow via a secure in-app browser....
The mobile screen that initiates and manages the Vipps login flow. Renders the Vipps login button, l...
Full-screen biometric prompt overlay that triggers Face ID or fingerprint authentication via Flutter...
Flutter widget that conditionally renders UI elements and navigation items based on the current user...
Reusable widget for selecting and uploading a profile photo from camera or device gallery. Handles i...
Main profile view and edit screen for peer mentors and coordinators. Displays user identity, role as...
A UI widget accessible from the hamburger menu and profile screen that lists all roles and org/assoc...
Mobile screen that displays the peer mentor's shareable profile summary and triggers the OS-level sh...
Displays all registered passkeys for the authenticated user and allows revocation of individual pass...
Guides the user through registering a new passkey on their device. Handles device capability detecti...
Single-screen form for recording a completed peer mentor interaction with minimal input. Presents pr...
Multi-step wizard container managing the full activity registration flow using Flutter Navigator 2.0...
Accessible step progress bar widget rendered at the top of the wizard screen. Shows current step ind...
Step 3 of the wizard. Renders a list of available activity types fetched from the Activity Repositor...
Step 1 of the wizard. Renders a searchable contact picker backed by the Contact Repository. Emits a ...
Step 2 of the wizard. Provides date picker, start-time picker, and duration selector (or end-time wi...
Step 4 (final) of the wizard. Renders an optional free-text summary/notes field. Displays a full rev...
Renders a dismissible list of upcoming calendar events matched to known contacts, surfaced inside th...
Handles the full permission request lifecycle for calendar access on iOS and Android. Presents a con...
Settings screen section that shows the current calendar permission state and lets the user revoke or...
Microphone icon button that overlays on any compatible text field (activity summary, notes) to trigg...
Reusable mobile widget that loads and displays peer mentors scoped to the coordinator's local associ...
Main screen allowing coordinators to register activities on behalf of a selected peer mentor. Displa...
Primary screen for coordinators to perform bulk activity registration. Presents an activity template...
Reusable Flutter widget providing a searchable, filterable multi-select list of peer mentors and con...
Multi-step Flutter screen guiding users through event creation: title, date, time, duration, locatio...
Reusable Flutter card widget presenting a single event summary including title, date, time, location...
Compact filter widget embedded in the Event List Screen toolbar that allows users to narrow the even...
BLoC-driven Flutter screen presenting a paginated, scrollable list of upcoming and past events withi...
Displays full event details and a confirmation action for the user to register themselves or a conta...
Flutter screen for logging reimbursable travel costs including kilometre allowances, toll fees, park...
Flutter widget that invokes the device camera or photo library via image_picker. Displays a capture ...
Horizontal scrollable strip that renders compressed preview thumbnails of attached receipts within t...
Flutter screen component that displays the organisation-scoped catalogue of reimbursable expense typ...
Full-screen declaration view that fetches the organisation's declaration template and renders the le...
Filter chip row allowing users to narrow the contact list by status (active, inactive) or relationsh...
Primary screen displaying the user's assigned contacts in a scrollable, accessible list. Uses Flutte...
Persistent search bar widget embedded in the contact list screen. Implements debounced input handlin...
Full-profile screen for a single contact displaying personal information, activity history, assigned...
Edit form screen allowing authorised users to update mutable contact fields such as phone number, ad...
Expandable card section rendered within the contact detail screen that lists all caregiver and next-...
Modal bottom sheet for creating and updating caregiver records. Presents fields for caregiver name, ...
Flutter screen displaying a paginated, searchable list of notes associated with the authenticated us...
Reusable Flutter widget providing an accessible search text field and sort controls for the notes li...
Full-screen Flutter editor for creating and editing free-text notes linked to a contact and optional...
A chart widget using fl_chart to visualise activity distribution by type and time. Includes off-scre...
The main statistics dashboard screen for peer mentors, displaying aggregated activity data with char...
A reusable date range selection widget used within the statistics screen to filter data by custom ti...
Main mobile screen giving coordinators a sortable, filterable summary of team activity across all pe...
Mobile screen enabling coordinators and org admins to initiate Bufdir report generation, preview agg...
Reusable dropdown/picker widget for selecting the active reporting period scoped to the user's organ...
A single-button widget in the Flutter mobile app that triggers the Bufdir report export. Displays a ...
Renders the fully decrypted assignment content - name, address, and medical summary - after the Encr...
Displays all assignments dispatched to the peer mentor, showing status indicators for each: unread, ...
Flutter BLoC widget displayed on the peer mentor home screen showing current completed assignment co...
Read-only widget embedded in coordinator oversight screens listing peer mentors with their completed...
Displays the in-app notification inbox listing all received push notifications for the user. Provide...
Flutter settings page presenting toggles per notification category (new assignments, activity remind...
Full-screen mobile UI that displays the generated QR code and invite link for the current user. Prov...
Inline dashboard widget displayed on the home screen or within the referral section, showing key rec...
Full-screen view listing all referrals for the current user with status badges (invited, registered,...
Presents full course details including description, schedule, prerequisites, capacity, and waitlist ...
Displays available training courses for the authenticated user's organization, with filtering by sta...
Shows the authenticated user's personal enrollment history including active enrollments, waitlist po...
Dedicated Flutter screen displaying the peer mentor's verified digital certificate, including their ...
Primary Flutter screen for facilitating structured two-day group mentoring sessions. Displays partic...
Reusable Flutter checklist widget for managing facilitator to-do items during a workshop session. Re...
Full-screen animated presentation that renders the peer mentor's yearly review as swipeable slides i...
Flutter screen displaying the peer mentor's earned and locked achievement badges. Earned badges are ...
Self-contained Flutter screen that lets peer mentors and coordinators input activity hours, activity...
Displays the curated collection of conversation-starter cards organized by topic or theme. Renders c...
A suite of custom Flutter widgets (AppButton, AppTextField, AppCard, AppSlider, etc.) with accessibi...
Flutter widget that renders a dismissible warning banner or dialog when a screen reader is active an...
Composable Flutter widget that wraps any field or text node marked as containing sensitive personal ...
In-app UI control that allows users to select their preferred display language (Norwegian, English, ...
Persistent bottom navigation shell with five tabs (Home, Contacts, Add, Work, Notifications) rendere...
Role-specific home screen for Coordinators surfacing team overviews, pending expense approvals, and ...
Animated shimmer skeleton placeholder widgets displayed during dashboard data fetch to provide visua...
Role-specific home screen for Peer Mentors displaying recent activities, upcoming contacts, and pers...
Centralized settings screen accessible from the hamburger menu overlay. Displays a flat, scannable l...
Stateless Flutter screen displaying a scannable list of external resource links fetched from the bac...
Flutter screen providing a structured support request form with a dropdown for inquiry category (tec...
Scrollable full-screen view that renders the platform's privacy policy text with accessible typograp...
A dedicated in-app screen that renders the platform's formal accessibility statement, covering WCAG ...
Searchable frequently asked questions screen with category grouping and inline expansion. Uses Flutt...
A persistent widget displayed in the app shell that communicates current connectivity state to the u...
A compact widget displayed in the app shell that communicates the current synchronisation state to t...
Main admin dashboard page displaying real-time KPI cards for active peer mentors, activity counts, p...
Reusable stat card component displaying a single KPI metric with value, label, trend arrow, and opti...
Paginated, filterable chronological stream of recent organization events rendered as typed feed card...
Server-rendered Next.js page exposing full profile information, role assignments, activity history s...
Modal dialog for inviting new peer mentors or coordinators by email. Captures initial role, local as...
Server-rendered Next.js page presenting a searchable, filterable, paginated table of all users withi...
Embedded widget rendered within the User Detail Page and accessible as a standalone workflow from bu...
Contextual toolbar that appears above the user list when one or more users are selected via checkbox...
Dismissible inline panel rendered after a bulk operation completes, displaying a breakdown of succes...
Main admin portal page for coordinators and org admins to inspect, filter, and act on submitted acti...
Reusable badge component that renders approval status (pending, approved, rejected) with colour-code...
Inline action widget rendered within activity list rows and detail views in the admin portal, provid...
Dedicated filtered list page within the admin portal that surfaces only flagged activities, enabling...
Paginated admin portal page listing all pending and historical expense claims submitted by peer ment...
Next.js SSR admin page for viewing, creating, editing, and disabling auto-approval rules. Includes a...
Server-side rendered Next.js dashboard page displaying aggregated reimbursement metrics for the scop...
UI panel containing filter controls for scoping report data. Manages form state for date range picke...
Server-rendered Next.js page that displays aggregated activity data across peer mentors and local as...
Next.js admin portal page where organization administrators select a reporting period and trigger Bu...
Next.js client-rendered page presenting a form-based query builder. Users select dimensions (activit...
Tabbed admin portal page for managing all organization-level configuration. Groups settings into fou...
Admin portal page providing a table of all overridable Meander terms with their canonical defaults, ...
Admin portal page presenting all toggleable platform features for an organization. Displays each fea...
Full-page admin interface for viewing and managing the multi-level organization tree. Renders an int...
Reusable interactive tree visualization widget built on a React tree library. Handles recursive node...
Admin portal page for creating, editing, and deleting local associations (lokallag). Displays a sear...
Reusable widget embedded in the Association Management Page that renders a searchable user list with...
Admin page for configuring the external Dynamics portal connection, entering credentials, defining f...
Admin portal page for configuring expense type to accounting code mappings per organization. Allows ...
Widget embedded in the Security Dashboard Page that lists active anomaly alerts with severity badges...
Server-rendered Next.js page providing organization and global admins with a real-time overview of t...
Paginated, filterable admin page displaying all audit log entries for the organization. Provides dat...
Admin portal page displaying all active sessions for users within the administrator's organization. ...
A bottom-of-page conversion section with a prominent call-to-action driving visitors toward demo boo...
A grid-based section highlighting Meander's core platform capabilities relevant to prospective organ...
The primary above-the-fold section communicating the core value proposition to decision-makers at di...
The root Next.js page component for the product sales website. Assembles all landing page sections i...
A dedicated section displaying trust signals critical for regulated-sector buyers: WCAG 2.2 AA badge...
Prominent UI component displaying compliance badges for WCAG 2.2 AA, GDPR, and Bufdir readiness. Add...
Next.js statically generated page presenting Meander platform capabilities organized by product area...
Reusable section component that renders a named product area with a short description, an icon-annot...
Interactive client-side ROI calculator widget embedded on the product sales website. Renders input c...
Two-column comparison widget presenting current-state costs versus Meander subscription costs over a...
Interactive multi-field form for prospective organizations to request a product demo. Collects organ...
Full-page layout for the demo booking flow on the product sales website. Composes the booking form w...
On-page confirmation state rendered after successful demo booking form submission. Displays a thank-...
Static Next.js page rendering the full GDPR-compliant Privacy Policy for the Meander sales website. ...
Static Next.js page rendering the full Terms of Service document for the Meander platform. Displays ...
Static Next.js page presenting the Data Processing Agreement under GDPR Article 28. Renders structur...
Static Next.js page presenting the full cookie policy for the Meander sales website. Renders a struc...
Static Next.js page presenting the Service Level Agreement for the Meander platform. Displays uptime...
Service Components
Backend service responsible for validating email/password credentials, issuing JWT access and refres...
Backend service that manages the BankID OIDC authorisation code exchange, identity token validation,...
Backend service responsible for the full Vipps MobilePay Login OIDC flow. Handles authorisation code...
BLoC-based service managing the full biometric authentication flow. Checks hardware availability and...
Core authorization service encapsulating the permissions matrix for all four Meander roles - Peer Me...
Validates all profile form fields before submission, enforcing required field constraints, email for...
Business logic layer for reading and writing user profile data via the REST API. Fetches profile rec...
Business logic service managing the full profile-switching lifecycle. Queries the user_roles table t...
Backend-authenticated service that generates a controlled, tenant-scoped profile summary payload for...
Backend service responsible for issuing and validating single-use cryptographic challenges for FIDO2...
Core service managing the full FIDO2/WebAuthn lifecycle on the mobile client. Handles credential cre...
Business logic layer for creating, validating, and submitting activity records. Posts validated acti...
Encapsulates the logic for computing, persisting, and retrieving per-user activity defaults. Reads f...
Service enforcing field-level and cross-field validation rules for all wizard steps. Returns structu...
BLoC-based service that owns the in-progress activity registration as an immutable state object. Pro...
Core service that abstracts all calendar platform interactions behind a single Dart interface. Deleg...
Optional service that creates calendar entries on the device for activities that have been successfu...
Manages the full on-device speech recognition session lifecycle using Flutter's speech_to_text plugi...
BLoC-based service that orchestrates proxy activity submission. Validates coordinator-to-peer-mentor...
Lightweight service that maintains real-time state of an in-progress bulk submission. Tracks total p...
BLoC-layer service that orchestrates batch activity creation for bulk registration. Splits large par...
Shared service used by both coordinator proxy reporting and bulk registration to create activity rec...
Stateless validation service enforcing field-level rules for each event wizard step before allowing ...
Business logic layer responsible for submitting new events to the backend REST API and coordinating ...
BLoC that owns all transient wizard state across the six steps: current step index, per-field values...
BLoC managing the reactive state of the Event List Screen, orchestrating load, filter-change, and pa...
Service layer responsible for fetching, sorting, filtering, and cursor-based pagination of events fr...
Backend API service layer responsible for all business logic around event sign-ups. Enforces capacit...
Business logic layer for travel expense submission and threshold evaluation. Accepts expense payload...
Fetches and caches valid expense types and their combination rules from the backend. Provides the co...
Service responsible for compressing selected images with flutter_image_compress to stay under the 2 ...
Backend service that generates time-limited presigned URLs for secure retrieval of stored receipt im...
Business logic layer that fetches the active expense type catalogue scoped to the authenticated user...
Business logic layer for confidentiality declarations. Retrieves the applicable declaration template...
BLoC state manager for the contact list screen. Handles events for search input changes, filter sele...
Business logic service managing contact list retrieval, search, and filtering. Determines whether se...
BLoC managing the complete state machine for the contact detail and edit flow across both screens. D...
Service layer responsible for all contact read and update operations via the REST API. Fetches the f...
Flutter BLoC managing caregiver list state independently from the parent Contact BLoC, enabling targ...
Business logic layer for caregiver CRUD operations. Orchestrates calls to the Caregivers Repository,...
Business logic layer coordinating note retrieval, search, and pagination for the notes list feature....
BLoC or Riverpod notifier that listens to text change events from the Note Editor Screen and trigger...
Business logic layer that fetches and transforms aggregated activity data for the authenticated peer...
Riverpod-managed service that fetches pre-aggregated team report data from the backend REST API, sco...
Internal service layer responsible for running the SQL aggregation queries that transform raw activi...
Backend service that aggregates activity, contact, and organizational data from PostgreSQL into the ...
Backend service that packages a finalized Bufdir report into the government-accepted file format (Ex...
Factory that instantiates the correct accounting system adapter based on the organization's integrat...
Adapter-based service that pushes approved expense and reimbursement data to external accounting sys...
Backend service that handles coordinator-initiated assignment creation. Fetches the target peer ment...
Manages assignment lifecycle state transitions - dispatched, delivered, read, contact established - ...
Implements end-to-end asymmetric encryption using libsodium NaCl box primitives. Generates and store...
Backend service that queries assignment_status_logs for completed-status assignments per peer mentor...
Handles registration, update, and deregistration of FCM/APNs device tokens on behalf of the Flutter ...
Flutter-side service using flutter_local_notifications to display notifications when the app is in t...
Server-side service responsible for constructing notification payloads and dispatching them via the ...
Dispatches transactional and operational emails to users via a configurable email provider (SendGrid...
Sends SMS messages to users for urgent alerts and verification codes via a configurable SMS provider...
Server-side scheduled job that evaluates configurable scenario rules against system events and user ...
Business logic layer for reading and writing notification preferences. Applies role-based defaults d...
Client-side Flutter service that renders invite URLs as scannable QR codes using the qr_flutter pack...
Manages generation, retrieval, and lifecycle of personalized referral invite tokens and short URLs. ...
Handles backend-side status transition logic for referrals, triggered by onboarding completion webho...
Business logic layer that fetches referral summary data and detailed referral lists from the backend...
Flutter BLoC managing enrollment state on the mobile client. Handles optimistic UI updates, error re...
Implements the full enrollment lifecycle including capacity checks, waitlist management, enrollment ...
Scheduled backend job that queries for certificates expiring within 30 days and dispatches push noti...
Backend service responsible for issuing, validating, and revoking peer mentor certificates. Generate...
Business logic service that manages private session notes for workshop facilitators. Notes are scope...
Service handling workshop session lifecycle including creation, retrieval, and status management. Wo...
Backend service that aggregates a peer mentor's activity, contact, event, and expense data across a ...
Mobile-side service that generates a static shareable image or deep-link card from a given summary s...
Backend service responsible for evaluating badge criteria and awarding badges to peer mentors. Trigg...
Service that interprets configuration-driven badge criteria definitions and evaluates them against a...
Pure client-side computation library in Dart that applies cached organization benefit rates to user-...
Backend service that exposes a REST endpoint for retrieving the current benefit configuration (milea...
Manages local caching of the talking card dataset to improve reliability in low-connectivity environ...
Provides automated accessibility validation logic used both in CI and at runtime. Validates contrast...
Dart service layer that manages Flutter Semantics configuration for sensitive fields across the app....
Central service managing runtime locale switching for the Flutter app using flutter_localizations an...
Business logic layer that fetches and aggregates role-scoped dashboard data from the REST API endpoi...
Determines which home screen widget subtree to render at build time based on the authenticated user'...
Riverpod provider that fetches the resource link list from /api/v1/resources with the authenticated ...
Riverpod provider that handles submission of support requests to the REST API endpoint. Detects conn...
Service responsible for resolving the privacy policy content source - returning the bundled asset ve...
Riverpod provider that manages FAQ content fetching, local caching, and keyword search state. Fetche...
Handles merge conflicts that arise when the same record is modified both on the device and on the se...
Monitors device network connectivity using the connectivity_plus Flutter package and emits state cha...
Central coordinator for all offline read and write operations. Routes data access through the local ...
Core orchestrator that processes the sync queue whenever network connectivity is available. Schedule...
Monitors device network connectivity state using the connectivity_plus Flutter package and emits a s...
Server-side service that aggregates KPI metrics for an organization by executing optimized SQL aggre...
Aggregates events from multiple source tables (activities, expenses, event_registrations, audit_logs...
Focused service handling the invitation token lifecycle: generation, storage, validation, and expiry...
Backend service encapsulating all business logic for user lifecycle management: invitation dispatch,...
Handles the business logic for assigning, changing, and removing user roles within an organization. ...
Shared service responsible for writing structured audit log entries to the audit_logs table. Used by...
Server-side batch endpoint handler (POST /api/v1/users/bulk) that accepts an array of user IDs and a...
Backend service that owns the approval workflow state machine for activity registrations. Handles st...
Core business logic service responsible for managing the full lifecycle of activity flag states. Han...
Service that detects potential duplicate activity submissions across coordinators and local associat...
Backend service exposing PATCH endpoints for approve, reject, and request-clarification actions on e...
Server-side evaluation engine that checks all active auto-approval rules for an organization at the ...
Business logic layer that orchestrates aggregation queries, enforces role-based org scoping, and com...
Backend service that aggregates raw activity records into summary statistics using SQL GROUP BY quer...
Server-side service that aggregates all relevant activity data for a given reporting period and form...
Backend service that translates user-selected dimensions, metrics, and filters into parameterized Po...
Validates and sanitizes all incoming report query parameters before they reach the SQL layer. Mainta...
Backend service encapsulating all business logic for reading and writing organization settings. Vali...
Backend service exposing a REST API for resolving, creating, updating, and deleting organization-spe...
Shared constants file defining all valid feature flag keys used by both the backend API and Flutter ...
Backend service exposing REST endpoints for reading and updating organization-level feature flags. S...
Core backend service implementing recursive PostgreSQL CTE queries to fetch ancestor and descendant ...
Background validation service that scans activity records to detect duplicate reporting across assoc...
Backend service providing CRUD endpoints and membership management APIs for local associations. Hand...
Low-level HTTP adapter for the external Dynamics portal REST API. Manages request signing, OAuth tok...
Core backend service managing the full integration lifecycle with the external Dynamics-based portal...
Provider-agnostic adapter service implementing the accounting integration interface for both Xledger...
Event-driven service that listens for expense approval events and orchestrates delivery to the confi...
Lightweight rule-based service that evaluates authentication and session events against configurable...
Backend service that aggregates security-relevant data from audit_logs and sessions tables to produc...
Core backend service responsible for writing audit log entries and querying them for the admin UI. I...
Core business logic service for listing, monitoring, and terminating user sessions across both mobil...
Provides structured content data for all platform feature sections. Implemented as a static data mod...
Pure utility module encapsulating all ROI calculation logic for the Impact Calculator. Accepts organ...
Business logic layer that calculates total cost of ownership for both the status quo (manual tooling...
Next.js API route handler that receives demo booking form submissions, validates all input server-si...
Next.js API route handler that triggers a transactional confirmation email to the prospect immediate...
Thin client-side service that bridges the Cookie Policy page with the active Cookie Management Platf...
Data Components
Secure on-device storage adapter for JWT access and refresh tokens on the Flutter mobile app. Uses F...
Persists and queries the mapping between a Vipps sub-claim identifier and a Meander user account. Su...
Hardware-backed secure enclave adapter wrapping flutter_secure_storage to persist and retrieve JWT r...
Data access layer for role assignment records in the PostgreSQL user_roles table. Handles CRUD opera...
Data access layer for reading and writing user records scoped to their organization tenant. Performs...
Persists the selected active role and organizational context across app sessions using secure device...
Persists server-side public key material for registered passkeys, linked to the users table. Support...
Data access layer that abstracts reads and writes for activity records across the remote REST API an...
Data access layer that persists proxy-registered activities with dual identity context. Stores the a...
Shared data access layer for creating, reading, updating, and deleting activity records. Used by sim...
Manages batch reference IDs generated at the start of each bulk registration operation. Each batch r...
Data access layer managing event persistence across local SQLite (offline drafts) and the remote Pos...
Data access layer managing reads and writes to the event_registrations table. Applies optimistic loc...
Data access layer that mediates between Expense Service and the REST API for all expense CRUD operat...
Data access layer for the expense_receipts table. Persists receipt metadata (object key, URL, file s...
Data access layer responsible for reading expense type definitions and their associated business rul...
Data access layer for signed declaration records. Provides CRUD operations against the declarations ...
Data access layer for contact entities. Issues REST API calls to `/api/v1/contacts` with pagination,...
Data access layer for the contact_caregivers resource, abstracting REST API communication for the /a...
Data access layer for notes, issuing REST API requests to the backend notes endpoint with pagination...
Data access layer responsible for fetching personal statistics from the REST API backend. Issues aut...
Data access layer for the bufdir_reports and reporting_periods tables. Provides CRUD operations for ...
Reads and writes per-organization accounting integration configuration from the integration_configs ...
Handles local caching and remote sync for assignments, providing offline resilience so peer mentors ...
Manages per-organisation honorarium threshold configuration (e.g. threshold_1=3, rate_1=X, threshold...
Append-only repository that records every threshold-crossing event for a peer mentor, including the ...
Data access layer for the device_tokens table. Provides CRUD operations for storing and querying FCM...
Manages persistence of notification records in the notifications table, enabling the in-app notifica...
Stores and retrieves server-side email and SMS templates, supporting organization-level overrides fo...
Stores and retrieves all configurable scenario records that define notification trigger rules. Each ...
Data access layer for the notification_preferences table, which has a one-to-one relationship with u...
Data access layer for the referrals table. Provides local caching of the active referral token for t...
Data access layer for the referrals table. Provides CRUD operations and aggregation queries used by ...
Data access layer for the courses and course_enrollments tables. Provides multi-tenant-safe queries ...
Data access layer for the certifications table, providing CRUD operations for certificate records li...
Data access layer for retrieving and managing workshop participant lists. Queries the course_enrollm...
Data access layer that persists and retrieves pre-computed annual summary payloads in the PostgreSQL...
Data repository managing the achievements and user_achievements tables. Provides CRUD operations for...
Data repository managing configuration-driven badge criteria definitions stored as structured JSON r...
Local data layer that caches organization-specific benefit rate configurations fetched from the back...
Provides access to the talking card dataset, abstracting over remote API fetching and local cache re...
Immutable Dart class that defines all WCAG 2.2 AA-compliant design tokens: color pairs guaranteed to...
In-app constant registry that defines the canonical list of sensitive personal data field types and ...
BLoC managing the lifecycle of dashboard screen state including loading, loaded, and error states. D...
Persists user preferences using a dual-storage strategy: flutter_secure_storage for sensitive values...
Backend data repository managing the resource_links table scoped to organization ID. Provides CRUD o...
Local persistence layer using SQLite (via the shared local database) to queue support request payloa...
Data component that stores and retrieves FAQ question-answer pairs with category metadata. Supports ...
Device-local SQLite database managed via the drift or sqflite Flutter package. Maintains a schema mi...
Persists the ordered queue of write operations that could not be sent to the server while offline. E...
Provides durable, ordered storage for pending sync operations in the local SQLite database. Each ent...
Data access layer for querying activity statistics, snapshot data, and aggregated metrics from Postg...
Executes multi-table aggregation queries against PostgreSQL joining activities, expenses, event_regi...
Data access layer for the users and user_roles tables. Provides org-scoped CRUD operations with inde...
Data access layer for reading and writing the user_roles junction table. Manages upsert logic for ro...
Data access layer for the audit_logs table. Provides insert and query operations used by the Audit S...
Data access layer for persisting and querying asynchronous bulk operation jobs. Stores job ID, statu...
Data access layer for admin activity oversight queries. Provides paginated, filterable reads of acti...
Data access layer that reads and writes flag-related columns on the activities table (flag_state, fl...
Data access layer for the reimbursement_approvals table and related expense query operations. Provid...
PostgreSQL data access layer for the auto_approval_rules configuration table. Stores and retrieves r...
Data access layer that executes organization-scoped SQL aggregation queries against the expenses and...
Data access layer handling all read queries for team reporting. Implements paginated SQL queries wit...
Repository managing the bufdir_reports and reporting_periods tables. Tracks which periods have been ...
Data access layer for saved custom report configurations. Persists query parameter sets (dimensions,...
Data access layer for the organization_settings table, which has a one-to-one relationship with the ...
Data access layer managing the terminology_overrides table in PostgreSQL. Provides scoped queries pe...
Data access layer for the feature_flags table. Handles CRUD operations for organization-level featur...
Data access layer for the organizations table, exposing the nullable parent_organization_id foreign ...
Data access layer for the local_associations table and its junction records with users. Provides typ...
Persists and retrieves organization-scoped integration configuration including encrypted OAuth secre...
Data access layer for reading and writing accounting-specific integration configuration stored in th...
Read-only repository layer that executes optimized SQL queries against audit_logs and sessions table...
Data access layer for the audit_logs PostgreSQL table. Provides insert-only write access and read ac...
Data access layer for the sessions table supporting full session lifecycle management. Handles both ...
Static configuration repository holding Meander subscription pricing tiers. Stored in a configuratio...
Data access layer for demo booking leads. Provides typed create and read operations against the book...
Static data module that holds the authoritative list of cookies used on the sales site, including na...
Infrastructure Components
HTTP client wrapper for the Flutter app that automatically attaches the JWT access token to outgoing...
Infrastructure wrapper around the BankID/Criipto OIDC provider integration on the Flutter client sid...
Flutter infrastructure component that registers and processes deep link URIs used as OAuth redirect ...
HTTP client configured for the Vipps MobilePay Login API (sandbox and production endpoints). Manages...
Next.js API route middleware that validates JWT role claims on every protected endpoint and enforces...
Parses incoming deep-link URIs (e.g. meander://register?contactId=xyz) and extracts pre-population p...
Flutter platform channel bridge that exposes native calendar APIs to Dart. Implements the EventKit-b...
Shared HTTP client used across all mobile features to communicate with the Next.js backend. Handles ...
S3-compatible object storage bucket that holds uploaded receipt image files. Objects are stored with...
Shared REST API client that attaches the authenticated JWT token to all outgoing requests. Handles t...
Backend REST API endpoint serving filtered and paginated note queries scoped to the authenticated us...
REST API route handler exposing report generation and preview endpoints under /api/v1/reports/bufdir...
Low-level HTTP client wrapper for outbound calls to external accounting system APIs. Handles request...
Scheduled backend job (cron) that queries for assignments where no contact has been established with...
Platform abstraction over iOS Keychain and Android Keystore for securely persisting the peer mentor'...
Abstraction layer over platform-specific push delivery providers (FCM for Android via firebase-admin...
Queue-based dispatcher that abstracts over email and SMS provider SDKs, handling retry logic, expone...
Vercel Cron Job configuration that triggers the Scenario Engine Service on a defined schedule (e.g.,...
Configures and resolves deep links for invite URLs using Firebase Dynamic Links or platform Universa...
Flutter REST API client providing typed access to the referral summary and listing endpoints. Part o...
Flutter REST client handling all HTTP communication for the course registration feature. Wraps the s...
Server-side utility that renders a styled PDF or image representation of a peer mentor certificate f...
Thin adapter wrapping the platform-wide encryption service for workshop note content. Ensures notes ...
Cron-based job (hosted on Vercel or a separate scheduler) that triggers batch annual summary generat...
Infrastructure component that subscribes to domain events (activity saved, course enrollment complet...
Typed REST client wrapper that calls the Calculator Service benefit-config endpoint and handles auth...
Flutter CI configuration and test harness that runs accessibility assertions on every pull request u...
Collection of Application Resource Bundle (ARB) files that serve as the single source of truth for a...
REST API client for the /api/v1/dashboard endpoint, attaching JWT Bearer tokens and role-scoped quer...
Thin Flutter adapter wrapping the url_launcher package to open external URLs in the device's default...
Wraps platform keychain (iOS Keychain, Android Keystore) and Flutter Secure Storage to provide trans...
Wraps the flutter_workmanager plugin to abstract platform-specific background task scheduling across...
ISR and stale-while-revalidate caching configuration for KPI API routes in Next.js. Manages short-li...
Defines the mapping between source table event types and their normalized FeedItem representations, ...
Next.js API route middleware enforcing multi-tenancy on all /api/v1/users endpoints. Extracts authen...
Shared infrastructure service that writes structured audit log entries to the audit_logs table. Used...
Infrastructure utility that handles server-side file generation and HTTP streaming for the Bufdir ex...
Infrastructure utility providing AES-256-GCM encryption and decryption for sensitive organization se...
Client-side cache on the Flutter mobile app that stores the resolved terminology map fetched at logi...
Client-side cache in the Flutter mobile app that stores the flag map fetched at login. All condition...
HTTP endpoint receiving inbound push events from the external Dynamics portal. Validates payload sig...
Low-level HTTP client used exclusively by the accounting integration adapters for making authenticat...
Scheduled background job that enforces the configurable log retention policy by deleting entries old...
Thin wrapper around Vercel Analytics or Plausible for tracking page views and CTA click events on th...
Next.js metadata configuration for the Feature Overview page covering Open Graph tags, canonical URL...
Ensures the Terms of Service page is registered in the Next.js sitemap for search engine indexing. C...
Shared Next.js layout component used across all static legal pages (Privacy Policy, Terms of Service...
Shared Components
HTTP client wrapper for the Flutter app that automatically attaches the JWT access token to outgoing...
Flutter infrastructure component that registers and processes deep link URIs used as OAuth redirect ...
Reusable mobile widget that loads and displays peer mentors scoped to the coordinator's local associ...
Shared data access layer for creating, reading, updating, and deleting activity records. Used by sim...
Shared service used by both coordinator proxy reporting and bulk registration to create activity rec...
Shared HTTP client used across all mobile features to communicate with the Next.js backend. Handles ...
Fetches and caches valid expense types and their combination rules from the backend. Provides the co...
Data access layer for contact entities. Issues REST API calls to `/api/v1/contacts` with pagination,...
Shared REST API client that attaches the authenticated JWT token to all outgoing requests. Handles t...
Backend service that packages a finalized Bufdir report into the government-accepted file format (Ex...
Reads and writes per-organization accounting integration configuration from the integration_configs ...
Immutable Dart class that defines all WCAG 2.2 AA-compliant design tokens: color pairs guaranteed to...
A suite of custom Flutter widgets (AppButton, AppTextField, AppCard, AppSlider, etc.) with accessibi...
Persistent bottom navigation shell with five tabs (Home, Contacts, Add, Work, Notifications) rendere...
Thin Flutter adapter wrapping the url_launcher package to open external URLs in the device's default...
Persists the ordered queue of write operations that could not be sent to the server while offline. E...
Monitors device network connectivity using the connectivity_plus Flutter package and emits state cha...
Central coordinator for all offline read and write operations. Routes data access through the local ...
Monitors device network connectivity state using the connectivity_plus Flutter package and emits a s...
Data access layer for querying activity statistics, snapshot data, and aggregated metrics from Postg...
Reusable stat card component displaying a single KPI metric with value, label, trend arrow, and opti...
Data access layer for the users and user_roles tables. Provides org-scoped CRUD operations with inde...
Shared infrastructure service that writes structured audit log entries to the audit_logs table. Used...
Data access layer for the audit_logs table. Provides insert and query operations used by the Audit S...
Shared service responsible for writing structured audit log entries to the audit_logs table. Used by...
Repository managing the bufdir_reports and reporting_periods tables. Tracks which periods have been ...
Shared constants file defining all valid feature flag keys used by both the backend API and Flutter ...
Data access layer for the organizations table, exposing the nullable parent_organization_id foreign ...
Persists and retrieves organization-scoped integration configuration including encrypted OAuth secre...
Data access layer for reading and writing accounting-specific integration configuration stored in th...
Shared Next.js layout component used across all static legal pages (Privacy Policy, Terms of Service...
Thin client-side service that bridges the Cookie Policy page with the active Cookie Management Platf...