Giter Site home page Giter Site logo

makers-bnb's Introduction

Makers BnB

Makers Academy Week 6 Group Project

MVP of an AirBnB clone using Ruby, Sinatra, Postgresql, DataMapper, Javascript, JQuery (including AJAX), Bootstrap, and test driven using RSpec/Capybara.

Hosted on Heroku at https://still-beyond-14508.herokuapp.com/

  • Users can sign up for an account, and add a listing.

  • Once a listing has been added, the user can add inventory dates that the accommodation is available to be booked.

  • Inventory can only be added by the user who listed the accommodation.

  • A date can only be added to the inventory once for each acommodation - dates are blocked off the datepicker once the inventory has been added for that date.

  • Users can also request to stay at accommodation that they have not listed.

  • The creates a reject object that the accommodation owner can accept or reject.

  • This updates the request object, so the requestor can see if it has been accepted or rejected.

  • Accepting the request also makes a custom AJAX PUT request to update the relevant inventory dates as booked.

  • A date can only be requested if it has not already been booked - again this is done through blocking dates out of the datepicker.

  • An AJAX get request is made to get inventory data for the selected accommodation when the page with datepickers is loaded. The returned json data is then used to block out out the dates as required.

Build Status Coverage Status

Collaborators

makers-bnb's People

Contributors

harrim91 avatar knowerlittle avatar melodija avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Forkers

vollcode melodija

makers-bnb's Issues

Create requests

As a customer
So I can book accommodation
I want to be able to create a request for a particular accommodation

Project Setup

Set up gemfiles, sinatra, data_mapper, rspec, etc.

View requests - customer & host

As a customer
So that I can remember my requests
I want to see booking requests that I have made

As a host
So I can manage availability
I want to view requests that have been made to my accommodation

Confirm/reject requests

As a host
So that I can manage availability
I want to be able to reject or accept requests

Restrict dates

As a customer
So I do not book an unavailable date
I want to only be able to request dates that are available (date is inventory and is not booked)

As a host
So I do can not accidentally double book my accommodation
I want to only add dates to the inventory that have not been added

user login

As a USER.
To access my listings later.
I would like to login.

list accommodation

As a USER.
In order to be able to pick a room.
I would like to see a list of all available rooms.

Link users and accommodation

As MakersBNB
So I know who is making listings on my website
I want listings to only be createable by logged in users

user sign up

As a USER.
To manage my listings.
I would like to sign up.

Inventory error messages

When adding inventory, we are displaying a blank flash message - this code is redundant because of the datepickers

View requests - host

As a host
So I can manage availability
I want to view requests that have been made to my accommodation

Implement date availability

As a host,
So I can manage the availability of my accommodation,
I want to be able to enter available dates.

Create Requests

As a user
In order request accommodation
I would like to select dates and send a booking request.

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.