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.
|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
|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).|