Add Optional Free-Text Notes to a Registration
After confirming the core registration fields, a notes step is available but entirely optional. The step presents a single multi-line text field. The peer mentor can skip directly to confirmation without entering anything. Notes are stored alongside the activity record and are visible to the coordinator on the activity detail view. The notes field should support speech-to-text input via the device's native keyboard dictation button so that peer mentors who prefer spoken input can use it without a dedicated in-app speech feature.
User Story
Audience Summaries
Optional free-text notes directly address a formal compliance requirement for Blindeforbundet, where structured documentation after home visits is part of mandated reporting to Bufdir. By making notes optional rather than required, the product preserves the speed and simplicity that drives adoption among peer mentors — the primary field-level users — while enabling richer qualitative data capture when context demands it. This design decision supports two competing business priorities simultaneously: high registration completion rates and regulatory reporting completeness. The inclusion of native speech-to-text support via device keyboard dictation broadens accessibility for users with visual impairments or motor limitations, which is directly aligned with Blindeforbundet's core mission.
Coordinators gain richer activity context without additional administrative burden, improving decision-making quality for follow-up actions and strengthening the organisation's ability to demonstrate program impact to funders.
This story introduces an optional notes step into the existing multi-step registration flow, building on the dependency story-quick-activity-registration-peer-mentor-001. Delivery effort is moderate: the UI step is straightforward, but validation logic (1000-character limit with real-time counter and accessible error state), skip-path handling, and data persistence alongside the activity record all require careful coordination. No dedicated in-app speech feature is needed — native keyboard dictation satisfies the requirement, which removes a significant implementation risk. Acceptance criteria are well-defined and testable, making UAT planning straightforward.
Key stakeholders include coordinators (who consume note data) and accessibility reviewers (to validate the error message implementation). A risk to flag: character limit enforcement must be tested across iOS and Android keyboard behaviours, particularly with pasted content and dictated input, where character count can spike unexpectedly. Rollout can be feature-flagged to validate coordinator uptake before full release.
Implementation requires adding a new optional step to the registration wizard after the core fields confirmation. The step renders a single `
The notes field must be saved as a nullable text column on the activity record in Supabase. Native speech-to-text is handled entirely by the device OS keyboard — no Web Speech API or third-party SDK integration is required; ensure the textarea element has no attributes that suppress the dictation button (avoid `inputmode="none"`). The coordinator activity detail view requires a conditional render block to display the note text when present. Confirm the Supabase insert/update payload includes the notes field and update the TypeScript activity record type accordingly.
Acceptance Criteria
- Given the notes step is visible, when I tap 'Skip', then I advance to the confirmation view without any note attached
- Given I type a note of up to 1000 characters, when I proceed, then the note is saved with the registration
- Given I attempt to type more than 1000 characters, when the limit is reached, then a character counter turns red and further input is blocked with an accessible error message
- Given my device keyboard has a dictation (microphone) button, when I tap it in the notes field, then native speech-to-text populates the field
- Given I have submitted a registration with a note, when the coordinator views the activity, then the note text is displayed in full
Business Value
Optional notes provide qualitative context that supports coordinators in following up on peer support contacts. For Blindeforbundet, structured notes after home visits are part of the formal reporting requirement. Making notes optional preserves the speed of the common case while enabling richer documentation when needed.
Components
- Optional Notes Input Step ui
- Activity Registration Cubit service
- Activity Registration Service service
- Activity Repository data
- Supabase Activity Client infrastructure