CapyBnB
Dev Team
How to download and run CapyBnb locally:
$ git clone git@github.com:sim-ware/byte4-makers-bnb.git
$ cd byte4-makers-bnb
$ createdb makers_bnb_development
$ createdb makers_bnb_test
$ bundle install
$ rackup -p 4567
visit http://localhost:4567/
https://capybnb.herokuapp.com/
Enjoy CapyBnB online on Heroku:CapyBnb uses the following technologies:
gem 'data_mapper'
- DataMapper, a Object-Relational Map (ORM) that 'speaks ruby' to interact with databases.gem 'dm-postgres-adapter'
- PostgresQL, an open source relational database management system (DBMS).gem 'bcrypt'
- BCrypt, a library to encrypt/decrypt strings to keep passwords safe.- Bootstrap, one of the most popular JS, HTML, CSS frameworks. CapyBnb uses its grid system (CSS + HTML).
- And - of course - Sinatra to develop Ruby Web Applications.
User Stories
1.0 User can sign-in and sign-up
User Story 1.1
---------------
As a User;
So that I can be a host and/or a guest;
I want to sign up for MakersBnB.
User Story 1.2
--------------
As a User;
So that I can book or list a property;
I want to log in to MakersBnB.
User Story 1.3
--------------
As a User;
So that I can avoid others dealing with my properties;
I want to be able to log out of MakersBnB.
2.0 Any signed-up user can list a new space.
User Story 2.1
--------------
As a User;
So that potential guests can see my property;
I want to be able to list it on MakerBnB and see it listed.
User Story 2.2
--------------
As a not-signed-up User;
To prevent me from messing up with the website;
I don’t want to be able to list anything on the website.
3.0 Users can list multiple spaces.
User Story 3.1
--------------
As a User;
So that I can rent out all of my properties;
I want to be able to list multiple properties on Makers BnB.
4.0 Users should be able to name their space, provide a short description of the space, and a price per night.
User Story 4.1
--------------
As a User;
So that I can better market my property;
I want to be able to name it as I want.
User Story 4.2
--------------
As a User;
So that I can give guests more information;
I want to be able to include a short description.
User Story 4.3
--------------
As a User;
So that the customer knows the price;
I want to be able to include a price per night.
User Story 4.5*
--------------
As a User;
So that I can better market the property;
I want to be able to include pictures of my property.
NOT COMPLETED.
User Story 4.6*
--------------
As a User;
So that guests can filter my property by features;
I want to be able to choose tags to my property.
NOT FILTERING.
5.0 Users should be able to offer a range of dates where their space is available.
User Story 5.1
--------------
As a Host;
So that I can tell guests when the property is available;
I want to be able to state the available dates.
User Story 5.2
--------------
As a Guest;
So that I can book a stay at a property;
I want to be able to see the availability of a property.
6.0 Any signed-up user can request to hire any space for one night, and this should be approved by the user that owns that space.
User Story 6.1
--------------
As a Guest;
So that I can make a booking for 1 night;
I want to be able to send a request to the Host.
User Story 6.2
--------------
As a Host;
So that I can manage bookings;
I want to be able to approve guests’ requests.
User Story 6.3
--------------
As a not-signed-up Guest;
To prevent me from messing up with the website;
I don’t want to be able to book anything on the website.
7.0 Nights for which a space has already been booked should not be available for users to book that space.
User Story 7.1
--------------
As a Host
So that I can prevent overlapping bookings;
I want my properties not to be available if already booked.
User Story 7.2
--------------
As a Guest;
So that I can make sure I am booking an available property;
I want to see on the listing if it is not available.
8.0 Until a user has confirmed a booking request, that space can still be booked for that night.
User Story 8.1
--------------
As a Host;
So that I can manage multiple requests for the same date;
I want to be able to confirm the booking for the guest of my choice.