re
Reservations Β· Orders Β· Menu Β· Staff Β· Payments Β· Analytics β all in one place.
π Live Demo Β· π Report Bug Β· β¨ Request Feature Β· π€ Contribute
Bistro Boss is a full-featured, production-ready restaurant management system built on the MERN stack. It empowers restaurant owners with a centralized platform to handle every operational aspect β from customer reservations to real-time order tracking, staff management, and detailed analytics β all wrapped in a beautiful, responsive UI.
Whether you run a cozy cafΓ© or a multi-table fine dining establishment, Bistro Boss scales with your needs.
π Landing Page |
π Menu & Ordering |
π€ Customer Dashboard |
βοΈ Admin Control Panel |
- Secure JWT-based login and registration
- Password hashing with Bcrypt.js
- Role-based access for Admin, Staff, and Customers
- Protected routes per user role
- Real-time table reservation with time slots and customer details
- Instant updates for better front-of-house coordination
- Admin view of all bookings with status control
- Full order lifecycle: New β Preparing β Ready β Delivered
- Real-time order status updates via Socket.IO
- Order history per customer with itemized details
- Dynamic add, edit, and remove menu items
- Rich image uploads via Cloudinary
- Category-based menu organization
- Live preview of menu changes
- Manage roles, shifts, and schedules
- Track staff performance metrics
- Role-based dashboard access
- Secure online payments powered by Stripe
- Refund handling and invoice generation
- Full payment history per order
- Automated emails for reservations, order updates, payment receipts, and promotions via Nodemailer
- Visual sales, order, and staff performance charts via Chart.js / Recharts
- Revenue tracking and trend analysis
- Exportable reports for decision-making
- Localized UI with react-i18next
- Easily extensible for additional languages
- Fully responsive across all screen sizes
- Optimized for touch interactions and small viewports
| Technology | Purpose |
|---|---|
| React + Vite | UI framework with fast HMR |
| Redux | Global state management |
| React Router | Client-side routing |
| TanStack Query | Server state & data fetching |
| Axios | HTTP requests |
| Tailwind CSS + DaisyUI | Styling & component library |
| Framer Motion | Animations & transitions |
| React Hook Form + Formik | Form handling & validation |
| Socket.IO Client | Real-time communication |
| React Toastify | Toast notifications |
| React Icons | Icon library |
| Technology | Purpose |
|---|---|
| Node.js + Express.js | Server & REST API |
| MongoDB + Mongoose | Database & ODM |
| JWT | Authentication tokens |
| Bcrypt.js | Password hashing |
| Stripe | Payment processing |
| Socket.IO | Real-time order updates |
| Cloudinary + Multer | Image storage & file uploads |
| Nodemailer | Email notifications |
| Redis | Caching & performance |
| Layer | Platform |
|---|---|
| Frontend | Vercel / Netlify / Firebase |
| Backend | Vercel / Heroku / AWS |
| Database | MongoDB Atlas |
| Media | Cloudinary |
Node.js >= 16.x
MongoDB (local or Atlas cloud)
A modern web browser# Clone client
git clone <client-repo-url>
cd client
# Clone server (separate repo)
git clone <server-repo-url>
cd servercd server
npm installCreate a .env file in /server:
PORT=5000
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret_key
STRIPE_SECRET_KEY=your_stripe_secret_key
CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name
CLOUDINARY_API_KEY=your_cloudinary_api_key
CLOUDINARY_API_SECRET=your_cloudinary_api_secret
EMAIL_USER=your_email@gmail.com
EMAIL_PASS=your_email_app_passwordStart the server:
npm start
# Server runs at http://localhost:5000cd client
npm installCreate a .env file in /client:
VITE_API_URL=http://localhost:5000
VITE_STRIPE_PUBLIC_KEY=your_stripe_publishable_keyStart the dev server:
npm run dev
# Frontend runs at http://localhost:5173bistro-boss/
β
βββ client/ # React frontend (Vite)
β βββ src/
β β βββ components/ # Reusable UI components
β β βββ pages/ # Route-level pages
β β β βββ Home/ # Landing page sections
β β β βββ Menu/ # Menu browsing & ordering
β β β βββ Dashboard/ # Admin & user dashboards
β β β βββ Auth/ # Login & registration
β β βββ hooks/ # Custom React hooks
β β βββ store/ # Redux store & slices
β β βββ utils/ # Helper functions
β β βββ locales/ # i18n translation files
β βββ ...
β
βββ server/ # Node.js + Express backend
β βββ src/
β β βββ routes/ # API route definitions
β β βββ controllers/ # Route handler logic
β β βββ models/ # Mongoose schemas
β β βββ middleware/ # Auth, error, upload middleware
β β βββ services/ # Business logic layer
β β βββ utils/ # Email, token helpers
β βββ ...
β
βββ README.md
| Method | Endpoint | Description |
|---|---|---|
POST |
/api/auth/register |
Register a new user |
POST |
/api/auth/login |
Login and receive JWT |
GET |
/api/menu |
Fetch all menu items |
POST |
/api/orders |
Place a new order |
GET |
/api/orders/:id |
Get order status |
POST |
/api/reservations |
Book a table |
GET |
/api/admin/dashboard |
Admin stats (protected) |
POST |
/api/payments/checkout |
Initiate Stripe payment |
Full API documentation available at
/api/docswhen running locally.
Contributions are welcome from developers of all skill levels!
Steps to contribute:
# 1. Fork this repository
# 2. Create your feature branch
git checkout -b feature/your-amazing-feature
# 3. Commit your changes
git commit -m "feat: add your amazing feature"
# 4. Push to your branch
git push origin feature/your-amazing-feature
# 5. Open a Pull Request against mainAreas to contribute:
- π New language translations (
/locales) - π Bug fixes β check issues labeled
good first issue - π± Mobile UI improvements
- π New analytics charts and reports
- π§ͺ Unit and integration test coverage
- π Documentation improvements
Please read CONTRIBUTING.md before submitting a PR.
- JWT Authentication & role-based access
- Menu management with Cloudinary
- Real-time orders with Socket.IO
- Stripe payment integration
- Email notifications
- Admin analytics dashboard
- Multi-language support
- Mobile app (React Native)
- Table QR code ordering
- Kitchen display system (KDS)
- Loyalty points & rewards
- WhatsApp order notifications
- POS integration
This project is licensed under the MIT License β see the LICENSE file for details. Free to use, modify, and distribute with attribution.
Have questions or want to collaborate?
- π§ Email: darun15-14188@diu.edu.bd
- πΌ LinkedIn: linkedin.com/in/darunkaras
- π Issues: GitHub Issues
Built with β€οΈ for the restaurant industry
β Star this repo if Bistro Boss helped or inspired you!
Bon appΓ©tit! π½οΈ


