rubyforgood / rubyforgood/alongwithyou
[FEATURE] First vertical slice: Caregiver/Emergency Contacts + generic CRUD component
@Jberma23 is already working on this.
Since Aug 9, 2026.
- Dominant language
- TypeScript
- Stars
- 9
- Forks
- 4
- Avg merge
- 9h 34m
- Merged PRs (30d)
- 16
Description
Description
Per 0008 — First representative vertical slice: build Caregiver/Emergency Contacts as the first full Phase 1 vertical slice — data model through a shipped, tested, accessible screen. Fields: name, relationship, phone, email. Add/edit/delete list.
Build the generic repeatable-entry CRUD component alongside this slice, not after it — Health Care Providers, Allergies, Chronic Conditions, Hospitalizations, Family History, and others are all variants of the same add/edit/delete list shape, and building Contacts without generalizing the pattern first would mean redoing the work on the next list screen.
Scope: Caregiver/Emergency Contacts screen plus the generic CRUD component it's built on. Does not cover Your Information or Medical Portals — those carry sensitive-field exclusion logic (0006) that's intentionally out of scope for this simplest-case slice. Does not include building the "Keep with me" emergency screen itself, though this data feeds into it later.
Acceptance Criteria
- Generic repeatable-entry CRUD component built as a reusable pattern, not a one-off screen implementation
- Caregiver/Emergency Contacts screen built on that component: fields = name, relationship, phone, email
- Add, edit, and delete all work end-to-end against the encrypted local database
- Screen sits behind the existing biometric-unlock app shell like the rest of Phase 1
- Meets WCAG-aligned accessibility requirements (screen reader support, no reliance on color alone, adequate touch targets)
- Screen follows the reduce-cognitive-load principle — one task per screen, next step obvious
- The feature/s being implemented are covered by unit tests - If not, create tests for them on this ticket
Additional Info and Resources
- Source: 0008-first-vertical-slice.md
- This is intended as the first ticket handed to a new contributor — a "start here" onboarding story. Keep scope small and the CRUD pattern clean, since later Phase 1 screens will copy it directly.
- No sensitive-field exclusion logic belongs in this ticket (contrast 0006, which governs Your Information and Medical Portals) — this slice is intentionally the lowest-complexity case.
- Output feeds into the "Keep with me" emergency screen (0005) — not built here, but keep that downstream use in mind for the data shape.
QA
- Add, edit, and delete a contact; confirm changes persist correctly in the encrypted local database
- Confirm the CRUD component is genuinely reusable (not hardcoded to Contacts' specific fields)
- Run the full add/edit/delete flow with a screen reader (VoiceOver/TalkBack)
- Confirm the screen is only reachable behind biometric unlock
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.