/Restify

Primary LanguageJavaScriptGNU General Public License v3.0GPL-3.0

Restify

Find the perfect place to stay!


About

Restify is a web-application, much like AirBNB or Bookings.com which allows users to browse/book properties for a getaway, place their own properties up for rent, and manage their bookings.

Features

  • Browse properties
  • Book properties
  • Manage bookings
  • Manage properties
  • Leave reviews

Version History

All edits made can be found under the commits tab.

Roadmap

Phase 1

  • Sign-up / Log-in
  • Home
  • Account
    • Personal information
    • My reservations (user is a guest)
      • Pop-up: Cancel reservation
    • My properties (user is now a host)
      • Property management page
      • Property creation page
      • User page from the POV of a host
      • Pop-up: Leaving a review for a user
    • Reviews
  • Catalog
    • Pop-up: Amenities
    • Property for a user page
    • Booking
  • Comment page from the user's POV

Phase 2

  • Accounts
    • User signup/login/logout/edit
    • Host leave rating/comment about a guest
    • Host view ratings/comments about a potential guest
  • Property creation & administration
    • User can create property listings
    • Host can set a listing's availability and pricing
    • Host can edit general information of a listing
    • Host can approve/deny booking requests and cancellation requests
    • Host can terminate a booking at any time
  • Property info & search
    • User can search for properties by location, number of guests, amenities and availability
      • User can sort search results by price or rating
    • User can view property details
    • User can view contact information of a host
    • User can request to book a property
    • User can view history of their bookings
    • User can cancel a booking
  • Social network
    • User can leave a rating/comment for each completed booking
    • Host can respond to a rating/comment
    • User can only respond to host's follow-up comments
  • Notifications
    • Hosts are notified when a user requests to book their property, rates it, posts a comment, or requests a cancellation
    • Users are notified when a host approves/denies a booking request or when bookings are coming soon

--Marking scheme for P2:--

  • General -1 mark per improper or lack of error handling, e.g., invalid email address, password mismatch, etc. -1 mark per incorrect permission, e.g., host A cannot terminate host B's reservations, users cannot add comments to a property they have not been to, etc.

  • Property (30 marks)

    • Create/update (10 marks) - Jason
    • Search result (18 marks) - KATE
      • Pagination support (3 marks)
      • Must support at least 4 filters, e.g., location, available dates, number of guests, amenities available (10 marks)
      • Must support at least 2 order-by (5 marks)
    • Delete (2 marks) - Jason
  • User (17 marks) - Ash

    • Authentication (5 marks) - Ash
    • Token based authentication (2 marks) - Ash
    • Login (2 mark) - Ash
    • Logout (1 mark) - Ash
    • Signup/update profile (12 marks) - Ash
  • Comments (18 marks) - Ash

    • View comments (8 marks) - Ash
      • For Guest/Property (6 marks) - Ash
      • Can distinguish reply from comment (2 marks) - Ash
      • -2 marks without pagination support - Ash
    • Write comments/reply (10 marks) - Ash Note: remember the requirements on who can comment/reply and how many times.
  • Reservations (20 marks)

    • List of reservations (8 marks)
      • Ability to filter by user type, i.e., host or guest (4 marks)
      • Ability to filter by state (4 marks)
      • -2 marks without pagination support
    • Reservation actions (12 marks) - Jason
      • Reserve (5 marks)
      • Cancel (2 marks)
      • Approve/Deny Pending (2 mark)
      • Approve/Deny Cancel (2 marks)
      • Terminate (1 mark)
  • Notifications (15 marks) - Ash

    • List of notifications (8 marks) - Ash
      • -2 marks without pagination support - Ash
    • Read notification (2 marks) - Ash
    • Clear notification (1 marks) - Ash
      • CLEARS BASED OFF POST REQUEST WITH NOTIFICATION ID - Ash
    • Receiving notifications (4 marks) - Ash
      • Host: new reservation, cancellation request - Ash
      • Guest: approved reservation or cancellation request - Ash

--Marking scheme for P3:--

  • General

    • 1 mark per improper or lack of error handling, e.g., invalid email address, password mismatch, etc. This includes incorrect permission. See P2 rubrics for more detail.
    • 1 mark for poor UI/UX. See P1 rubrics for more detail. You will not be marked for concurrency bugs, e.g., what happens if a new property is added when a user is flipping through search results.
    • Ash made navbar
  • Reservation (40 marks)

    • Responsive design (3 marks)
    • Pagination support (4 marks)
    • Filter by user type, i.e., host or guest (8 marks, 4 each) This can be implemented in different ways, e.g.: 1. Two separate pages, one for reservation as guest or as host. 2. One page, with options to filter or two separate tabs, row, etc.
    • Sort/Filter/Organize reservations by state (4 marks)
      • Bugs with combining search and pagination should be deducted from pagination support
    • Reservation actions (21 marks)
      • Reserve (9 marks)
        • basic functionality (3 marks)
        • ability to reserve timeslots occupied by cancelled/terminated reservations (2 marks)
        • ability to reserve across multiple availability/price ranges (4 marks)
    • Cancel (3 marks)
    • Approve/Deny Pending (3 mark)
    • Approve/Deny Cancel (3 marks)
    • Terminate (3 mark)
    • It should be clear to the user what the consequence of each action is, e.g., warn user with a dialog box or a paragraph for each action.
  • Account (20 marks)

    • Responsive design (3 marks)
    • [...] Login (4 marks) - Ash
    • [...] Logout (1 marks) - Ash
    • Signup/update (12 marks)
      • Basic registration (10 marks)
      • Profile avatar support (2 marks)
  • Property (42 marks)

    • Responsive design (3 marks)
    • Support for different availability/prices (4 marks)
      • As part of view/create/update
      • This is considered a bonus feature for its difficulty
    • Support for images (4 marks)
      • At least 3 images per property (2 marks)
      • Any number of images (2 marks)
    • View property detail (8 marks) - Jason
    • Search page (10 marks) - Kate
      • Pagination support (4 marks)
      • Filters (4 marks)
      • Order-by (2 marks)
    • Create/update (11 marks) - Kate
    • Delete (2 marks)
      • Remember to give a big warning
      • Consider what should happen to existing reservations
  • Comment/Rating (26 marks)

    • Responsive design (3 marks)
    • Pagination support (4 marks)
    • Comments for past guests (7 marks)
      • Basic system (5 marks)
        • Should have host name, date/time, message
        • Should be sorted in some ways, e.g., by time of post
      • with rating system (2 marks)
    • Comments for properties (12 marks)
      • Basic system (5 mark)
        • Same as above
      • With rating system (2 marks)
      • Reply system is worth (5 marks)
  • Notifications (32 marks) - Ash

    • Responsive design (3 marks)
    • Pagination support (4 marks)
    • View/List notifications (8 marks)
    • Clear notification (3 marks)
    • Receiving notifications (12 marks)
      • Host: new reservation, cancellation request, new comment on owned property (2 each, 6 total)
      • Guest: result of reservation or cancellation request (2 each, 4 total)
      • Bonus: Guest receives notification when a reservation is about to come up (2 marks)

Credits

Technologies

Team