A bliki engine written in Kotlin, using Spring Boot, Jetbrains Exposed, and a Postgres database.
These tools are known to work. You can use others if you wish, but YMMV.
- Azul JDK 17
- Kotlin 1.8.0
- IntelliJ 2022.3.x or newer
- Postgres 15.1
We stick to a few simple rules to keep this codebase in good shape.
- Formatting and linting is handled by detekt with some help from spotless
- Builds will fail if your code does not pass these checks.
- To lint your code:
./gradlew check
- Test your code.
domaincode should have almost always have unit tests.frameworkscode should include some amount of integration tests, unless implementing them is difficult/impossible. Use your best judgement here.
- Document your code.
- Try to imagine what a new developer with no context will need to know about your code. If it's not obvious, document it.
- Include links to reference materials you use.
- Use KDoc syntax.
Spin up Postgres 15
# From the project root, cd into compose
cd ./compose
# and start the postgres container
docker-compose up -d postgresThe klog database should be created automagically for you. Then run migrations ...
# From project root directory
./gradlew flywayMigrateYou can now run the application from IntelliJ using the included run configuration or from the command line with ...
./gradlew bootRun# From the project root, cd into compose
cd ./compose
# and tear down the containers
docker-compose down