Hotel Reservation Management System
A JavaFX desktop application built for a university Object-Oriented Programming course: user accounts, room management, reservations and simulated payments in one functional workflow.
Purpose
OOP concepts, applied to one connected system
A semester group project demonstrating core OOP concepts through a functional hotel reservation workflow, not isolated exercises.
Hotel entities (rooms, guests, reservations, users and payments) are represented as Java classes and connected into a single desktop workflow. Two experiences exist: a regular user who can create an account, browse rooms, make and cancel reservations and view history; and an administrator who additionally manages room inventory and can see booking/payment history across all users.
Object Model
Inheritance, encapsulation, polymorphism
Three room types extend a common Room class, not an abstract class.
Reservation Workflow
From an available room to a persisted booking
Available Room
Guest Details
Stay Dates
Payment Method
Reservation
Persistent History
Required information is validated, and checkout is required to fall after check-in. A successful reservation updates room availability and persists booking and payment information: a straightforward validity check, not sophisticated date-overlap scheduling.
Payments
Simulated, not gateway-integrated
Amount
Number of nights × nightly room price. An internal payment ID is generated and the guest, room, amount, method and status are recorded.
Methods
Cash, Card and Online are simulated: no real payment gateway integration.
Persistence
Local text files (users.txt, rooms.txt, bookings.txt, payments.txt): no database or JDBC.
Implementation
What the codebase actually demonstrates
Stack
Technology
Built collaboratively as part of a university OOP semester project.