A full-stack food delivery application built using the MERN stack (MongoDB, Express, React, Node.js).
This project is a Zomato-like food delivery platform with separate interfaces for users and food partners. The application allows:
- Users: Browse food items, place orders, and track delivery
- Food Partners: Upload food items with videos, manage their menu, and handle orders
- Node.js with Express
- MongoDB with Mongoose
- JWT Authentication
- Multer for file uploads
- Storage service for video uploads
- React with Vite
- Modern UI components
- State management
├── backend/ # Node.js Express backend
│ ├── server.js # Entry point
│ └── src/ # Source code
│ ├── app.js # Express app configuration
│ ├── controllers/ # Request handlers
│ ├── db/ # Database connection
│ ├── middlewares/ # Custom middlewares
│ ├── models/ # Mongoose models
│ ├── routes/ # API routes
│ └── services/ # External services
│
└── frontend/ # React frontend
├── public/ # Static files
└── src/ # Source code
├── App.jsx # Main component
├── assets/ # Images, fonts, etc.
└── components/ # React components
- Node.js (v14 or higher)
- MongoDB (local or Atlas)
- npm or yarn
-
Navigate to the backend directory:
cd backend -
Install dependencies:
npm install -
Start the development server:
npx nodemon server.js
-
Navigate to the frontend directory:
cd frontend -
Install dependencies:
npm install -
Start the development server:
npm run dev
POST /api/auth/register- Register a new userPOST /api/auth/login- Login for usersGET /api/food- Get all food items (requires user authentication)POST /api/food- Create a new food item (requires food partner authentication)
The application uses JWT-based authentication with separate tokens for users and food partners.