AI-powered caregiver burnout detection and prevention
CareMate combines calendar events, tasks, wearable health data (HRV, sleep, steps, stress), and AI to compute real-time burnout risk and suggest actionable interventions. Built for America's 63 million unpaid caregivers—especially sandwich-generation women juggling kids, aging parents, and careers.
YouTube Demo:
The Problem: 47% of caregivers struggle with burnout; 43% are chronically sleep-deprived; 70% report care-coordination stress. There is no platform that combines objective biomarkers (wearable HRV, sleep) with AI-driven, context-aware interventions and delegation assistance to catch burnout before crisis.
Our Solution: CareMate detects burnout early by fusing:
- Wearable data (HRV, sleep, steps, stress) → 30% of score
- Calendar & task load (density, conflicts, overdue) → 30%
- Semantic signals (mood, voice) → 25%
- Self-report (mood trends, sleep) → 15%
Then it generates hyper-specific interventions (delegate, automate, reschedule, self-care) with quantified time savings and drafts delegation messages to remove the “I feel guilty asking” barrier.
| Feature | Description |
|---|---|
| Dashboard | Profile selector (Sarah / Maria / Emma), burnout meter (0–100), load snapshot (appointments, tasks, sleep, HRV) |
| Calendar | Week view, add/delete events, types (caregiving, work, self-care, medical), overload hints (back-to-back, density) |
| Wearable | JSON health upload (POST /health/upload), biomarker cards (HRV, sleep, steps, stress), “Use Mock Data” fallback |
| Burnout Score | 4-component formula; POST/GET /users/{id}/calculate-burnout, GET /users/{id}/burnout-score; History chart from burnout_daily |
| AI Interventions | POST /interventions (Gemini) — problem, solution, time saved, difficulty; POST /optimize?profile_id=xxx for schedule optimization |
| Delegation | Contacts, task picker, AI-drafted message, “Send SMS” (simulated; Twilio-ready) |
| History | Daily burnout, sleep, HRV charts from Supabase burnout_daily & wearable_data |
| Provider Dashboard | GET /dashboard — HTML view of all 3 caregivers’ status and burnout scores; auto-refresh 60s |
Demo personas: Sarah (84 Critical), Maria (52 Moderate), Emma (24 Managing).
- Backend: FastAPI, Supabase (Postgres), Gemini API. Burnout: pure Python 4-component formula; no Wolfram at runtime.
- Frontend: Expo (React Native), TypeScript, Zustand, NativeWind, react-native-chart-kit.
- Data:
profiles,calendar_events,burnout_scores,burnout_daily,wearable_data,tasks,interventions. Health via JSON upload (Garmin .fit via fitparse optional later).
cd backend
python -m venv .venv
# Windows: .venv\Scripts\activate
# macOS/Linux: source .venv/bin/activate
pip install -r requirements.txtCreate .env (project root or backend/) with:
SUPABASE_URL,SUPABASE_SERVICE_ROLE_KEY(required)GEMINI_API_KEY(forPOST /interventionsandPOST /optimize)
Then:
uvicorn main:app --reload- API: http://localhost:8000
- Docs: http://localhost:8000/docs
- Provider dashboard: http://localhost:8000/dashboard
cd frontend
npm install
npx expo startUse Expo Go on a device. If not on localhost, set EXPO_PUBLIC_API_URL (e.g. http://<your-ip>:8000) and EXPO_PUBLIC_SUPABASE_URL / EXPO_PUBLIC_SUPABASE_ANON_KEY.
- Tables per
docs/DATABASE.md:profiles,calendar_events,burnout_scores,burnout_daily,wearable_data, etc. - Ensure
profilesand tables exist (seedocs/DATABASE.md). For History chart:python backend/data/seed_burnout_daily.py.
See QUICKSTART.md for a short run-through.
| Path | Description |
|---|---|
/backend |
FastAPI: burnout scoring, /events, /health, Gemini interventions & optimize, Supabase |
/frontend |
Expo app: Dashboard, Calendar, Wearable, Interventions, Delegation, History |
/docs |
API, DATABASE, ROADMAP, HEALTH_DATA_README, PROJECT_GOALS, TESTING |
| Doc | Purpose |
|---|---|
| QUICKSTART.md | Minimal steps to run backend + frontend |
| docs/API.md | Endpoints: burnout, events, health, interventions, optimize |
| docs/DATABASE.md | Supabase schema and query patterns |
| docs/HEALTH_DATA_README.md | JSON format for POST /health/upload |
| docs/PROJECT_GOALS.md | Goals, personas, burnout formula |
| docs/ROADMAP.md | Implementation status and tiers |
| docs/TESTING.md | How to test API and critical paths |
| backend/README.md | Backend setup, env, API overview, seeding |
| frontend/README.md | Frontend screens, Zustand, NativeWind |
- Dashboard — Sarah (Score 84, Critical); show load snapshot.
- Wearable — Upload
backend/data/examples/sarah_health_data.jsonor “Use Mock Data” → HRV, sleep, steps. - Burnout —
POST /users/{id}/calculate-burnout→ score updates; History shows trend. - Interventions —
POST /interventions→ 3–5 cards with time saved. - Delegation — Pick contact + task, edit draft, “Send SMS” (simulated).
- Calendar — Add/delete events; optional
POST /optimize?profile_id=xxx. - Provider dashboard — http://localhost:8000/dashboard for all 3 caregivers.
- 4-component burnout formula (wearable, calendar/task, semantic, self-report) with pure Python calculation; no external scoring API at runtime.
- Health JSON upload with example files for 3 personas; upserts
wearable_dataandburnout_daily, feeds into score. - Gemini-powered interventions and schedule optimization (
/interventions,/optimize). - Provider dashboard (
/dashboard) to monitor all 3 caregivers in one view. - Expo app with Dashboard, Calendar, Wearable, Interventions, Delegation, and History wired to the API.
- Backend: FastAPI, Python 3.10+, Supabase (Postgres), Gemini API
- Frontend: Expo, React Native, TypeScript, Zustand, NativeWind, react-native-chart-kit
- Data: Supabase (
profiles,calendar_events,burnout_scores,burnout_daily,wearable_data,tasks,interventions)
MIT
Built for RoseHacks 🌹 — CareMate: detect caregiver burnout before crisis.
