A full-stack Food Delivery SaaS platform designed to empower small-scale restaurants with a dedicated online ordering and delivery management system. Built using the MERN stack (MongoDB, Express.js, React.js, Node.js), this project provides three independent applications for Customers, Restaurant Administrators, and Delivery Agents, ensuring a seamless, end-to-end experience.
⚠️ Note: The app is hosted on Render's free tier, which puts the backend servers to sleep after 15 minutes of inactivity.
As a result, the first request may take 30–60 seconds to respond while the server wakes up. Subsequent requests will be fast.
Please wait a few moments after opening the app — it will start working shortly.
- Role-Based Architecture: Three independent React applications for each user role (Customer, Admin, Delivery Agent) with protected routes secured by JWT authentication.
- Real-Time Delivery Tracking: Implemented live delivery tracking using WebSockets, Leaflet.js, and Geoapify APIs for dynamic route visualization and continuous geolocation updates.
- Instant Notifications: Integrated WebSocket notifications across all three apps for instant order status changes (e.g., "Order Accepted," "Out for Delivery"), ensuring seamless coordination.
- OTP-Based Delivery Verification: Built a secure OTP system with Nodemailer to send time-sensitive email codes, successfully reducing fraudulent deliveries and confirming order completion.
- Secure Payments & Media: Full integration with Stripe for secure payment processing and Cloudinary CDN for optimized media delivery.
- User Registration and Login with secure JWT-based authentication.
- Browse categorized menus, add items to cart, and place orders.
- Track live order status and delivery agent location on an interactive map.
- Make secure online payments using Stripe.
- Receive real-time WebSocket notifications for order updates.
- Verify order completion with an OTP code.
- Manage and update menu items (Create, Read, Update, Delete).
- Track and update order statuses (e.g., Accept, Reject, Assign to Agent).
- View dashboard metrics and manage restaurant listings.
- Receive real-time notifications for new orders.
- Login and view a queue of assigned delivery tasks.
- Update order status (e.g., "Picked Up," "On the Way," "Delivered").
- Share live location via the browser's Geolocation API for customer and admin tracking.
- Verify order completion by collecting the user's OTP code.
| Layer | Tech Stack |
|---|---|
| Frontend | React.js, Leaflet.js |
| Backend | Node.js, Express.js |
| Database | MongoDB Atlas |
| Real-Time | WebSockets |
| Authentication | JSON Web Tokens (JWT), bcrypt |
| Payments | Stripe |
| Notifications | Nodemailer (for OTP) |
| Media Storage | Cloudinary (for food images) |
| Deployment | Render |
Unlike large platforms like Swiggy and Zomato that overshadow smaller restaurants, this app provides a cost-effective, single-restaurant solution ideal for underserved regions and independent vendors. It ensures digital visibility and order management capabilities for small-scale food businesses.
Naivedya Baranwal B.Tech CSE | NIT Mizoram
This project is licensed under the MIT License.