OOP Hotel is an information system software built for a hotel that solves major issues related to management of medium scale organizations.
There are multiple types of users including administrator, receptionist/agent, janitor and guest, every one of them can perform unique set of operations related to their respective role, for example administrators can perform CRUD operations on whole set of entities, receptionsts can manage guests and rooms, while janitors are able to check rooms whether they are clean or not.
Entities related to hotel organization are rooms, room types, reservations, price lists and additional services, where rooms can be free or occupied, dirty or cleaned, reservations can be either on hold, accepted, rejected or canceled, every reservation is related to date, room type and additional services chosen by guest. They can be managed by both administrators and receptionsts. Price lists are made by administrators, prices are defined for every room type, additional services are chosen by either existing users or receptionsts. Additional services include breakfast, lunch, dinner, drinks, spa, pool, massages, etc.
The graphical user interface (GUI) is built using Swing. After logging in, each user type is presented with a personalized menu featuring the previously mentioned functionalities. Additionally, users have access to interactive charts displaying key hotel metrics, including income trends over the past 12 months, reservation statuses, janitor occupancy rates. This enhances usability and provides valuable insights at a glance.
To ensure the proper functionality of the information system, I implemented a set of tests that helped validate its performance and reliability.
In order to run this project properly you need to make sure that you have installed:
- Java Development Kit (JDK) - Version 17: distribution of Java technology by Oracle Corporation
- JUnit 5 Library: modern foundation for developer-side testing on the JVM
- XChart Library: light-weight and convenient library for plotting data
- Java IDE or text editor: you can use either Intellij IDEA, Eclipse or Visual Studio Code
- Git (optional): if you want to download this project and contribute to it
-
Clone the Repository: Open a terminal and run the following command to clone the repository:
git clone https://github.com/vasicm4/oop-hotel.git
Alternatively, download the repository as a ZIP file and extract it.
-
Import the Project into IDE:
- Open your IDE or a text editor of choice.
- 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:
junit-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 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
- 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
-
When the application starts, you can access the Hotel Management System's features.
-
Testing: In order to validate software's functionalities make sure to run test cases from
testdirectory
This project is licensed under the MIT License. See the LICENSE file for details.
- Email: vasicmaksim4@gmail.com
- Github: vasicm4
- Linkedin: Maksim Vasic