Skip to content

Latest commit

 

History

History
85 lines (44 loc) · 3.28 KB

README.md

File metadata and controls

85 lines (44 loc) · 3.28 KB

Restaurant Reservation App - Periodic Tables

Link to deployed live application:

Live Application

Link to backend server:

Backend Server

Project Description:

The Restaurant Reservation App provides restaurant managers with an easy and effective way to track and manage reservations. The application allows restaurant employees to view reservations by date, update the status of a reservation, and seat a reservation at a table. They are able to view reservations on the dashboard alongside a list of tables, with the current status of the table. Restaurant staff can search for and create new reservations, and they are able to create new tables as well.


Some important features include:

  1. A dashboard on the homepage lists reservations for the current date and displays a list of tables in the restaurant. The manager can also navigate forward and backward to look at reservations from the previous day and for the next day.
reservation-dashboard

  1. Restaurant managers and employees can create new reservations under the New Reservation tab.
create-reservation
  1. New tables can be created under the New Table tab.
create-table
  1. Restaurant employees can search for existing reservations by inputting a customer's phone number. All matching reservations will be returned, regardless of the reservation's status.

    search-reservations

Backend Application

The backend of the application implements RESTful API strategies. Files are divided by routes. Both the /tables route and the /reservations route include three main files to maintain clean organization:

-Router: Specifies routes that can be used, as well as the available HTTP request methods. There is an error handler in place to prevent request methods that are not authorized.

-Controller: Contains method handling functions that send the request to the database. Also contains validation middleware to prevent invalid input from the user. The restaurant's business rules are enforced in the middleware and will be displayed in the UI if the user violates any rules.

-Service: Uses Knex to make database queries using CRUDL functions.

Technologies Used:

Frontend:

-React.js

-CSS

Backend:

-Node.js

-Express

-PostgreSQL

Installation Instructions

Fork and clone repository.

Run npm install to install project dependencies. Run npm run start:dev to start your server in development mode.

To run the application's tests:

Run npm test to run all tests. Run npm run test:backend to run all the backend tests. Run npm run test:frontend to run all of the frontend tests.