[Live][site] [site]: http://bench-bnb-in.herokuapp.com/
![screenshot] [screenshot]: http://res.cloudinary.com/dms46o1eu/image/upload/c_scale,w_750/v1451967741/bench_bnb_pdccks.gif
BenchBnB is a project that integrates the GoogleMaps API. It is inspired by AirBnB.
- Single page web-application, built on
Rails,React.js/FLUX,ReactRouter, and theGoogleMapsAPI. - Click on the map to create a new
Benchat the specifiedcoordinates. - Moving the map causes the viewable
boundariesto change. Bench markers along with their respective information will be not be displayed if they are out of the map's current visible boundaries. Filterbyminandmaxseating to display benches with seating capacities within the by specified restrictions.
![search] [search]: ./images/search.png
- When the main component is mounted, it adds a listener for changes in the
BenchStore, which includes benches, and filters
![boundaries] [boundaries]: ./images/boundaries.png
- By default, the
benchmodel in Rails, only fetches benches in the viewable boundaries of the map whenever the map boundaries physically change by the user
![filter_store] [filter_store]: ./images/filter_store.png
- The
BenchStorereceives the benches, and sets the default filters.
![dispatcher] [dispatcher]: ./images/dispatcher.png
- When new
benchesare received, a change alert is dispatched by theDispatcher, signifying to all component listeners that the store has changed.
![filters] [filters]: ./images/filters.png
- The filters component has 2 change handlers, one of the
minandmax. When the user clicks on a new filter, it sends theFilterActions.updateFiltersaction, which updates the filters in the BenchStore and returns the filtered benches with the new filter parameters. All of this is done without fetching new data through an ajax request. - The
filtersalso persist when changing the map boundaries, and only reset when the component is remounted.
- Bring it to life
- Apply
filtersfor bench seating capacity - Add a
Benchshow page and integrate image upload - Add
Reviewsfor benches - Add
Rating Starsfor reviews