Foody is a full-stack food delivery web application built using the MERN stack (MongoDB, Express.js, React, Node.js).
Users can browse menus, add items to a cart, and place orders, while admins can manage the menu and track orders.
- 🔑 User Authentication (JWT + bcrypt)
- 📋 Menu Exploration with categories & responsive design
- 🛒 Shopping Cart with real-time total calculation
- 📦 Order Placement with a smooth checkout experience
- 📑 Admin Panel to add, list, and remove food items
- 📊 Order Tracking to manage customer requests
- ⚛️ React + Vite
- 🛣️ React Router DOM
- 🎨 Custom CSS
- 🌐 Axios (API calls)
- 🔔 React Toastify (alerts & notifications)
- 🟢 Node.js + Express.js
- 🍃 MongoDB + Mongoose
- 🔑 JWT + bcrypt (authentication & security)
- 📦 Multer (image uploads for food items)
- 🔄 CORS
- ⚙️ dotenv (environment management)
Frontend/
├── public/ # Static assets
├── src/
│ ├── assets/ # Images & data
│ ├── components/ # UI components
│ │ ├── AppDownloads/
│ │ ├── ExploreMenu/
│ │ ├── FoodDisplay/
│ │ ├── FoodItem/
│ │ ├── Footer/
│ │ ├── Header/
│ │ ├── LoginPopup/
│ │ └── Navbar/
│ ├── context/ # Global state (React Context)
│ ├── Pages/ # Main pages
│ │ ├── Cart/
│ │ ├── Home/
│ │ └── PlaceOrder/
│ ├── App.jsx
│ └── main.jsx
Admin/
├── public/
├── src/
│ ├── assets/
│ ├── Components/
│ │ ├── Navbar/
│ │ └── Sidebar/
│ ├── Pages/
│ │ ├── Add/
│ │ ├── List/
│ │ └── Orders/
│ ├── App.jsx
│ └── main.jsx
Backend/
├── config/ # Database connection
├── controllers/ # API logic
├── models/ # Mongoose schemas
├── routes/ # Express routes
├── uploads/ # Food images
├── .env # Environment variables
├── server.js # Server entry point
- Node.js (v18 or higher)
- MongoDB
git clone <repository-url>
cd food-delivery/Backend
npm install
Create a .env
file in Backend/
:
PORT=4000
MONGODB_URI=mongodb+srv://<username>:<password>@cluster0.t7wzn.mongodb.net/food-del
JWT_SECRET=your_secret_key
Run backend:
npm run dev
cd ../Frontend
npm install
npm run dev
👉 App runs on http://localhost:5173
cd ../Admin
npm install
npm run dev
👉 Admin Panel runs on http://localhost:5174
- Frontend & Admin: Vercel / Netlify
- Backend: Vercel
- Database: MongoDB Atlas
- 💳 Online Payment Integration (Stripe/PayPal)
- 📱 Mobile App (React Native)
- 📍 Real-time Order Tracking (Google Maps API)
- 🍔 Personalized Recommendations (ML-based)
Built with ❤️ using the MERN Stack.