Hotel Management System is a complete booking and operations demo app built with a Streamlit frontend and a MySQL backend. The project demonstrates a practical hotel-management workflow including hotels, rooms, staff, guests, bookings, payments, services, restaurant orders, feedback and analytics.
Key Features:
- Hotel & room management (add/update hotels and rooms)
- Guest management and booking workflow
- Booking creation, check-in/check-out and availability handling
- Payment processing with validation and payment log
- Staff, services and restaurant orders management
- Feedback collection, rating aggregation and analytics dashboard
- MySQL schema with triggers, stored procedures and utility functions
Tech stack:
- Frontend:
Streamlit(app.py) - Database:
MySQL(schema and stored procedures inHotel_management2.sql) - Language:
Python
Dependencies (see requirements.txt):
streamlitmysql-connector-pythonpandasplotlypython-dateutil
Quick Start — Setup & Run
- Install Python dependencies (prefer a virtual environment):
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
- Create the MySQL database and import schema/data:
# In a shell (PowerShell), run the MySQL import command. Adjust user and host as needed.
# Example (you will be prompted for your MySQL password):
mysql -u <your_mysql_user> -p < Hotel_management2.sql
- Configure database connection:
- Edit
config.pyto set your MySQL credentials (or provide them via environment variables if you prefer). Do NOT commit production credentials to public repos.
Example config.py structure:
DB_CONFIG = {
'host': 'localhost',
'user': 'your_mysql_user',
'password': 'your_mysql_password',
'database': 'Hotel_Management',
'port': 3306
}
- Run the app (from the project root):
streamlit run app.py
Open the URL shown by Streamlit (usually http://localhost:8501) in your browser.
Database notes
- The SQL file
Hotel_management2.sqlcontains table definitions, sample data, triggers, functions and stored procedures used by the app. Important stored procedures used by the app includeGetAvailableRoomsByHotel,AddBooking,CheckOutGuestandGetTotalPaymentByGuest. Triggers enforce room status updates, payment logging and automatic hotel rating updates from feedback.
Project structure
app.py— Streamlit application and UI logicconfig.py— database/configuration constantsHotel_management2.sql— database schema, sample data, triggers and stored proceduresrequirements.txt— Python dependencies
Contributors
- Akshay — frontend and UI
- Akilesh — database development
If you'd like contributors listed differently (for example with GitHub usernames or roles per file), tell me and I will update the section.
License
- See the
LICENSEfile in the repository for license terms.
If you want, I can also:
- create a
config.example.pywith a sanitized template - remove any hard-coded credentials from
config.pyand add a note about environment variables - commit the README update and create a branch/PR for review