Inspiration

Spotify is a cool that we use daily and offers a very versatile API. They also collect a wide swathe of statistical data on their users and allow for developers to use this data for free.

What it does

Spotimatch helps users to quantify their music taste using statistical data from Spotify on their top tracks and artists, and compares it to the public playlists of a user of their choosing. Spotimatch uses this data (including the track's danceability, loudness, speechiness, acousticness, instrumentalness, energy, tempo) to score the similarities between the music taste of the user and the playlists of the user they choose to compare themselves to. Using these scores, Spotimatch ranks the playlists in order of most to least similar. Spotimatch also gives an overall score comparing the user's music taste to the overall music taste shown in the playlists. Spotimatch also graphically displays the results to make it easier for the user to digest the outcome.

How we built it

We built this web app using Flask as our framework of choice to make it simple to create an easy to use, interactive experience. It also uses the Spotify API to scrape data about the user's top tracks and artists, as well as the playlists of the user they are being compared to. To style the web app we use bootstrap to simplify the design.

Challenges we ran into

Originally, we started the app in Node.js and Express. This turned out to not be the best option for us because it's very unintuitive for beginners and none of us have used it before. Some of us have had experience with Flask, so Sunday morning it seemed like the best course of action to migrate everything we had worked on to Flask.

Accomplishments that we're proud of

Even though we ended up scrapping our Node.js and Express attempt at this project, we are proud of the progress we made before switching over to Flask. Our web app was nearing completion, but we had been stuck at a major roadblock for several hours.

What we learned

We learned just how important it is to research the use cases of your development tools before jumping straight into using them. We were all excited to learn and use Node and Express for the first time, but didn't think to put more research into how it is used and what it can be used for. In the future, we will always know to spend more time on research and planning out the structure of our project before starting.

What's next for Spotimatch

It would be amazing if one day Spotify would incorporate something similar to Spotimatch to help users more easily figure out what they might enjoy listening to at a glance. We would also like to host Spotimatch so that people can use it, assuming Spotify doesn't acquire it first!

Share this project:

Updates