Hotel Management System is a desktop application developed in Java that enables efficient management of hotel operations. It provides features such as room management, reservations, guest handling, and additional services.
The Hotel Management System is a robust and user-friendly application designed to streamline the daily operations of a hotel. Built using Java and the Swing library, this application supports the following key functionalities:
-
User Roles:
- Administrator: Full control over hotel operations, including employee management and financial reports.
- Receptionist: Handles reservations, guest check-ins/check-outs, and room assignments.
- Housekeeper: Manages the cleaning schedule and updates room availability status.
- Guest: Allows guests to request reservations, view booking statuses, and add services.
-
Reservation Management:
- Guests can request room reservations for specific dates.
- Reservation statuses include "Pending," "Confirmed," "Rejected," and "Cancelled."
- Receptionists can approve or reject requests based on room availability.
-
Room and Service Management:
- Tracks room status: Available, Occupied, or Under Cleaning.
- Supports additional services like breakfast, laundry, and spa, which can be added to a guest's bill.
-
Pricing and Reporting:
- Dynamic pricing based on the season and room type.
- Generates reports on income, expenses, room usage, and housekeeping activities.
This project implements Object-Oriented Programming (OOP) principles to create a scalable and maintainable solution for managing hotel operations.
Before you begin, make sure you have the following installed and configured on your system:
- Java Development Kit (JDK):
- JDK 17: Required for compatibility with core application features.
- JDK 22: Optionally included in the setup.
- Download JDK
- JUnit 5: Used for unit testing the application. This library is included in the project.
- XChart Library: Used for data visualization.
- An Integrated Development Environment (IDE):
- Preferably IntelliJ IDEA or Eclipse for easy setup.
- Download IntelliJ IDEA | Download Eclipse
- Git (optional): For cloning the repository.
-
Clone the Repository: Open a terminal and run the following command to clone the repository:
git clone https://github.com/MilanSazdov/hotel-management-system.git
Alternatively, download the repository as a ZIP file and extract it.
-
Import the Project into IDE:
- Open your IDE (e.g., IntelliJ IDEA or Eclipse).
- Select
File > Open(in IntelliJ) orImport > Existing Project(in Eclipse). - Navigate to the folder where the repository is located and open it.
-
Configure JDK and Dependencies:
- Ensure JDK 17 is selected as the default SDK for the project:
- In IntelliJ IDEA: Navigate to
File > Project Structure > SDKand selectJDK 17. - In Eclipse: Right-click on the project, go to
Properties > Java Build Path > Libraries, and addJDK 17.
- In IntelliJ IDEA: Navigate to
- Verify that the following libraries are added to the Classpath:
hamcrest-core-1.3-javadoc.jarjunit-4.13.2-javadoc.jarxchart-3.8.8.jar
- Ensure JDK 17 is selected as the default SDK for the project:
-
Set Up Classpath:
- In the IDE, add the provided
.jarfiles to the project:- For IntelliJ IDEA:
- Right-click on the project folder.
- Select
Add Framework Support > Add Library. - Locate the
.jarfiles (e.g.,hamcrest-core,JUnit,xchart) and add them.
- For Eclipse:
- Right-click on the project >
Build Path > Add External Archives. - Navigate to the folder containing the
.jarfiles and add them.
- Right-click on the project >
- For IntelliJ IDEA:
- In the IDE, add the provided
- Open the
Main.javafile in your IDE. - Run the file:
- In IntelliJ IDEA: Right-click on
Main.javaand selectRun. - In Eclipse: Right-click on
Main.javaand selectRun As > Java Application.
- In IntelliJ IDEA: Right-click on
- The application will start, and you can access the Hotel Management System's features.
-
Error:
Java version not compatible:- Ensure that JDK 17 is installed and selected as the default JDK for the project.
-
Error:
Cannot find Main class:- Check if the
srcfolder is marked as a source root in the IDE.
- Check if the
-
Missing Dependencies:
- Ensure that all
.jarfiles (hamcrest-core,JUnit,xchart) are properly added to the project classpath.
- Ensure that all
- The project uses JUnit 5 for testing, so make sure to run test cases from the
testdirectory if you want to validate the application functionality. - The XChart Library is used to create charts for reporting, so ensure the
xchart-3.8.8.jaris added correctly.
The project is initiated from the com.hotelmanagement.main package, specifically the HotelManagementApp.java class. When the application is launched, the following login screen is displayed:
The application supports three roles:
- Administrator:
- Receptionist:
- Maid:
The application generates detailed visualizations, such as income reports and room occupancy statistics. Below are examples of reports generated using the XChart library:
This project is licensed under the MIT License. See the LICENSE file for details.
- π README
- β€οΈ Code of Conduct
- βοΈ MIT License
- π§ Email: milansazdov@gmail.com
- π» GitHub: MilanSazdov







