A Java OOP coursework project for managing airline tickets, bookings, flights, and user roles. Built with JavaFX, Hibernate, and PostgreSQL.
- Flight Management: Create flights, routes
- Ticket Booking: Flexible booking system with multiple tariff options (Business/Flexible)
- Role-Based Access: Admin and Agent roles with different privileges
- Payment Integration: Track payments associated with bookings
- Advanced Search: Find flights by route, or availability
- Frontend: JavaFX + FXML
- Backend: Java 21
- ORM: Hibernate 5.6
- Database: PostgreSQL 10
- Build Tool: Maven
- Architecture: Layered (UI → Service → DAO → DB)
[Flight] 1→ [Route]
↑1
[Booking] ↔1─ [Ticket] ↔1─ [Tariff]
↑1 ↑1
[Payment] [Passenger]
com.myairline.airline_reservation
├── app/ # Main application class
├── ui/ # JavaFX controllers + FXML
├── model/ # JPA Entities
│ ├── Flight.java
│ ├── Ticket.java
│ └── ...
├── dao/ # Data Access Objects
├── service/ # Business logic layer
└── utils/ # JPAUtil