Skip to content

ramizik/caremate-app

Repository files navigation

CareMate

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:

CareMate


🎯 Inspiration

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.


✨ What It Does

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).


🛠 How We Built It

  • 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).

🚀 Quick Start

1. Backend

cd backend
python -m venv .venv
# Windows: .venv\Scripts\activate
# macOS/Linux: source .venv/bin/activate
pip install -r requirements.txt

Create .env (project root or backend/) with:

  • SUPABASE_URL, SUPABASE_SERVICE_ROLE_KEY (required)
  • GEMINI_API_KEY (for POST /interventions and POST /optimize)

Then:

uvicorn main:app --reload

2. Frontend

cd frontend
npm install
npx expo start

Use 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.

3. Supabase

  • Tables per docs/DATABASE.md: profiles, calendar_events, burnout_scores, burnout_daily, wearable_data, etc.
  • Ensure profiles and tables exist (see docs/DATABASE.md). For History chart: python backend/data/seed_burnout_daily.py.

See QUICKSTART.md for a short run-through.


📁 Repository Structure

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

📚 Documentation

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

🧪 Demo Flow

  1. Dashboard — Sarah (Score 84, Critical); show load snapshot.
  2. Wearable — Upload backend/data/examples/sarah_health_data.json or “Use Mock Data” → HRV, sleep, steps.
  3. BurnoutPOST /users/{id}/calculate-burnout → score updates; History shows trend.
  4. InterventionsPOST /interventions → 3–5 cards with time saved.
  5. Delegation — Pick contact + task, edit draft, “Send SMS” (simulated).
  6. Calendar — Add/delete events; optional POST /optimize?profile_id=xxx.
  7. Provider dashboardhttp://localhost:8000/dashboard for all 3 caregivers.

🏆 Highlights

  • 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_data and burnout_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.

🛠 Built With

  • 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)

📄 License

MIT


Built for RoseHacks 🌹 — CareMate: detect caregiver burnout before crisis.

About

RoseHacks 2026

Resources

Stars

Watchers

Forks

Contributors