Inspiration

"Routing Ridge" began as a simple idea of drawing nodes and edges on a coordinate plane. We would be able to use Dijkstra’s Algorithm find the length of the edges and the shortest path between two nodes. This Algorithm is helpful in the real world in the methods of transportation. We decided to apply this concept to a real-life situation: navigating Ridge

What it does

The user of “Routing Ridge” first inputs two points on the map of Ridge High School. The program will output the shortest path between the points, allowing the user to navigate the school efficiently and conveniently.

How we built it

We started by writing code in python, using the libraries Turtle and Heapq. On the coordinate plane, using Turtle, we marked each end of the hallways with permanent nodes, with edges between them representing the hallways. The user would select two points, (start and end). Then, it would calculate the closest nodes from the points, before calculating the shortest path using Dijkstra’s Algorithm and Heapq. We then decided to move the code into HTML and JavaScript, so that instead of the program running in a console, it would be able to run in a web browser.

Challenges we ran into

Some of the technical challenges we ran into, like finding a map of Ridge High School and collaborating across multiple devices had to be solved using problem solving. Aryaman was able to scan and photoshop a map of Ridge. As for working on one code across multiple devices, we finally decided to write our code in Juicemind; albeit a little less user-friendly, but updated live every time a team member edited the code. We also ran into many challenges while writing our code. Some include the numerous nodes at each end of the hallway and implementing Dijkstra's Algorithm with many possibilities. This was solved through trial and error, as well as searching for resources and help online. By far, our largest challenge was transferring our python code into something that would function on a web browser. Because Turtle does not work in languages other than Python, we edited our code to fit and function the same in HTML and Javascript.

Accomplishments that we're proud of

We're most proud of succeeding in our project with a tight time frame and sudden decision changes. We were able to code something even grander than what we originally planned, creating a functional web browser.

What we learned

We learned Dijkstra's Algorithm, a method of finding the shortest path between two points using priority queue data structure. Generally speaking, the Algorithm finds chooses the shortest distance to the next node, assigning the distant value to each of the points.

What's next for Routing Ridge

Routing Ridge could use many improvements in the future. We could implement a more-precise location start/end, possibly even adding a location tracker. With time, we could make this project public to the people, eventually getting it to the Ridge High School official website, and maybe even using it for future hackathons.

Built With

Share this project:

Updates