Inspiration
Although people often discuss wellness and self-improvement online, they rarely know what their body needs in the moment. We wanted to build something fun and interactive that responds to you, not just to provide generic advice.
What it does
moodi scans your face, extracts health metrics like heart rate and breathing rate (but not limited to), and then generates personalized tasks to help you take care of yourself. Examples:
- If your resting heart rate looks unusually high, moodi tasks you to do a quick meditation session
- If your breathing rate suggests stress, you may be tasked with going on a jog We also built a health-focused chatbot implemented in, where lumi, our AI assistant/mascot, explains your metrics and supportive advice tailored to how you're doing.
How we built it
- Frontend: TypeScript, JavaScript, React
- Backend: Supabase, Express.
- Vitals Detection: Presage, which we used to extract health metrics
- AI: Google Gemini API for generating tasks and powering the chatbot
- Other: WebSockets for live updates + Swift for mobile camera integration
Challenges we ran into
- Presage isn't very accurate in determining the metrics, as some of the returned data were sometimes random and inconsistent, which made it harder to build logic around them
- Connecting React, Supabase, Presage, Gemini, and other integrations within a strict time constraint required a lot of debugging, and there were times when the website would either not work or load very slowly
- Presage also didn't support macOS, with limited desktop testing
Accomplishments that we're proud of
- A working chatbot that gives live, personalized health advice based on both user questions and the data given to it
- A mystical, game-like UI that makes health check-ins feel fun, friendly, and approachable while staying functional and user-friendly
What we learned
- Biometric data needs guardrails, as accuracy can vary a lot, and relying on an app that only scans your face is far from reliable
- How to connect and coordinate a full-stack system (Supabase + React + external APIs) efficiently
- That health apps aren't just about metrics, but UI, mood, and user comfort can completely change the experience
What's next for moodi
- Replace Presage with a more accurate and reliable vitals provider
- Add desktop face scanning, which wasn't possible this time around due to Presage limitations
- Implement long-term trend tracking and personalized “health plans” instead of one-off tasks
- Expand Lumi into a more proactive wellness companion
Built With
- express.js
- gemini
- javascript
- presage
- react
- supabase
- swift
- typescript
- websockets
Log in or sign up for Devpost to join the conversation.