Vliegreizen
A desktop flight and journey management application built with Java 11 and JavaFX, featuring Model-View-Controller separation, dynamic dual-view navigation, and interchangeable DAO persistence across binary and text formats.
The domain shapes the desktop.
Operators and their associated journeys organize the JavaFX application. Both interface views below are source-based SVG recreations.
A parent-child relationship
Selecting an operator scopes its journeys. The controller checks associated journeys when deleting an operator to avoid orphan records.
Same records. Different priorities.
Comparator strategies explained from the case study; this does not execute the JavaFX application.
Order operators by name
BedrijvenComparator supports ascending and descending company-name order.
Operators & journeys · Company name
Inside the desktop application
Explore the engineering decisions and their supporting evidence.
Overview
Vliegreizen is a desktop travel booking and airline management platform engineered for the Object-Oriented Programming 2 (OOP2) curriculum at Hogeschool van Amsterdam (HvA). The application establishes a two-tiered domain hierarchy that models commercial airline operators (Bedrijf) and individual booked passenger journeys (Reis).
The system enables travel operators to manage company profiles, log individual passenger itineraries with Schengen/EU border declarations, and persist all application records using pluggable persistence engines without modifying client interface code.
Domain & relationships: Overview. 1 of 5.
Result & key takeaways
The Vliegreizen project showcases clean, structured desktop software engineering in Java. By enforcing strict separation of concerns across Model, View, and Controller layers and decoupling persistence mechanisms through the Data Access Object pattern, the application achieves high modularity, predictable state synchronization, and reliable binary data persistence.
- Java
- JavaFX
- MVC Architecture
- Data Access Object (DAO)
- Binary Serialization
- Object Streams
- Object-Oriented Design
- Maven