You can find people at the gym doing a diverse array of workouts including running on the treadmill, lifting weights, or working on their core strength. Therefore, the music playing over the speakers is usually not conducive to everyone's choice of exercise. We decided to create an application to make an individualized playlist of songs that would best help power you through your gym session.

What it does

The user sees a "Go to Spotify Login" button and logs in with their Spotify page. Then, the user's data and top 5 artists' are pulled (with authorization). The user chooses a type of workout category (cardio, strength or flexibility) and intensity (moderate or high). The application then curates a playlist of songs from their top artists. This playlist is based on parameters we created for energy, valence, loudness, and tempo for each combination of workout and intensity. Then the user can access and listen to their curated playlist while working out.

How we built it

Currently, our website is being implemented through HTML, a .py file, and a Flask app. HTML is for the user interface and what they interact with to choose the type of workout and its intensity. We imported a python algorithm that obtains the users' songs based on the workout's parameters.

Challenges we ran into

The main challenge we ran into was figuring out how to use Spotify API to get the user's data. Due to the timeframe, issues with the Web API, and difficult to understand documentation, we could not access the user's top 5 artists. As a temporary workaround, we hard-coded artists from a dataset of 10,000 Spotify tracks.

Accomplishments that we're proud of

During this project, we were able to clean a large dataset, select parameters for each workout and intensity, and create a web application.

What we learned

We learned about using HTML, running Web API's and sourced code from GitHub, integrating different languages and platforms.

What's next for WMR

In the future, we plan to implement this project using the Web API to more easily pull the data and run the code. We would also like to launch our application in the form of a mobile application to make it more accessible to users.

Share this project: