Oborot — Learn Serbian hero image
Oborot — Learn Serbian
Full-stack KMM language app — adaptive Serbian flashcards, TTS audio, and offline support.
Overview
Oborot is a full-stack Kotlin Multiplatform project — an Android app, an iOS app, and a Ktor backend server — built to help Russian speakers learn Serbian through adaptive vocabulary flashcards, audio-enhanced dialogues, and smart progress tracking. The mobile client delivers 3D flip cards with native Azure and Gemini TTS audio and a chat-style dialogue reader, while the backend drives adaptive word selection weighted by individual knowledge levels. Progress is visualized through an activity heatmap and day-streak tracker, and everything works offline with a cache backed by Room and local sound storage.
Technology stack
Kotlin Multiplatform
Compose Multiplatform
Material3
Ktor Client
Room
DataStore
ExoPlayer
Koin
Clean Architecture + MVI
Ktor
PostgreSQL
Exposed ORM
Azure TTS
Docker
Caddy
JWT + BCrypt
Key features
  • Adaptive flashcard engine — word selection weighted by individual knowledge level
  • Native TTS audio via Azure and Gemini (Serbian voice) for all vocabulary and dialogue lines
  • Chat-style dialogue reader with per-line audio playback and completion tracking
  • Full offline support — cache with Room database and local voices storage
  • Progress dashboard with day streak, activity heatmap, and session time
  • Secure JWT authentication with access and refresh token flow
Gallery
More projects