CS396/398 Project
by Chris J, David M, David H
Every year Calvin gets new freshmen and transfer students who are unfamiliar with the campus area.
Students new to campus tend to have a difficult time finding their classrooms. We want to address this
issue so that students will be less stressed about locating their classrooms at the beginning of the
semester.
Another problem that students face is choosing the most optimal path to a particular building. Calvin’s
campus is layed out organically, unlike a rigidly structured city center made up of straight roads in
blocks. This means that there are often multiple viable routes to the same building and it can be
difficult to decide which route is fastest.
Our solution to this problem is to build a mobile app that is similar to Google Maps but more specific to
Calvin. This app will display a map of Calvin’s campus to the user and will allow them to search for a
classroom, then it will guide the user to their classroom with descriptions of where to go.
This app will generate the shortest path to a destination following Calvin’s walking paths. It will also
provide navigation for the interior of buildings by displaying the floor plan and showing the path to the
destination, so if a student needs to get to a classroom on the second floor of the Science Building, our
app will guide the student first to the Science Building if they are not already there, onces the user is
inside the building it show the floor plan of the current floor that the user is on.
Finally, the
app will
show a path that tells the user to go up the stairs or elevator, which will change the current floor plan
to the second floor and show a path to their classroom.
The app will open to a map of campus, indicating the user’s current location and direction. They will then
be able to tap on a search bar at the top of the screen to begin searching for locations. As they type in
a building and room number, suggestions will slide down from the search bar. These suggestions will
include cached locations that the user has previously traveled to. Each suggestion will also include a
rough estimate of the distance/time to reach.
When the user selects a destination, they will be taken back to the map with a status bar at the bottom.
This status bar will show the user their remaining distance and how long it will take them to reach their
destination based on their average walking speed. The map will also highlight the route they must take
along pathways.
Once the user gets near a building a button saying “I have reached my building” will appear. When pressed
the app will switch to interior mode. Instead of a campus map, it will display a floorplan of the building
with the ability to cycle between floors. The path the user must take will still be highlighted, but GPS
tracking will be disabled.
When the user reaches their destination, they can press an X button on the status bar that will end the
current route.
At any point in this process, the user can open the search bar again to choose a new location. They can
also open the settings menu which will contain important settings like accessibility mode and a map
rotation toggle.
Indoor navigation: We originally planned to support indoor navigation that would show the route inside buildings for students to follow to their classroom. We were unable to add this feature in time though. We went through the process of submitting many of Calvin’s floor plans to Google in order for them to be added to Google Maps. Google was not able to get the floor plans added to their database in time for us to add this feature to Calvin Room Finder.
M ap rotation: The publicly available Google Maps API does not support map rotation for roadmaps. We were not anticipating this and were not able to find another way to rotate the map, so the user is only able to pan and zoom the map.
User heading: We had trouble getting reliable heading data from the phone’s compass. Instead we used geolocation to watch the user's position and calculate the heading from it. This is not quite as precise as a compass, but still works when the user is walking.
Notifications: We planned to add a scheduling page to Calvin Room Finder. This page allows the user to add classes to their schedule, noting the time and location of the class. Then the app would send notifications when it was almost time for class. When clicked on, these notifications would open up the map and automatically navigate to the user’s classroom. We completed the schedule page but did not have time to include notifications. Because of this we decided to not include the schedule page in the final product as it is not complete yet. Many of the notification plugins that we tried were either depreciated or did not work in a PWA. It is likely that we would need to set up a server and cloud functions through Firebase. This would also require unique user token authentication. We did not have time to complete this feature.
1.Completing the Schedule page by adding notifications
2.Adding indoor routing functionality
3.Allowing user to rotate the map
4.Expanding the locations you can route to (more buildings or landmarks)
We would like to express our appreciation to our advisor, Professor Victor Norman, for leading and helping us throughout the building process. We could not have been able to do it without the resources and knowledge that our professor provided.
"I am interested in this project since I always had trouble finding classes and I felt like making an application like this will not just help me but also students who are new or do not know too much about the campus..."
"I am interested in this project idea because I thought that it could be a helpful tool for new students and people who are unfamiliar with the Calvin campus. Its a way to help the community. .."
"This project is interesting to me because of its focus on GPS navigation. I have experience making data entry style web apps but have never worked on one that incorporates navigation before. This will be a valuable learning experience for me..."
Check our github on link below.