This project aims to create a digital management system for Patika Tourism Agency to streamline its daily operations in the hotel sector and optimize customer reservation processes.
- Description
- Technologies
- Project Overview
- Features
- Installation
- Database Design
- Coding Practices
- Screenshots
- Contributing
- License
- Java 21
- Swing Framework
- PostgreSQL
The project consists of 3 main parts: Hotel Management, User Management and Reservation Management.
-
User Management:
- Admin can add, delete, update, and filter users based on their roles (admin, staff).
-
Hotel Management:
- List hotels with details such as name, address, star rating, and amenities.
- Add new hotels with information like email, phone, and location.
- Specify accommodation types (pension types) offered by each hotel.
-
Room Management:
- List rooms for each hotel with details like type, features, and availability.
- Add new rooms, specifying type, features, and stock quantity.
-
Season Management:
- Define historical seasons to adjust room pricing based on periods.
- Specify start and end dates for each season.
-
Pricing Management:
- Set dynamic pricing for rooms based on seasons and accommodation types.
- Differentiate prices for adults and children.
-
Room Search:
- Search available rooms based on city, date range, and hotel name.
- Display relevant information about hotels and rooms that match the search criteria.
-
Reservation Operations:
- List existing reservations with details like check-in/out dates, guests, and total price.
- Add new reservations by selecting available rooms and providing guest information.
- Delete or update existing reservations.
-
Security:
- Users are required to log in to the system with their credentials.
-
Clone the repository:
git clone https://github.com/kuraykaraaslan/TravelAgency.git
-
Navigate to the project directory:
cd TravelAgency
-
Open the project in your IDE
-
Create a database named
agency
in PostgreSQL or change the database name in thesrc/main/java/agency/core/DataBase.java
file -
Run the
runWithTestData.sql
file in thesrc/main/resources
folder to create the tables or run therunWithoutTestData.sql
file to create the tables without test data -
Run the project
- User Management: Admin can list, add, delete, update, and filter users based on their roles (admin, staff).
- Hotel Management: List and add hotels.
- Room Management: List and add rooms.
- Season Management: List and add seasons.
- Pricing Management.
- Room Search.
- Reservation Operations: List, add, delete, and update reservations.
The system uses a relational database with the following tables:
user
: Stores user information.hotel
: Stores hotel information.season
: Stores seasonal information for hotels.pension
: Stores pension types for hotels.room
: Stores room information.reservation
: Stores reservation details.
The project uses Swing for the graphical user interface, providing a user-friendly experience for both admins and employees.
- Variable and function names are clear and self-explanatory.
- Code readability and formatting are maintained with proper indentation.
- Comments and documentation are provided for better understanding.
- The code is modular and reusable.
Include screenshots here to visually showcase the application's interface and features.
- v1.0.0 (2024-02-01)
- Initial release
- v1.0.1 (2024-02-02)
- Added room search feature as RoomListView.
- Added links to hotel details from the reservation details
- Added links to room details from the reservation details
- Added links to season details from the reservation details
- Added availability check for rooms in the reservation details
- Added Role search feature as UserListView
- Bug Fixed: Pansion selection for the room added
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
This project is a learning project developed under the guidance of Patika.dev. If you having same route with me, you can use this project as a reference.