Skip to content

Tech Stack

Daniel Tischner edited this page Sep 16, 2021 · 4 revisions

Overview

TJ-Bot is a classic Discord bot with a slim but modern set of dependencies.

Tech Stack Diagram

Core

The project stays up to date with the latest Java version.

We use JDA to communicate with the Discord API and Gradle to manage the project and its dependencies.

Database

The bot uses a single SQLite database, which is generated automatically by Flyway based on the scripts found in

TJ-Bot/application/src/main/resources/db/

Interaction with the database is then done using jOOQ.

Logging

We rely on SLF4J for logging, backed by Log4j 2.

The configuration can be found at

TJ-Bot/application/src/main/resources/log4j2.xml

Testing

For testing the project, we use JUnit 5.

Code Quality

The quality of the code is ensured by Spotless, using a strict style based on the commonly used Google Java Style. The exact style definition can be found at:

TJ-Bot/meta/formatting/google-style-eclipse.xml

Additionally, we use static code analyse by SonarCloud.

Further, the code is checked automatically by CodeQL and dependencies are kept up to date with the aid of Dependabot

Deployment

In order for the bot to actually go live, it is deployed as Docker image, build by jib, to a VPS provided by Hetzner (see Access the VPS for details).

Clone this wiki locally