Coder Social home page Coder Social logo

wanderlust's Introduction

Wanderlust

Link: Wanderlust

Overview

Wanderlust is an AirBnb clone with primary features including:

  • User Authentication
  • Search with a Map feature
  • Review and Ratings tracking
  • Bookings Management

Technologies

  • Rails backend and PostgreSQL DB
  • React and Redux frontend
  • AWS S3 for image storage
  • Google Maps for search/mapping feature
  • React Date Range Library for bookings and calendar feature

User Authentication

Users are able to provide basic information to create an account on Wanderlust. A demo user feature is also included to allow users to access the full functionality of the site without needing to provide personal information. Current functionality restricts bookings and reviews to only signed in users, while the remainder of the site is fully functional.

Search/Google Maps

Screenshot

Users have access to buttons with preselected search criteria as well as a city search bar at the top of the page. The results are displayed on the property search page accompanied by their locations on an integrated Google Map. Users can filter results further down on the search panel and see results update in real time.

Review and Ratings tracking

Signed in users can create and edit reviews for properties. These reviews are visible from the property details page and their accumulating total (average rating, total # of reviews) is calculated and visible for each property.

Booking Management

Screenshot

Signed in users can create and manage bookings across properties on the site. The booking feature incorporates a third party calendar library to allow for seamless date ranges to be selected and managed in the creation process. Bookings take into account existing reservations against a given property, so properties are not able to be double booked. Each user has a trips page where they can manage their upcoming reservations, as well as view any past trips they have taken.

Technical Challenges

Search and Map Integration

Custom filter actions had to be written to coordinate and call for map display adjustments under certain conditions, such as a change in filtering city or clearing the filters all together.

Screenshot

Booking Logic

Logic needed to be added for a property to take into account all existing reservations before accepting a new one. This prevented a property from becoming double booked by two different users.

Screenshot

Future Scope Features

  • Implement O Auth and double authentication with email
  • Add more criteria to the filter (room #, guests, etc.)
  • Create better UI for reservation management

wanderlust's People

Contributors

robbal5 avatar

Watchers

 avatar

wanderlust's Issues

Schema

  • What is the address_id for on the Users table?
  • Lets chat about addresses - the table setup you have makes it good for search and ease of lookup, but the google maps API works the most easily with a latitude and longitude
  • You likely want more information on your Properties table (number of bedrooms, number of bathrooms, etc.)
  • You likely want to have an amenities table as well (see airBnB site)
  • For the photos you will use AWS - the table looks kind of similar to what is listed in your schema (it has the property_id and some other information). That said, for now that table is fine the way it is - we can discuss further when you get to your Properties MVP

Nice work! This looks great so far - let me know if you have any questions

Sample State & Routes

  • Where is the information in your Arrays in the sessions slice of state coming from?

Routes

Nice work! These look great!

Let me know if you have any questions!

MVP List and Code Push

  • The top level file is a folder. The top level of your git repo (when you click on code at the top) needs to be the rails project itself. I should see app, bin, config, etc. rather than a folder I need to click on. I am happy to help with this just let me know!
  • Your third MVP should be "spots/houses" - this MVP will include using AWS to host images, the main listings page, and the individual spot pages
  • Your fourth MVP should be the "map" (MVP looks great, just needs to be moved)
  • Your fifth MVP should be reservations (MVP looks great, just needs to be moved)
  • The "Home Page" for non-logged in users (the one that has an option to login or signup on the top right and a searchbar in the middle) will be part of your Auth MVP, and the home page that is basically a listing index with the map on the right hand side will be 1/2 the spots/houses MVP and 1/2 the Map MVP. Does that make sense?

Excellent work! These design docs look great so far!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.