126
Total Data Layer
66
Low Complexity
52
Medium Complexity
8
High Complexity
33
Shared

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

Organization Persistence Repository

Data access layer responsible for reading and writing the selected organization ID to device-local storage (SharedPreferences). Abstracts th...

low Organization Selection Screen
Authentication Repository

Data layer repository providing a stable interface for authentication persistence operations. Manages local session caching via secure stora...

low shared Email and Password Login
Auth Token Store

Secure local storage adapter for OAuth tokens (Vipps, BankID) and Supabase session data. Uses Flutter Secure Storage to encrypt tokens at re...

low shared BankID and Vipps Login
User Identity Repository

Manages persistence and retrieval of verified user identity data in Supabase, including personnummer obtained via Vipps Login and BankID ver...

medium BankID and Vipps Login
Secure Session Storage

Encrypted key-value store backed by flutter_secure_storage that persists the Supabase session token, its expiry timestamp, and the user's bi...

low shared Biometric Session Authentication
Role Repository

Fetches and caches user role assignments from Supabase, providing a data access layer between the role resolution service and the database. ...

medium Role-Based Access Control
No-Access Configuration Repository

Read-only repository that retrieves the admin portal URL and the list of roles blocked from mobile access. Sources configuration from Supaba...

low No-Access Screen for Restricted Roles
Activity Repository

Data access layer for activity records, providing CRUD operations against the Supabase activities table. Implements an optimistic insert pat...

medium Quick Activity Registration
Registration Preferences Store

Local persistence layer for user-specific registration preferences, specifically the last-used activity type ID. Uses the shared local stora...

low Quick Activity Registration
Activity Type Cache Provider

Riverpod AsyncNotifier that fetches activity types on login and holds them in memory for the session. Serves cached data to UI and service l...

medium shared Activity Type Configuration
Activity Type Repository

Data access layer that wraps all Supabase queries for the activity_types table. Enforces row-level security by always including org_id in qu...

medium Activity Type Configuration
Post-Session Report Repository

Handles all CRUD operations for post-session report records in Supabase. Ensures every report is stored with its parent activity_id foreign ...

medium Structured Post-Session Report
Report Schema Cache

In-memory and optional local-storage cache for org-specific report field schemas. Reduces Supabase round-trips when the user opens multiple ...

low Structured Post-Session Report
Way Forward Item Repository

Manages persistence of way-forward follow-up items in Supabase, linked to their parent report. Supports coordinator workflows by providing q...

low Structured Post-Session Report
Expense Repository

Data access layer for all expense records in Supabase. Provides CRUD operations for expense claims, queries for attestation queues, and filt...

medium Travel & Expense Registration
Expense Type Catalogue Repository

Repository managing the configurable catalogue of expense types and their mutual exclusion group definitions. Fetches the catalogue from Sup...

low Travel & Expense Registration
Receipt Storage Adapter

Adapter encapsulating all interactions with Supabase Storage for receipt image management. Handles image compression before upload, generate...

medium shared Travel & Expense Registration
Proxy Activity Repository

Data access layer extending the base activity repository to support the recorded_by_user_id field introduced for proxy registrations. Provid...

medium Bulk & Proxy Registration
Proxy Contact List Provider

Riverpod provider that exposes the coordinator's peer mentor contact list filtered and ready for use in proxy and bulk selection UIs. Caches...

low shared Bulk & Proxy Registration
Stats Data Models

Typed Dart data classes representing the stats domain: StatsSnapshot (totals for a given scope and time window), PeerMentorStatRow (one row ...

low Activity Statistics Dashboard
Stats Repository

Data access component that queries Supabase materialized views or database views to retrieve pre-aggregated activity statistics. Avoids clie...

medium Activity Statistics Dashboard
Bufdir Format Serializer

Transforms aggregated internal activity data into the canonical Bufdir JSON payload structure. This intermediate representation is consumed ...

medium Bufdir Report Export
Export Data Query Builder

Constructs parameterised Supabase queries for fetching activity data within the selected scope and period. Encapsulates complex join logic a...

high Bufdir Report Export
Generated Reports Repository

Data access layer for the generated_reports table. Each export attempt creates a record with org scope, period, format, status, and file ref...

low Bufdir Report Export
Duplicate Check Repository

Data access layer that wraps the Supabase RPC for duplicate detection. Constructs the parameterised RPC call with peer_mentor_id, activity_t...

medium Duplicate Activity Detection
Duplicate Queue Repository

Repository that provides coordinator-scoped queries for activities where duplicate_reviewed is false and a matching sibling record exists. E...

medium Duplicate Activity Detection
Contact List Riverpod Provider

Riverpod providers that expose role-aware contact and peer mentor streams to the UI layer. Manages loading, error, and data states using Asy...

medium Contact List Management
Contact Repository

Data access layer for contacts and peer mentors backed by Supabase. All queries are scoped by organization ID and rely on Supabase Row Level...

medium shared Contact List Management
Assignment Repository

Dedicated repository for querying assignment records associated with contacts in the Blindeforbundet context, including status history and l...

low Contact Detail & Edit Screen
Contact Detail Repository

Data access layer for retrieving and updating full contact profiles, including extended attributes like chapter affiliations, encrypted fiel...

medium shared Contact Detail & Edit Screen
Assignment History Repository

Data access layer for Blindeforbundet assignment records linked to a peer mentor. Fetches assigned contacts with their open/closed assignmen...

low Peer Mentor Profile & Status Screen
Certification Record Repository

Data access layer for HLF certification records stored in Supabase. Fetches certification expiry dates, completion history, and linked cours...

low Peer Mentor Profile & Status Screen
Mentor Activity Log Repository

Data access layer for fetching aggregated activity statistics scoped to a single peer mentor. Queries the activity log table in Supabase wit...

low Peer Mentor Profile & Status Screen
Peer Mentor Repository

Data access layer for peer mentor profile records in Supabase. Provides typed Dart models for peer mentor data including profile fields, pau...

low shared Peer Mentor Profile & Status Screen
Mentor Status Repository

Data access layer for reading and writing peer mentor status fields in Supabase. Manages the status enum (active, paused, inactive), pause t...

low shared Peer Mentor Pause & Reactivation
Contact Chapter Repository

Data access layer for the contact_chapters junction table in Supabase, providing CRUD operations for contact-to-chapter many-to-many relatio...

medium shared Multi-Chapter Membership Handling
Cross-Chapter Activity Query

Specialized query component that retrieves all activity records for a specific contact across all chapters they are affiliated with. Used ex...

high Multi-Chapter Membership Handling
Contact Cache Sync Repository

Maintains a local Drift SQLite cache of contacts and notes fetched from Supabase, used by the offline search repository. Refreshes the cache...

low shared Contact & Notes Search
Offline Contact Search Repository

Searches the locally cached contacts stored in the Drift SQLite database when the device is offline. Provides the same interface as the Supa...

low Contact & Notes Search
Supabase Contact Search Repository

Executes debounced ilike queries against the Supabase contacts and notes tables, searching by name, organization affiliation, and notes keyw...

low Contact & Notes Search
Proxy Activity Repository

Data access layer for proxy activity records in Supabase. Stores both the acting coordinator ID and the attributed peer mentor ID on every p...

medium Coordinator Proxy Registration for Contacts
Recurring Activity Template Repository

Manages persistent recurring activity templates used by coordinators for bulk registration. Templates store default activity type, duration,...

low Coordinator Proxy Registration for Contacts
Mentor Location Repository

Data access layer for reading and writing peer mentor location data stored as PostGIS points in Supabase. Supports spatial bounding box quer...

high Geographic Peer Mentor Map View
Expense Type Configuration

Defines the canonical enum of expense types (kilometers, tolls, parking, public transit), their display metadata (labels, icons, description...

low Expense Type Selection with Mutual Exclusion
Expense Type Repository

Manages persistence of expense type selections as part of an expense record in the travel and expense registration flow. Reads and writes th...

low Expense Type Selection with Mutual Exclusion
Mileage Claim Repository

Abstracts all Supabase read/write operations for mileage claim records. Handles inserting new claims with their computed status, fetching cl...

medium Mileage Reimbursement Entry
Organisation Rate Configuration Repository

Fetches and caches the organisation-level per-km reimbursement rate and auto-approval threshold from Supabase. Provides reactive access so t...

low shared Mileage Reimbursement Entry
Claim Receipt Repository

Persists and retrieves the association between expense claim records and their Supabase Storage receipt paths in the Supabase database. Ensu...

low Receipt Capture and Attachment
Receipt Storage Repository

Manages file upload and retrieval operations against Supabase Storage using an org/user/claim-scoped path strategy. Enforces access boundari...

medium Receipt Capture and Attachment
Claim Approval Decision Repository

Stores coordinator approval and rejection decisions, including actor identity, timestamp, and comment, linked to the parent expense claim. P...

low Threshold-Based Expense Approval Workflow
Claim Events Repository

Data access layer for the claim_events audit table. Inserts timestamped event records for every state transition and exposes ordered read ac...

low Threshold-Based Expense Approval Workflow
Expense Claim Status Repository

Repository managing the current status field on expense claim records. Provides targeted read/write access for the workflow service to updat...

medium Threshold-Based Expense Approval Workflow
Confidentiality Declaration Repository

Data access layer for confidentiality declaration records, including acknowledgement state and storage references. Maintains a declarations ...

medium Driver Administration and Confidentiality Declarations
Declaration Supabase Storage Adapter

Abstracts Supabase Storage operations for encrypted declaration files. Handles upload, download, and signed URL generation for declaration b...

medium Driver Administration and Confidentiality Declarations
Declaration Template Repository

Manages organization-specific confidentiality declaration templates stored in the database. Provides versioned template retrieval so that hi...

low Driver Administration and Confidentiality Declarations
Driver Assignment Repository

Data access layer for driver assignment records, supporting CRUD operations and query patterns needed by the driver assignment service. Pers...

medium Driver Administration and Confidentiality Declarations
Approved Claims Query Service

Queries the database for approved expense claims within a configurable date range, grouped by peer mentor and expense type as required by ac...

medium Accounting System Export and Integration
Chart of Accounts Mapper

Maps internal expense claim field names and expense types to the target accounting system's chart of accounts codes. Maintains per-org mappi...

medium Accounting System Export and Integration
Export Run Repository

Data access layer for persisting and querying export run metadata. Each export run record stores the timestamp, triggering user, organizatio...

medium Accounting System Export and Integration
Aggregation Query Builder

Constructs the Supabase RPC calls and view queries that perform server-side aggregation, leveraging PostgreSQL's aggregation capabilities to...

high Bufdir Data Aggregation
Bufdir Metrics Repository

Data access layer for reading raw activity/event/contact data and persisting computed Bufdir metric snapshots. Wraps Supabase table queries ...

medium Bufdir Data Aggregation
Multi-Organization Data Isolator

Enforces strict per-organization data isolation across all database queries, ensuring that NHF, Blindeforbundet, HLF, and Barnekreftforening...

medium shared Bufdir Data Aggregation
Bufdir Aggregation Repository

Read-only data access layer that queries the aggregated activity records used by the Bufdir reporting pipeline. Shared with the Bufdir Data ...

low shared Bufdir Report Period Selection
Period Configuration Repository

Reads and writes organization-specific Bufdir period preset configurations from Supabase. Supports per-organization agreement dates so that ...

low Bufdir Report Period Selection
Bufdir Preview Repository

Provides data access for the preview feature, including fetching the aggregated report figures for the selected period and retrieving prior-...

medium Bufdir Report Preview
Report File Storage Client

Supabase Storage adapter managing upload, retrieval, and signed URL generation for exported Bufdir report files. Enforces organization-scope...

low shared Bufdir Report History & Audit Log
Report History Repository

Data access layer for persisting and querying Bufdir report history records in the organization-scoped Supabase table. Handles all CRUD oper...

low Bufdir Report History & Audit Log
Proxy Activity Data Models

Dart model classes and serialization logic for all proxy and bulk registration domain objects. Includes ProxyActivityRecord, ProxyActivityDr...

low Proxy & Bulk Activity Registration
Proxy Activity Repository

Data access layer for all proxy and bulk activity records. Provides CRUD operations against Supabase with support for the registered_by / at...

medium Proxy & Bulk Activity Registration
Certification Status Repository

Supabase data access layer for peer mentor certification records. Stores certification type, issue date, expiry date, and renewal status. Us...

low shared Peer Mentor Pause & Status Management
Peer Mentor Status Repository

Supabase data access layer for peer mentor status records and pause history. Manages the peer_mentor_status table including current status e...

medium shared Peer Mentor Pause & Status Management
Admin Data Repository

Data access layer for all admin portal queries, including aggregated statistics, user lists, activity logs, and org structure. All queries a...

high Organisation Admin Portal
Admin Portal BLoC

BLoC state management for the admin portal screens, coordinating dashboard stats, org hierarchy selection, user list state, and export progr...

high Organisation Admin Portal
Bufdir Column Schema Config Repository

Persists and retrieves per-organisation Bufdir column schema configurations in Supabase. Allows Norse Digital Products to update column mapp...

medium Bufdir Reporting & Export
Export Audit Log Repository

Provides CRUD access to the Bufdir export audit log table in Supabase. Enforces append-only semantics for completed records to maintain an i...

low Bufdir Reporting & Export
Activity Attachment Repository

Data access layer for the activity_attachments table in Supabase. Handles insert, soft delete, and query operations for attachment metadata ...

low Document Attachments for Activities
Certification Repository

Data access layer for peer mentor certification records stored in Supabase. Manages CRUD operations on the certifications table and JSONB re...

medium Peer Mentor Certification Management
Statistics Cache Manager

In-memory cache for statistics query results with a 15-minute TTL to avoid repeated heavy Supabase queries. Cache is keyed by (coordinatorId...

low shared Coordinator Statistics Dashboard
Statistics Repository

Data access layer that queries Supabase pre-aggregated views for activity statistics. All queries target views pre-aggregated by org_id + co...

medium Coordinator Statistics Dashboard
Notification Preferences Repository

Manages per-user per-category notification opt-in preferences stored in Supabase. Provides a local cache to avoid repeated round-trips durin...

low Push Notification Delivery
Notification Repository

Supabase-backed repository for persisting received notifications and managing read state. Provides a real-time stream of unread count via Su...

medium Push Notification Delivery
Assignment Contact Tracking Repository

Data access layer for reading and updating the last_contact_date field per assignment. Provides queries needed by the evaluation service to ...

medium Assignment Follow-up Reminders
In-App Notification Repository

Data access layer for persisting and retrieving in-app notification records displayed in the Notifications tab. Supports read/unread state, ...

low shared Assignment Follow-up Reminders
Reminder Configuration Repository

Data access layer for reading and writing organisation-specific reminder threshold settings from the org settings table. Provides typed acce...

low Assignment Follow-up Reminders
Certification Expiry Repository

Data access component responsible for querying and managing certification expiry dates stored in the peer mentor profile or user roles table...

medium Certificate Expiry Notifications
Notification Record Repository

Data access component for persistent in-app notification records related to certificate expiry. Stores notification state, acknowledgement s...

medium Certificate Expiry Notifications
Pause Status Record Repository

Data access layer for reading peer mentor pause status records and resolving coordinator relationships from the org membership table. Provid...

low shared Pause Status Change Notifications
Prompt History Repository

Tracks which scenario prompts have been sent to which users, their delivery status, and whether the user acted on or dismissed them. Used by...

medium Scenario-based Follow-up Prompts
Scenario Rule Repository

Data access layer for reading and persisting scenario rule definitions and chapter-level configuration. Rules are stored as JSON in Supabase...

medium Scenario-based Follow-up Prompts
Notification Domain Model

Typed Dart data class representing a single notification record from the Supabase notifications table. Encapsulates all fields (user_id, typ...

low In-app Notification Centre
Notification Repository

Data access layer for the Supabase notifications table. Provides typed query methods for fetching, filtering, and mutating notifications. Ha...

medium In-app Notification Centre
Annual Summary Repository

Data access layer that queries Supabase for a peer mentor's activity records within a specified date range, transforming raw database rows i...

medium Annual Impact Summary (Wrapped)
Summary Offline Cache

Local persistence store (using Hive or SQLite via drift) that serialises computed AnnualSummary objects to device storage. Enables offline v...

low Annual Impact Summary (Wrapped)
Badge Definition Repository

Data access layer for badge taxonomy definitions stored in Supabase. Manages the configurable badge catalog per organisation including crite...

low Achievement Badges & Status Recognition
Badge Repository

Data access layer for earned badge records in Supabase. Stores earned badges with earned_at timestamps and provides query methods for profil...

low Achievement Badges & Status Recognition
Recognition Tier Repository

Data access layer for recognition tier definitions and awarded tier records. Manages both the tier catalog (Coordinator of the Year, seasona...

low Achievement Badges & Status Recognition
Activity Aggregation Repository

Executes aggregation queries over the activity table to compute session counts, total hours, and other metrics for a given peer mentor or co...

medium shared Periodic Activity Summaries
Summary Cache Repository

Stores periodic summary records locally on the device using the app's offline persistence layer, allowing the summary card and team view to ...

low Periodic Activity Summaries
Summary Period Repository

Manages CRUD operations for generated periodic summary records in the database. Provides queries to fetch the latest summary for a user and ...

low Periodic Activity Summaries
Notification Preferences Repository

Persistence layer for user-level notification preference records keyed by user ID and scenario type. Provides fast upsert semantics so a mis...

low shared Scenario-Based Engagement Push Notifications
Scenario Notification Repository

Data access layer for persisting and querying scenario-based push notification records, including trigger history, delivery status, and cool...

medium shared Scenario-Based Engagement Push Notifications
Recruitment Attribution Repository

Persists and queries recruitment funnel events in Supabase. Records click events, pending signups, and confirmed registrations with full att...

medium Membership Recruitment (Verving)
Referral Code Repository

Handles all Supabase CRUD operations for the referral_codes table. Ensures each peer mentor has at most one active code per organisation and...

low Membership Recruitment (Verving)
Benefit Calculation Result Model

Immutable value object and associated serialization logic for a completed benefit calculation. Stores all computed metrics and the input par...

low Volunteer Benefit Calculator
Benefit Multiplier Config Repository

Reads organisation-specific multiplier values (hourly rate equivalent, travel cost per session, health system cost per hour) from the Supaba...

low Volunteer Benefit Calculator
Accessibility Settings Repository

Persists user-level accessibility preferences including screen reader warning suppression preferences, announcement verbosity level, and whe...

low Screen Reader Support
Sensitive Field Configuration

Defines and persists the list of form fields throughout the app that are designated as containing sensitive personal data. Each field entry ...

low shared Screen Reader Support
Error Message Registry

Static registry mapping every application error code to a plain-language two-part message object containing a cause description and a correc...

low shared Cognitive Accessibility
Help Content Registry

Stores and serves inline contextual help texts keyed by screen identifier and field identifier. Loaded from a bundled asset so help content ...

low shared Cognitive Accessibility
Wizard Draft Repository

Persists and retrieves partial wizard answers locally using shared preferences or Hive, enabling pause-and-resume without data loss. Each dr...

low shared Cognitive Accessibility
Accessibility Token Manifest

A structured data file (JSON or Dart constants file) that declares every color pair, type scale entry, and sizing token alongside its comput...

low Visual Design Accessibility
Design Token Provider

Central repository of all design tokens (colors, typography, spacing, sizing, radii) for the application. Tokens are defined as non-overrida...

medium shared Visual Design Accessibility
Navigation State Repository

Persists tab index and navigation stack snapshots across app sessions using local storage, so users with motor fatigue return to their last ...

low Navigation & Gesture Accessibility
Partial Transcription Repository

A local-storage repository that persists partial transcription results incrementally during a dictation session so that a crash or interrupt...

low Speech-to-Text Input
Organization Branding Cache

In-memory and disk cache for organization-specific branding assets and design token overrides. Preloads logo images and color tokens after o...

low Organization Selection & Onboarding
Organization Repository

Data access layer responsible for fetching, caching, and exposing organization records from Supabase. Provides the complete list of active p...

medium shared Organization Selection & Onboarding
Tenant Session Store

Persistence layer that reads and writes the selected organization ID and associated tenant metadata to both secure local storage (for offlin...

medium Organization Selection & Onboarding
Terminology Local Cache Adapter

Persists terminology maps to device-local storage (e.g., SharedPreferences or Hive) so that labels are available immediately on app launch a...

low shared Dynamic Terminology & Labels System
Terminology Repository

Data-layer abstraction for fetching and persisting organization terminology maps. Queries the organization_configs Supabase table for the la...

low Dynamic Terminology & Labels System
Feature Flag Local Cache

A short-lived in-memory and persistent cache layer for feature flag data that reduces redundant Supabase reads. Stores the resolved flag map...

low Organization-scoped Feature Flags
Feature Flag Repository

Data access layer responsible for fetching organization feature flag configurations from the Supabase `organization_configs` table. Parses t...

medium Organization-scoped Feature Flags
Hierarchy Cache

In-memory and optional local-storage cache for the full organizational hierarchy tree. Prevents repeated Supabase fetches for a structure th...

low Organizational Hierarchy & Structure Management
Organization Unit Repository

Supabase data access layer for the organization_units table which implements a recursive adjacency-list structure (parent_id self-reference)...

high shared Organizational Hierarchy & Structure Management
Unit Assignment Repository

Data access layer for the user_organization_unit_assignments junction table. Manages user-to-unit relationships including the is_primary fla...

medium shared Organizational Hierarchy & Structure Management
Integration Credential Vault

Data component wrapping Supabase Vault for secure storage and retrieval of external system API credentials (API keys, client secrets, OAuth ...

high External System Integration Configuration
Organization Integration Repository

Data access layer for the organization_integrations table. Provides typed CRUD operations including reading and writing the JSONB field_mapp...

medium External System Integration Configuration