A full-stack food delivery web application built with the MERN stack (MongoDB, Express.js, React, Node.js) featuring user authentication, shopping cart, online payments via Stripe, and an admin dashboard.
| Feature | Description |
|---|---|
| User Authentication | Secure registration and login system with JWT tokens |
| Shopping Cart | Add/remove items, adjust quantities, real-time price calculation |
| Online Payments | Integrated Stripe payment gateway for secure transactions |
| Order Tracking | Real-time order status updates from preparation to delivery |
| Admin Dashboard | Manage food items, view orders, update order statuses |
| Responsive Design | Mobile-friendly interface for all device sizes |
graph TD
A[Frontend - User] --> B[Backend API]
C[Frontend - Admin] --> B
B --> D[(MongoDB Database)]
B --> E[Stripe API]
subgraph Client Layer
A
C
end
subgraph Server Layer
B
end
subgraph Services
D
E
end
Restaurant-Management-System/
├── frontend/ # User-facing application
├── admin/ # Admin dashboard
├── backend/ # Server logic and API
└── README.md # Project documentation
- Node.js (v18 or higher)
- MongoDB Atlas account or local MongoDB instance
- Stripe account for payment processing
-
Clone the repository:
git clone https://github.com/your-username/restaurant-management-system.git cd restaurant-management-system -
Install dependencies for all modules:
# Backend cd backend npm install # Frontend cd ../frontend npm install # Admin cd ../admin npm install
-
Configure environment variables: Copy
.env.exampleto.envin each directory and update with your credentials. -
Run the application:
# Start backend server cd backend npm run server # Start frontend cd ../frontend npm run dev # Start admin panel cd ../admin npm run dev
| Layer | Technology | Purpose |
|---|---|---|
| Frontend | React 18 | User interface |
| Frontend | Vite | Build tool |
| Frontend | React Router | Navigation |
| Admin | React 18 | Admin dashboard |
| Admin | Vite | Build tool |
| Backend | Node.js | Runtime environment |
| Backend | Express.js | Web framework |
| Database | MongoDB | Data storage |
| Database | Mongoose | ODM |
| Authentication | JWT | Token-based auth |
| Payments | Stripe | Payment processing |
graph LR
A[User Registration] --> B{Authentication}
B -->|Success| C[Browse Menu]
C --> D[Add to Cart]
D --> E[Checkout]
E --> F[Payment Processing]
F --> G[Order Confirmation]
G --> H[Order Tracking]
I[Admin Login] --> J{Authentication}
J -->|Success| K[Dashboard]
K --> L[Manage Food Items]
K --> M[View Orders]
M --> N[Update Status]
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/user/register |
User registration |
| POST | /api/user/login |
User login |
| GET | /api/food/list |
Get all food items |
| POST | /api/cart/add |
Add item to cart |
| POST | /api/order/place |
Place order |
| GET | /api/order/userorders |
Get user orders |
- 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
This project is licensed under the MIT License - see the LICENSE file for details.
Mausam Kar
- Portfolio: mausam03.vercel.app
- GitHub: @mausam03
