This project is a PBL (Project-Based Learning) initiative for my university’s Programming and Algorithms II course. It focuses on applying OOP principles in Java through practical, real-world scenarios.
The requirements are:
This project uses Clean Architecture and Domain-Driven Design (DDD) for learning purposes. The choosen Architecture ensures modularity and testability by separating the code into layers. With this in mind, the project’s structure aligns perfectly with this approach. Here’s a look at the src/main structure:
domain
: The business logic
context
: Provides all context needed for the user’s storiesexceptions
: Contains all domain-specific exceptionsmodels
: Includes all models (entities and value objects)infra
: The infrastructure code
Handles database interactions and external servicesroles
: All interfaces that define the logic
Ensures flexibility between the infra and domain layersThe workspace contains three main folders:
docs
: the documentation generated from Javadocslib
: the necessary .jar
dependenciessrc/main
: the source codesrc/test
: the test filesjava 22.0.2 2024-07-16
Java(TM) SE Runtime Environment (build 22.0.2+9-70)
Java HotSpot(TM) 64-Bit Server VM (build 22.0.2+9-70, mixed mode, sharing)