DwellBnB is the online place for short-term, informal lets of surplus spaces.
It provides proprietors with a place to list their spaces, which renters can then choose from, with the subsequent rental transaction taking place on the DwellBnB platform.
- user sign up
- email confirmation upon sign in
- user sign in
- password encryption
- user sign out
- list space
- viewing all available spaces
- search by date availability
- request space
- space owner booking confirmation
- space owner booking rejection
- user payment
Listed within the README are user stories which given more time we would have wanted to implement. Given more time we would have looked into testing user payment, and added unit testing for database amendment.
We would have also reviewed the code to clean up the codebase and separate the controller file. Code standards could also be improved by ensuring all the code fits code convention and styling.
Clone, install gems, create database, import test data then run via rackup:
git clone https://github.com/Leigan0/makers-bnb.git
bundle install
createdb dwellbnb_development
psql -U <db_user> dwellbnb_development < demo/dbexport.pgsql
rackup
visit http://localhost:9292/
- Clone https://github.com/Leigan0/makers-bnb.git
- cd makers-bnb
- Bundle
- Create two databases, dwellbnb_test and dwellbnb_development.
- rackup
- visit http://localhost:9292/
- To run the email confirmation feature you need will need to provide your own api key via environment variables called MAILGUN_API_KEY and MAILGUN_DOMAIN_NAME.
- Feature test focus within the project
- Unit tests included where required for Mailer model and to ensure user authentication
- To run tests run rspec from command line
- To list or book a space a user must create an account. Once logged in a user can list a space and book a space.
- Prior to booking in a user can view all available spaces
- The app includes a navigation bar which allows the user to navigate the site
- A user can request to book a space, at which point a request is sent to the owner of the space
- Before availability is removed - the owner must confirm the booking
- At which point the availability of the space will be updated and the availability will be removed from space listing.
- Ruby
- Sinatra
- Capybara
- Rspec
- Mailgun
- Stripe
- HTML
- CSS
- DataMapper
- PostgreSQL
DwellBnB has been developed on the basis of the following User Stories:
As a user
So I can list my space
I want to sign up
As a user
So someone can hire my space
I want to be able to list my space
As a user
So I can make money
I want to be able to list multiple spaces
As a user
So I can make my listing appealing
I want to be able to add a space name, description and nightly price
As a user
So people know when my space is available
I want to able to list the dates my space is available
As a user
I want to be able to sign in
So I can hire a space
As a user
So I can have a space
I want to be able to request a space
As a user
So that I can review multiple requests
I do not want availability to be removed until I have confirmed a booking
As a user
So my spaces dont get double booked
I want availability to be removed upon booking
As a user
So that I can log back in
I want my user details to be saved
As a user
So I don't need to worry about password security
I want my password to be encrypted
The following user stories all involve email functionality:
As an user
So I know my account has been created
I want to receive confirmation by email
As an user
So I know my listing has been created
I want to receive confirmation by email
As a user
So that I know my listing has been updated
I want to receive confirmation by email
As a user
So that I know if someone has requested to book my space
I want to receive notification of that request by email
As a user
So that I know my booking request has been accepted by the owner
I want to receive notification by email
As a user
So that I know my booking request has been submitted to the owner
I want to receive notification by email
As a user
So that I know if my booking request has been accepted by the owner
I want to receive notification by email
As a user
So that I know if my booking request has been denied
I want to receive notification by email
The following user stories all involve SMS functionality:
As a user
So that I know if someone has requested to book my space
I want to receive notification of that request by SMS
As a user
So that I know if my booking request has been accepted by the owner
I want to receive notification by SMS
As a user
So that I know if my booking request has been denied
I want to receive notification by SMS
User Story 23 - Chat - upon booking acceptance, a chatbox pops up for the parties to chat to each other
As a user
So that I can discuss a confimed booking with the other side
I want to be able to chat to them upon acceptance
The following user stories involve payment functionality:
As a user
So that I can make payment for a space
I want to be able to pay through Stripe
As a user
So that I can receive payment for a space
I want to be able to accept payment through Stripe