Advanced Projects
Prerequisites: Level 3 — Advanced
Build these using coroutines, Flow, Ktor, Compose, and the testing and deployment practices from Level 3.
1. REST API with Ktor
Build a JSON API for tasks or bookmarks with Ktor server,
kotlinx.serialization, and a database through Exposed or JDBC with
parameterized queries. Validate input, return proper status codes, test
it with Ktor's testApplication, and ship it as a Docker image.
2. Concurrent Link Checker
Read URLs from a file and check them concurrently with coroutines and
Ktor's HTTP client, limiting concurrency with a Semaphore, applying
timeouts with withTimeout, and cancelling everything cleanly on
Ctrl + C. Report progress with a Flow.
3. Android Notes App
Build a notes app with Jetpack Compose: a list screen, a detail screen,
and search. Keep state in a ViewModel exposing a StateFlow, store
notes with Room, and write unit tests for the ViewModel using
kotlinx-coroutines-test.