78
Total Data Layer
45
Low Complexity
30
Medium Complexity
3
High Complexity
12
Shared

Data Layer components manage data persistence, storage operations, and data access patterns throughout the application.

Token Store

Secure on-device storage adapter for JWT access and refresh tokens on the Flutter mobile app. Uses Flutter Secure Storage backed by iOS Keyc...

low Email & Password Login
Vipps Account Link Repository

Persists and queries the mapping between a Vipps sub-claim identifier and a Meander user account. Supports account linking on first login an...

low Vipps Authentication
Secure Token Storage

Hardware-backed secure enclave adapter wrapping flutter_secure_storage to persist and retrieve JWT refresh tokens. Ensures tokens are stored...

medium Biometric Login (Face ID / Fingerprint)
Permissions Repository

Data access layer for role assignment records in the PostgreSQL user_roles table. Handles CRUD operations for role assignments, supports mul...

medium Role-Based Access Control
User Repository

Data access layer for reading and writing user records scoped to their organization tenant. Performs CRUD operations against the users and u...

medium Profile Data & Settings
Active Role State Repository

Persists the selected active role and organizational context across app sessions using secure device storage (Keychain on iOS, Keystore on A...

low Profile Switching
Passkey Credentials Repository

Persists server-side public key material for registered passkeys, linked to the users table. Supports multi-device passkey registration, cre...

medium Authentication Methods (Passkeys)
Activity Repository

Data access layer that abstracts reads and writes for activity records across the remote REST API and the local SQLite cache. Implements an ...

medium Simple Activity Logging
Proxy Activity Repository

Data access layer that persists proxy-registered activities with dual identity context. Stores the activity owner (peer mentor) and recorder...

low Coordinator Proxy Reporting
Activity Repository

Shared data access layer for creating, reading, updating, and deleting activity records. Used by simple activity logging, the activity regis...

medium shared Bulk Registration
Batch Reference Repository

Manages batch reference IDs generated at the start of each bulk registration operation. Each batch reference ties together all activity reco...

low Bulk Registration
Event Repository

Data access layer managing event persistence across local SQLite (offline drafts) and the remote PostgreSQL database (via the REST API throu...

medium Event Creation
Event Registrations Repository

Data access layer managing reads and writes to the event_registrations table. Applies optimistic local updates on the mobile side so the UI ...

medium Event Sign-up
Expense Repository

Data access layer that mediates between Expense Service and the REST API for all expense CRUD operations. Handles local caching for offline ...

medium Travel Expense Registration
Receipt Repository

Data access layer for the expense_receipts table. Persists receipt metadata (object key, URL, file size, MIME type) linked to the parent exp...

low Receipt Photo Upload
Expense Types Repository

Data access layer responsible for reading expense type definitions and their associated business rules (mutual exclusions, receipt requireme...

medium Expense Types & Requirements
Declarations Repository

Data access layer for signed declaration records. Provides CRUD operations against the declarations table in PostgreSQL, enforcing the assoc...

low Confidentiality Declarations
Contact Repository

Data access layer for contact entities. Issues REST API calls to `/api/v1/contacts` with pagination, search, and filter query parameters. Ca...

medium shared Contact List & Search
Caregivers Repository

Data access layer for the contact_caregivers resource, abstracting REST API communication for the /api/v1/contacts/:id/caregivers endpoints....

low Caregiver & Next-of-Kin
Notes Repository

Data access layer for notes, issuing REST API requests to the backend notes endpoint with pagination, search, and sort parameters. Caches re...

low Notes List
Statistics Repository

Data access layer responsible for fetching personal statistics from the REST API backend. Issues authenticated GET requests to the statistic...

low Personal Activity Statistics
Bufdir Reports Repository

Data access layer for the bufdir_reports and reporting_periods tables. Provides CRUD operations for persisting generated report snapshots an...

medium Bufdir Report Generation
Integration Config Repository

Reads and writes per-organization accounting integration configuration from the integration_configs table, including target system type, end...

medium shared Accounting System Integration
Assignments Repository

Handles local caching and remote sync for assignments, providing offline resilience so peer mentors can view previously loaded assignments w...

medium Encrypted Assignment Dispatch
Assignment Thresholds Repository

Manages per-organisation honorarium threshold configuration (e.g. threshold_1=3, rate_1=X, threshold_2=15, rate_2=Y) stored in organization_...

low Assignment Threshold Tracking
Honorarium Log Repository

Append-only repository that records every threshold-crossing event for a peer mentor, including the threshold crossed, the timestamp, and th...

low Assignment Threshold Tracking
Device Token Repository

Data access layer for the device_tokens table. Provides CRUD operations for storing and querying FCM/APNs tokens per user with platform meta...

low Push Notifications
Notification Record Repository

Manages persistence of notification records in the notifications table, enabling the in-app notification inbox. Stores payload metadata, rea...

low Push Notifications
Notification Template Repository

Stores and retrieves server-side email and SMS templates, supporting organization-level overrides for branding, sender names, and custom wor...

low Email / SMS Notifications
Scenario Configuration Repository

Stores and retrieves all configurable scenario records that define notification trigger rules. Each record encodes trigger type (time-based,...

medium Notification Scenarios
Notification Preferences Repository

Data access layer for the notification_preferences table, which has a one-to-one relationship with users. Handles create-on-first-access sem...

low Notification Settings
Referrals Repository

Data access layer for the referrals table. Provides local caching of the active referral token for the authenticated user and delegates crea...

low Invite Link & QR Sharing
Referrals Repository

Data access layer for the referrals table. Provides CRUD operations and aggregation queries used by the tracking service and coordinator rep...

medium Recruitment Tracking
Course Repository

Data access layer for the courses and course_enrollments tables. Provides multi-tenant-safe queries scoped to the user's organization, with ...

medium Course Registration
Certifications Repository

Data access layer for the certifications table, providing CRUD operations for certificate records linked to users and organizations. Exposes...

low Digital Peer Mentor Certificate
Workshop Participants Repository

Data access layer for retrieving and managing workshop participant lists. Queries the course_enrollments table filtered by workshop-type cou...

low Career Workshops
Summary Cache Repository

Data access layer that persists and retrieves pre-computed annual summary payloads in the PostgreSQL database. Stores the full summary JSON ...

low Annual Summary (Wrapped)
Achievements Repository

Data repository managing the achievements and user_achievements tables. Provides CRUD operations for badge definitions and user badge unlock...

low Achievement Badges
Badge Criteria Config Repository

Data repository managing configuration-driven badge criteria definitions stored as structured JSON rows. Enables runtime addition of new bad...

low Achievement Badges
Benefit Config Repository

Local data layer that caches organization-specific benefit rate configurations fetched from the backend, enabling fully offline calculator o...

low Advantage Calculator
Cards Repository

Provides access to the talking card dataset, abstracting over remote API fetching and local cache reads. Supports organization-specific card...

low Talking Cards Toolbox
Design Token Repository

Immutable Dart class that defines all WCAG 2.2 AA-compliant design tokens: color pairs guaranteed to meet contrast thresholds, typography sc...

medium shared WCAG 2.2 AA Compliance
Sensitive Field Type Registry

In-app constant registry that defines the canonical list of sensitive personal data field types and their corresponding warning messages. Se...

low Sensitive Field Readout Warning
Dashboard State BLoC

BLoC managing the lifecycle of dashboard screen state including loading, loaded, and error states. Drives reactive UI updates for both PeerM...

low Role-Specific Home Dashboard
Preferences Repository

Persists user preferences using a dual-storage strategy: flutter_secure_storage for sensitive values and the REST API endpoint /api/v1/users...

low App Settings & Preferences
Resource Links Repository

Backend data repository managing the resource_links table scoped to organization ID. Provides CRUD operations consumed by both the REST API ...

low External Resource Links
Offline Support Queue Repository

Local persistence layer using SQLite (via the shared local database) to queue support request payloads when the device has no connectivity. ...

low Contact Us
FAQ Repository

Data component that stores and retrieves FAQ question-answer pairs with category metadata. Supports backend fetch via REST API and local cac...

low FAQ
Local SQLite Database

Device-local SQLite database managed via the drift or sqflite Flutter package. Maintains a schema mirroring the server-side data model for t...

high Offline Data Support
Sync Queue Repository

Persists the ordered queue of write operations that could not be sent to the server while offline. Each entry records the operation type, ta...

medium shared Offline Data Support
Sync Queue Repository

Provides durable, ordered storage for pending sync operations in the local SQLite database. Each entry records the operation type, target en...

medium Background Sync
Statistics Repository

Data access layer for querying activity statistics, snapshot data, and aggregated metrics from PostgreSQL. Provides optimized aggregate quer...

medium shared Dashboard KPIs
Activity Feed Repository

Executes multi-table aggregation queries against PostgreSQL joining activities, expenses, event_registrations, and audit_logs ordered by cre...

high Activity Feed
Users Repository

Data access layer for the users and user_roles tables. Provides org-scoped CRUD operations with indexed PostgreSQL queries supporting pagina...

medium shared User CRUD
Role Assignment Repository

Data access layer for reading and writing the user_roles junction table. Manages upsert logic for role changes (a user may hold at most one ...

low Role Assignment
Audit Log Repository

Data access layer for the audit_logs table. Provides insert and query operations used by the Audit Service. Shared across all features that ...

low shared Bulk Actions
Bulk Job Repository

Data access layer for persisting and querying asynchronous bulk operation jobs. Stores job ID, status (pending/processing/completed/failed),...

low Bulk Actions
Activity Oversight Repository

Data access layer for admin activity oversight queries. Provides paginated, filterable reads of activities scoped to an organization and wri...

medium Activity Review & Approval
Activity Flag Repository

Data access layer that reads and writes flag-related columns on the activities table (flag_state, flag_reason, flagged_by, flagged_at) and q...

low Activity Flagging
Expense Approvals Repository

Data access layer for the reimbursement_approvals table and related expense query operations. Provides paginated, filterable reads scoped to...

medium Expense Approval Queue
Auto-Approval Rules Repository

PostgreSQL data access layer for the auto_approval_rules configuration table. Stores and retrieves rules scoped to organizations, with field...

low Auto-Approval Rules
Reimbursement Overview Repository

Data access layer that executes organization-scoped SQL aggregation queries against the expenses and reimbursement_approvals tables. Uses GR...

medium Reimbursement Overview
Reports Repository

Data access layer handling all read queries for team reporting. Implements paginated SQL queries with dynamic filter composition for date ra...

medium Team Reports
Bufdir Reports Repository

Repository managing the bufdir_reports and reporting_periods tables. Tracks which periods have been exported, when, and by whom, providing t...

low shared Bufdir Export
Report Templates Repository

Data access layer for saved custom report configurations. Persists query parameter sets (dimensions, metrics, filters) as JSON documents lin...

low Custom Reports
Organization Repository

Data access layer for the organization_settings table, which has a one-to-one relationship with the organizations table. Handles upsert sema...

low Organization Settings
Terminology Repository

Data access layer managing the terminology_overrides table in PostgreSQL. Provides scoped queries per organization and supports bulk fetch f...

low Custom Terminology
Feature Flags Repository

Data access layer for the feature_flags table. Handles CRUD operations for organization-level feature flag records. Each row stores an organ...

low Feature Toggles
Organization Hierarchy Repository

Data access layer for the organizations table, exposing the nullable parent_organization_id foreign key structure. Provides recursive SQL qu...

high shared Multi-Organization Hierarchy
Local Associations Repository

Data access layer for the local_associations table and its junction records with users. Provides typed query methods for all CRUD operations...

low Member Associations
Integration Config Repository

Persists and retrieves organization-scoped integration configuration including encrypted OAuth secrets or API keys, field mapping definition...

medium shared External Portal Integration
Accounting Integration Config Repository

Data access layer for reading and writing accounting-specific integration configuration stored in the integration_configs table. Handles enc...

medium shared Accounting API
Security Metrics Repository

Read-only repository layer that executes optimized SQL queries against audit_logs and sessions tables to retrieve security-relevant aggregat...

medium Security Dashboard
Audit Log Repository

Data access layer for the audit_logs PostgreSQL table. Provides insert-only write access and read access with composable filter predicates. ...

low Audit Log
Sessions Repository

Data access layer for the sessions table supporting full session lifecycle management. Handles both mobile JWT refresh token records and adm...

medium Session Management
Pricing Config Repository

Static configuration repository holding Meander subscription pricing tiers. Stored in a configuration file to allow easy updates without cod...

low Cost Comparison
Booking Repository

Data access layer for demo booking leads. Provides typed create and read operations against the bookings table in PostgreSQL, ensuring all l...

low Booking Form
Cookie Inventory Repository

Static data module that holds the authoritative list of cookies used on the sales site, including name, purpose, duration, provider, and cat...

low Cookie Policy