Inspiration

I came up with this idea while running over the summer. I slowed down my pace when my playlist played a song that had a slower tempo than my cadence. I wanted to figure out how I could ensure that my songs wouldn't affect my cadence. This way, I could run at a consistent pace while having songs that fit my desired genre.

What it does

This application takes in user input on music genre, height(cm), desired time of exercise(min), and speed(km/hr) OR target distance for running(km). By collecting this data, our program is able to calculate the cadence of the user in strides per minute. The program takes the genre and strides per minute, and uses Spotify's music library to find songs matching the specifications. We are able to use spotify as a database through Spotify Web API by Spotify for developers. By accessing Spotify through their web API, we were able to pull songs from Spotify's song database and import them into our website. Additionally, Web API allowed us to create a new playlist in the user's profile filled with the songs we generated for them to run to.

How we built it

We built this project by diving in and conquering. Under the organizers' guidance, we spent the first 6 hours planning and researching the best way to implement our idea. Here, we had to adapt our work upon finding the limits that Spotify had implemented since last year that removed some of the Audio Track details accessible through their web developer program. One half spent time learning how to use web APIs to communicate between each part of our website, Spotify, and search Spotify's selections within ReccoBeats BPM database. The other half of the group began researching OAuth logins and how they worked, as we spoke extensively about how we could connect the user to their Spotify without creating a potential cybersecurity risk. From this planning, we moved on to splitting up tasks. Alejandro worked on the front end of the website, and Savannah and Sejal worked on the integration of user inputs, and Rebecca worked on the connection between our program and Spotify's platform to create the playlist. We worked in proximity the entire time to ensure the easiest integration and constantly clarified the scope of each person's work.

Challenges we ran into

While working on this project we ran into several challenges specifically with connecting our website to Spotify and pulling the bpm from reccobeats. Connecting our website to Spotify required creating an in-between server to transfer the variables from the user to grab specific songs from the Spotify library. We also had trouble using the songs gathered from the library to turn into a Spotify playlist.

Accomplishments that we're proud of

The accomplishment we are most proud of is overcoming the challenge of connecting our website to Spotify by using a server. This was new to all of our hackers so we had to look at it conceptually and implement it in the span of a few hours. Seeing that it was successfully creating Spotify playlists was one of the most exciting moments of the entire hackathon.

What we learned

In terms of technical expertise, we learned how to implement OAuth and Web APIs to connect our program to users' personal accounts, without creating security risks or hardcoding communication directly. As a team, we also learned to break down and explain our ideas in a group setting for clarity and understanding.

What's next for Run With The Beat!

We want to make Run With The Beat accessible to a phone's interface and implement it as its own app; given its purpose, we want our users to be able to quickly pull out their phone to start their playlist instead of going to a PC. Likewise, we want to shorten the amount of wait time between the request and the final playlist being created. This could be sped up with batch database searches; however, with Recco Beats, we were not able to implement this method, meaning the program has to search for the BPM and classify the song one by one. After this hackathon, we will be linking a business account in Spotify, as this is what allows us to move our app out of the development stage that limits access only to those with a premium account and a maximum of five users per app.

Share this project:

Updates

Submission history