Scan & Dine is a fully-functional and innovative web application built with the MERN stack. It bridges the gap between traditional dining and modern technology, offering a convenient and efficient dining experience. The platform enables customers to scan QR codes to access digital menus, book tables, and manage orders. Simultaneously, it empowers restaurant owners with an admin dashboard for streamlined operations.
- QR Code Scanning: Scan QR codes at restaurant tables to access the menu.
- Digital Menu: Browse and explore restaurant menus digitally.
- Table Booking: Reserve tables in advance to avoid waiting times.
- Order Management: Place, modify, and track orders in real-time.
- Admin Dashboard: Manage menu items, monitor orders, and view booking statistics.
- Frontend: React.js with Redux Toolkit for state management.
- Backend: Node.js with Express.js for RESTful API development.
- Database: MongoDB for efficient data storage.
- QR Code: Integrated QR code generation and scanning libraries.
- Authentication: JSON Web Tokens (JWT) for secure user authentication.
- Live Demo: scan & dine live
- Screenshots
Prerequisites
- Node.js (v20 or above)
- MongoDB (Local or Cloud Instance)
- npm
Steps
-
Clone the repository:
git clone https://github.com/tarunlkr6/yummy-dispatch.git cd yummy-dispatch
-
Install Dependencies:
- Backend:
cd backend npm install
- Frontend:
cd frontend npm install
- Admin:
cd admin npm install
-
Set up environment variables:
- Create a
.env
file in the root directory and configure the following:
NODE_ENV = development PORT = 8080 MONGO_URI = <Your mongoDB connection string> CORS_ORIGIN = * ACCESS_TOKEN_SECRET = ACCESS_TOKEN_EXPIRY = REFRESH_TOKEN_SECRET = REFRESH_TOKEN_EXPIRY = CLOUDINARY_CLOUD_NAME = CLOUDINARY_API_KEY = CLOUDINARY_API_SECRET = BACKEND_URL = BACKEND_LOCAL_URL = 'http://localhost:8080' SERVICE_MAIL = <your gmail> SENDER_NAME = scan&Dine CLIENT_ID = <gmail api client id> CLIENT_SECRET = <gmail api client secret> REDIRECT_URI = https://developers.google.com/oauthplayground REFRESH_TOKEN = <oauthplaygroud refresh token string> PAYPAL_CLIENT_ID =
- Create a
-
Run the application:
npm run dev
-
Access the application:
- Open your browser and navigate to http://localhost:5173
yummy-dispatch/
|-- admin/
| |-- public/
| |-- src/
| |-- assets/
| |-- components/
| |-- pages/
| |-- App.jsx
| |-- Main.jsx
| |-- index.css
|-- backed/
| |-- src/
| |-- controllers/
| |-- db/
| |-- mails/
| |-- middlewares/
| |-- models/
| |-- routes/
| |-- utils/
| |-- app.js
| |-- constants.js
| |-- server.js
|-- frontend/
| |-- public/
| |-- src/
| |-- assets/
| |-- components/
| |-- configs/
| |-- context/
| |-- lib/
| |-- pages/
| |-- slices/
| |-- App.jsx
| |-- constants.js
| |-- store.js
|-- package.json
|-- Readme.md
- For Customers: Scan the QR code placed on restaurant tables to view the menu, book tables, and place orders effortlessly.
- For Restaurant Owners: Use the admin dashboard to manage menus, view customer bookings, and monitor orders.
- Analytics: Provide detailed analytics for restaurant owners.
- Mobile App: Develop native apps for Android and iOS platforms.
The author of scan & dine is Sukhranjan Jana
- Backend contributor
- Frontend contributor