While one of our team members was on his morning run using a popular activity tracker app, he realized that data for steps per minute was only displayed after completing the workout. This meant he would not be able to speed up or slow down to optimize his running. Thus, the significance of this data was greatly diminished. After searching the internet for apps that gave live cadence, we could not find anything. At this point, we decided to develop an app that gave a live, real-time cadence on the user's phone as well as other useful statistics.

What it does

Our app allows runners to watch their live steps per minute. This ensures that the runner is going at an optimal pace since running at a cadence that is too fast or slow can result in inefficient running habits or even worse, permanent injury. Running at an appropriate cadence, usually around 180 SPM (steps per minute), greatly alleviates the force applied upon your legs since it forces you to touch the ground in a lighter manner. Because of the size and frequency of a runner's steps, it prevents one from overstriding, a dangerous flaw in running form which can lead to detrimental heal striking and overextension of legs. When a runner achieves their desired cadence by utilizing our real-time SPM data, they are able to run in a fashion that allows them to achieve their highest potential in speed while preventing injury and improper running form. In addition to SPM, we track the duration of one's run as well as the total number of steps taken. Based on the runner's cadence, our algorithm chooses appropriate song to match the pace so that one can run to the beat of the music, as opposed to focusing on the screen of their phone.

How we built it

Our product uses the device's accelerometer and translates that data to a basic pedometer function. We then use a mathematical formula we developed to calculate the steps per minute you are running at, given a sample of five seconds during which step data is collected. The five-second window shifts to accommodate the next second of data meaning that our cadence information will update every second. The one-second refresh rate is an intentional feature with allows for a more consistent SPM reading (a higher refresh rate would reveal more unintentional fluctuations in SPM data making it hard for the runner to analyze) while allowing for enough data points to achieve an effective real-time cadence value. While real-time cadence is the primary feature of our application, many runners want to be free of viewing their phone screen while going for a run. For this reason, we integrated an adaptive music function which chooses the perfect song that has a tempo matching your running pace. The music function adjusts the song every 25 seconds if you deviate more than 10 SPM off the initial cadence. If the song plays to its end, the runner knows that they've maintained the same pace but if there is an abrupt change, they will know they have deviated off their initial cadence.

Challenges we ran into

While developing our app, we ran into several bugs with Steps Per Minute and had to use several complex algorithms to solve these problems. We had never really worked with Android's built-in pedometer, timers, and the music player, forcing us to learn on the fly. In addition, two out of our three members were at their first hackathon and it was also their first time using AndroidStudio. In the end, we contacted several mentors and online resources to guide us through building our app.

Accomplishments that we're proud of

Considering the challenges we faced, we are proud of the progress we made in such short time. None of us had done anything similar to this application, so to create a functioning program was quite fascinating. We are also proud of the algorithms that we built from scratch. On another note, we also created a website. We are proud of its design and framework.

What we learned

We learned how to better use AndroidStudio, specifically the sensors and music aspect. In addition, we also grew our knowledge of HTML and how to make our website look appealing. Finally, we learned that working as a team and splitting up the work greatly benefits us a whole. Creating an app is a difficult task that requires focus and cooperation.

What's next for RunWithIt

In RunWithIt's current stage, the application does not have a back-end for services such as user accounts. However, with the implementation of a back-end, we can add features such as records of statistics (longest cadence duration, the highest number of total steps, etc.), personal biometrics, connecting with friends, and sync information with Google Fit. Furthermore, with the implementation of the Google Maps API and GPS data, we can add total distance traveled and use that to determine pace.

Share this project: