/makersbnb

Week 6 group project

Primary LanguageCSS

MakersBnB

Technologies: Ruby, JavaScript, jQuery, Sinatra, PostgreSQL, DataMapper, RSpec, Capybara

Week 6 group project for [Makers Academy] (http://www.makersacademy.com)

Team Members | Outline | Database Schema | Screenshots | User Stories | Gems | Usage Instructions | Heroku

Brief

We would like a web application that allows users to list spaces they have available, and to hire spaces for the night. Headline specifications

  • Any signed-up user can list a new space.
  • Users can list multiple spaces.
  • Users should be able to name their space, provide a short description of the space, and a price per night.
  • Users should be able to offer a range of dates where their space is available.
  • 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.
  • Nights for which a space has already been booked should not be available for users to book that space.
  • Until a user has confirmed a booking request, that space can still be booked for that night.

Team Members

Outline

This application - a lightweight AirBnB clone - was built as a one week group project. After a short planning session session on the first day, we split into pairs or small groups and worked independently on different areas of the application. We used Waffle.io to keep track of GitHub issues and tried to simulate a real world development workflow - a pair would submit the code they had worked on, then another pair would conduct a code review and ship it to production.

As a group, we worked according to Agile methodologies, holding daily stand ups and retros, and tried to adhere to XP values.

Database Schema

DatabaseSchema

Screenshots

Main Screen

ScreenShot1

Sign Up Screen

ScreenShot2

Request Space

ScreenShot3

List Space

ScreenShot4

Dashboard

ScreenShot5

User Stories

As a user
So that I can use MakersBnB
I want to be able to sign up

As a user
So that I can use MakersBnB
I want to be able to sign in

As a property owner
So that I can hire spaces to other users
I want to list one or more spaces

As a property owner
So I can attract interest in my space
I want to add details about the space (dates, description, price, name)

As a property owner
So that other users can hire my space
I want to confirm a hire request

As a renter
So that I can find a space to stay
I want to make a hire request 

As a user
So that I can view available spaces
Only spaces with available dates should be displayed

As a property owner
So that I can manage hire requests
I want a posting to remain available until I confirm a hire request 

Gems

gem 'sinatra'
gem 'sinatra-flash'
gem 'data_mapper'
gem 'dm-postgres-adapter'
gem 'rake'

group :test do
  gem 'byebug'
  gem 'database_cleaner'
  gem 'capybara'
  gem 'rspec'
  gem 'rspec-sinatra'
  gem 'selenium-webdriver'
end

Usage Instructions

  • clone the repo and run bundle
$ git clone https://github.com/samjones1001/makersbnb
$ cd makersbnb
$ rvm 2.3.3
$ bundle
  • run tests
$ rspec
  • start up sinatra
$ ruby app.rb