| # Tabble - Hotel Management App | |
| Tabble is a comprehensive hotel management application that allows chefs to manage dishes, customers to place orders, and administrators to oversee operations. | |
| ## Features | |
| ### Chef Portal | |
| - Add, edit, and delete dishes | |
| - Upload dish images | |
| - View and manage pending orders | |
| - Mark orders as completed | |
| ### Customer Portal | |
| - Browse menu by category | |
| - Add items to cart | |
| - Place orders with special instructions | |
| - Request payment | |
| ### Admin Portal | |
| - View order statistics | |
| - Manage all orders | |
| - Mark orders as paid | |
| ## Technology Stack | |
| - Backend: FastAPI with Uvicorn | |
| - Frontend: HTML, CSS, JavaScript (with Bootstrap) | |
| - Database: SQLite | |
| ## Installation | |
| 1. Clone the repository: | |
| ``` | |
| git clone https://github.com/yourusername/tabble.git | |
| cd tabble | |
| ``` | |
| 2. Create a virtual environment and activate it: | |
| ``` | |
| python -m venv venv | |
| source venv/bin/activate # On Windows: venv\Scripts\activate | |
| ``` | |
| 3. Install dependencies: | |
| ``` | |
| pip install -r requirements.txt | |
| ``` | |
| 4. No database configuration needed - SQLite database will be created automatically | |
| 5. Run the application: | |
| ``` | |
| python run.py | |
| ``` | |
| 6. Access the application: | |
| - From the same computer: http://localhost:8000 | |
| - From other devices on your network: Use the URL displayed in the console when you start the application | |
| 7. If you're having trouble accessing the application from other devices, check your firewall settings: | |
| ``` | |
| python check_firewall.py | |
| ``` | |
| ## Database Setup | |
| The application uses SQLite, which doesn't require any setup. The database file (tabble.db) will be created automatically in the project root directory when you first run the application. | |
| ## Project Structure | |
| ``` | |
| tabble/ | |
| βββ app/ | |
| β βββ main.py # FastAPI application entry point | |
| β βββ database.py # Database connection and models | |
| β βββ routers/ # API route handlers | |
| β β βββ chef.py | |
| β β βββ customer.py | |
| β β βββ admin.py | |
| β βββ models/ # Pydantic models for request/response | |
| β β βββ dish.py | |
| β β βββ order.py | |
| β β βββ user.py | |
| β βββ static/ # Static files (CSS, JS, images) | |
| β βββ css/ | |
| β βββ js/ | |
| β βββ images/ | |
| βββ templates/ # HTML templates | |
| β βββ chef/ | |
| β β βββ index.html | |
| β β βββ orders.html | |
| β βββ customer/ | |
| β β βββ login.html | |
| β β βββ menu.html | |
| β βββ admin/ | |
| β βββ index.html | |
| βββ requirements.txt # Project dependencies | |
| βββ README.md # Project documentation | |
| ``` | |
| # t a b b l e _ n e w | |