medium complexity MVP extracted Relatives Database Confidence: 100%
3
Components
43
Shared
0
User Stories
Yes
Analyzed

Description

Relative Contact Registration allows peer mentors to register family members and caregivers as independent contact records linked to a primary case. Parents, siblings, and primary caregivers are stored as distinct entities with their own profiles and contact details, enabling coordinators to track interactions with each family member independently. This feature is essential for Barnekreftforeningen, which works with entire family units around a child with cancer rather than just the individual. Relatives are full contact subjects with their own CRUD lifecycle, not embedded sub-fields.

Sources & reasoning

§3.4 of likeperson.md explicitly requires registering relatives (parents, siblings, caregivers) as independent contact subjects linked to the same case. The priority matrix marks this MUST for Barnekreftforeningen at Phase 1. §7 confirms 'Pårørende-database er Fase 1 MUST for Barnekreftforeningen', mapping directly to MVP.

No source references — this artifact was included based on reasoning alone (see above).

Analysis

Business Value

For Barnekreftforeningen, whose peer mentors support families affected by childhood cancer, registering relatives as independent contact subjects is foundational - without it the app cannot model the multi-person family unit central to their workflow. The feature enables coordinators to track follow-up actions across all family members, ensuring no one is missed during a crisis. From a platform perspective it future-proofs the data model for other organizations with family-centered support models, and structuring relatives as proper database entities ensures data quality for aggregate reporting.

Implementation Notes

A dedicated relatives table on the backend stores each relative with a FK to the parent contact. The Flutter UI reuses Contact form components adapted for relationship-specific fields, with a simplified mandatory set (name, role, phone) and optional extension fields. A REST endpoint at /api/v1/contacts/:id/relatives handles scoped CRUD. Drift mirrors the relatives table locally with mutation outbox support for offline creation. The Riverpod state layer manages relative lists per contact with optimistic mutations following the same pattern used by the contacts feature.

Components (46)

User Interface (1)

Service Layer (1)

Data Layer (1)

Shared Components

These components are reused across multiple features

User Stories

No user stories have been generated for this feature yet.