Brandeis CampusGPS

Codeship Code Climate

A rails app that produces human readable directions between locations on campus. Help visitors not get lost as they try and find a building, office, etc.

How to use it

Go to http://brandeisgps.herokuapp.com, type in the names of the buildings or parking lots and hit GO!

You may also pick any pin on the map as your start point, just hit the "Where am I?" button.

When you enter a building, you may browse the building's floorplans, or just search for the room you want to find.

Current Supporting Areas

Outdoor
  • Theater Lot
  • Shapiro Campus Center
  • Part of Science Complex (Volen, SSC, Gzang)
  • Faber Library
  • Golding
  • Lown
  • Olin-Sang
  • Rabb
  • Shiffman
  • Mandel
  • Heller
  • Kutz
Indoor
  • Volen
  • Shapiro Science Center (Room search not supported)

Screen Shots

Homepage

Guiding

Architecture

Architecture

The application is built with Ruby on Rails 4. It has a standard Model-View-Controller (MVC) architecture. The view is built with Google Maps API (including Gmaps4rails gem), but the data we show to our users, including guiding texts, photos and lines and markers on the map, are all provided by ourselves.

One challenge we encountered during the designing phase is determining the schema. There are complicated relations between points and paths, and it took us a while to reach a workable schema.

Technologies

  • Gmaps4rails gem

Our modified version, hosted here. It helps simplify the process of adding markers and lines to the Google Map.

  • Google Maps Javascript API

The documentation of Google Maps Javascript API is here. It's free for usage less than 25,000 map loads per day, which is sufficient for us. The map on the index page is completely made with Google Maps Javascript API, which is pure javascript.

  • A* algorithm

We use A* algorithm to calculate the shortest path between two given points. We implemented the algorithm in ruby. The graph structure is constructed at the first time the application runs with locations and paths in the database, and the shortest path is calculated at run time.

  • jQuery

jQuery is a popular javascript library. Our autocomplete feature is made with jQuery.

  • Bootstrap

Bootstrap provides an easy way to style our website. It responds to different screen sizes, e.g. phones, tablets, desktops. It also provides the glyphicons.

How Can YOU Help

Collecting data is the biggest challenge we have faced so far. We are trying our best to cover every corner of our campus, but it's impossible to put everything in at one time. If you find a bug while using our product, or you just want us to support a specific location, please create a issue and we'll put that into our priority.

It's even better if you could poke into our seed files and help us figure out what to add. Use pull requests!

Our Team

github Jing Zou jzou@brandeis.edu

github Ted Hultman tedh@brandeis.edu

github Wan Zhou wzhou@brandeis.edu

github Xi Qian qxx@brandeis.edu