Technology Stack

You are restricted to the following technologies in your project. The versions here are the minimum versions that support features that we will discuss in-class, but you are welcome to use more recent releases.

For installation details, see Getting-Started/Setup.

Category Choice Min Version Notes
Repository/Project GitLab n/a Your project source code and other must be stored in your team’s GitLab project.
Programming Language Kotlin 1.8+ Kotlin can be used for the entire application stack: front-end and back-end. If you build desktop, you will also want to target the Java JVM and may need to install that as well.
Build System Gradle 8.0.1+ You must use a Gradle multi-project build, using the project structure provided in-class.
Unit Tests JUnit 5 You are expected to write unit tests for all most of your code.
Dev Environment IntelliJ IDEA 2023.1 You can use any editor you wish, but IntelliJ IDEA has the best support for Kotlin by a significant margin, and the Community Edition is free/OSS.
Networking Library Ktor latest Used for networking and managing remote service requests.
UI Toolkit JavaFX or Compose latest JavaFX is well-supported for desktop. Compose exists for both desktop and Android.
Database SQLite or H2 latest Likely required for persistance on your service.
Containerization Docker latest Your service must be in a docker container, stored on Docker hub (so that we can run it easily). Ideally, you would host it on a cloud service provider (e.g. AWS, GCP, Azure).