Giter Club home page Giter Club logo

wk6-makersbnb's Introduction

MakersBnB

MakersBnB is the amazing new webApp that connects hosts and guests, enabling hosts to list available accommodation and enabling guests to find and book available accommodation.

MVP design

We designed and built our MVP with 2 goals in mind:

    1. Enable us to showcase a significant part of the user experience to get input for further development
    1. Validate that we as a team can build a separate front-end/back-end stack which interacts with JSON

On 1) we decided to focus on the (potential) guest as the user group to focus on. Though the business model is 2-sided, we believe guests are more critical to win over in the earlier phase. We want to gage interest in booking private homes and learn about their preferred searching and booking process. The MVP therefore allows users to

  • browse a list of available, pre-defined properties
  • view additional details for each property
  • request a booking for a property which then blocks this property for further booking This feature set delivers on elements of use case 1,2,5 and 7. Given time/team size constraints and our dual focus for the MVP development, we chose a more narrow user-facing feature set for the MVP. Hosts and their needs are not considered at this stage of development.

On 2) To ensure scalability and flexibility in future development, we wanted to build a separate front-end and back-end which interact via HTTP requests and JSON data. Given our teams lack of experience with this type of design, we chose to experiment with this tech stack as part of the MVP build, which allowed us to learn and make an early continue/abandon decision.

Domain model (MVP)

Domain Model

Database structure (MVP)

Database structure

Installing and running the MVP

Installing

    1. Clone this repo
    1. Install Ruby 2.6.4 and run bundle install in the app's directory
    1. Install SQL database manager and run the SQL queries in /db/migrations to set up the databases
    1. Run SQL script 01 on both test and production database, run SQL script 02 on the production database to create entries for testing in production

Running

    1. Start webserver for back-end (e.g. rack-up) - front-end expects back-end server on localhost on port 9292
    1. Run index.html in your browser

Testing

    1. Run all steps under installing (step 4 is optional for testing)
    1. Run rspec to test back-end unit and overall feature tests
    1. Run SpecRunner.html in app directory to run unit tests for front-end unit tests

User Stories

1)
As a host,
So I can attract guests to my property(ies)
I want to list my property(ies) as a new space

2)
As a host,
So my guests can find the accommodation that fits their needs and budget,
I want to provide a short description and a price per night for each of my spaces

3)
As a host,
So that I can avoid double bookings and unnecessary booking requests from guests,
I want to define dates when my space(s) are available

4)
As an admin,
So that I verify who is offering the space,
I want to sign up and identify new hosts

5)
As a guest,
So that I can stay in a BnB,
I want to request to book that BnB for my stay.

6)
As a host,
So that I can give approval for a guest to hire my BnB,
I want to be able to approve a hire request before it's confirmed.

7)
As a guest,
So that I can only book vacant BnBs,
I want to not be able to book a BnB on dates that it's already booked.

8)
As a host,
So that I don't miss out on potential bookings,
I want to continue to accept bookings until I approve/confirm a booking for particular dates.

wk6-makersbnb's People

Contributors

dangyi23 avatar ben-zeng avatar v-c-b avatar

Watchers

James Cloos avatar  avatar

Forkers

ben-zeng

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.