Skip to content

Latest commit

Β 

History

40 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ” GrubGo – AI-Powered Food Delivery Web Application

GrubGo is a full-stack MERN-based food delivery platform that connects Customers, Restaurant Owners, and Delivery Personnel through a modern, real-time ecosystem. The platform combines traditional food ordering with AI-powered food recommendations, live order tracking, secure delivery verification, and a loyalty rewards system to deliver an enhanced user experience.


✨ Features

πŸ‘₯ Role-Based User System

  • Customer Dashboard
  • Restaurant Owner Dashboard
  • Delivery Personnel Dashboard
  • Secure role-based authorization and access control

🍽️ Customer Features

  • Browse restaurants and menus
  • Search and filter food items
  • Add items to cart
  • Place food orders
  • Track orders in real time
  • View order history
  • Update profile information
  • Google OAuth Login
  • Email & Password Authentication
  • Forgot & Reset Password

πŸͺ Restaurant Owner Features

  • Create and manage restaurants
  • Add, update, and remove food items
  • Upload food images
  • Manage incoming orders
  • Update order status
  • View restaurant dashboard

πŸ›΅ Delivery Personnel Features

  • Accept delivery requests
  • View assigned deliveries
  • Navigate to customer location
  • Update delivery status
  • Complete deliveries securely

πŸ€– AI Food Recommendation Assistant

One of GrubGo's standout features is its AI-powered recommendation system.

The AI assistant can:

  • Recommend food based on current weather
  • Suggest meals according to user preferences
  • Recommend high-protein food options
  • Display only currently available menu items
  • Provide personalized food suggestions from restaurants available in the database

πŸ“ Real-Time Order Tracking

  • Live delivery tracking using Socket.IO
  • Instant order status updates
  • Real-time communication between customer, restaurant, and delivery personnel

πŸ” Secure Delivery Verification

To ensure safe deliveries:

  • Delivery personnel must verify the order using an OTP.
  • A short delivery verification video is captured during handover.
  • Videos are securely stored on Cloudinary.
  • Automatic deletion of expired videos using scheduled cron jobs to maintain user privacy.

🎁 Loyalty Rewards System

Customers are rewarded for continued usage.

  • Earn rewards after every 10 completed orders.
  • Encourages customer retention and repeat purchases.

πŸ’³ Secure Online Payments

  • Razorpay Payment Gateway integration
  • Secure online payment processing
  • Order confirmation after successful payment

πŸ”’ Authentication

  • JWT Authentication
  • Google OAuth Login
  • Protected Routes
  • Forgot Password
  • Reset Password
  • Secure password hashing

⚑ Additional Features

  • Responsive user interface
  • Image uploads using Cloudinary
  • Centralized state management using Redux Toolkit
  • RESTful API architecture
  • Error handling and validation
  • Modular backend architecture

πŸ›  Tech Stack

Frontend

  • React.js
  • Redux Toolkit
  • React Router
  • Axios
  • CSS

Backend

  • Node.js
  • Express.js

Database

  • MongoDB Atlas

Authentication

  • JWT
  • Google OAuth

Real-Time Communication

  • Socket.IO

Payments

  • Razorpay

Cloud Storage

  • Cloudinary

File Uploads

  • Multer

Email Service

  • Brevo

Background Jobs

  • Node-Cron

AI Integration

  • AI-powered food recommendation system
  • Weather-based recommendations
  • Personalized meal suggestions
  • By using N8N

πŸ“‚ Project Structure

GrubGo
β”‚
β”œβ”€β”€ client/                 # React Frontend
β”‚
β”œβ”€β”€ server/
β”‚   β”œβ”€β”€ controllers/
β”‚   β”œβ”€β”€ middleware/
β”‚   β”œβ”€β”€ models/
β”‚   β”œβ”€β”€ routes/
β”‚   β”œβ”€β”€ services/
β”‚   β”œβ”€β”€ utils/
β”‚   └── socket/
β”‚
β”œβ”€β”€ uploads/
└── README.md

πŸš€ Installation

1. Clone Repository

git clone https://github.com/Sahil-Dashoni/GrubGo.git
cd GrubGo

2. Install Dependencies

Backend

cd server
npm install

Frontend

cd client
npm install

βš™ Environment Variables

Create a .env file inside the server directory.

PORT=4000

MONGO_URI=your_mongodb_connection_string

JWT_SECRET=your_jwt_secret

CLIENT_URL=http://localhost:3000

RAZORPAY_API_KEY=your_key

RAZORPAY_API_SECRET=your_secret

GOOGLE_CLIENT_ID=your_client_id

GOOGLE_CLIENT_SECRET=your_client_secret

CLOUDINARY_CLOUD_NAME=your_cloud_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_API_SECRET=your_api_secret

BREVO_API_KEY=your_brevo_api_key

GEOAPIFY_API_KEY=your_geoapify_api_key

OPENWEATHER_API_KEY=your_openweather_api_key

Add any additional environment variables required by your AI services or external integrations.


β–Ά Running the Application

Start Backend

cd server
npm start

Start Frontend

cd client
npm start

πŸ“‘ Technologies Used

  • React.js
  • Redux Toolkit
  • Node.js
  • Express.js
  • MongoDB Atlas
  • Socket.IO
  • JWT Authentication
  • Google OAuth
  • Razorpay
  • Cloudinary
  • Multer
  • Brevo
  • Node-Cron
  • REST APIs
  • N8N

πŸ“Œ Future Enhancements

  • AI nutritional analysis
  • Voice-enabled food ordering
  • Restaurant analytics dashboard
  • Delivery route optimization
  • Push notifications
  • Coupon and referral system
  • Multi-language support
  • Admin dashboard
  • Progressive Web App (PWA) support

πŸ‘¨β€πŸ’» Author

Sahil Dashoni

GitHub: https://github.com/Sahil-Dashoni


πŸ“„ License

This project is intended for educational and learning purposes. Feel free to fork, learn from, and contribute.

About

Full Stack Food Delivery Application

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages