- Overview
- Key Features
- Multi-Role System
- Tech Stack
- System Architecture
- Getting Started
- API Documentation
- Project Structure
- Screenshots
- Deployment
- Security
- Contributing
- License
- Contact
FoodDelivery Pro is a production-ready, full-stack food delivery platform built with the MERN stack (MongoDB, Express.js, React, Node.js). Designed for real-world use cases, it features a sophisticated multi-role system supporting Customers, Restaurants, and Delivery Partners with distinct dashboards and workflows.
Traditional food delivery platforms struggle with:
- β Complex role management
- β Poor real-time order tracking
- β Inefficient restaurant-customer-delivery coordination
- β Limited scalability
- β Security vulnerabilities
FoodDelivery Pro delivers:
- β Multi-Role Authentication - JWT-based secure auth for 3 user types
- β Real-Time Updates - Live order tracking and status updates
- β Smart Cart Management - Restaurant-specific cart with validation
- β Professional UI/UX - Material-UI + Framer Motion animations
- β RESTful API - Clean, documented backend architecture
- β State Management - Redux Toolkit with async thunks
- β Responsive Design - Mobile-first approach
|
|
| Feature | Description |
|---|---|
| π Dashboard | Sales overview, pending orders, analytics |
| π Menu Management | Add/Edit/Delete menu items, categories, pricing |
| π¦ Order Processing | Accept/Reject orders, update status, view history |
| π Analytics | Revenue tracking, popular items, customer insights |
| βοΈ Settings | Business hours, delivery settings, profile |
- Order Assignment - View available delivery orders
- Earnings Tracker - Daily, weekly, monthly earnings
- Active Delivery - Real-time delivery tracking
- Order History - Completed deliveries
- Profile Management - Update vehicle info, availability
## π₯ Multi-Role System
βββββββββββββββββββββββββββββββββββββββββββββββββββ
β User Roles β
βββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β π€ CUSTOMER πͺ RESTAURANT β
β β’ Browse & Order β’ Manage Menu β
β β’ Track Orders β’ Process Orders β
β β’ Manage Profile β’ View Analytics β
β β’ Add Favorites β’ Business Settings β
β β
β π DELIVERY PARTNER β
β β’ Accept Deliveries β
β β’ Track Earnings β
β β’ Update Availability β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββ
## π οΈ Tech Stack
### **Backend:**
βββ Runtime & Framework
β βββ Node.js 18.x
β βββ Express.js 4.18
β βββ REST API Architecture
β
βββ Database
β βββ MongoDB 6.0
β βββ Mongoose ODM
β βββ MongoDB Atlas (Production)
β
βββ Authentication & Security
β βββ JWT (jsonwebtoken)
β βββ bcryptjs (Password Hashing)
β βββ express-validator
β βββ helmet (Security Headers)
β βββ cors
β βββ rate-limiter
β
βββ Tools & Utilities
βββ dotenv (Environment Variables)
βββ morgan (Logging)
βββ nodemon (Development)
### **Frontend:**
βββ Core Framework
β βββ React 18.2
β βββ React Router DOM 6.20
β βββ Redux Toolkit 1.9
β βββ React Hooks
β
βββ UI & Styling
β βββ Material-UI (MUI) 5.14
β βββ Framer Motion 10.16 (Animations)
β βββ React Icons
β βββ Swiper.js (Carousels)
β βββ Custom CSS with CSS Variables
β
βββ HTTP & State
β βββ Axios 1.6
β βββ Redux Persist
β βββ React Toastify
β
βββ Build Tools
βββ Create React App
βββ Webpack 5
βββ Babel
---
## ποΈ System Architecture
ββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β CLIENT LAYER β
β ββββββββββββββββ ββββββββββββββββ β
β β React Web β β Admin Panel β β
β β (Port 3000) β β (Port 3001) β β
β ββββββββ¬ββββββββ ββββββββ¬ββββββββ β
β β β β
β ββββββββββ¬βββββββββ β
β β β
β ββββββββββΌβββββββββ β
β β Axios HTTP β β
β β (API Calls) β β
β ββββββββββ¬βββββββββ β
ββββββββββββββββββββΌβββββββββββββββββββββββββββββββββ
β
ββββββββββββββββββββΌβββββββββββββββββββββββββββββββββ
β SERVER LAYER β
β βββββββββββββββββββββββββββββββββββββββββββ β
β β Express.js REST API (Port 5000) β β
β β β β
β β ββββββββββββββββββββββββββββββββββββ β β
β β β API Routes & Controllers β β β
β β ββββββββββββββββββββββββββββββββββββ€ β β
β β β /api/auth - Authentication β β β
β β β /api/users - User Management β β β
β β β /api/restaurants - Restaurants β β β
β β β /api/menu - Menu Items β β β
β β β /api/orders - Order Processing β β β
β β ββββββββββββββββββββββββββββββββββββ β β
β β β β
β β ββββββββββββββββββββββββββββββββββββ β β
β β β Middleware Layer β β β
β β ββββββββββββββββββββββββββββββββββββ€ β β
β β β β’ JWT Authentication β β β
β β β β’ Role Authorization β β β
β β β β’ Error Handling β β β
β β β β’ Input Validation β β β
β β ββββββββββββββββββββββββββββββββββββ β β
β βββββββββββββββββββββββββββββββββββββββββββ β
ββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββ
β
ββββββββββββββββββββΌβββββββββββββββββββββββββββββββββ
β DATABASE LAYER β
β βββββββββββββββββββββββββββββββββββββββββββ β
β β MongoDB Database β β
β βββββββββββββββββββββββββββββββββββββββββββ€ β
β β Collections: β β
β β β’ users - User accounts β β
β β β’ restaurants - Restaurant data β β
β β β’ menuitems - Food items β β
β β β’ orders - Order records β β
β β β’ reviews - Customer reviews β β
β β β’ deliverypersons - Delivery partners β β
β βββββββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββ
---
## π Getting Started
### **Prerequisites**
| Software | Version | Download Link |
|----------|---------|---------------|
| π’ **Node.js** | 18+ | [Download](https://nodejs.org/) |
| π **MongoDB** | 6.0+ | [Download](https://www.mongodb.com/try/download/community) |
| π¦ **npm** | 9+ | Included with Node.js |
| π§ **Git** | Latest | [Download](https://git-scm.com/) |
πΈ Screenshots
π Home Page

π Security Features
β
JWT Authentication - Secure token-based auth
β
Password Hashing - bcrypt with salt rounds
β
Input Validation - Prevent SQL injection, XSS
β
CORS Configuration - Restricted cross-origin requests
β
Rate Limiting - Prevent brute force attacks
β
Helmet.js - Security HTTP headers
β
Environment Variables - Sensitive data protection
π€ Contributing Contributions are welcome!
π License This project is licensed under the MIT License - see the LICENSE file for details.




