https://github.com/basdgrt/kotlin-professional-development-assignments
Assignments for the Kotlin Professional Development Training
https://github.com/basdgrt/kotlin-professional-development-assignments
functional-programming kotlin object-oriented-programming training-materials
Last synced: 15 days ago
JSON representation
Assignments for the Kotlin Professional Development Training
- Host: GitHub
- URL: https://github.com/basdgrt/kotlin-professional-development-assignments
- Owner: basdgrt
- License: mit
- Created: 2023-01-25T18:54:15.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-09-16T13:37:05.000Z (about 1 month ago)
- Last Synced: 2025-09-16T14:55:52.298Z (about 1 month ago)
- Topics: functional-programming, kotlin, object-oriented-programming, training-materials
- Language: Kotlin
- Homepage:
- Size: 318 KB
- Stars: 2
- Watchers: 1
- Forks: 8
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README



[](https://github.com/fresh-minds/kotlin-professional-development-assignments/blob/main/LICENSE)
# Kotlin Professional Development
This repository is your go-to source for all assignments you'll be tackling throughout the training.
## Project structure
We've split the assignments into modules, each corresponding to a theoretical module we'll cover during the training.
As you progress through the modules, assignments become more challenging, so get ready to flex those Kotlin muscles!
You'll find the assignments as Kotlin files under `src/main`. To help you test your solutions, we've included tests
for most assignments under `src/test`. After completing an assignment, run the tests to validate your solution.
Feeling stuck? Don't worry, we've got your back. You can find solutions to every assignment in the `solutions` branch.
Keep in mind that there are often multiple ways to solve a problem, so it's a good idea to compare your solutions
with the ones we've provided.
## Before the training
Want to hit the ground running on training day? Great! Here's what you need to do to make sure you're all set:
Step 1: Install IntelliJ
You'll need to download and install a recent version of [IntelliJ](https://www.jetbrains.com/idea/). You are free to use
another IDE, but if you run into issues the trainer might not be able to support you.
Step 2: Fork this project
We recommend that you [Fork](https://docs.github.com/en/get-started/quickstart/fork-a-repo#forking-a-repository) this
repository. This will give you your own copy of the codebase to which you can commit your solutions.
> **Note**
> By default GitHub only forks the `main` branch. If you want local access to the `solutions` branch, make sure
> to uncheck the "Copy the `main` branch only" checkbox during the forking process.
Step 3: Clone your forked project
[Clone](https://docs.github.com/en/get-started/quickstart/fork-a-repo#cloning-your-forked-repository) your forked
repository.
Step 4: Open the project in IntelliJ
Open the project in IntelliJ via `file -> open`. Opening the project for the first time might take a while.
If you run into reference resolving issues try refreshing Gradle via `Gradle -> Reload All Gradle Projects`.
## Build and test
We use Gradle as our trusty build tool. Don't worry about manually installing it!
The [Gradle Wrapper](https://docs.gradle.org/current/userguide/gradle_wrapper.html) takes care of everything for you.
It automatically invokes a declared version of Gradle, downloading it if necessary.
> **Note**
> This section was written with unix users in mind. Windows users should omit the `./` prefix and just write
> `gradlew ` instead of `./gradlew `.
To build and test the project, simply run the following command:
```bash
./gradlew build
```
**However, there's a catch!** Running the build command on the `main` branch will result in test errors. Don't panic -
this is totally normal.
The tests won't pass until you've completed the assignments. To make the build pass, simply exclude the tests like this:
```bash
./gradlew build -x test
```
### Testing
Are you ready to put your solutions to the test?
Starting tests directly from the IDE (using the 'play' buttons) is the most convenient. But you can also use the
wrapper if you want.
Run all tests in all modules:
```
./gradlew test
```
Run all tests in a single module:
```
./gradlew :module-01:test
```
Run a single test file:
```
./gradlew :module-01:test --tests '*Assignment02Test'
```