CareWatch is an AI-powered caretaker abuse detection MVP for vulnerable dependents, combining pose-based motion heuristics, Gemini scene verification, rolling clip capture, push notification escalation, SQLite logging, and a React dashboard.
The dashboard supports both live monitoring and uploaded recording review, so demos can show the current room feed and retrospective analysis of saved footage.
api/,core/,frontend/,main.py: backend and web dashboardEyeQ_IOS/: iPhone apprequirements.txt,.env.example: root runtime setup
- Create the environment file:
cp .env.example .env
- Fill in the required secrets in
.env:OPENROUTER_API_KEYOPENROUTER_MODEL(optional, defaults togoogle/gemma-3-12b-it:free)GEMINI_API_KEYIOS_BUNDLE_IDAPNS_KEY_IDAPNS_TEAM_IDAPNS_AUTH_KEY_PATH
- Install Python dependencies:
uv python install 3.11uv venv .venv --python 3.11uv pip install --python .venv/bin/python -r requirements.txt
- Install frontend dependencies:
cd frontend && npm install
Open two terminals from the project root.
Backend:
./.venv/bin/python main.py
Frontend:
cd frontendnpm run dev
App URLs:
- API:
http://localhost:8000 - Dashboard:
http://localhost:3000
core/detector.pyruns YOLOv8-pose and flags proximity + fast-motion interactions or long caretaker absence.core/classifier.pysends flagged frames to the configured hosted or local vision model stack and enforces review cooldowns.core/clip_saver.pymaintains a rolling 30-second frame buffer and saves evidence clips intoclips/.core/alert.pysends app push alerts with 5-minute severity deduplication and logs every alert attempt.core/pipeline.pyorchestrates capture, detection, classification, clip saving, alerting, and SQLite event logging.api/exposes the stream controls, status endpoint, alert feed, and clip playback API.frontend/provides the live operations dashboard.EyeQ_IOS/provides the guardian-facing mobile client.
- Start the backend and frontend, then open the dashboard to show the monitoring status panel and empty alert feed.
- Click
Start Monitoringand show the status change to active with uptime increasing. - Feed the camera a staged high-risk interaction or caretaker-absence scenario so the heuristic detector triggers Gemini review.
- Show the resulting app notification, alert feed entry, and saved clip appearing in the dashboard with severity, reason, and suggested action.
- Open
Review Clipand explain that the family sees 30s clip with AI explanation, not 8 hours of footage