BonnyBTakesCS455 / music-tracker

0 stars 0 forks source link

music-tracker

Description:

Our Spotify tracker web app allows music listeners to view their music tastes and stats, analyze their listening history and trends, and compare with their friends. It is similar to Spotify Wrapped but supports more timeframes, will track more metrics and give you more insights on your music listening.

Goal legend

Minimal Requirements:

Standard Requirements:

Stretch goals:

Minimal Tasks:

Mockups:

Mockup 1 Mockup 2 Mockup 3 Mockup 4 Mockup 5

Tech used

Above and beyond functionality

Our web app had to use Spotify APIs to retrieve all the information we needed and so we relied heavily on that. To access the APIs, we had to code OAuth logic for a user and retrieve their access token and refresh token so we could have retrieve data without having them to re-login everytime. The flow looked like this: Spotify Auth Flow We also built a scraper that runs every hour on a CRON job to scrape user's listening history so we could track their listening history precisely. Much of the data we display is not accessible through just the Spotify APIs. There were some algorithms that we made that allowed us to create cool features of the app such as recommending songs and creating a playlist for the user instantly. Lastly, we created a robust friends system, where users can add/reject other users.

Next steps

We believe we have some neat ideas for stretch goals and definitely would want to implement some of them. We would definitely tap into the social aspect of our app, and have more things to do with friends like automatically comparing two people's music tastes or making a playlist that two people could enjoy together. We already have the logic to retrieve data for one person, so we would next need to figure out a way to compare and combine the data together and present nicely. Another cool goal of ours would be to be able to show off a user's data to other forms of social media, so fitting some of the insights onto a mobile phone sized screen and being able to share it on Instagram or Facebook would be a neat feature.

List of contributions