Please check the TechStack.md file for details.
This project is an implementation of a Favourite lyrics app. It contains an implementation to be used as an example of Hexagonal Architecture implemented in Java and Spring.
This is a part of a series of studies I am making about DDD(Domain driven architecture)
This project is also the official support project of my article on medium:
- 1.0.0 - cfe174af1a698da2c685d63ee50db317f2da53d2
- 2.0.0 - e2c3dfef5d84da62e4561a78f7c9bc3d3647e180 - JDK17 / Java
- 3.0.0 - 8b63ca3d32b3896f698118c66cd96e5a37cb6285 - JDK19 / Kotlin 1.8.10
- favourite-lyrics-domain - Domain libraries. This is where the domain model and the interfaces for it are located - (Inside)
- favourite-lyrics-jpa - JPA libraries. This is the implementation of the domain libraries (Inside)
- favourite-lyrics-core - Core libraries. This is where the services are located (Inside-Outside)
- favourite-lyrics-rest - REST Controller libraries. This is where the rest controller is located (Outside)
- favourite-lyrics-starter - Spring boot starter for this project
- favourite-lyrics-test - Live running test project. (Not in included in docker-compose)
- favourite-lyrics-gui - Front end application to better visualize and understand the project (Not associated with Hexagonal architecture directly, but it is part of the Outside)
This application has been tested to run with Java 17. The release being used is 13.0.1.hs-adpt, which is also known as:
sdk install java 17-open
sdk use java java 17-open
You need to have this version installed. I've achieved this by using SDK-MAN
Alternatively just run this script from the command line:
. ./sdk17.sh
You also need to run an LTS version of node JS.
I have made script for this which will automatically install NVM (Node Version Manager) and Node 16:
. ./node16.sh
make docker-clean-build-start
- Endpoints