Skip to content

Quickstart

The Big Picture

NoLocal Diagram

Tech stack

Technology Type Description Reference
Kotlin Language Modern JVM based language with full java compatibility Link
Spring Boot Framework Robust and known framework to make the magic happens :) Link
Gradle Build Tool Tool to build the project, with all the tasks related to compile, test and more Link
Github Actions CI/CD Tool to orchestrate the checks, deploy and everything happening after a commit Link
Sonarcloud Quality Analysis Tool to analyse the project to detect quality improvements (code smells, bugs...) Link
MkDocs Static site generator Tool to generate a static site for documentation Link
Oracle Cloud Hosting Cloud provider of this service deployment (free tier) Link
Uptime Robot Monitoring Monitor to check the health of the application periodically by external http calls Link
New Relic Monitoring Advanced monitoring from application metrics and log ingestion using a java agent Link

Building it

To build the executable jar, just run:

./gradlew build

This command will generate the jar output under build/libs

Running it

Just do:

./gradlew bootRun

Or even simplier

java -jar nolocal.jar

Testing it

All the tests are under the check task in gradle, so to run all the suite run:

./gradlew check

Integration testing

Integration tests are mixed with the unit tests, but on the infrastructure package. Originally, there was a split creating a separate module for the integration tests, but maintaining the gradle file was more difficult than the actual benefits of having it separated.

Mutation testing

You can run the mutation testing too! to do that, simply run

./gradlew pitest

This will generate a report under build/reports/pitest/

In addition to this, the project has a job to generate the pitest report from GitHub