Note Editor
Feature Detail
Description
The Note Editor feature provides a full-screen composing and editing interface for creating and updating notes linked to a specific contact. It supports free-text entry with basic formatting, integrates with the speech-to-text capability (where enabled per organization) for dictation after a visit rather than during it, and enforces the platform's accessible text input standards. Auto-save prevents data loss during interruptions, which is particularly important for mobile use cases where a phone call or notification can interrupt note composition mid-sentence. The editor respects the Organization Labels system so that per-org contact terminology is surfaced correctly inside note metadata.
Sources & reasoning
Priority matrix places Notater in Phase 2 across all orgs → v1.0. Blindeforbundet's mentor-programme note tool and the cross-org speech-to-text post-visit write-up requirement both point to a dedicated editor rather than an inline field. The editor is the natural companion to Notes List and the vehicle for the STT integration in note context.
No source references — this artifact was included based on reasoning alone (see above).
Analysis
Blindeforbundet's unique needs include an "eget notatverktøy" (dedicated note tool) for the mentor programme, and Barnekreftforeningen requires a structured after-visit report that functions as a coordinator request - both workflows rely on a capable note editor rather than plain text fields embedded in activity forms. HLF and NHF also confirmed notes as a shared NICE feature needed by all organizations. The speech-to-text integration specifically addresses Blindeforbundet and HLF's requirement that voice input happens post-visit during write-up, not during the visit itself, which would compromise the open-ended nature of the conversation. Auto-save and offline resilience protect against data loss on mobile networks common in rural Norway where many home visits occur.
Built as a Flutter screen with a Riverpod-managed draft state that persists to Drift on every keystroke (debounced 500 ms) so auto-save is transparent. Speech-to-text is wired conditionally: the STT Service Integration is invoked only when the organisation has the feature enabled via the module registry, keeping the editor generic. WCAG 2.2 AA compliance requires the text field to support font scaling up to 200% without horizontal scrolling, a visible focus indicator, and a minimum 4.5:1 contrast ratio in both light and dark themes. The editor emits a single mutation to the outbox on save, which the Sync Queue Service propagates to the REST API when connectivity is available. Conflict resolution is last-write-wins at the note level, consistent with the platform's outbox strategy.
Components (47)
Shared Components
These components are reused across multiple features
Service Layer (11)
Data Layer (23)
Infrastructure (7)
User Stories
No user stories have been generated for this feature yet.