This is a full-stack web application that I wanted to build for years but couldn't start due to my studies, designed to manage cafe/restaurant operations, including creating and managing menus, generating QR codes for tables, and handling customer orders. The application allows cafe owners to manage their menus and view customer orders, while customers can view the menu, place orders, and manage their profiles. I'm still building it.
- Frontend: React, Bootstrap
- Backend: Node.js, Express.js, MongoDB
- Authentication: JSON Web Tokens (JWT)
- File Uploads: Multer
-
Cafe Owners:
- Register and log in to manage their cafe/restaurant.
- Create and manage menu items with categories, prices, descriptions, and images.
- Generate QR codes for each table, allowing customers to view the menu and place orders.
- View orders in real-time from the dashboard.
-
Customers:
- Register and log in to view the menu, place orders, and manage their profiles.
- Access a table-specific menu via QR code.
-
Upcoming Features: -Visited locations history for customers -Rating for cafe/restaurants -Comments from customers
- Node.js and npm installed
- MongoDB installed and running
git clone https://github.com/kercal/menu-application
cd menuApplication
-
Navigate to the root directory
-
Install the required packages:
npm install
- Create a
.envfile in thebackenddirectory with the following variables:
PORT=5000
MONGO_URI=your_mongodb_uri
JWT_SECRET=your_jwt_secret
- Start the backend server(root):
node index.js
- Navigate to the
frontenddirectory:
cd client
- Install the required packages:
npm install
- Start the frontend development server:
npm start
The frontend server should be running on http://localhost:3000 and the backend server on http://localhost:5000.
-
Register as a Cafe Owner:
- Create a new cafe owner account and log in to access the dashboard.
- Manage your menu by adding categories and menu items.
- Generate QR codes for tables, allowing customers to access the menu.
-
Register as a Customer:
- Create a new customer account and log in to access your profile.
- Scan a table's QR code to view the menu and place an order.
-
Dashboard:
- Access the dashboard to view and manage orders in real-time.
- backend/: Contains all backend-related code, including routes, models, middleware, and configuration files.
- frontend/: Contains all frontend-related code, including React components, pages, and styles.



