Stephanie is an avid runner and picked up the habit over the summer. However, when she got back to campus, she couldn't find a way to continue her dedicated routine. She wasn't sure about the terrain, but she knew that she wanted to run for a specific amount of time. She didn't have time to develop a path herself, and thus, eventually slacked on her running.

What it does

Enter RunaROO! RunaROO is an app which, when given a starting point and desired distance/time, will generate a random route for you to run. You only have a 25 minute lunch break? We will route you a scenic 25 minute or less run. Explore the city! Find something new! Run a new path that you never knew existed. Just specify the max time OR distance you want to run, and we will do the rest!

We also included an option where you want to run a certain distance but then want to take public transportation back!

How we built it

We split the project into two parts: a node server and a react-native app. The node server was responsible to generating the route. It used an algorithm to create points up until a specific destination and then snaps those points to a road. We then check the distance of the road directions to ensure that they align with the desired distance of the user. We use the react-native app to interface with the user. The app communicates with the server and sends information (such as weight and preferences of the user) and receives information back (the generated route).

Challenges we ran into

The routes we auto generated sometimes back tracked and went into alley ways with seemingly no direction. To fix this, we started with a pentagon consisting of various points of a small radius. Then we expanded the pentagon further to make sure the route was somewhat circular in shape and with limited backtracking.

Accomplishments that we're proud of

This is an app that we, and several others would genuinely use. Despite being a "hackathon" project, this app will most likely be used in our day-to-day lives. It solves a simple problem of ours in an interesting way. We used several technologies, many of which were new, and we were able to figure out a way to combine all of these technologies into a functional app.

What we learned

We learned how to develop two separate projects and then how to combine them together to form one cohesive idea. We also learned how to develop an algorithm to generate a new route, especially after several tries. Writing working code is certainly difficult, but when you combine that code with someone else's, it takes a lot of time and effort to make sure that the two can work cohesively.

What's next for RunneROO

Since we're all very passionate about the project, we want to add voice commands and an accelerometer to measure xyz axis as well as speed. This way, we are able to provide the user with more information and make their route even more specifically tailored to them.

Built With

Share this project: