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.ktentry 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.confwith database and JWT settings. The repository excludes this file from version control. Tests verify that all required properties exist. - Build – run
./gradlew buildto compile and test the project. - Docker – the
Dockerfilecreates a fat jar and exposes port8080. - Deployment – GitHub Actions (
.github/workflows) build, push and deploy Docker images.
- OpenAPI Specification
coreandfeaturemodules for detailed implementation of each service.