A desktop application that helps with hero drafting in Dota 2, providing real-time counter-pick recommendations, team synergy analysis, and a tier list based on current meta statistics.
Built with Kotlin + Compose Desktop, powered by STRATZ GraphQL API.
- Smart Draft Recommendations — suggests optimal picks based on counter-matchups, team synergies, and current meta winrates
- All Pick & Captains Mode — supports both draft formats with full pick/ban phase tracking
- Tier List — auto-generated hero rankings by role, filterable by rank bracket
- Team Synergy Analysis — evaluates how well your team composition works together
- Rank Bracket Filter — statistics tailored to your MMR range (Herald to Immortal)
- Bilingual UI — Russian and English interface
| Layer | Technology |
|---|---|
| Language | Kotlin 2.x (JDK 25) |
| UI | Compose Desktop (JetBrains) |
| Build | Gradle 9.2 (Kotlin DSL) |
| HTTP | Ktor Client |
| Data | STRATZ GraphQL API |
| Cache | SQLite + Exposed ORM |
| Async | Kotlin Coroutines + Flow |
- JDK 25+
- STRATZ API token (get one here)
./gradlew runOn first launch, the app will ask for your STRATZ API token.
This project was developed collaboratively with AI (Claude by Anthropic). The process:
- Prompt engineering — I designed a detailed specification covering architecture, data sources, algorithms, and UI requirements
- Code generation — Claude Code generated the initial codebase from the prompt
- Iteration & refinement — I reviewed, tested, and refined the code manually
The original prompt that generated v1 of this project is available in prompts/initial-prompt.md. I believe transparency about AI-assisted development is important — it shows the ability to effectively collaborate with AI tools, which is a valuable modern engineering skill.
me.anlear.praefectus/
├── data/ # API client, cache, repositories
├── domain/ # Draft engine, recommendation algorithm
├── ui/ # Compose Desktop screens & components
└── util/ # Config, localization
Draft Score Algorithm:
Score(hero) = Σ(vs_enemy_advantage) × 1.5
+ Σ(with_ally_synergy) × 1.0
+ (meta_winrate - 50%) × 0.5
- v1: Draft recommendations, counter-picks, synergies, tier list
- v2: Item build recommendations based on draft composition
- v2: Personal stats integration (your hero pool & winrates)
- v3: Real-time draft tracking via Dota 2 GSI
This project is licensed under the AGPL License — see the LICENSE file for details.