Encrypted Assignment Dispatch
Feature Detail
Description
This feature enables coordinators to securely dispatch sensitive personal information — including names, addresses, and medical summaries (epikriser) — to peer mentors as encrypted assignments. Each assignment is delivered with end-to-end encryption, delivery confirmation, and read receipts, ensuring that sensitive data never travels unprotected. The feature also provides coordinators with a real-time status overview of all open assignments and triggers automatic reminders if a peer mentor has not established contact within 10 days of receiving an assignment.
User Flow
Analysis
Handling sensitive personal data — health records, home addresses, crisis situations — is a legal and ethical obligation under GDPR and sector-specific Norwegian regulations. Without encrypted assignment dispatch, organizations like Blindeforbundet cannot use a digital tool for this workflow at all, making it a hard blocker for adoption. The feature replaces manual phone calls and paper-based handoffs, dramatically reducing the risk of data breaches while creating an auditable trail of every assignment. Coordinators gain real-time visibility into assignment status, eliminating the follow-up overhead that currently consumes significant coordinator time each week.
Assignments must be encrypted at rest and in transit using asymmetric encryption (e.g., RSA or ECDH key pairs per user, stored in device secure enclave / Keychain). The Flutter client generates or retrieves the peer mentor's public key from the backend before encrypting the payload client-side; the backend never sees plaintext sensitive fields. Delivery and read receipts are tracked via REST API callbacks triggered when the assignment record is first fetched and first opened. The 10-day auto-reminder is implemented as a server-side scheduled job. The Secure Delivery Adapter abstracts the encryption provider, allowing key management strategy to evolve without changing business logic.
Components (118)
Shared Components
These components are reused across multiple features
User Interface (12)
Service Layer (34)
Data Layer (22)
Infrastructure (38)
User Stories
No user stories have been generated for this feature yet.