- A plain Scala CLI archetype project with common patterns to enable focusing on the unique aspects of your application instead of setup ceremony.
- core
- The business logic of the application lives in this module.
- model
- The models to represent the domain live in this module.
- gateway
- all external interaction objects(e.g. files, external APIs etc) live in this module
- main
- cli
- the command line interface into the application lives in this module
- if one were to need to expose this service over REST, gRPC, as library etc, they simply add a module here that provides the interface they want expose.
- cli
- definitions:
- ModelA = AlphabetName Score
- AlphabetName can incldue spaces
- Delimiter = ", " => comma and one space
- ModelA = AlphabetName Score
- The content of modelA line is:
- pattern: ModelADelimiter ModelA
- Example:
- ObjectA 1, ObjectB 0
- ModelA_A = ObjectA 1
- Delimiter = ", "
- ModelA_B = FC ObjectB 0
- ObjectA 1, ObjectB 0
- Java Development Kit
- The repository is configured to use devcontainers for development.
# from root directory
make./release/app_scala_quickstart_cli.jar ./release/sample_input.txt- for your own file, run from the release folder with command format below
./app_scala_quickstart_cli.jar <your_file_name>
- Run unit and integration tests
sbt test
- NB: The main is locked and all changes must come through a Pull Request.
- Commit Messages:
- Provide concise commit messages that describe what you have done.
# example: git commit -m "feat(core): algorithm" -m"implement my new shiny faster algorithm"
- References:
- Provide concise commit messages that describe what you have done.
Disclaimer: This is still work in progress.