Inspiration

Teens today are overwhelmed—constantly online, emotionally drained, and often disconnected from real life. That’s where Cadence comes in.

What it does

In essence, "Cadence" signifies finding your optimal rhythm in both your inner emotional world and your external digital life. For teens constantly battling digital overload, the app helps them establish a healthier digital cadence – a balanced pace for screen time, preventing overwhelm and fostering better self-regulation. It's about finding that steady, comfortable rhythm in their daily routine, rather than being constantly swept up by notifications and online pressure.

At its core, Cadence is a smart wellness companion that uses AI and music to help teens understand and manage their emotions. It starts by analyzing journal entries and listening habits to detect your mood. Then, it recommends music that either reflects how you're feeling or gently guides you toward a better emotional state. Cadence also supports digital balance—helping teens set healthy screen time boundaries, avoid digital overload, and reconnect with the rhythm of real life. It even suggests offline activities and lets users invite friends or family as accountability partners for support. It's more than an app. It's a rhythm-based approach to digital wellness, emotional balance, and real-world connection.

In a world that’s always on, Cadence helps you tune into yourself.

How we built it

The project began with Phase 1: Foundation & Core Mood Detection. This involved setting up the Python environment, installing Streamlit for the user interface, and creating the basic UI with a text input area for journaling. A key part of this phase was implementing mood detection logic using NLTK's VADER sentiment analysis to process text input and map VADER scores to simplified mood categories like "Positive," "Negative," or "Neutral".

Phase 2: Music Recommendation & Initial Nudges, then integrated mood-based music recommendations. Predefined, teen-appropriate music playlists were curated directly within the Python code, and logic was developed to recommend a playlist based on the detected mood. This phase also introduced basic digital wellness nudges, including a "Study Mode" toggle that displays messages indicating paused notifications and offers human-centric activity suggestions. A simple user feedback mechanism for music recommendations was also added.

Finally, Phase 3: UI Refinement & Presentation Prep focused on enhancing the user interface and preparing for demonstration. This included refining the language and tone of AI responses to be empowering and teen-friendly, enhancing overall UI/UX for clarity and intuitiveness, and ensuring consistency with the "soft, fun, happy, inviting" aesthetic. All features were tested, and presentation materials were prepared to outline the project's problem, solution, MVP features, and future enhancements.

Throughout the development, tasks were meticulously tracked, including features like granular mood selection, Spotify API integration (for post-MVP), and basic user authentication. The project prioritized a Minimum Viable Product (MVP) for a 20-hour hackathon, with clear delineation of post-MVP enhancements to manage scope effectively.

Challenges we ran into

One of the biggest challenges I faced during development was working with tools and technologies that were completely new to me, especially Streamlit and the machine learning libraries I used for sentiment analysis and recommendation. To overcome this, I experimented with a method called context engineering, a growing practice in AI-assisted programming.

Context engineering involves structuring your prompts and inputs to AI coding assistants in a way that gives them just enough background, goals, and examples to produce helpful, accurate code suggestions. It’s like collaborating with an AI teammate. You have to give it the right context to get meaningful output. I used this technique with tools like Kilo.code, DeepSeek, and Claude, which helped me debug issues, understand unfamiliar syntax, and even structure my code more efficiently.

Of course, it wasn’t always smooth. There were lots of bugs, dead ends, and trial-and-error moments. But each issue I ran into became an opportunity to learn outside my comfort zone, whether it was researching error messages, understanding how NLP models work, or connecting multiple components like journaling input, mood analysis, and music recommendations.

This challenge taught me that AI could be a powerful learning companion. With the help of AI tools and context engineering, I would be able to build faster, learn deeper, and bring creative ideas to life that I might’ve never attempted alone.

Accomplishments that we're proud of

One area i was super proud of was building a working MVP, even though the project had such a limited timeframe, I was able to create the tool that I had envisioned.

Another big win was developing my first functional prototype using Streamlit.

What we learned

Throughout this project, I learned so much—both technically and creatively. I learned new ML integrations, a new frontend program and found ways to improve my workflow.

What's next for Cadence

Moving forward, i want to implement deeper Spotify integration so users can connect their accounts and get music recommendations based on their actual playlists and listening habits. I also plan to build a Mood History & Insights Dashboard that lets users track how their emotional state changes over time through simple, visual summaries. To encourage connection and support, i also plan on adding social features like accountability partners, shared playlists, and local support circles. I also want to create a Local Activity Suggestions API that gives real-time recommendations for offline activities in the users cities—like events, hangouts, or museum exhibits. To make the app more accessible, I’m aiming to redesign the interface for a mobile-friendly experience, so teens can use Cadence easily wherever they are. Finally, I’m committed to improving privacy and consent settings.

Built With

Share this project:

Updates