By: Rushdi Ramzaan
A comprehensive web-based room reservation system for Ocean View Resort built with Java EE technologies. The system implements a three-tier architecture following SOLID principles and design patterns, providing seamless reservation management for guests, staff, and administrators.
- Backend: Java EE, Servlets, JSP
- Database: MySQL with JDBC
- Server: Apache Tomcat 9.0
- Build Tool: Maven
- Testing: JUnit 5
- Frontend: HTML5, CSS3, JavaScript, TailwindCSS
- Architecture: Three-tier (Presentation → Controller → Service → Repository → Database)
- Guest Authentication: Verify identity using reservation number and contact
- Staff Authentication: Secure login for reservation management
- Admin Authentication: Administrative access for system management
- Create Reservations: New booking creation with room availability checking
- View Reservations: Search by contact number or reservation ID
- Update Reservations: Modify dates, room assignments, and booking details
- Cancel Reservations: Handle booking cancellations with availability updates
- Availability Checking: Real-time room availability based on dates and room types
- Room Status Management: Track room statuses (Available, Occupied, Maintenance)
- Room Type Management: Manage different room categories (Standard, Deluxe, Suite)
- Bill Generation: Automatic calculation based on stay duration and room rates
- Payment Processing: Handle guest payments and billing records
- Staff Help Articles: Comprehensive guides for staff operations
- Contextual Help: Role-specific assistance for system features
-
Install MySQL 8+ and make sure it is running.
-
Import the database file located in the project:
database/ocean_view_resort.sql
You can import it using MySQL Workbench:
- Open MySQL Workbench
- Go to Server → Data Import
- Select Import from Self-Contained File
- Choose
MySQL database structure and data.sql - Click Start Import
- The script will automatically create the database and tables.
The application connects using:
jdbc:mysql://127.0.0.1:3306/ocean_view_resort
If your MySQL username or password is different, update them in:
DBConnectionManager.java
- Import the project into IntelliJ IDEA.
- Ensure MySQL is running and the database has been imported.
- Run the project using Apache Tomcat 9.
The project employs comprehensive testing at multiple levels:
- BillDAOTest: Test billing data operations
- GuestDAOTest: Test guest data management
- ReservationDAOTest: Test reservation CRUD operations
- RoomDAOTest: Test room availability and management
- AuthenticationServiceIntegrationTest: Test authentication for all user types
- AdminServiceIntegrationTest: Test administrative functions
- BillServiceIntegrationTest: Test billing service integration
- ReservationServiceIntegrationTest: Test reservation workflow integration
# Run all tests
mvn test
# Run specific test class
mvn test -Dtest=AuthenticationServiceIntegrationTest