Skip to content

thomaswillix/flight-management-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Flight Management System

A Java + Spring Boot practice project focused on clean OOP design and REST API development. It models a flight management domain with immutable entities and exposes endpoints to query and create flights.


Tech Stack

Layer Technology
Language Java 17
Framework Spring Boot 3.2
Persistence Spring Data JPA + H2 (in-memory)
Build Maven
Utilities Lombok
Test Coverage JaCoCo

Key Design Decisions

  • Immutable entities — domain objects are designed to be immutable to avoid unintended state mutation.
  • Clean domain model — clear separation between the domain layer and REST layer.
  • In-memory database — uses H2 so the project runs out of the box with no external setup.

Getting Started

Prerequisites

  • Java 17+
  • Maven 3.8+

Run the application

git clone https://github.com/thomaswillix/flight-management-system.git
cd flight-management-system
mvn spring-boot:run

The API will be available at http://localhost:8080.


API Endpoints

Method Endpoint Description
GET /flights Get all flights
GET /flights/{id} Get a flight by ID
POST /flights Create a new flight

Running Tests

mvn test

JaCoCo generates a coverage report after tests run:

target/site/jacoco/index.html

Project Structure

src/
└── main/
    └── java/nivelacion/spring/
        ├── Application.java
        ├── domain/          # Immutable domain entities
        ├── repository/      # JPA repositories
        └── controller/      # REST controllers

About

Java OOP and Spring practice project

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages