🌈 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.
Built With
- api
- colab
- css3
- flask
- github
- html5
- javascript
- python
- scikit-learn
- spotify
- vs
- xgboost
Log in or sign up for Devpost to join the conversation.