Inspiration

Care for one elderly person is split across relatives, paid caregivers and a group chat. A chat has exactly one permission level, cannot scope what a caregiver sees to the shift in front of them, cannot show that Thursday is uncovered, and cannot show the person being cared for what was said about them. Every screen we built had to beat that baseline.

What it does

The elder holds a permission grid: data categories against people. Presets fill a column when someone joins, then the elder edits it per person, so permissions belong to the person rather than the role.

Caregivers do not browse a profile. A shift card is assembled per shift and per viewer: prayer times, medication times already shifted by the elder's buffer, diet, language, and the previous handoff note.

Preferences are typed objects, not checkboxes. Enums where logic branches (caregiver_gender, diet.meat), free text where only a human reads it. Two are wired to visible consequences: the prayer buffer moves the medication schedule, and caregiver gender is checked against bathing assignments.

How it was built it

FastAPI and SQLite behind a vanilla JavaScript front end, ES modules, served with Vite.

Two independent filters gate every field. Filter A is permission, set by the elder. Filter B is relevance, derived from the shift and surface. Both must pass.

Challenges we ran into

Scope. The first plan had four user types including doctors. We cut doctors: no clinician signs up for a hackathon app, and a clinician account touching health records pulls in privacy law we could not honestly demo.

Delegation. Our first proxy design granted full access, which undid the permission model — if one toggle grants everything, granularity only holds while nobody needs it. The settled version gives wide but not total access, keeps finances separate, logs every action under the proxy's own name for the whole family, and prevents a proxy appointing another or widening their own column. Appointment and the constraints are implemented; the surface where a proxy manages the grid is not, so a proxy can currently be appointed but cannot act.

What we learned

Learned how to accelerate building a full stack website using the help of AI.

What's next for CareCircle

The proxy's side of the grid. More preference schemas. Real authentication in place of the demo's role switch. Then putting it in front of families currently in this situation to find out how much of what we assumed is wrong.

Share this project:

Updates

Submission history