A comprehensive, full-stack restaurant management solution with real-time features, AI-powered insights, and multi-role architecture
Fine Dine-in is a cutting-edge restaurant management system that revolutionizes how restaurants operate. Built with modern technologies and featuring real-time capabilities, it provides a seamless experience for customers, staff, and administrators.
- π Real-time Operations - Live order tracking, kitchen displays, and instant notifications
- π€ AI-Powered Analytics - Machine learning insights for business optimization
- π³ Multi-Payment Gateway - Stripe & Razorpay integration for global payments
- π± Responsive Design - Perfect experience across all devices
- π Role-Based Access - Secure multi-tier user management
- π Multi-Branch Support - Scalable for restaurant chains
- π Advanced Analytics - Comprehensive reporting and insights
- Analytics & Insights - Revenue tracking, customer analytics, performance metrics
- Menu Management - Dynamic menu creation, pricing, categories
- Staff Management - Employee onboarding, role assignment, performance tracking
- Branch Management - Multi-location support and coordination
- Inventory Control - Stock management, supplier tracking, automated alerts
- User Management - Customer data, loyalty programs, feedback analysis
- Kitchen Display System - Real-time order management and preparation tracking
- Order Processing - Status updates, preparation time estimation
- Table Management - Seating arrangements, availability tracking
- Real-time Notifications - Instant alerts for new orders and updates
- Interactive Menu - Beautiful, searchable menu with detailed descriptions
- Smart Reservations - Table booking with availability checking
- Order Management - Cart functionality, order tracking, history
- Secure Payments - Multiple payment options with secure processing
- Loyalty Program - Points system and rewards tracking
- Socket.io Integration - Live updates across all user roles
- Push Notifications - Instant alerts for orders, reservations, and updates
- Live Order Tracking - Real-time status updates from kitchen to customer
- TensorFlow.js Integration - Predictive analytics and insights
- Demand Forecasting - AI-powered inventory and staffing predictions
- Customer Behavior Analysis - Personalized recommendations
- Stripe Integration - International payment processing
- Razorpay Support - Local payment gateway for Indian market
- Secure Transactions - PCI-compliant payment handling
- Revenue Analytics - Detailed financial reporting and trends
- Customer Insights - Behavior analysis and segmentation
- Performance Metrics - Staff efficiency and restaurant KPIs
- Interactive Charts - Visual data representation with custom charts
βοΈ React 19.0.0 - Modern UI library with latest features
π¨ CSS3 & Flexbox - Responsive, modern styling
π§ React Router DOM - Client-side routing
π Formik & Yup - Form handling and validation
π― React Icons - Beautiful icon library
π React Toastify - Elegant notifications
π
React DatePicker - Date/time selection components
β‘ Vite - Lightning-fast build tool
π¨ React Spinners - Loading animations
π Node.js & Express - High-performance server
π MongoDB & Mongoose - NoSQL database with ODM
π JWT & Bcrypt - Secure authentication
π Socket.io - Real-time communication
π§ Nodemailer - Email service integration
π€ TensorFlow.js - Machine learning capabilities
π³ Stripe & Razorpay - Payment processing
π Swagger - API documentation
π§ͺ Jest & Supertest - Testing framework
π Winston - Advanced logging
π Netlify - Frontend deployment
βοΈ Cloud Hosting - Backend deployment
π Git & GitHub - Version control
π¦ npm - Package management
π§ ESLint - Code quality
- Node.js (v16 or higher)
- MongoDB (local or cloud)
- Git
- Clone the repository
git clone https://github.com/yourusername/restaurant-management.git
cd restaurant-management- Backend Setup
cd server
npm install- Environment Configuration
# Create .env file in server directory
MONGODB=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret
STRIPE_SECRET_KEY=your_stripe_secret
RAZORPAY_KEY_ID=your_razorpay_key
RAZORPAY_KEY_SECRET=your_razorpay_secret
EMAIL_USER=your_email
EMAIL_PASS=your_email_password
PORT=5000- Frontend Setup
cd ../client
npm install- Start Development Servers
# Terminal 1 - Backend
cd server
npm start
# Terminal 2 - Frontend
cd client
npm run dev- Access the Application
- Frontend:
http://localhost:5173 - Backend API:
http://localhost:5000
Beautiful landing page with restaurant branding and easy navigation
Intuitive admin interface for managing menu items, categories, and pricing
Real-time order management system for kitchen staff
Comprehensive analytics with interactive charts and insights
Secure payment processing with multiple gateway support
src/
βββ components/ # Reusable UI components
β βββ admin/ # Admin-specific components
β βββ staff/ # Staff portal components
β βββ customer/ # Customer-facing components
β βββ common/ # Shared components
βββ pages/ # Route-based page components
βββ services/ # API integration services
βββ context/ # React Context providers
βββ hooks/ # Custom React hooks
βββ utils/ # Utility functions
server/
βββ controllers/ # Business logic handlers
βββ models/ # MongoDB schemas
βββ routes/ # API route definitions
βββ services/ # External service integrations
βββ middleware/ # Custom middleware
βββ utils/ # Helper functions
- JWT Authentication - Secure token-based authentication
- Role-Based Access Control - Multi-tier permission system
- Password Encryption - Bcrypt hashing for secure password storage
- Input Validation - Comprehensive data validation with Joi
- CORS Protection - Cross-origin request security
- Rate Limiting - API abuse prevention
- SQL Injection Prevention - MongoDB injection protection
- Code Splitting - Lazy loading for optimal bundle sizes
- Image Optimization - Compressed assets for faster loading
- Caching Strategies - Efficient data caching mechanisms
- Database Indexing - Optimized MongoDB queries
- Real-time Updates - Efficient Socket.io event handling
# Run backend tests
cd server
npm test
# Run frontend tests (if configured)
cd client
npm testThe API is fully documented using Swagger. Access the interactive documentation at:
http://localhost:5000/api-docs
POST /api/auth/login- User authenticationGET /api/menu- Fetch menu itemsPOST /api/orders- Create new orderGET /api/reservations- Fetch reservationsPOST /api/payments/stripe- Process Stripe payment
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a 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.
Dhanabalan
- GitHub: @DhanaBalan
- React team for the amazing framework
- MongoDB for the flexible database solution
- Stripe & Razorpay for payment processing
- Socket.io for real-time capabilities
- All open-source contributors
For support, email support@finedine.com or join our Slack channel.
β Star this repository if you found it helpful! β
Made with β€οΈ by DhanaBalan
