🌈 Moodify — Let Your Mood Choose the Melody 🎵

✨ Inspiration

During stressful days, we often struggle to express how we’re feeling. We wanted to build a web experience that doesn’t ask you, “How are you today?” — but instead shows you metaphors, listens silently, and recommends music that speaks to your inner mood.

We believe music can be a powerful emotional companion, and if tech could understand our mood without words, it could recommend the right tracks to heal, uplift, or just vibe.

🛠 How We Built It

  • Frontend: A playful, metaphor-based quiz built using HTML/CSS/JavaScript. Users answer 5 abstract questions (like “What does your mind feel like today?”), each mapped to a score.
  • Backend: A lightweight Flask server handles the logic. It receives the scores from the frontend and feeds them into a trained ML model.
  • Machine Learning: We trained an XGBoost classifier on a custom mood dataset, where labels like "low energy", "high energy", and "joyful" were derived from emotional responses to similar metaphorical prompts.
  • Music Recommendations: Each predicted mood maps to a pool of hand-picked Spotify songs. The app randomly shows 2 songs each time to keep the experience fresh.
  • Deployment: Currently in progress — running locally with plans for deployment on Render / Replit / Railway.

📚 What We Learned

  • How to bridge ML with web development using Flask.
  • How to use asynchronous fetch calls in JS to interact with Python APIs.
  • How to preprocess and train a lightweight mood classification model that doesn’t require massive datasets.
  • That great UX can be metaphorical and playful — logic doesn’t always have to feel robotic!

🚧 Challenges We Faced

  • Team coordination: We struggled with syncing responsibilities and getting everyone on the same page during the final stretch.
  • Flask ↔️ JS integration: The fetch('/predict') call caused unexpected bugs, and debugging async errors under time pressure was tough.
  • Model testing: We needed to expand our dataset for better predictions, but had limited time for optimization.
  • UI/UX polish: We had a vision for beautiful mood transitions, animations, and Spotify embedding — some of which had to be postponed.

💭 Future Scope

  • Deploy a hosted version for public use.
  • Add a "shuffle song" button to get new recommendations for the same mood.
  • Connect directly to Spotify's API to play previews.
  • Add user mood history, visual mood maps, and journaling space.

Made with 💙, late nights, and a lot of Ctrl+Zs.

Share this project:

Updates