Work
08 Java · OOP · Desktop Application

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.

Role

Group Project Contributor

Type

University OOP Semester Project

Status

Completed Academic Prototype

Primary Stack

Java · JavaFX · Maven

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.

Hotel Reservation System login screen over a hotel entrance photo, with an Admin option
Login: guest or admin

Object Model

Inheritance, encapsulation, polymorphism

Three room types extend a common Room class, not an abstract class.

Room
SingleRoom
DoubleRoom
Suite
Admin Menu with options to add rooms, show availability, make or cancel reservations and view booking history
Admin menu: room & booking management

Reservation Workflow

From an available room to a persisted booking

01

Available Room

02

Guest Details

03

Stay Dates

04

Payment Method

05

Reservation

06

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.

Available Rooms table listing serial number, type, price and availability
Room availability
Make Reservation dialog with room, guest name, contact, dates and payment method fields
Make reservation

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.

System History window listing a booking record and a payment record with amount, method and status
Booking & payment history

Implementation

What the codebase actually demonstrates

Classes & OOPEncapsulationInheritanceRuntime PolymorphismObject CompositionCollectionsException HandlingFile I/OJavaFX Event HandlingFXML / ControllersMVC-Style Package Separation

Stack

Technology

JavaJavaFXFXMLMavenJava File I/OJava Collections

Built collaboratively as part of a university OOP semester project.