Skip to content

A full stack website designed to be a restaurant reservation system that is used by a restaurant manager/owner.

Notifications You must be signed in to change notification settings

hebahiari/restaurant-reservation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

81 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Links

dashboard

Summary

Booked. is a restaurant reservation system desgined to be used by a restaurant manager/owner. The application allows the user to control all aspects of reservations and tables within the restaurant. This allows the user to have a clear view of the current status of the restaurant and quickly manage reservations as needed.

  • Reservations
    • View all reservations for a specified date
    • Create new Reservations
    • Cancel existing Reservations
    • Search for a reservation via the customer's phone number
    • Edit/update existing reservation details and status
    • Seat a reservation at a table
  • Tables
    • View all tables and whether they are occupied or open
    • Create new tables
    • Clear tables (When a reservation is finished and the table is ready for the next guest)
      • Changes an occupied table's status from "Occupied" to "Free"
  • Built-in validation
    • Application ensures reservations can only be created/updated within a valid date/time-window
      • Cannot create reservations for past dates, reservations can only be created between 9:30 am and 10:30 pm
      • Reservations cannot be created for Tuesdays (Restaurant closed)
      • Validates all inputs for proper formatting
    • When the user attempts to seat a reservation at a table, the application will make sure that the selected table has proper capacity for the reservation
    • Unoccupied tables cannot be cleared

Installation

  1. Go to the project root
  2. Run npm install to install dependencies
  3. Start project on development server with npm run start:dev

Technology

Client

Server

  • Node and Express
  • Utilizes Knex for PostgreSQL query building

Database

  • Hosted by ElphantSQL

Screenshots

Dashboard

dashboard

New Reservation

new-reservation

Search By Phone Number

search-phone

New Table

new-table

Seat Reservation

seat-reservation

Documentation for API

Route Description Methods
/reservations returns a list of reservations for current date GET
/reservations creates a new reservation POST
/reservations?date=YYYY-MM-DD returns a list of reservations for a given date GET
/reservations/:reservation_id returns a reservation matching a given id GET
/reservations/:reservation_id updates a reservation matching a given id PUT
/reservations/:reservation_id/status updates the status of a reservation for a given id PUT
/tables returns a list of tables GET
/tables creates a new table POST
/tables/:table_id/seat moves reservation to a table for a given id PUT
/tables/:table_id/seat remove a reservation from a table for a given id DELETE

Reservation Example

{
    data: {
        reservation_id: 5,
        first_name: "Angelina",
        last_name: "Jolie",
        mobile_number: "650-646-8897",
        reservation_date: "2026-12-30",
        reservation_time: "18:00:00",
        people: 2,
        status: "booked",
        created_at: "2020-12-10T08:31:32.326Z",
        updated_at: "2020-12-10T08:31:32.326Z"
    }
}

Table Example

{
    table_id: 3,
    table_name: "#1",
    capacity: 6,
    reservation_id: 11
}

About

A full stack website designed to be a restaurant reservation system that is used by a restaurant manager/owner.

Resources

Stars

Watchers

Forks