Effective Ktor with Kotlin

Xebia: 22nd September 2023

This repository contains a series of independant Kotlin / Gradle projects, to be used on the Effective Ktor with Kotlin workshop at Xebia on 22nd September 2023.

Full details can be found in the slide deck used to deliver the workshop. The list below summarises the projects, in the order in which they will be introduced in the workshop:

  • ktor-fundamentals-start - A basic Task Manager example in Ktor, with additional links to implement.
  • ktor-fundamentals-finish - As above, but with the additional links implemented.
  • ktor-web-applications-start - The example rewritten using Thymeleaf Templates, with extra functionaliy to implement.
  • ktor-web-applications-finish - As above, but with the additional features implemented.
  • ktor-rest-start - The example rewritten as a JavaScript Single Page Application interacting with a Ktor RESTful Service. With room for expansion.
  • ktor-rest-finish - The above example, with full functionality
  • ktor-rest-with-testing - The above example, refactored to support Dependency Injection. Which then allows us to create a suite of tests using the Ktor Test Framework.
  • ktor-compose-client - A desktop UI, which uses Compose Multiplatform and the Ktor Client to interact with the RESTful service.
  • ktor-rest-exposed-start - Our REST / SPA based application, but now talking to a PostgreSQL database via a repository implemented using the Exposed Framework. With two tasks to complete.
  • ktor-rest-exposed-finish - The completed version of the above.

Please note that, after cloning this repository, you will need to make the gradlew scripts executable if you intend to build and run the projects manually.