Skip to content

Latest commit

 

History

History
173 lines (138 loc) · 5.03 KB

README.md

File metadata and controls

173 lines (138 loc) · 5.03 KB

Scan & Dine

Overview

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.

home-page

Features

  • 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.

Technologies Used

  • 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.
mern-stack

Demo and Screenshots

Screenshot from 2024-12-16 06-21-39

Screenshot from 2024-12-16 06-22-10

Screenshot from 2024-12-16 06-22-10

Screenshot from 2024-12-16 06-25-15

Installation

Prerequisites

  • Node.js (v20 or above)
  • MongoDB (Local or Cloud Instance)
  • npm

Steps

  1. Clone the repository:

    git clone https://github.com/tarunlkr6/yummy-dispatch.git
    cd yummy-dispatch
    
  2. Install Dependencies:

    • Backend:
    cd backend
    npm install
    
    • Frontend:
    cd frontend
    npm install
    
    • Admin:
    cd admin
    npm install
    
  3. 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 =
    
  4. Run the application:

    npm run dev
    
  5. Access the application:

Project Structure

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

Usage

  • 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.

Future Enhancements

  • Analytics: Provide detailed analytics for restaurant owners.
  • Mobile App: Develop native apps for Android and iOS platforms.

People

The author of scan & dine is Sukhranjan Jana