Inspiration

We got the inspiration for our project when we noticed a lack of campus maps that included paths through all the indoor pedways and walkways. There was a high demand for such a map throughout UofA's social media pages.

What it does

The project calculates the most efficient route between two buildings (including paths with pedways) and plots it on a map to display to the user.

How we built it

First, we mapped out over 50 entrances/exits, and pedways. Then we called the google maps directions API using all our nodes and stored every route between each node when travelling outdoors. We had to make our algorithm that maps out routes indoors between buildings using pedways using an algorithm. We then adapted Dijkstra's algorithm to calculate the most efficient way between two different entrances/exits. We hosted this algorithm in a Django backend and deployed it to Heroku for our front end to interface with it. We then designed a front-end using bootstrap and javascript that displayed an instance of google maps and options to select two buildings. After these two buildings are set, the front end calls the Django API, and it returns the most efficient route between the buildings, which the front end then plots.

Challenges we ran into

Our first major challenge was attempting to host the Django API on cybera. It was challenging to host our backend using apache, so we decided that it would be wiser to host on Heroku because of the time constraints. But after hosting on Heroku, the University of Alberta filed the API as insecure so that we couldn't handle any traffic from University wifi.

Accomplishments that we're proud of

Even though the University of Alberta marked our Django API as suspicious, we were still able to configure our project to run locally and enable all of its functionality. We are also proud of the fact that our program works on most routes, though we did not have time for much testing.

What we learned

Planning out how to host a project can be much more complicated than writing the code for it. Especially when interacting with an API, there are many issues like network insecurity, unauthorized access, and inability to access data.

What's next for BearPath

To add an option to search for routes with an emphasis on indoor paths, chain together routes to create a route that maps out a user's entire class schedule, and create an algorithm to recommend an optimized path based on weather conditions. We also want to crowdsource microwave, piano, and bathroom locations to enable directions to them and have a live heatmap of foot traffic on various paths.

Share this project:

Updates