high complexity extracted Travel Reimbursement & Expense Handling Confidence: 100%
16
Components
198
Shared
6
User Stories
Yes
Analyzed

Description

Supports Blindeforbundet's specific requirement to register driver fees for peer mentors who transport service recipients, and to manage digital confidentiality declarations for those drivers. The flow allows a coordinator or peer mentor to record a driving assignment linked to a specific contact, capture the agreed fee, and attach or send a confidentiality declaration for electronic acknowledgement. Confidentiality declarations must be stored securely with read confirmation, consistent with the encrypted assignment handling requirement described elsewhere in the documentation. This feature is scoped to organizations that opt it in via configuration; it does not appear in the UI for orgs that do not use it.

Analysis

Business Value

Formalizes an existing manual process at Blindeforbundet, reducing administrative burden and ensuring legally required confidentiality agreements are captured digitally with a traceable confirmation record. Positions the platform for expansion to other organizations with similar driver-volunteer models.

Implementation Notes

Store declarations as encrypted Supabase Storage objects. Track read/sign status in a declarations table with timestamps. Consider a lightweight e-signature flow (checkbox acknowledgement + timestamp) rather than a full digital signature provider for MVP. Org-level feature flag controls visibility of the driver fee fields and declaration workflow in the UI.

Components (214)

User Interface (6)

Service Layer (4)

Data Layer (4)

Infrastructure (2)

Shared Components

These components are reused across multiple features

User Interface (59)

ui Role Switch Widget medium Shared ui Role-Aware Bottom Navigation medium Shared ui Activity Type Selection Screen low Shared ui Speech-to-Text Field Overlay medium Shared ui Receipt Capture Widget medium Shared ui Peer Mentor Single Selector low Shared ui Proxy Audit Badge Widget low Shared ui Export Period Picker low Shared ui Contact Card Widget low Shared ui Contact Search Bar low Shared ui Peer Mentor Card Widget low Shared ui Activity History List low Shared ui Multi-Chapter Affiliation Chip Widget medium Shared ui Certification Status Badge low Shared ui Duplicate Activity Warning Dialog medium Shared ui Mentor Multi-Select Widget medium Shared ui Map Filter Panel medium Shared ui Claim Status Badge low Shared ui Export Date Range Picker low Shared ui Custom Date Range Picker low Shared ui Duplicate Activity Warning Dialog low Shared ui Proxy Activity Form medium Shared ui Proxy Peer Mentor Selector medium Shared ui Expected Return Date Picker low Shared ui Pause Activation Screen low Shared ui Pause Status Indicator low Shared ui Admin KPI Stat Widget low Shared ui Organisation Hierarchy Navigator high Shared ui Bufdir Period Selector Widget low Shared ui Export History List medium Shared ui Activity Type Donut Chart medium Shared ui Monthly Activity Bar Chart medium Shared ui Statistics Period Filter Bar low Shared ui Statistics Summary Cards low Shared ui Notification Badge Widget low Shared ui Certificate Expiry Status Indicator low Shared ui Animated Stat Card Widget medium Shared ui In-App Notification Banner low Shared ui Accessible Modal Sheet Widget high Shared ui Live Region Announcer medium Shared ui Semantics Wrapper Widget medium Shared ui Sensitive Field Warning Dialog high Shared ui Confirm Before Submit Screen medium Shared ui Inline Contextual Help Widget low Shared ui Labelled Navigation Bar low Shared ui Plain Language Error Display low Shared ui Single-Action Screen Layout medium Shared ui Wizard Progress Indicator low Shared ui Accessible Text Style System medium Shared ui Accessible Touch Target Wrapper low Shared ui Contrast-Safe Color Palette Widget medium Shared ui Accessible Bottom Navigation Bar medium Shared ui Modal Close Button low Shared ui Persistent Back Button low Shared ui Vertical Scroll Container low Shared ui Organization Card Widget low Shared ui Terminology-Aware Text Widget low Shared ui FeatureGate Widget low Shared ui Chapter Switcher medium Shared

Service Layer (52)

service Authentication Service medium Shared service Authentication Session Manager medium Shared service Biometric Authentication Service medium Shared service Biometric Authentication Service medium Shared service Biometric Authentication Service medium Shared service Permission Checker Service medium Shared service Role State Manager medium Shared service No-Access Route Guard low Shared service Activity Type Metadata Resolver low Shared service Chapter Scope Resolver medium Shared service Organisation Hierarchy Resolver medium Shared service Coordinator Notification Service medium Shared service Duplicate Activity Detection Service high Shared service Mentor Filter Service low Shared service Receipt Threshold Validator low Shared service Approval Status Notification Service medium Shared service Threshold Evaluation Service medium Shared service Declaration Encryption Service high Shared service Organization Feature Flag Service low Shared service Participant Deduplication Service high Shared service Reporting Period Service medium Shared service Activity Attribution Service low Shared service Proxy Duplicate Detection Service medium Shared service Pause Management Service medium Shared service Pause Notification Service medium Shared service Admin Export Service medium Shared service Admin Row-Level Security Guard high Shared service Organisation Hierarchy Service high Shared service User Management Service high Shared service Role Access Validator low Shared service Peer Mentor Stats Aggregator medium Shared service Push Notification Dispatcher medium Shared service Notification Preference Service low Shared service Scenario Deep-Link Router medium Shared service Scenario Notification Content Builder medium Shared service Badge Criteria Integration medium Shared service Activity Summary Aggregator low Shared service Focus Management Service medium Shared service Screen Reader Detection Service medium Shared service Sensitive Field Privacy Guard high Shared service Plain Language Content Service medium Shared service Wizard State Manager medium Shared service Tab State Manager medium Shared service Organization Route Guard medium Shared service Tenant Context Service high Shared service Label Key Resolver Service low Shared service Organization Labels Notifier medium Shared service FeatureFlagProvider (Riverpod) medium Shared service Access Scope Service high Shared service Hierarchy Aggregation Service high Shared service Hierarchy Service high Shared service Unit Assignment Service medium Shared

Data Layer (33)

Infrastructure (54)

infrastructure Keyboard-Aware Layout Utility low Shared infrastructure Supabase Auth Client low Shared infrastructure Deep Link / OAuth Redirect Handler medium Shared infrastructure Secure Storage Adapter low Shared infrastructure Supabase Session Manager medium Shared infrastructure URL Launcher Utility low Shared infrastructure Local Storage Adapter low Shared infrastructure Supabase Activity Client low Shared infrastructure Organization Labels Provider low Shared infrastructure Supabase Client low Shared infrastructure Organisation Field Config Loader medium Shared infrastructure Speech-to-Text Adapter medium Shared infrastructure File Download Handler low Shared infrastructure Duplicate Reviewed Flag Middleware low Shared infrastructure Contact RLS Query Builder low Shared infrastructure Contact Form Validator low Shared infrastructure Design Token Theme low Shared infrastructure Organization Labels Provider low Shared infrastructure Supabase Client Provider low Shared infrastructure Search Debounce Utility low Shared infrastructure Expense Type Analytics Tracker low Shared infrastructure Receipt Image Picker Integration low Shared infrastructure CSV / JSON File Generator medium Shared infrastructure Coordinator Role Guard low Shared infrastructure Nightly Job Scheduler medium Shared infrastructure Supabase RLS Policy Configuration high Shared infrastructure Export File Storage Adapter low Shared infrastructure Supabase Storage Adapter low Shared infrastructure Peer Mentor Pause Management Service medium Shared infrastructure Push Notification Service medium Shared infrastructure fl_chart Adapter medium Shared infrastructure Push Notification Service low Shared infrastructure FCM Push Notification Sender medium Shared infrastructure FCM Notification Dispatcher medium Shared infrastructure Push Notification Dispatcher medium Shared infrastructure Supabase Realtime Subscription Service medium Shared infrastructure Organisation Data Isolation Guard low Shared infrastructure Push Notification Dispatcher medium Shared infrastructure Deep Link Handler medium Shared infrastructure QR Code Generator low Shared infrastructure Share Sheet Bridge low Shared infrastructure Semantics Service Facade medium Shared infrastructure Accessibility Design Token Enforcer medium Shared infrastructure Accessible Theme Builder medium Shared infrastructure Navigation Route Configuration medium Shared infrastructure Accessibility Live Region Announcer low Shared infrastructure Feature Flag Provider low Shared infrastructure Secure Storage Adapter low Shared infrastructure Supabase RLS Tenant Scope Configurator medium Shared infrastructure Label Key Registry low Shared infrastructure Terminology Riverpod Providers low Shared infrastructure WCAG Semantics Label Resolver low Shared infrastructure Feature Flag Key Constants low Shared infrastructure RLS Policy Manager high Shared

User Stories (6)

Enable or Disable the Driver Module for the Organization via Feature Flag
medium 3 pts

As a As a Coordinator

I want to see driver administration features only when my organization has the driver module enabled so that organizations that do not use drivers are not presented with irrelevant functionality

So that the app remains clean and focused for each organization, and the driver workflow is only accessible where it is configured and appropriate

Acceptance Criteria
  • Given the coordinator's organization has the driver feature flag enabled, when they open the app, then the driver assignment section appears in the home screen and in the relevant navigation areas
  • Given the coordinator's organization has the driver feature flag disabled, when they open the app, then no driver assignment list, declaration controls, or honorarium form are visible anywhere in the UI
  • Given the feature flag value changes in the backend configuration, when the coordinator restarts the app or the session refreshes, then the UI reflects the updated flag value without requiring an app store update
  • +2 more
View Full Story →
Assign a Driver to a Peer Mentor Assignment
high 5 pts

As a As a Coordinator

I want to assign a registered driver to a specific peer mentor assignment so that the peer mentor can be transported to their contact

So that drivers are formally linked to assignments and the organization has a clear record of who is driving whom

Acceptance Criteria
  • Given a coordinator is on the driver assignment list screen, when the driver feature flag is enabled for the organization, then the driver assignment section is visible
  • Given the coordinator selects an open assignment needing a driver, when they open the assignment detail, then they see an option to assign a driver from a searchable list
  • Given the coordinator selects a driver and confirms the assignment, when the assignment is saved, then the driver-assignment record is persisted in the database and shown in the assignment list with the driver's name
  • +2 more
View Full Story →
View Declaration Acknowledgement Status for All Active Driver Assignments
high 5 pts

As a As a Coordinator

I want to see an overview of all active driver assignments and the acknowledgement status of their confidentiality declarations so that I can follow up with drivers who have not yet signed

So that no assignment proceeds with a driver who has not formally acknowledged their confidentiality obligations, reducing legal and reputational risk for the organization

Acceptance Criteria
  • Given the coordinator opens the driver assignment list, when the list loads, then all active assignments are shown with their driver name and declaration status badge
  • Given there are assignments with un-acknowledged declarations older than 48 hours, when the list renders, then those assignments are visually highlighted with a warning indicator
  • Given the coordinator taps the 'Acknowledged' status filter, when the filter is applied, then only assignments where the declaration is acknowledged are shown
  • +2 more
View Full Story →
Receive and Confirm a Driver's Declaration Acknowledgement
high 5 pts

As a As a Coordinator

I want to be notified when a driver has acknowledged the confidentiality declaration and to confirm this acknowledgement in the system so that the assignment can proceed with full compliance documentation in place

So that the workflow moves forward automatically when compliance is satisfied and I do not need to manually poll for status changes

Acceptance Criteria
  • Given a driver has acknowledged the declaration, when the system receives the acknowledgement event, then the coordinator receives a push notification stating the driver's name and which assignment they acknowledged
  • Given the coordinator taps the notification, when the declaration acknowledgement screen opens, then it shows the driver's name, acknowledgement timestamp, the assignment details, and the declaration content summary
  • Given the acknowledgement has been received, when the coordinator views the assignment, then the declaration status badge updates to 'Acknowledged' and the honorarium registration button becomes active
  • +2 more
View Full Story →
Register a Driver Honorarium Fee for a Completed Assignment
high 8 pts

As a As a Coordinator

I want to register a driver honorarium fee for a completed assignment so that the driver is compensated correctly and the expense is recorded against the right cost center

So that drivers are paid accurately and on time, and the organization maintains clean financial records that can be exported to the accounting system

Acceptance Criteria
  • Given the coordinator navigates to a completed assignment that has an acknowledged declaration, when they tap 'Register Honorarium', then the driver honorarium form opens pre-filled with the assignment date, driver name, and estimated fee based on org rate configuration
  • Given the coordinator reviews the pre-filled fee, when they adjust the amount and submit, then the honorarium expense record is created and linked to the assignment in the database
  • Given the honorarium has been submitted, when the coordinator views the assignment, then an expense summary card shows the registered honorarium amount and its submission status
  • +2 more
View Full Story →
Send a Confidentiality Declaration to an Assigned Driver
critical 8 pts

As a As a Coordinator

I want to send a confidentiality declaration to a driver once they have been assigned to a peer mentor assignment so that they formally agree to protect sensitive personal information before receiving assignment details

So that the organization complies with data protection requirements and drivers cannot access contact details without legally binding consent

Acceptance Criteria
  • Given an assignment has a driver assigned, when the coordinator taps 'Send Declaration', then a pre-filled declaration is sent to the driver via the configured notification channel (push notification or SMS)
  • Given the declaration has been sent, when the coordinator views the assignment, then a status badge shows 'Sent' with the timestamp
  • Given the driver opens the declaration, when the system receives an open confirmation, then the status badge updates to 'Opened'
  • +2 more
View Full Story →