Through our app, we hope to help undergraduates navigate locations on campus. As freshmen at large universities, getting lost on campus was an unnecessary burden for us, especially given all of the other adjustments we had to make entering college. Especially when visiting unfamiliar university campuses for hackathons, including TreeHacks, navigation is an unnecessary stress. Thus, we are building an application providing indoor navigation at universities.
What it does
uMaps is an iOS application that integrates Google Maps with an indoor map of buildings at university campuses. Using crowdsourced user data and public floor plans, uMaps provides a comprehensive map of rooms within buildings and provides a user walking directions between rooms, similar to how Google Maps provides directions between buildings. At TreeHacks, we developed a proof-of-concept that navigates a user from a default room to any other room in floors 0 and 1 of Huang Center.
How I built it
We developed a front-end interface with Swift, integrating Google Maps API with our indoor map. Using floor plans and manually mapped data of the Huang Center, we built a Firestore database of “squares” to represent rooms, hallways, and walls in the building. Through the implementation of the A* algorithm in our object-oriented Python backend, we provided an interface for users to query a location and obtain walking directions to a specific room in the Huang Center.
Challenges I ran into
Implementing mapping algorithms with A*
Developing a user interface that integrates with Google Maps
Connecting mapping data between Python backend, Firestore database, and Swift frontend
Manually mapping floors in the Huang Center
Determining which features of our application are practical to build during the hackathon
Accomplishments that I'm proud of
Successfully providing users directions within the Huang Center
Integrating our application with Google Maps API to ensure user ease
Utilizing a flexible database that can be modified with user-contributed data for scalability
What I learned
We learned about methods for implementing geospatial algorithms utilizing plus codes, latitude and longitude coordinates, and graph formulas such as Flood Fill and A star. Furthermore, we learned how to integrate Google Maps and Firestore with an iOS application and Python backend. Most importantly, we learned to focus on practicality over scalability given the time and resource constraints of a hackathon.
What's next for uMaps
Develop an iOS interface for users to contribute to data collection
User outreach at university campuses for crowdsourced data collection, testing, and app brand awareness
In addition to a separate iOS app, implement an indoor map of university campuses directly on the Google Maps application