rubyforgood / rubyforgood/alongwithyou

[FEATURE] First vertical slice: Caregiver/Emergency Contacts + generic CRUD component

Open
#118 0 comments 0 reactions 1 assignee View on GitHub

@Jberma23 is already working on this.

Since Aug 9, 2026.

enhancement RFG Conference
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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.