🚀 Just Launched!
Tomato is a modern, full-stack food delivery platform built with the MERN stack (MongoDB, Express.js, React, Node.js). It provides a seamless experience for users to browse, filter, and order delicious meals – complete with secure payments, real-time feedback, and responsive design.
Live Demo → https://tomato-fda.netlify.app/ Admin Page - https://tomatofooddel-admin.netlify.app/ GitHub → https://github.com/Skrishna0703/Food-Del
- 🍴 Dynamic Menu Listing – Browse meals with category filters
- 🔍 Live Search & Filtering – Quickly find your favorite dishes
- 🛒 Smart Cart System – Add/remove/manage quantity with persistent local state
- 🔐 JWT Authentication – Secure login/signup flow
- 💳 Payment Integration – Seamless checkout using Razorpay (test mode)
- 📩 Real-time Contact Form – Web3Forms-powered feedback system
- 🌗 Responsive UI – Works perfectly on mobile, tablet, and desktop
- 🔔 Toast Alerts – Notify users on key actions (add to cart, login, etc.)
- 🧠 State Management – React Context API + Local Storage
- 🌐 Deployment Ready – Frontend hosted on Netlify, backend on Render
| Layer | Technology |
|---|---|
| Frontend | React.js, Tailwind CSS, Toastify |
| Backend | Node.js, Express.js |
| Database | MongoDB Atlas |
| Auth | JSON Web Tokens (JWT) |
| Payments | Razorpay (test mode) |
| Forms/API | Web3Forms |
| Deployment | Netlify (frontend), Render (backend) |
tomato-food-app/
├── client/ # React frontend
│ ├── src/
│ │ ├── assets/
│ │ ├── components/
│ │ ├── context/
│ │ ├── pages/
│ │ └── App.jsx
│ └── tailwind.config.js
├── server/ # Express backend
│ ├── controllers/
│ ├── models/
│ ├── routes/
│ └── server.js
├── .env # Environment variables
├── README.md
└── package.json
git clone https://github.com/your-username/tomato-food-delivery.git
cd tomato-food-deliverycd client
npm installcd ../server
npm installCreate a .env file inside the server/ directory:
PORT=5000
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_secret_key
RAZORPAY_KEY_ID=your_razorpay_key_id
RAZORPAY_KEY_SECRET=your_razorpay_secret
⚠️ Never commit.envfiles to source control
Open two terminals:
cd server
npm run devcd client
npm run devApp runs at: http://localhost:5173
Manual testing has been performed on:
- ✅ Chrome, Firefox, Brave browsers
- ✅ Mobile (Android Chrome, iOS Safari)
- ✅ Multiple screen sizes via DevTools
- ✅ Razorpay sandbox mode
- ✅ Feedback submission via Web3Forms
Automated testing is not yet implemented.
Want to improve Tomato? Feel free to fork and contribute!
- Fork the repo
- Create a new branch (
git checkout -b feature-name) - Commit your changes (
git commit -m 'Add new feature') - Push to the branch (
git push origin feature-name) - Open a Pull Request
This project is licensed under the MIT License.
Feel free to use, modify, and distribute it with proper attribution.
- Inspired by Zomato, Swiggy
- Razorpay & Web3Forms for dev-friendly APIs
- React Community & Tailwind CSS contributors