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.
- Customer Dashboard
- Restaurant Owner Dashboard
- Delivery Personnel Dashboard
- Secure role-based authorization and access control
- 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
- Create and manage restaurants
- Add, update, and remove food items
- Upload food images
- Manage incoming orders
- Update order status
- View restaurant dashboard
- Accept delivery requests
- View assigned deliveries
- Navigate to customer location
- Update delivery status
- Complete deliveries securely
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
- Live delivery tracking using Socket.IO
- Instant order status updates
- Real-time communication between customer, restaurant, and delivery personnel
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.
Customers are rewarded for continued usage.
- Earn rewards after every 10 completed orders.
- Encourages customer retention and repeat purchases.
- Razorpay Payment Gateway integration
- Secure online payment processing
- Order confirmation after successful payment
- JWT Authentication
- Google OAuth Login
- Protected Routes
- Forgot Password
- Reset Password
- Secure password hashing
- Responsive user interface
- Image uploads using Cloudinary
- Centralized state management using Redux Toolkit
- RESTful API architecture
- Error handling and validation
- Modular backend architecture
- React.js
- Redux Toolkit
- React Router
- Axios
- CSS
- Node.js
- Express.js
- MongoDB Atlas
- JWT
- Google OAuth
- Socket.IO
- Razorpay
- Cloudinary
- Multer
- Brevo
- Node-Cron
- AI-powered food recommendation system
- Weather-based recommendations
- Personalized meal suggestions
- By using N8N
GrubGo
β
βββ client/ # React Frontend
β
βββ server/
β βββ controllers/
β βββ middleware/
β βββ models/
β βββ routes/
β βββ services/
β βββ utils/
β βββ socket/
β
βββ uploads/
βββ README.md
git clone https://github.com/Sahil-Dashoni/GrubGo.git
cd GrubGocd server
npm installcd client
npm installCreate 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_keyAdd any additional environment variables required by your AI services or external integrations.
cd server
npm startcd client
npm start- 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
- 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
Sahil Dashoni
GitHub: https://github.com/Sahil-Dashoni
This project is intended for educational and learning purposes. Feel free to fork, learn from, and contribute.