BackWizard is a modular Ktor server application written in Kotlin. The project is structured as a multi‑module Gradle build and provides authentication, user management and admin utilities. The server is packaged as a Docker container and is deployed via GitHub Actions.
app
– main application module containing theApplication.kt
entry point and Ktor plugins setup.core:core
– common utilities such as configuration helpers, response helpers and JWT utilities.core:database
– database plugin using Exposed ORM and PostgreSQL.feature:auth
– registration, login and token refresh logic.feature:user
– endpoints and domain logic for user data.feature:admin
– admin utilities like resetting the user table.
Modules are declared in settings.gradle.kts
and loaded using Koin for dependency injection.
- Configuration – supply
app/src/main/resources/application.conf
with database and JWT settings. The repository excludes this file from version control. Tests verify that all required properties exist. - Build – run
./gradlew build
to compile and test the project. - Docker – the
Dockerfile
creates a fat jar and exposes port8080
. - Deployment – GitHub Actions (
.github/workflows
) build, push and deploy Docker images.
- OpenAPI Specification
core
andfeature
modules for detailed implementation of each service.