Inspiration

Several health apps are effective at tracking behaviors and visualizing past trends, though few move beyond logging, and those that do tend to reserve deeper insights for paid users. We felt inspired to create our own health app that pairs user input with meaningful predictions and personalized recommendations to help users make informed decisions. Uniquely, our app focuses on mood and energy

What it does

Sensible is a web application designed to predict mood and energy levels and provide personalized insights based on user logs and environmental context. During onboarding, users complete a brief questionnaire to collect basic information and establish an initial baseline. After creating an account, users gain access to a comprehensive dashboard featuring predictions, recommendations, trends, logging tools, and more.

Key features include:

  • Mood and energy predictions with up to a 2-day forecast
  • Integration of weather and environmental context data
  • AI-powered lifestyle recommendations tailored to user patterns
  • User feedback collection to improve predictions and insights
  • Phone notifications that remind users to log their data

How we built it

Our frontend is built using React, with Material UI used to customize styling and layouts, while our backend is implemented with Python FastAPI. Data storage and management are handled using MongoDB, which provides persistent storage, flexible schemas, and scalability. The database is organized into collections that store biometrics, manual user logs, user feedback, profiles, and related data.

To enrich our predictions and insights, the app queries the AccuWeather: Forecast Data database via Snowflake’s API, incorporating weather information into the system. Because mood and energy levels can be influenced by environmental conditions, integrating weather data allows the app to generate more context-aware predictions and lifestyle suggestions.

Predictions and recommendations are generated using Gemini, which analyzes user logs and contextual data to produce personalized insights. We also integrated ntfy, a notification service that enables the app to send real-time alerts to users’ phones. Finally, the web application is currently live at our custom .tech domain: thesensiblecoach.tech.

Challenges we ran into

One major challenge was designing the UI/UX for our web application. We aimed to present comprehensive information and meaningful metrics without overwhelming users. To strike this balance, we experimented with multiple styles, layouts, and color schemes before arriving at our final design, placing a strong emphasis on clarity and visual appeal.

Another significant challenge involved integrating multiple APIs, particularly Snowflake, MongoDB, the Gemini API, and ntfy. This required navigating unfamiliar libraries, understanding differing data models, and ensuring that all components worked together seamlessly across the stack.

We also encountered difficulties deploying the application to our custom .tech domain. While domain registration itself was relatively straightforward, configuring hosting, DNS routing, and tunneling proved more complex than expected. Additionally, several bugs emerged only after deployment to production, requiring careful debugging and iterative fixes.

Accomplishments that we're proud of

  • Integrating with various APIs (Snowflake, Open Weather API, Gemini, MongoDB, ntfy)
  • Hosting and creating a custom domain
  • Phone notifications
  • Deploying a working web application!

What we learned

  • API integration
  • Project planning (esp., database schema design)
  • Notification set-up
  • Tunneling DNS
  • Hosting
  • Git practices

What's next for Sensible

Future steps include

  • Creating a mobile app
  • Refining user predictions and feedback loops with more data

Jack2026!

Share this project:

Updates