Pair programming project for WDI
JavaScript CSS Ruby HTML
Switch branches/tags
Nothing to show
Clone or download
Pull request Compare This branch is even with dmtopp:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



Kastanza is a web application for users to find and rate public bathrooms. It uses the Google Maps API (via Gmaps) and Google places to fetch locations.

Technologies Used

  • Ruby
  • Sinatra Framework
  • Sequel ORM
  • SQL
  • JavaScript/jQuery

The Approach

See our outline for user stories and wireframes.

Users have two options when visiting Kastanza: Find their location using the geolocation feature of Gmaps, or search for a location by address. If they search by address, the application makes an ajax call from the front end to Google Maps to convert the address into coordinates. The coordinates are then sent to the server.

list of places list of places mobile

The server then takes those coordinates and uses the Google Places API to return a list of nearby places as well as any ratings associated with those places from the Kastanza database. The user can then select a location to view its rating or review it. The review is then stored in the database along with the place id.

Installation Instructions

This app is live on the internet! To use it, navigate to the app!

Unsolved problems

  • Right now the average number of stars is calculated when the server sends the data back to the client. A better solution would be to cache the values for faster access using Redis or Firebase.

  • There are some unresolved JS issues where selectors are trying to select things on the page that don't exist. At the moment they don't affect the functionality of the app but they would need to be fixed before expanding the app.

  • User input for creating new users needs to be trimmed and changed to lowercase so Josh and josh act as the same username.

  • Locations can currently be reviewed multiple times by the same user. (FIXED 04/01/2016)

Future goals

  • Give users the option to add a brief comment associated with their review

  • Better mobile display--the display is not horrible right now but could be improved

  • Email confirmation for users when they sign up

  • Support for different platforms and screen sizes--the design looks pretty good on our laptops (we think) but may not translate well to other platforms


  • The fine folks at gmaps.js, Google Maps, and Google Places for providing excellent APIs

  • James, Bill, and Jim for quality instruction and great app name ideas :)

  • James Barnett for sharing his star rating code on codepen

  • YOU for reading this whole document!