Inspiration

Sometimes, it's hard to tell your friends directly that you're not feeling great, and many people tend to gravitate towards their sad playlists or songs on Spotify to cope by themselves. With Moodacado for Spotify, we wanted to give people a way to see their friends' musical moods and create opportunities to check in on each other through their music.

What does a Moodacado do?

With Moodacado, you can login using your Spotify account and send and accept friend requests between you and other Spotify users on the Moodacado platform. Friends can see each other's most recently played songs, and our machine learning model classifies these songs with emojis based on what emotion it thinks the song corresponds to. You can use Moodacado to just get your friends' musical vibes, or even check in with them if they're listening to a 😔 song - you never know whose day you might make by just getting in touch!

How we built it

Our frontend was built in React, and our backend is a mix of Flask and ExpressJS with a PostgreSQL instance hosted on Google Cloud. Our ML model used scikit-learn, numpy, and pandas for data analysis and learning.

We started off by connecting to Spotify for user authorization, and fetched data about recently played songs from their API while implementing our own friends system via our backend to create the core features of our project. We then moved on to classifying songs by emotion, and decided to use a machine learning model so that this task would eventually become self-automated as more songs were classified.

Feel free to check out the code for our frontend and our backend on GitHub!

Challenges we ran into

We had a lot of ambitions for this project, but admittedly did not have enough experience with JavaScript to match; a lot of our time was spent debugging React gimmicks and figuring out how to execute upon certain ideas for components. While not all of our ideas made it to this first iteration of Moodacado, we've got them in mind for future feature ideas for further improvement!

Accomplishments that we're proud of

For all of us, this was the first project where we completely built a backend and frontend from scratch in such a short amount of time. It was also our first project involving machine learning, which was an extensive learning experience in addition to getting the main components of our project set up.

What we learned

A lot of useEffects and API calls later, we're now more versed with setting up a lot of components in React and getting backend and frontend connected over a short period of time. We're also one step deeper into the world of machine learning, by setting up and deploying a simple model for this project and learning how the rules of ML work.

What's next for Moodacado

Over the course of a week, we focused on learning and prototyping, so our code and backend wasn't set up very efficiently for a long-term life cycle. In future iterations of Moodacado, we'll work on optimizing these inefficiencies and adding new features to improve our user experience and engagement.

Special credits

We would like to thank the following curators for their previous data on classifying songs by emotion; this data was used to help train our own machine learning model which classified songs for our project. https://www.kaggle.com/yamaerenay/spotify-dataset-19212020-160k-tracks https://github.com/SylCard/Spotify-Emotions-Project/blob/master/Clustering_Spotify_Songs.ipynb

Share this project:

Updates