- Java 11 (important!)
- Maven
- This is an IntellijIdea Maven project, to avoid any missing configurations please import this project to IntellijIDEA as Maven Project
- To run in development :
mvn spring-boot:run
- Run test :
mvn test
- Build with dependencies:
mvn clean package
- Compiled output will be in :
target\patients-api-service-0.0.1-SNAPSHOT.jar
and ready to ship
- Start the app:
java -jar target\patients-api-service-0.0.1-SNAPSHOT.jar
- App server will run in port 8080
This project implements hexagonal architecture, follows DDD practice, clean code and SOLID principle, the purpose is to make this project extensible and easy to maintain.
The project currently bundled together in a single maven project, later when new requirements coming, some packages can be easily separated as an independent module or even an independent project since each layer (in this case packages) have a very small coupling with the other, such as the adapters and domain. Thus, we achieve modularity by implementing this pattern.
With the given limited context, assumptions have been made:
- H2 in-memory database used for this demo purpose
Riza Maizarani - LinkedIn - reja.mail@gmail.com