A full-stack MERN food delivery application with three main components: customer frontend, admin panel, and backend API. The application is deployed on Vercel and uses MongoDB as the database and AWS S3 for image storage.
- Customer App: https://fooddelivery-2025.vercel.app
- Admin Panel: https://admin-kappa-ivory.vercel.app
- Backend API: https://backend-ten-azure-58.vercel.app
- Framework: React 18 with Vite
- Routing: React Router DOM v6
- State Management: React Context API
- HTTP Client: Axios
- Styling: CSS3
- Deployment: Vercel
- Runtime: Node.js with Express.js
- Database: MongoDB with Mongoose ODM
- Authentication: JWT with bcrypt
- File Storage: AWS S3
- Payment: Stripe
- Deployment: Vercel (Serverless Functions)
- Framework: React 18 with Vite
- Routing: React Router DOM v7
- Notifications: React Toastify
- Styling: CSS3
- Deployment: Vercel
├── frontend/ # Customer-facing React app
├── admin/ # Admin panel React app
├── backend/ # Node.js Express API
├── CLAUDE.md # Development instructions
└── README.md # This file
- Browse food items by category
- Add/remove items to/from cart
- User authentication (register/login)
- Place orders with Stripe payment
- View order history
- Responsive design
- Add/edit/delete food items
- View and manage all orders
- Update order status
- Image upload to AWS S3
- Real-time order notifications
- RESTful API endpoints
- JWT authentication
- MongoDB data persistence with Mongoose
- File upload to AWS S3
- Stripe payment integration
- Serverless deployment
- Node.js (>= 14.0.0)
- MongoDB Atlas account
- AWS S3 bucket
- Stripe account
Create .env
files in the backend directory:
# Database
MONGODB_URI=mongodb+srv://username:password@cluster.mongodb.net/database
# Authentication
JWT_SECRET=your_jwt_secret_key
# AWS S3
AWS_ACCESS_KEY_ID=your_access_key
AWS_SECRET_ACCESS_KEY=your_secret_key
AWS_REGION=your_region
AWS_BUCKET_NAME=your_bucket_name
# Payment
STRIPE_SECRET_KEY=sk_test_or_live_key
For frontend and admin, create .env
files:
VITE_API_URL=https://backend-ten-azure-58.vercel.app
VITE_S3_URL=https://your-bucket-name.s3.your-region.amazonaws.com
- Backend
cd backend
npm install
npm run dev
- Frontend
cd frontend
npm install
npm run dev
- Admin
cd admin
npm install
npm run dev
POST /api/user/register
- User registrationPOST /api/user/login
- User login
POST /api/food/add
- Add food item (with image upload)GET /api/food/list
- Get all food itemsPOST /api/food/remove
- Remove food item
POST /api/cart/add
- Add item to cartPOST /api/cart/remove
- Remove item from cartPOST /api/cart/get
- Get user's cart
POST /api/order/place
- Place order with paymentPOST /api/order/verify
- Verify payment statusPOST /api/order/userorders
- Get user's ordersGET /api/order/list
- Get all orders (admin)POST /api/order/update
- Update order status
The application includes:
- Modern, responsive design
- Intuitive user interface
- Real-time order tracking
- Secure payment processing
- Comprehensive admin dashboard
The application is deployed using Vercel:
- Frontend & Admin: Static site deployment
- Backend: Serverless functions deployment
- Database: MongoDB Atlas cloud database
- Storage: AWS S3
- Payments: Stripe
This project is licensed under the MIT License.
Contributions are welcome! Please feel free to submit a Pull Request.
For any questions or support, please contact the project maintainer.