This project is simple transfer service, it doesn't have notion of Currency.
The project is written in Kotlin, build with Gradle. It is using Micronaut microservices framework. The main advantage of Micronaut is that there are no runtime penalty for holding metadata for configuration and dependency injection. You can think about Micronaut as Spring without any runtime reflection. Every information is handled at compile time using AST processors for Java and Kotlin. Micronaut uses internal dependency injection module inspired by Spring which leverages the official JSR-330 Context and Dependency Injection annotations.
In order to build and test please run following command from project root directory
./gradlew clean testClasses test
In order to run please run following command from project root directory
./gradlew clean run
Next steps would be:
- add API endpoint to save Accounts (tests are now pre-populating accounts)
- add Currency to Account domain, let transfers between different currency Accounts