Hotel Management System
A comprehensive hotel management system built with Next.js, TypeScript, TailwindCSS, and Supabase. This system provides a complete solution for restaurant operations including menu management, order processing, kitchen operations, and administrative functions.
Features
User-Facing Website
- Digital menu with dish descriptions and prices
- Category-based menu browsing
- Responsive design for all devices
Staff Portal
- Waiter Interface: Take orders, manage tables, track order status
- Kitchen Display: Real-time order viewing, status updates, preparation tracking
- Admin Dashboard: Complete management of dishes, tables, orders, and payments
Key Capabilities
- Real-time order tracking with Supabase subscriptions
- In-app notification system with browser notifications
- Mobile-responsive design optimized for tablets and phones
- Table management with occupancy tracking
- Order status workflow (pending → confirmed → preparing → ready → served → paid)
- Payment tracking and billing
- Multi-role authentication (admin, waiter, kitchen)
Technology Stack
- Frontend: Next.js 16 with TypeScript
- Styling: TailwindCSS
- Database: Supabase (PostgreSQL)
- Real-time: Supabase subscriptions
- Icons: Lucide React
- Notifications: Browser Notification API
Getting Started
Prerequisites
- Node.js 18+ installed
- Supabase account (credentials already configured)
Installation
- Install dependencies:
npm install
-
Set up the database:
-
Run the development server:
npm run dev
- Open http://localhost:3000 in your browser
Default Credentials
Database Schema
The system uses the following main tables:
users: Staff authentication and roles
tables: Restaurant seating management
dishes: Menu items and pricing
orders: Order tracking and status
order_items: Individual items in orders
notifications: Real-time notifications
payments: Payment tracking
Usage Guide
For Customers
- Visit the homepage to browse the menu
- View dishes by category with prices and descriptions
For Waiters
- Login with waiter credentials
- Select a table from the available tables
- Add dishes to the cart from the menu
- Add special instructions if needed
- Submit the order to send it to the kitchen
- Track order status in real-time
- Receive notifications when orders are ready
For Kitchen Staff
- Login with kitchen credentials
- View pending orders in real-time
- Start preparing orders
- Mark items as ready when completed
- Notifications are sent to waiters automatically
For Admins
- Login with admin credentials
- Manage dishes (add, edit, remove)
- Manage tables (add, edit, view occupancy)
- View all orders and their status
- Track payments and revenue
- Manage staff members
Notification System
The system includes a comprehensive notification system:
- Waiter → Kitchen: New order notifications
- Kitchen → Waiter: Order ready notifications
- System → Admin: Payment received notifications
- Browser notifications for mobile devices
- In-app notification dropdown with read/unread status
Mobile Responsiveness
The application is fully responsive with:
- Mobile-optimized navigation
- Touch-friendly interfaces for waiters and kitchen staff
- Responsive grid layouts
- Optimized card designs for smaller screens
Deployment
The easiest way to deploy is using Vercel:
- Push your code to GitHub
- Import your repository to Vercel
- Add environment variables if needed
- Deploy
Future Enhancements
- Advanced staff management
- Table reservation system
- Customer feedback and ratings
- Advanced reporting and analytics
- Inventory management
- Multi-location support
Support
For issues or questions, please refer to the Supabase dashboard or Next.js documentation.