Ever wanted to let your emotion dictate the songs you listen to? Well, Moodify's got you! Based on five common emotions, Moodify brings up a list of recommended Spotify songs for you to listen away!
As music lovers, we always choose songs based on how we feel. If we're happy, we might go for something upbeat, like hip-hop. If we're sad, something slower like ballads are the way to go. We wanted to make a web app that lets users explore songs they might not listen to usually, based on their mood.
We believed that music can change the world for the better, but first, we should start by connecting our human emotion with music.
Moodify allows users to input their current emotion, and then is recommended different songs based on how they're feeling! Each emotion that you select (Happy, Sad, Angry, Bored, Excited) corresponds to a different music genre, which pops out a list of songs based on that genre.
Emotion to Genre:
Happy -> Pop
Sad -> Soul
Angry -> Rock
Bored -> R & B
Excited -> Dancepop
For our front-end, we used React and Tailwind CSS for a smooth coding experience when creating the web application. For our back-end, we used the Spotify API and Axios to retrieve recommended songs, which can be stored in Firebase's NoSQL database Firestore.
We initially wanted to implement Computer Vision using GCP's Cloud Vision API. However, we were only able to used it for a Node.js application rather than for our React project, so we ultimately scrapped the idea.
Coming into this hackathon, most of our team were all beginners! None of us were fluent with JavaScript, so as while coding this project, we also had to learn JavaScript on top of learning React. We're proud of being able to create a full-stack web application that is both fun and useful.
- Learning to make sacrifices. With only 36 hours in the hackathon, we figured out that we couldn't simply implement every feature. We can't make as perfectly aligned to our original plan.
- Learning to prioritize our well-being. We stayed up all night to work on the hackathon, but it simply wasn't worth it. For most of the hours into the night, we didn't make much progress. We learned that it's super important to also take breaks, and also get some rest - never work while feeling tired or sleepy!
Incorporate Computer Vision to sense the user's mood directly, which allows for recommendations on the spot.