Restaurant Web App is a comprehensive restaurant management system designed to streamline operations for restaurant owners and provide a seamless experience for customers. This full-stack application handles menu management, online ordering, table bookings, and more.
- Menu Browsing: View all food items with categories, descriptions, and prices
- User Authentication: Register, login, and maintain user profiles
- Cart Management: Add/remove items, view cart, and proceed to checkout
- Online Ordering: Place orders for delivery or dine-in
- Menu Management: Add, edit, and remove menu items
- Order Tracking: View and update order status
- React.js: UI building
- React Router: Navigation
- Redux: State management
- TailwindCSS: Styling
- Node.js: Runtime environment
- Express.js: Web framework
- MongoDB: Database
- Mongoose: ODM for MongoDB
- JWT: Authentication
- Multer: File uploads
- Cloudinary: Image storage
- Node.js (v14.x or higher)
- MongoDB
- npm or yarn
-
Clone the repository
git clone https://github.com/mohammadsarfarazafzal/restaurant-web-app.git cd restaurant-web-app
-
Install backend dependencies
cd backend npm install
-
Create a
.env
file in the backend directory with the following variables:PORT=8000 MONGODB_URI=your_mongodb_connection_string ACCESS_TOKEN_SECRET=your_access_token_secret REFRESH_TOKEN_SECRET=your_refresh_token_secret ACCESS_TOKEN_EXPIRY=1d REFRESH_TOKEN_EXPIRY=10d CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name CLOUDINARY_API_KEY=your_cloudinary_api_key CLOUDINARY_API_SECRET=your_cloudinary_api_secret
-
Start the backend server
npm run dev
-
Install admin dashboard dependencies
cd backend/admin npm install
-
Start the admin dashboard
npm run dev
-
Install frontend dependencies
cd frontend npm install
-
Start the frontend application
npm run dev
POST /api/users/register
- Register a new userPOST /api/users/login
- Login userPOST /api/users/logout
- Logout user
GET /api/menu/list
- Get all menu itemsPOST /api/menu/add
- Add a new menu item (admin)POST /api/menu/remove
- Remove a menu item (admin)
POST /api/cart/add
- Add item to cartPOST /api/cart/remove
- Remove item from cartGET /api/cart/all
- Get all cart items
POST /api/v1/orders/create
- Create a new orderGET /api/v1/orders/user-orders
- Get all orders for logged-in userGET /api/v1/orders/all
- Get all orders (admin)POST /api/v1/orders/update-status
- Update order status (admin)
This project is still in active development. Upcoming features include:
- User profile management
- Enhanced admin analytics
- Email notifications for orders and reservations
This project is licensed under the MIT License - see the LICENSE file for details.