easy seat is a restaurant booking system and table manager. Users can view, create, edit, and delete reservations. Users can also search reservations by phone number. Users can create new tables, seat reservations at them, and also delete the table.
Frontend
- React JS
- HTML
- CSS
- Bootstrap 5
Backend
- PostgreSQL
- Express JS
- Knex JS
- CORS
You can create a new reservation by clicking on + New Reservation
on the top of the page, or by clicking on the +
next to the reservations list. Each reservation requires a first name, last name, phone number, party size, reservation time, and reservation date.
Trying to create a reservation with an empty feild, at a date in the past, after the restaurant closes, or less than an hour before the restaurant closes will return an error.
To seat a reservation, click on the Seat
button on the bottom of the reservation card. This will bring you to the Seat Table page where you can select a table.
After seating the reservation, the table status will be updated to "Occupied" and the reservation status will be updated to "Seated"
If the party size on the reservation is too big for a certain table, the option for that table will be disabled on the dropdown list.
You can edit a reservation by clicking on the Edit
button on the bottom of the reservation card. This will open the Edit Reservation Page which is prefilled with the reservation info. All fields can be edited here.
To cancel a reservation, click on the cancel
button on the bottom of the reservation card. Cancelling a reservation will change its status to "Cancelled".
To search for a reservation, click on Search
on the navbar. This will bring you to the Search Reservations page. To find reservations, you can enter a partial or full number. This will bring up all reservations that contain that number regardless of its current status.
You can create a new table by clicking on + New Table
on the top of the page, or by clicking on the +
next to the tables list. A table requires a name and capacity.
To free a table for a new reservation, click on the Finish
button below the table. Afterwards the tables status will be updated to "Free" and it can seat a new reservation.
You can delete a table permanantly by clicking on the trash icon next to the table's title.
A table that is currently occupied cannot be deleted.
- Set up four new ElephantSQL database instances - development, test, preview, and production - by following the instructions in the "PostgreSQL: Creating & Deleting Databases" checkpoint.
- After setting up your database instances, connect DBeaver to your new database instances by following the instructions in the "PostgreSQL: Installing DBeaver" checkpoint.
Run npx knex
commands from within the back-end
folder, which is where the knexfile.js
file is located.
- Fork and clone this repository.
- Run
cp ./back-end/.env.sample ./back-end/.env
. - Update the
./back-end/.env
file with the connection URL's to your ElephantSQL database instance. - Run
cp ./front-end/.env.sample ./front-end/.env
. - You should not need to make changes to the
./front-end/.env
file unless you want to connect to a backend at a location other thanhttp://localhost:5001
. - Run
npm install
to install project dependencies. - Run
npm run start:dev
to start your server in development mode.