A full-stack food delivery application built with React.js, Node.js, Express.js, and MongoDB.
Order your favourite food with an attractive hero section and easy navigation
Explore our diverse menu featuring 8 different food categories: Salad, Rolls, Deserts, Sandwich, Cake, Pure Veg, Pasta, and Noodles
Discover top dishes near you with star ratings, descriptions, and competitive pricing
Manage your order with detailed cart view showing items, quantities, pricing, and promo code support
Download our mobile app from Google Play Store and App Store for a better experience Complete footer with company information, navigation links, and contact details
- Clean and intuitive interface with orange/red color scheme
- Responsive design that works on all devices
- Professional food photography and appealing layouts
- 8 Food Categories: Salad, Rolls, Desserts, Sandwich, Cake, Pure Veg, Pasta, Noodles
- Detailed Food Items: Each dish includes rating, description, and pricing
- Visual Appeal: High-quality food images for every item
- Real-time cart updates with quantity management
- Subtotal, delivery fee, and total calculations
- Promo code support for discounts
- Easy item removal and modification
- Cross-platform availability (iOS & Android)
- Seamless app store integration
- Consistent branding across web and mobile
- "Tomato" brand identity with consistent styling
- Complete contact information and social media links
- Professional footer with company details and policies
Order your favourite food with an attractive hero section and easy navigation
Explore our diverse menu featuring 8 different food categories: Salad, Rolls, Deserts, Sandwich, Cake, Pure Veg, Pasta, and Noodles
Discover top dishes near you with star ratings, descriptions, and competitive pricing
Manage your order with detailed cart view showing items, quantities, pricing, and promo code support
Download our mobile app from Google Play Store and App Store for a better experience
Complete footer with company information, navigation links, and contact details
- Clean and intuitive interface with orange/red color scheme
- Responsive design that works on all devices
- Professional food photography and appealing layouts
- 8 Food Categories: Salad, Rolls, Desserts, Sandwich, Cake, Pure Veg, Pasta, Noodles
- Detailed Food Items: Each dish includes rating, description, and pricing
- Visual Appeal: High-quality food images for every item
- Real-time cart updates with quantity management
- Subtotal, delivery fee, and total calculations
- Promo code support for discounts
- Easy item removal and modification
- Cross-platform availability (iOS & Android)
- Seamless app store integration
- Consistent branding across web and mobile
- "Tomato" brand identity with consistent styling
- Complete contact information and social media links
- Professional footer with company details and policies
- Frontend: React.js with modern UI/UX
- Backend: Node.js with Express.js REST API
- Database: MongoDB with Mongoose ODM
- Payment: Stripe integration for secure payments
- Admin Panel: Order management and status tracking
- Authentication: JWT-based user authentication
- File Upload: Image upload for food items
food-del/
├── frontend/ # React.js frontend application
├── backend/ # Node.js/Express.js backend API
├── admin/ # Admin panel for order management
└── README.md
- Node.js (v14 or higher)
- MongoDB database
- Stripe account for payment processing
-
Navigate to the backend directory:
cd backend -
Install dependencies:
npm install
-
Create environment variables:
cp .env.example .env
-
Edit
.envfile with your configuration:MONGO_URI=mongodb://localhost:27017/food-delivery STRIPE_SECRET_KEY=your_stripe_secret_key_here JWT_SECRET=your_jwt_secret_here PORT=4000 -
Start the backend server:
npm start
-
Navigate to the frontend directory:
cd frontend -
Install dependencies:
npm install
-
Start the development server:
npm run dev
-
Navigate to the admin directory:
cd admin -
Install dependencies:
npm install
-
Start the admin panel:
npm run dev
POST /api/user/register- User registrationPOST /api/user/login- User login
POST /api/order/place- Place new orderPOST /api/order/verify- Verify paymentPOST /api/order/userorders- Get user ordersGET /api/order/list- Get all orders (admin)POST /api/order/status- Update order status (admin)
POST /api/food/add- Add food item (admin)GET /api/food/list- Get all food itemsPOST /api/food/remove- Remove food item (admin)
- React.js
- React Router
- Context API
- Axios
- React Toastify
- Node.js
- Express.js
- MongoDB
- Mongoose
- JWT
- Bcrypt
- Multer
- Stripe
- Vite (Build tool)
- ESLint (Linting)
- CORS (Cross-origin requests)
Create a .env file in the backend directory with the following variables:
MONGO_URI=your_mongodb_connection_string
STRIPE_SECRET_KEY=your_stripe_secret_key
JWT_SECRET=your_jwt_secret_key
PORT=4000
This project is configured for easy deployment to Render.com:
-
Deploy Frontend (Static Site):
- Connect your GitHub repository to Render
- Create a new Static Site
- Set build command:
cd frontend && npm install && npm run build - Set publish directory:
frontend/dist
-
Deploy Backend (Web Service):
- Create a new Web Service
- Set build command:
cd backend && npm install - Set start command:
cd backend && npm start - Add environment variables in Render dashboard
- Connect repository to Render
- Use build command:
npm run build - Use start command:
npm start - Set environment variables in Render dashboard
Set these in your Render dashboard:
MONGO_URI=your_mongodb_atlas_connection_string
STRIPE_SECRET_KEY=your_stripe_secret_key
JWT_SECRET=your_jwt_secret_key
NODE_ENV=production
PORT=10000
# Build the image
docker build -t food-delivery-app .
# Run the container
docker run -p 4000:4000 \
-e MONGO_URI=your_mongodb_uri \
-e STRIPE_SECRET_KEY=your_stripe_key \
-e JWT_SECRET=your_jwt_secret \
food-delivery-app- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request










