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