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.
| Layer | Technology |
|---|---|
| Language | Java 17 |
| Framework | Spring Boot 3.2 |
| Persistence | Spring Data JPA + H2 (in-memory) |
| Build | Maven |
| Utilities | Lombok |
| Test Coverage | JaCoCo |
- 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.
- Java 17+
- Maven 3.8+
git clone https://github.com/thomaswillix/flight-management-system.git
cd flight-management-system
mvn spring-boot:runThe API will be available at http://localhost:8080.
| Method | Endpoint | Description |
|---|---|---|
GET |
/flights |
Get all flights |
GET |
/flights/{id} |
Get a flight by ID |
POST |
/flights |
Create a new flight |
mvn testJaCoCo generates a coverage report after tests run:
target/site/jacoco/index.html
src/
└── main/
└── java/nivelacion/spring/
├── Application.java
├── domain/ # Immutable domain entities
├── repository/ # JPA repositories
└── controller/ # REST controllers