Inspiration
Psychiatric relapse often begins with small, everyday changes such as altered sleep, shifts in activity, reduced communication, or increased screen use long before a visible crisis. Patients and clinicians rarely see these signals early enough, which makes care reactive instead of proactive. We built the MindGuard demo to bridge that gap by turning subtle patterns into timely, supportive guidance that reduces uncertainty and helps people stay well.
What it does
MindGuard simulates processing digital signals into actionable insights about schizophrenic relapse risk:
- Using Passive Data: simulates mobility (distance, home-stay), communication patterns (calls, texts, unique contacts), smartphone use (screen minutes, unlocks), and physiological signals (HR, HRV).
- Daily mood check-ins: simple emoji rating system to capture subjective state with minimal burden.
- Forecasts: calibrated relapse-risk predictions across multiple horizons (1, 3, 7, 14, 30 days) with a rolling 14-day context window.
- Patient and clinician views: dashboards that show trendlines, confidence bands
The system does not diagnose. It reduces uncertainty and supports earlier check-ins, lifestyle adjustments, or outreach before symptoms escalate.
How we built it
- Data and features: Python (pandas) aggregates daily signals into 14-day windows with means, variability, deltas, and trend features.
- Models: scikit-learn and XGBoost classifiers per horizon with calibration. Thresholds are tuned to prevalence and utility.
- API: FastAPI with Uvicorn serves
/predictand/healthendpoints. Results are stored in Parquet with idempotent composite keys. - Storage and logging: simulates a singular patient profile using dates with UUIDs and timestamps for versioning and auditability.
- UI: a fast lighweight app with forecast graphs, horizon-specific outputs, and rationale views.
Challenges
- Data sparsity and drift: real-world data is missing, bursty, and changes across semesters, jobs, or devices. This required robust imputers, windowing, and recalibration.
- Github: Github syncing issues due to virtual environment change
- Cross-platform development: Windows and macOS parity issues with file watchers.
- Human factors: approaching the problem with patient and psychiatrist views in mind while ensuring separate tones.
Accomplishments
- Built a functioning end-to-end loop: ingestion to features to forecasts to explanations to visualization.
- Achieved robust outputs with partitioned, deduplicated logs designed for re-runs and clean analysis.
- Delivered fast, reliable scoring under one second per payload with intuitive visualizations.
- Designed a intuitive and user friendly interface
- Allowed for communication between 2 processes (one patient one psychiatrist)
- Incorporated a push notificaiton service
What we learned
- Explanations are more useful than raw probabilities.
- UX details such as tone, color, and copy significantly affect user comfort and engagement.
What’s next
- Evaluation: pilot studies to measure lead time and false-alert burden.
- Personalization: thresholds tailored to individual baselines rather than population averages.
- Richer signals: incorporate sleep staging, circadian metrics, and structured notes with consent.
- Care loops: integrate secure messaging and scheduling nudges.
- Governance: expand privacy controls and on-device feature extraction.
Built With
- ntfy
- python

Log in or sign up for Devpost to join the conversation.