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.
As a property owner
So I can make some extra money
I would like to list my space on iStay
As a property owner
So I can rent out my second and third properties
I would like to list multiple properties on iStay
As a property owner
So I can attract attention to my property
I would like to customise my properties page (name, description, price)
As a property owner
So I can properly manage my property on iStay
I would like to offer a range of days where my property is available
As a renter
So I can properly plan my holiday
I would like to only see properties that are available to stay in
As a renter
So I can stay in a city I don't live in,
I would like to book a night at a property
As a property owner
So I can ensure the property is ready to stay in
I would like to approve a booking
As a property owner
Until I have confirmed a booking request
I would like my property to remain listed and bookable
- npm install
- set up database (give instructions)
- node app.js
- navigate to localhost://3000
One night stay user says the date they want only sees list of properties available.
SPACE: spaceID (unique) userID (unique) picture url ()????) name description price/ Nights d1(date) d1 status(available, requested, booked) d2(date) d2 status(available, requested, booked) d3 (date) d3 status(available, requested, booked)
USER: userID (unique) name email(unique) password
- javascript
- jasmine
- jquery
- html / css
- mongo
- concurrently (multiple terminal windows)
- dotenv
90% or greater test coverage. Unit tests: test one piece of your own logic. fail if that logic breaks. pass if it that logic produces the expected result. You can articulate why any test exists (or does not exist). Every feature is tested from the user's perspective.
Your team co-owns the code. Every member of the team can: explain why any part of the application exists (what user need it solves). explain how any aspect of the application works. Every member of the team has made commits. Every completed ticket has a closed (or merged) Pull Request.
Commit messages are clear and composed of: a single line describing the changes made. a description of the problem it solves, with reference to the user. The Linter passes on all commits. All commits have a low complexity score. All pull requests are peer reviewed.
There is up-to-date documentation: a project description. how to install and run it. how to run tests.