| Symbol | Meaning |
|---|---|
| โ | Confirmed โ a real .java file in the repo implements this |
| ๐ง | Planned โ listed in Future Improvements, not yet in the codebase |
TODO |
Not confirmed during this review โ verify before relying on it |
Hotel Management System is a desktop application that runs the operational core of a small hotel โ not just bookings. Front desk, staff records, housekeeping, and guest transport all live in one Java Swing GUI backed by MySQL, with zero cloud dependency and zero per-seat SaaS fees.
It replaces four separate spreadsheets (guests, staff, housekeeping, pickups) with one structured app any front-desk PC can run.
- Live Preview
- Features
- Module Status
- Tech Stack
- Architecture
- Screenshots
- Prerequisites
- Installation & Setup
- Usage
- Project Structure
- Security Notes
- Future Improvements
- Contributing
- FAQ
- Author
- License
Grouped by the real modules present in the codebase โ not a generic feature list. Every row below maps to an actual
.javafile.
| Feature | Source |
|---|---|
| Add / search / update rooms | AddRoom.java, SearchRoom.java, UpdateRoom.java, Room.java |
| New customer registration & customer records | NewCustomer.java, CustomerInfo.java |
| Check-out & stay updates | CheckOut.java, UpdateCheck.java |
| Customer / booking reports | CustomerReport.java |
| Reception desk view | Reception.java |
| Feature | Source |
|---|---|
| Add & manage employees | AddEmployee.java, Employee.java |
| Department structure | Department.java |
| Manager records | ManagerInfo.java |
| Admin controls | Admin.java |
| Feature | Source |
|---|---|
| Housekeeping task tracking | Housekeeping.java |
| Driver registry | AddDriver.java |
| Guest pickup coordination | PickUp.java |
| Feature | Source |
|---|---|
| Splash screen | Splash.java |
| Login (dual login paths) | Login.java, Login2.java |
| Central dashboard | Dashboard.java |
| MySQL connectivity layer | connection.java |
๐ก This is a materially bigger feature set than a typical "rooms + check-in" hotel demo โ the staff/HR, housekeeping, and transport modules above weren't called out in earlier drafts of this README even though the code for them already exists.
| Module | Status |
|---|---|
| Front desk (rooms, customers, checkout) | โ |
| Staff / HR management | โ |
| Housekeeping | โ |
| Driver & pickup coordination | โ |
| Login & dashboard shell | โ |
| Multi-role authentication | ๐ง |
| PDF / Excel reporting | ๐ง |
| Modernized theming (FlatLaf) | ๐ง |
| Email notifications | ๐ง |
| Layer | Technology |
|---|---|
| Language | Java |
| GUI Framework | Java Swing |
| Database | MySQL |
| DB Driver | MySQL Connector/J 8.0.28 โ bundled directly in the repo (mysql-connector-java-8.0.28.jar), no separate download needed |
| IDE (confirmed) | IntelliJ IDEA โ HMS.iml project file is checked into the repo |
| IDE (also works) | NetBeans / Eclipse |
| License | MIT โ LICENSE file present in repo |
flowchart TD
Splash["๐
Splash.java"] --> Login["๐ Login.java / Login2.java"]
Login --> Dashboard["๐ฅ๏ธ Dashboard.java"]
Dashboard --> Reception["๐๏ธ Reception.java"]
Reception --> RoomOps["Room.java ยท AddRoom ยท SearchRoom ยท UpdateRoom"]
Reception --> GuestOps["NewCustomer ยท CustomerInfo ยท CheckOut ยท UpdateCheck ยท CustomerReport"]
Dashboard --> Admin["๐ก๏ธ Admin.java"]
Admin --> HR["AddEmployee ยท Employee ยท ManagerInfo ยท Department"]
Dashboard --> Housekeeping["๐งน Housekeeping.java"]
Dashboard --> Transport["๐ AddDriver.java ยท PickUp.java"]
RoomOps --> Conn["๐ connection.java"]
GuestOps --> Conn
HR --> Conn
Housekeeping --> Conn
Transport --> Conn
Conn --> DB[("๐๏ธ MySQL Database")]
style DB fill:#7C2D12,color:#fff
style Conn fill:#B45309,color:#fff
Reconstructed from the files present in the repository, not a documented architecture diagram from the source โ module boundaries (e.g. exactly which classes call connection.java directly vs. through an intermediary) are TODO to confirm against the source.
- โ๏ธ Java JDK 11+ installed
- โ๏ธ MySQL Server installed and running
- โ๏ธ An IDE โ IntelliJ IDEA (project file included), NetBeans, or Eclipse
1. Clone the repository
git clone https://github.com/Crusty-chirayu/Hotel-Management-System.git2. Open the project
Open the folder directly in IntelliJ IDEA (it already has HMS.iml), or import it as a Java project into NetBeans/Eclipse.
3. Set up the database
- Create a MySQL database matching what
connection.javaexpects - Import the schema (
.sqlfile) once its location is confirmed
4. Configure the connection
Open connection.java and update the host, port, username, password, and database name to match your local MySQL setup.
5. Run the project Run the confirmed entry-point class from your IDE โ the application window should launch immediately.
Once the application is running:
- โ Add new customers and assign rooms
- ๐ Manage check-ins and check-outs
- ๐ฅ Add employees, assign departments, and manage manager records
- ๐งน Track housekeeping tasks
- ๐ Register drivers and coordinate guest pickups
- ๐ View all bookings and customer details in a structured table
- โ๏ธ Edit or delete records as needed
Hotel-Management-System/
โโโ Splash.java # App entry screen
โโโ Login.java / Login2.java # Authentication (two variants)
โโโ Dashboard.java # Central navigation hub
โโโ Admin.java # Admin controls
โโโ Reception.java # Front desk view
โโโ Room.java / AddRoom.java / SearchRoom.java / UpdateRoom.java
โโโ NewCustomer.java / CustomerInfo.java / CustomerReport.java
โโโ CheckOut.java / UpdateCheck.java
โโโ AddEmployee.java / Employee.java / ManagerInfo.java / Department.java
โโโ Housekeeping.java
โโโ AddDriver.java / PickUp.java
โโโ connection.java # MySQL connectivity
โโโ mysql-connector-java-8.0.28.jar # Bundled DB driver
โโโ HMS.iml # IntelliJ project file
โโโ LICENSE # MIT
โโโ README.md
connection.javaholds the MySQL connection details โ confirm whether host/username/password are hardcoded or externalized. If hardcoded, that's the first thing to fix before this touches any shared or production database.TODO: confirm whether queries usePreparedStatement(parameterized) or raw string-concatenated SQL โ the latter would be a SQL-injection risk across the customer, employee, and room modules.- Only one authentication path is confirmed (
Login.java/Login2.java); role-based access control (admin vs. staff) is listed under Future Improvements rather than confirmed as implemented today.
- ๐ PDF / Excel report generation for bookings
- ๐ Multiple staff roles with authentication
- ๐จ Modernized GUI with updated Swing themes / FlatLaf
- ๐ง Email notifications for bookings and check-outs
- ๐ฆ Organize source into packages (
ui/,db/,model/) instead of a flat file layout - ๐๏ธ Commit the database schema (
.sql) to the repo so setup is reproducible - ๐งพ Clarify/rename the entry-point class so
Getting Starteddoesn't require guessing - ๐ Externalize DB credentials out of
connection.java(config file / environment variables)
Pull requests are welcome. For larger changes, open an issue first to discuss direction.
- Fork the repository
- Create your feature branch (
git checkout -b feature/your-feature) - Commit your changes (
git commit -m 'Add your feature') - Push to the branch (
git push origin feature/your-feature) - Open a Pull Request
Is this only for room bookings? No โ it also covers staff/HR records, housekeeping tracking, and guest pickup coordination. See Features.
Does it need internet access to run? No โ it's fully offline once Java and a local MySQL server are set up.
Which class do I actually run to start the app?
Not confirmed in this README โ see the note under Installation & Setup. Splash.java is the best current guess based on naming convention.
Is there a hosted demo? No โ it's a desktop application. See Live Preview for a real GIF capture instead.
MIT โ see LICENSE for details.









