ITER Project Information
The four of us are all freshmen Tartans and just arrived at campus about one month ago. Since we don't really know our way here, we tend to get lost in all the buildings, or detour a long way when there's a shortcut we could take. So we want to build a web application that can be accessed by any newcomers at CMU to help them navigate through campus.
What it does
Users just type in the start point and the end point they want to go, e.g. WEH 5310 to GHC 4420, and Iter will calculate the shortest path and display the route on the map, including the important pivot points (shortcuts) in between, i.e. the bridge between NHS and GHC.
How we built it
- Write the basic DijKstra’s algorithm in Python
- Use CMU Property Accounting Services to build dataset that incorporates all class rooms, stairs, and bridges.
- Incorporate all the information of a pivot point, i.e. name, connection to other points, and their coordinates into the Class: point.
- Use the Flask framework to build the connection between the front and the back end.
Challenges we ran into
- Dataset is really hard to maintain and debug, but we eventually wrote several python scripts to automatically check datasets.
- Frontend-backend communication. Since we have no prior experience writing backend using Python, it took us quite a while to figure out how to use json to transmit data between frontend and backend.
- Data structure: we need to incorporate information of different types into the data structure and can be able to retrieve the information needed in each step effectively without running into data type errors.
- Learning to use complicated libraries and frameworks like Openlayers
Accomplishments that we are proud of
- We are able to fulfill the basic function that provides the users with the shortest path from one location to another.
- With our dataset rinsed in the future, we will be able to provide all tartans with a convenient experience in finding the exact building in the future.
- We learned a lot of debug and web skills in this project. And we really enjoy it : )
What we learned
- Backend-frontend communication
- Dijkstra’s Algorithm
- Python OOP
What's next for Iter
- Cover the whole campus
- Let users upload their semester calendars and automatically plan the course of the day
- 3D Floor plan direction (dynamic display)
- More accurate direction with a more well-rounded dataset