Inspiration

Everyone loves music, but finding new music can be a difficult task. We found that music websites, such as Spotify, emphasize recommendations similar to what we currently enjoy, but don't address the music that we don't enjoy. As a result, we wanted to come up with an app that recommends songs not necessarily always similar to what we like, but also distinct from our dislikes, introducing us to potentially new genres.

What it does

Using a Tinder-like front-end, users can listen to ditties of popular songs from Spotify to discover new genres. By swiping left or right, users can influence subsequent song recommendations.

How we built it

We created a recommendation algorithm using Scikit-learn and the Spotipy API that analyzes the user swipes to suggest new songs on our web app. Our web app was created using React.js and Flask, and our database of choice was CockroachDB.

Challenges we ran into

This was the first full stack app we've made, so we ran into a lot of issues connecting the front-end and back-end components, as well as setting up our database. Additionally, it was a challenge to gather all of our data, as the API we used limited our request volume. In the end, with CockroachDB, we were able to connect and store data into it; however, we were unable to resolve querying from it on our "Liked Songs" page.

Accomplishments that we're proud of

We are super proud of our front-end's interactability and our app's ability to dynamically generate cards that align with the user's interests!

What we learned

We learned how to connect various python libraries (Scikit-learn, Flask, Spotipy, etc.) together to develop a robust full stack application.

What's next for Dittycal

We hope to further develop the social aspect of this application, as given the time constraints of this hackathon, we focused on the core functionality (allowing users to find songs they like based previous ditties they've liked). It would be awesome to implement an account system, so that user song data can be analyzed and inputted to a model that implements collaborative filtering (think TikTok, Tinder, or even Netflix!).

Share this project:

Updates