high complexity extracted Activity Registration & Reporting Confidence: 100%
10
Components
198
Shared
12
User Stories
Yes
Analyzed

Description

A formalised report form completed after a home visit or one-on-one session, capturing structured fields rather than free text alone. For Blindeforbundet this includes health status, course interest, assistive technology situation, and a 'way forward' section that functions as a task handoff to the coordinator. The form is filled after the session — never during — to preserve the openness of the conversation. The report doubles as a record for coordinators to act on: each 'way forward' entry becomes a trackable follow-up item. Speech-to-text input is available for all free-text fields to reduce the manual burden for users who find typing difficult or who have visual impairments. The structure must be flexible enough to support other organisations adding their own required fields without a code change.

Analysis

Business Value

Converts informal post-session notes into structured coordinator actions and auditable records. For Blindeforbundet, this is a direct replacement for a paper-based process and a prerequisite for their participation in the pilot. The 'way forward' data also feeds into coordinator workload planning.

Implementation Notes

Report schema is org-specific and driven by a JSON config stored in Supabase. Render fields dynamically from config: text, multiline text, checkbox group, radio, date. Speech-to-text via Flutter's speech_to_text package — triggered per field, not globally. Link report record to the parent activity record by activity_id. WCAG 2.2 AA: all fields must have explicit labels, error messages must not rely on colour alone.

Components (208)

User Interface (3)

Service Layer (4)

Data Layer (3)

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 (12)

View and resume a draft post-session report
medium 3 pts

As a As a Peer Mentor (Likeperson)

I want to save a post-session report as a draft and return to complete it later if I cannot finish it immediately after a session

So that I do not lose my progress if I am interrupted or need more time to complete the report accurately

Acceptance Criteria
  • Given a peer mentor starts filling in a post-session report but does not submit it, when they navigate away, then the partially completed form is saved as a draft
  • Given a draft report exists, when the peer mentor opens the contact's profile or the home screen, then a clear 'draft report pending' indicator is shown
  • Given a peer mentor taps the draft indicator, when they are navigated to the report form, then all previously entered data is restored exactly as left
  • +2 more
View Full Story →
Dictate report content using speech-to-text after a session
medium 5 pts

As a As a Peer Mentor (Likeperson)

I want to use speech-to-text input to dictate my post-session report notes into the form fields after the session has ended

So that I can complete my report quickly and naturally without extensive typing, especially when my notes are detailed or I prefer spoken input

Acceptance Criteria
  • Given a peer mentor is on the post-session report screen, when they tap the microphone button next to a text field, then the speech-to-text overlay activates and begins listening
  • Given the speech-to-text overlay is active, when the peer mentor speaks, then a partial transcription preview appears in real time
  • Given a transcription is complete, when the peer mentor accepts it, then the transcribed text is inserted into the corresponding report field
  • +3 more
View Full Story →
View and resume a draft post-session report
medium 3 pts

As a As a Coordinator

I want to save a post-session report as a draft and return to complete it later if I cannot finish it immediately after a session

So that I do not lose my progress if I am interrupted or need more time to complete the report accurately

Acceptance Criteria
  • Given a peer mentor starts filling in a post-session report but does not submit it, when they navigate away, then the partially completed form is saved as a draft
  • Given a draft report exists, when the peer mentor opens the contact's profile or the home screen, then a clear 'draft report pending' indicator is shown
  • Given a peer mentor taps the draft indicator, when they are navigated to the report form, then all previously entered data is restored exactly as left
  • +2 more
View Full Story →
Dictate report content using speech-to-text after a session
medium 5 pts

As a As a Coordinator

I want to use speech-to-text input to dictate my post-session report notes into the form fields after the session has ended

So that I can complete my report quickly and naturally without extensive typing, especially when my notes are detailed or I prefer spoken input

Acceptance Criteria
  • Given a peer mentor is on the post-session report screen, when they tap the microphone button next to a text field, then the speech-to-text overlay activates and begins listening
  • Given the speech-to-text overlay is active, when the peer mentor speaks, then a partial transcription preview appears in real time
  • Given a transcription is complete, when the peer mentor accepts it, then the transcribed text is inserted into the corresponding report field
  • +3 more
View Full Story →
Record way-forward tasks and next steps in the post-session report
high 5 pts

As a As a Peer Mentor (Likeperson)

I want to add concrete 'way forward' items to my post-session report that describe specific actions the coordinator should take on behalf of the contact

So that my observations from the session translate directly into actionable follow-up tasks without needing a separate communication channel

Acceptance Criteria
  • Given the peer mentor is on the post-session report screen, when they reach the way-forward section, then they can add one or more structured action items with a description and optional due date
  • Given the peer mentor adds a way-forward item, when they save the report, then the item is persisted as a linked way-forward record in the database
  • Given a report with way-forward items is submitted, when the coordinator views the contact's profile, then all way-forward items are listed with their status
  • +2 more
View Full Story →
See org-specific dynamic fields tailored to my organisation in the report
high 5 pts

As a As a Peer Mentor (Likeperson)

I want to see a report form that is tailored to my organisation's specific field configuration, including custom terminology and required sections relevant to my work

So that I only fill in fields that are relevant to my organisation and the report captures the specific information my coordinator and organisation need

Acceptance Criteria
  • Given a peer mentor from Blindeforbundet opens the post-session report, when the form loads, then only Blindeforbundet-configured sections and fields are displayed
  • Given a peer mentor from HLF opens the post-session report, when the form loads, then only HLF-configured sections are shown with HLF-specific terminology
  • Given the device is offline when the peer mentor opens the report form, when the cached schema is available, then the form loads using the cached configuration with an offline indicator shown
  • +2 more
View Full Story →
Complete a structured post-session report after a home visit
high 8 pts

As a As a Peer Mentor (Likeperson)

I want to fill in a structured report form after completing a session with a contact, covering their health status, course interest, assistive device needs, and next steps

So that the coordinator receives a formal summary of the visit that acts as a task request and ensures nothing is missed in the follow-up

Acceptance Criteria
  • Given a peer mentor has completed an activity, when they open the post-session report screen, then the form displays all org-configured sections (health status, course interest, assistive device situation, way forward) in a logical order
  • Given the report form is open, when the peer mentor fills in each section, then each field accepts text input and the form validates required fields before submission
  • Given the peer mentor submits the report, when all required fields are complete, then the report is saved to the database and the coordinator is notified
  • +2 more
View Full Story →
Record way-forward tasks and next steps in the post-session report
high 5 pts

As a As a Coordinator

I want to add concrete 'way forward' items to my post-session report that describe specific actions the coordinator should take on behalf of the contact

So that my observations from the session translate directly into actionable follow-up tasks without needing a separate communication channel

Acceptance Criteria
  • Given the peer mentor is on the post-session report screen, when they reach the way-forward section, then they can add one or more structured action items with a description and optional due date
  • Given the peer mentor adds a way-forward item, when they save the report, then the item is persisted as a linked way-forward record in the database
  • Given a report with way-forward items is submitted, when the coordinator views the contact's profile, then all way-forward items are listed with their status
  • +2 more
View Full Story →
See org-specific dynamic fields tailored to my organisation in the report
high 5 pts

As a As a Coordinator

I want to see a report form that is tailored to my organisation's specific field configuration, including custom terminology and required sections relevant to my work

So that I only fill in fields that are relevant to my organisation and the report captures the specific information my coordinator and organisation need

Acceptance Criteria
  • Given a peer mentor from Blindeforbundet opens the post-session report, when the form loads, then only Blindeforbundet-configured sections and fields are displayed
  • Given a peer mentor from HLF opens the post-session report, when the form loads, then only HLF-configured sections are shown with HLF-specific terminology
  • Given the device is offline when the peer mentor opens the report form, when the cached schema is available, then the form loads using the cached configuration with an offline indicator shown
  • +2 more
View Full Story →
Complete a structured post-session report after a home visit
high 8 pts

As a As a Coordinator

I want to fill in a structured report form after completing a session with a contact, covering their health status, course interest, assistive device needs, and next steps

So that the coordinator receives a formal summary of the visit that acts as a task request and ensures nothing is missed in the follow-up

Acceptance Criteria
  • Given a peer mentor has completed an activity, when they open the post-session report screen, then the form displays all org-configured sections (health status, course interest, assistive device situation, way forward) in a logical order
  • Given the report form is open, when the peer mentor fills in each section, then each field accepts text input and the form validates required fields before submission
  • Given the peer mentor submits the report, when all required fields are complete, then the report is saved to the database and the coordinator is notified
  • +2 more
View Full Story →
Receive accessible form fields with screen reader support in the report
critical 8 pts

As a As a Peer Mentor (Likeperson)

I want to navigate and complete the post-session report form fully using a screen reader (VoiceOver or TalkBack) with all fields properly labelled and announced

So that I can complete my reporting independently regardless of visual impairment, maintaining the same quality of documentation as sighted users

Acceptance Criteria
  • Given a peer mentor uses VoiceOver on iOS, when they open the post-session report screen, then the screen reader announces the screen title and focuses on the first form field
  • Given the report form has multiple sections, when the peer mentor navigates with swipe gestures, then each field is announced with its label, current value, and any validation state
  • Given the way-forward section contains dynamic list items, when a peer mentor adds or removes an item with a screen reader active, then a live region announcement confirms the change
  • +3 more
View Full Story →
Receive accessible form fields with screen reader support in the report
critical 8 pts

As a As a Coordinator

I want to navigate and complete the post-session report form fully using a screen reader (VoiceOver or TalkBack) with all fields properly labelled and announced

So that I can complete my reporting independently regardless of visual impairment, maintaining the same quality of documentation as sighted users

Acceptance Criteria
  • Given a peer mentor uses VoiceOver on iOS, when they open the post-session report screen, then the screen reader announces the screen title and focuses on the first form field
  • Given the report form has multiple sections, when the peer mentor navigates with swipe gestures, then each field is announced with its label, current value, and any validation state
  • Given the way-forward section contains dynamic list items, when a peer mentor adds or removes an item with a screen reader active, then a live region announcement confirms the change
  • +3 more
View Full Story →