Java Flight Reservation System Development

Job ID: 40003843

Budget: $30 – $250 CAD

Project Description for Freelancer – Flight Reservation System (Java + Swing + SQLite)

I need a stand-alone Flight Reservation System built in Java, using Swing for the front-end GUI and SQLite or MySQL for the database. The UI must be basic, clean, and functional — nothing fancy.

The project must strictly follow 3-Layer Architecture:
1. Presentation Layer (GUI / Boundary Classes)
2. Business Logic Layer (Entity + Control Classes)
3. Data Layer (Database Access Classes)

This project must follow object-oriented design principles, low coupling, high cohesion, and be structured so it is easy to extend and maintain.



1. FEATURES REQUIRED

User Roles

The system supports 3 roles:
• Customer
• Flight Agent
• System Administrator

Core Functionalities

1. Login
• User enters username/password
• System identifies the role and shows the appropriate menu

2. Flight Search & Display
• Search by: origin, destination, date, airline
• Show results in a table (Swing JTable)
• Show flight ID, time, price, available seats

3. Booking Management

Customer or agent can:
• Make new bookings
• Modify existing reservations
• Cancel a reservation
• Generate simple booking confirmation

4. Customer Management (Agent/Admin)
• Add customer
• Update customer details
• View customer information

5. Flight Management (Admin Only)
• Add new flights
• Update existing flights
• Delete outdated flights

6. Payment Simulation
• Record payment object (no real payment gateway)
• Basic validation and confirmation message

7. Booking History
• View bookings for a given customer
• Filter by date, customer ID, etc.



2. ARCHITECTURE REQUIREMENTS

A. Entity Classes (Domain Layer)

Each must be proper POJOs:
• Flight
• Reservation
• Customer
• Payment
• User
• Aircraft (optional but preferred)

B. Control Classes (Application/Controller Layer)

These classes contain logic and coordinate between UI + database:
• FlightController
• ReservationController
• PaymentController
• CustomerController
• AuthenticationController

C. Boundary Classes (Presentation/UI Layer)

These are Swing screens:
• LoginView
• MainMenuView
• SearchFlightView
• BookingView
• CustomerManagementView
• AdminFlightManagementView
• ReservationManagementView

Views must use event listeners, and NEVER contain raw SQL.

D. Data Layer (Persistence)

Implement a clean separation:
• DatabaseManager (Singleton, manages connection)
• DAO classes or SQL helper functions

Database:
SQLite preferred (simple file database).
Tables:
• flights
• customers
• reservations
• payments
• users



3. REQUIRED UI SCREENS

Screens must be simple:
• Basic JFrame or JPanel switching
• JLabels, JTextFields, JButtons, JTable
• No styling libraries, no JavaFX

Screens needed:
1. Login screen
2. Main menu (changes based on role)
3. Search flights
4. Book a flight
5. Modify/cancel reservation
6. Add/Update/Delete flights (Admin)
7. Add/Edit/View customers



4. NON-FUNCTIONAL REQUIREMENTS
• Clean modular OOP structure
• Low coupling, high cohesion
• Clear separation of concepts
• Proper package structure (presentation/domain/data)
• Code must compile and run in IntelliJ or Eclipse



5. DELIVERABLES NEEDED

This is very important — the project grade depends on these.

A. Code Deliverables
1. Full Java source code (.java files)
2. Working JAR file
3. SQLite database file + table creation scripts
4. Clear instructions to run the project



B. Design Document Deliverables

The freelancer must produce:

1. Use Case Diagram

Includes all major use cases and actors.

2. Scenarios for Each Use Case
• Each scenario must underline objects and double-underline operations.

3. Activity Diagrams

Four required:
• Login process
• Browsing/selecting a flight
• Booking a flight
• Payment process

4. Sequence Diagrams

Four required — tied to control classes.

5. State Transition Diagrams

Four required:
• Entire system
• Payment
• Reservation
• Flight

6. Class Diagram

Must include:
• Attributes
• Methods
• Relationships
• Multiplicities
• Stereotypes: <>, <>, <>

7. Package Diagram

Three layers: presentation → logic → data



6. DEVELOPMENT EXPECTATIONS
• Clean OOP design
• Modular and maintainable code
• No business logic in the UI layer
• No SQL queries inside UI classes
• Use MVC-like separation
• Code must follow basic Java conventions



7. FINAL DELIVERABLE FORMAT

Freelancer must provide:
• A ZIP with .java files
• A JAR file
• The SQLite DB file
• A PDF containing all required UML + documentation
• A README explaining how to run



8. DEADLINE & COMMUNICATION
• Code must compile and run without errors
• Frequent progress updates
• Diagrams must match the code (traceability)
• Maximum time 6 days