Skip to content

Repository files navigation

Java Swing Desktop Applications

A collection of two Java desktop GUI projects built with Swing:

  1. Hotel Booking System
  2. Inventory Management System

The original archive did not contain a reliable course name, so this repository uses a descriptive portfolio title instead of guessing the course.

Projects

Hotel Booking System

A reservation-management application with separate employee and guest workflows.

Key features:

  • reservation CRUD operations
  • guest reservation lookup by ID
  • check-out date updates
  • remaining-time calculation
  • validated dates and amounts
  • persistent local storage

Inventory Management System

A desktop inventory manager with a searchable item table.

Key features:

  • add, edit, and delete inventory items
  • dynamic search over the real inventory list
  • unique serial numbers
  • quantity and price validation
  • persistent local storage
  • default sample inventory on first launch

Improvements over the Original Archive

The uploaded prototype compiled, but several behaviors were incomplete or fragile.

The GitHub-ready edition:

  • fixes the Inventory Add Item action so items actually enter the inventory
  • removes hard-coded search as the source of truth
  • adds inventory update/delete functionality
  • makes both applications persist their data
  • replaces string-based hotel reservations with a typed Reservation model
  • makes Guest View work with a selected reservation ID instead of always using the first reservation
  • validates check-in/check-out dates, amounts, quantities, and required fields
  • removes the uploaded personal sample reservation from the public repository
  • separates domain/storage logic from Swing UI code
  • adds automated model/storage tests
  • adds GitHub Actions
  • removes STATUS.txt, IDE metadata, generated .class files, and other non-source artifacts

Requirements

  • Java 17 or newer

Check your Java version:

java -version
javac -version

Run the Applications

See each project README for individual commands:

Run Automated Tests

On Linux/macOS/Git Bash:

bash scripts/test.sh

The test script compiles both applications with Java 17 and runs storage/domain regression tests.

Repository Structure

Java-Swing-Desktop-Applications/
├── hotel-booking-system/
│   ├── src/main/java/com/portfolio/hotel/
│   ├── src/test/java/com/portfolio/hotel/
│   └── README.md
├── inventory-management-system/
│   ├── src/main/java/com/portfolio/inventory/
│   ├── src/test/java/com/portfolio/inventory/
│   └── README.md
├── scripts/
│   └── test.sh
├── .github/workflows/
│   └── build.yml
├── .gitignore
├── .gitattributes
└── README.md

Concepts Demonstrated

  • Java
  • Swing GUI development
  • object-oriented programming
  • file persistence
  • data validation
  • collections
  • table models
  • local application state
  • automated regression testing

About

Java Swing desktop applications featuring a hotel booking system and an inventory management system with persistence, validation, search, CRUD operations, and automated tests.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages