Loading repository data…
Loading repository data…
devBuku / repository
A full-stack MERN food ordering web application with JWT authentication, Stripe payments, cart management, and an admin panel for food and order management.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
A production-style food ordering platform built with the MERN stack.
Tomato allows customers to browse menus, manage carts, place orders through Stripe Checkout, and track order history, while providing administrators with tools for inventory and order management.
Tech Stack: React • Node.js • Express • MongoDB • Stripe • Docker
Tomato consists of three independent applications:
Both frontend applications communicate with a centralized backend API.
This project helped me gain practical experience with:
| Layer | Technology |
|---|---|
| Framework | React 19 |
| Build Tool | Vite 7 |
| Routing | React Router DOM v7 |
| State Management | React Context API |
| HTTP Client | Axios |
| Styling | CSS |
| Notifications | React Toastify |
| Linting | ESLint 9 |
| Layer | Technology |
|---|---|
| Runtime | Node.js |
| Framework | Express.js 5 |
| Database | MongoDB |
| ODM | Mongoose |
| Authentication | JWT |
| Password Hashing | bcrypt |
| File Uploads | Multer |
| Payments | Stripe |
| Validation | validator |
| Environment Variables | dotenv |
| Development Server | nodemon |
Tomato/
├── backend/
│ ├── src/
│ │ ├── config/
│ │ ├── controllers/
│ │ ├── middlewares/
│ │ ├── models/
│ │ ├── routes/
│ │ ├── app.js
│ │ └── server.js
│ └── uploads/
│
├── frontend/
│ └── src/
│
├── admin/
│ └── src/
│
├── AGENTS.md
└── README.md
| Method | Endpoint |
|---|---|
| GET | /api/food/list |
| POST | /api/food/add |
| POST | /api/food/remove |
| Method | Endpoint |
|---|---|
| POST | /api/user/register |
| POST | /api/user/login |
| Method | Endpoint |
|---|---|
| POST | /api/cart/add |
| POST | /api/cart/remove |
| POST | /api/cart/get |
| Method | Endpoint |
|---|---|
| POST | /api/order/place |
| POST | /api/order/verify |
| POST | /api/order/userorders |
git clone <repository-url>
cd Tomato
# Backend
cd backend && npm install
# Frontend
cd ../frontend && npm install
# Admin Panel
cd ../admin && npm install
cd backend
docker compose up -d
Create a .env file inside backend/.
PORT=4000
NODE_ENV=development
MONGO_URI=mongodb://localhost:27017/tomato
JWT_SECRET=your_jwt_secret
STRIPE_SECRET_KEY=sk_test_your_secret_key
Backend:
cd backend
npm run dev
Frontend:
cd frontend
npm run dev
Admin Panel:
cd admin
npm run dev
| Service | Port |
|---|---|
| Backend API | 4000 |
| Frontend | 5173 |
| Admin Panel | 5173 / 5174 |
require/module.exports)import/export)backend/uploadsFeel free to open an issue or contribute to the project.