Hotel Management System

A comprehensive CLI-based and Web-based hotel management system built using Python, Colorama, and MySQL. It streamlines hotel operations, from guest management to billing, with a user-friendly interface.

Hotel Management

Project Overview

The Hotel Management System is a dual-interface application (CLI & Web) designed to modernize hotel administration. It leverages a robust MySQL database to manage guest information, room bookings, and staff details efficiently. The CLI version features a color-coded interface powered by Colorama for enhanced usability, while the Web version utilizes Flask to provide accessible management tools.

⚙️ Core Functionalities

  • Guest ManagementAdd, update, and view guest information, including personal details and stay history.
  • Room BookingCheck room availability, book rooms for guests, and manage check-in and check-out processes.
  • Staff ManagementMaintain a database of hotel staff, including their roles and contact information.
  • Billing and InvoicingGenerate bills for guests based on their stay and services availed.

🛠 Technical Deep Dive

  • 🐍
    PythonThe core logic of the application is written in Python.
  • 🗄️
    MySQLUsed for data persistence, storing all guest, booking, and staff information.
  • 🎨
    ColoramaAdds color to the command-line interface for a better user experience.
  • 🌐
    FlaskPowers the web environment to manage core functionalities.
  • 💻
    CLILightweight command-line interface for versatile deployment.

Detailed Features

User Management

  • Secure login for Admin & Staff
  • Role-based access control
  • Local credential storage
  • Session timer

Booking & Reservations

  • Streamlined booking process
  • Automatic availability checks
  • Cancellation with refund logic
  • Date-range booking retrieval

Room & Tariff Management

  • Inventory management
  • Dynamic tariff updates
  • Multiple room categories

Billing & Finance

  • Automated bill generation
  • Dynamic GST calculation
  • Payment status tracking
  • Daily financial summaries

Reporting

  • Occupancy analysis
  • Booking volume trends
  • Customer billing status

Getting Started

Prerequisites

  • Python 3.x
  • MySQL Server

Installation

pip install mysql-connector-python colorama

Database Setup

Ensure a MySQL database named hotel exists with the following tables:

customerbookingroombillav_room

Update connection parameters in main.py:

conn = sql.connect(
  host="localhost",
  user="YourUsername",
  password="YourPassword",
  database="hotel"
)

Usage

python main.py

Default Admin Credentials:

  • User: DakshSingh
  • Password: dakshsingh
View on GitHub