Pandemic and the nationwide lock-down have affected the restaurant industry badly. Most of the restaurants shut down during the pandemic. I was inspired by my uncle’s hardship during the lock-down with his restaurant in India. This app is for my uncle to show how he can make use of technology and increase his businesses revenue.
- User Story
- Future Development
- Demo
- Tools & Technology Used
- Project Structure - Links for files and components
- Wireframe
- Installation
- Acknowledgement
- Resources
- Customer can view the menu, add the item to the shopping cart, delete items from the cart.
- Customer can contact the restaurant by filling the contact form.
- Customer can view restaurant review.
- Admin can login and logout
- Admin can add, edit the menu item, toggle the status of the item.
- Admin cam search the item according to category name and item name.
- Admin can view and delete the messages from the customers.
- This app is mobile and desktop friendly app.
- Adding more test cases.
- Adding order table to database.
- Customer login and logout feature.
Live Demo Link
Admin page View
Customer page Desktop View
Customer page Mobile View
- Frontend: React, Chakra UI
- Backend: Node.js, Express.js
- Database: PostgreSQL
- Testing: React Testing Library
- APIs: Google Place API, TheMealDB, Auth0
- Design: Figma, drawSQL
- Customer side - Desktop view
- Customer side - Mobile view
- Admin side - Desktop view
CLICK HERE for Links for files and components
Client
First you need to get an Auth0 API, Google Place API key.
Clone the restaurant menu repository
git clone https://github.com/priyaraj7/guruprasad.git
Move inside the repo
cd guruprasad
Next move into the server and install dependencies
cd server
npm install
npm start
Create a .env
file and enter your api-key. You can refer .env-example
file.
Next restore the Postgres Database
psql postgres -f db.sql
Open another terminal then cd into the client, install dependencies
cd client
npm install
Create a .env file and enter your Auth0 credential.
Start the browser
npm start
Your browser should automatically open at http://localhost:3000.
Note: Server runs on http://localhost:4000 and client on http://localhost:3000
I'm extremely grateful to my Mentor - Chris Jaure and Techtonica team for their help on this project.
Node (Express) API: Authorization
React user Login
React Router v6
Aggregate Rows into a JSON Array Using the json_agg() Function
Adding a LEFT JOIN on a INSERT INTO....RETURNING
Git rebase --onto
Update one of the objects in array, in an immutable way