11# 📋 Submission Checklist (Judge-Facing)
22
3- > ** For Judges:** This checklist maps every competition requirement to its evidence.
3+ > ** For Judges:** This checklist maps every KotlinConf 2025-2026 competition requirement to its evidence.
4+ >
5+ > ** Submission Deadline:** January 12, 2026 (23:59:00 CET)
46
57---
68
7- ## ✅ Rule Compliance (PASS/FAIL)
9+ ## ✅ Mandatory Requirements (PASS/FAIL)
810
911| Requirement | Status | Evidence |
1012| -------------| --------| ----------|
11- | Project started after contest open | ✅ PASS | [ CONTEST_START.md] ( CONTEST_START.md ) |
12- | All code is original work | ✅ PASS | Git history, no forks |
13- | Open-source license | ✅ PASS | [ LICENSE] ( LICENSE ) (Apache 2.0) |
14- | Public GitHub repository | ✅ PASS | [ github.com/Raoof128/Raoof128.github.io] ( https://github.com/Raoof128/Raoof128.github.io ) |
15- | README.md present | ✅ PASS | [ README.md] ( README.md ) |
16- | Essay included (300+ words) | ✅ PASS | [ ESSAY.md] ( ESSAY.md ) (322 words) |
13+ | Uses Kotlin Multiplatform | ✅ PASS | ` common/ ` module, 5 targets |
14+ | Runs on at least 2 platforms | ✅ PASS | 5 platforms: Android, iOS, Desktop, Web (JS), Web (Wasm) |
15+ | Created specifically for this contest | ✅ PASS | [ CONTEST_START.md] ( CONTEST_START.md ) - Started Dec 5, 2025 |
16+ | NOT a template or "Hello World" | ✅ PASS | 26,000+ LOC, substantial security app |
17+ | NOT a library | ✅ PASS | Standalone application with full UI |
18+ | GitHub repository | ✅ PASS | [ github.com/Raoof128/Raoof128.github.io] ( https://github.com/Raoof128/Raoof128.github.io ) |
19+ | Open-source license (Apache 2.0/MIT/BSD) | ✅ PASS | [ LICENSE] ( LICENSE ) (Apache 2.0) |
20+ | README with installation instructions | ✅ PASS | [ README.md] ( README.md ) - All 5 platforms |
21+ | README with feature descriptions | ✅ PASS | [ README.md] ( README.md ) - Detection engine, ML, Red Team |
22+ | Short screencast (3-5 min) | ✅ PASS | [ Demo Video] ( https://youtu.be/n8bheouj4jM ) |
23+ | All content in English | ✅ PASS | Docs, code, comments all English |
24+ | 300-word Essay | ✅ PASS | [ ESSAY.md] ( ESSAY.md ) (327 words) |
25+ | Original work (100% owned) | ✅ PASS | Git history shows original development |
1726
1827---
1928
20- ## 🎯 Creativity & Novelty (40 points)
29+ ## 🎯 Judging Criteria Breakdown
30+
31+ ### Creativity & Novelty (40%)
2132
2233| Criterion | Evidence | Score Target |
2334| -----------| ----------| --------------|
24- | ** Unique Problem** | QR phishing detection—587 attack increase since 2023 | +10 |
35+ | ** Unique Problem** | QR phishing detection—587% attack increase since 2023 | +10 |
2536| ** Offline-First Architecture** | Zero network calls, [ verify_offline.sh] ( judge/verify_offline.sh ) | +10 |
26- | ** Ensemble ML** | 3 models combined ([ EnsembleModel.kt] ( common/src/commonMain/kotlin/com/mehrguard/ml/EnsembleModel.kt ) ) | +8 |
27- | ** Dynamic Brand Discovery** | Detects unknown brands via patterns ( [ DynamicBrandDiscovery.kt ] ( common/src/commonMain/kotlin/com/mehrguard/engine/DynamicBrandDiscovery.kt ) ) | +5 |
28- | ** Adversarial Robustness** | Homographs, punycode, RTL override ( [ HomographDetector.kt ] ( common/src/commonMain/kotlin/com/mehrguard/engine/HomographDetector.kt ) ) | +5 |
29- | ** Explainability ** | Every verdict has human-readable reasons | +2 |
37+ | ** Ensemble ML** | 3 models combined ([ EnsembleModel.kt] ( common/src/commonMain/kotlin/com/raouf/ mehrguard/ml/EnsembleModel.kt ) ) | +8 |
38+ | ** Dynamic Brand Discovery** | Detects unknown brands via patterns | +5 |
39+ | ** Adversarial Robustness** | Homographs, punycode, RTL override detection | +5 |
40+ | ** Beat the Bot Gamification ** | Security training game mode | +2 |
3041| ** TOTAL** | | ** 40/40** |
3142
32- ---
33-
34- ## 🧩 Kotlin Multiplatform Usage (40 points)
43+ ### Kotlin Multiplatform Usage (40%)
3544
3645| Criterion | Evidence | Score Target |
3746| -----------| ----------| --------------|
38- | ** 5 Platform Targets** | Android, iOS, Desktop, Web (JS + Wasm) | +10 |
39- | ** ~ 80 % Shared Code** | [ SHARED_CODE_REPORT.md] ( docs/SHARED_CODE_REPORT.md ) | +10 |
40- | ** Strategic expect/actual** | [ PlatformAbstractions.kt ] ( common/src/commonMain/kotlin/com/mehrguard/ platform/PlatformAbstractions.kt ) | +8 |
41- | ** Compose Multiplatform ** | Shared UI components on iOS ( [ ComposeInterop.swift ] ( iosApp/MehrGuard/ComposeInterop.swift ) ) | +5 |
42- | ** Native Integration** | SwiftUI host, Compose UI, proper interop | +5 |
43- | ** Platform Parity Tests** | [ verify_parity.sh] ( judge/verify_parity.sh ) runs JVM+JS+Native | +2 |
47+ | ** 5 Platform Targets** | Android, iOS, Desktop, Web (JS), Web ( Wasm) | +10 |
48+ | ** ~ 52 % Shared Code** | [ SHARED_CODE_REPORT.md] ( docs/SHARED_CODE_REPORT.md ) - 13,500 LOC shared | +10 |
49+ | ** Strategic expect/actual** | 7 platform abstractions (Clipboard, Haptics, Logger, etc. ) | +8 |
50+ | ** Shared Business Logic ** | 100% of detection engine in commonMain | +5 |
51+ | ** Native Integration** | SwiftUI + Kotlin bridge, Compose MP | +5 |
52+ | ** Platform Parity Tests** | [ verify_parity.sh] ( judge/verify_parity.sh ) | +2 |
4453| ** TOTAL** | | ** 40/40** |
4554
46- ---
47-
48- ## 📐 Kotlin Coding Conventions (20 points)
55+ ### Kotlin Coding Conventions (20%)
4956
5057| Criterion | Evidence | Score Target |
5158| -----------| ----------| --------------|
52- | ** Idiomatic Kotlin** | sealed classes, data classes, coroutines | +5 |
53- | ** Detekt Zero-Tolerance ** | CI fails on any violation | +5 |
59+ | ** Idiomatic Kotlin** | sealed classes, data classes, coroutines, Flow | +5 |
60+ | ** Detekt Static Analysis ** | [ detekt.yml ] ( detekt.yml ) , CI enforced | +5 |
5461| ** KDoc Documentation** | All public APIs documented | +3 |
5562| ** Test Coverage** | 89% coverage, 1,248+ tests | +3 |
56- | ** Property-Based Tests** | [ PropertyBasedTest.kt ] ( common/src/commonTest/kotlin/com/mehrguard/core/PropertyBasedTest.kt ) | +2 |
57- | ** Architecture Tests** | [ KonsistTest.kt ] ( common/src/desktopTest/kotlin/com/mehrguard/architecture/KonsistTest.kt ) | +2 |
63+ | ** Property-Based Tests** | Randomized input testing | +2 |
64+ | ** Architecture Tests** | Konsist rules enforced | +2 |
5865| ** TOTAL** | | ** 20/20** |
5966
6067---
@@ -110,7 +117,7 @@ cd mehrguard
110117| Document | Purpose |
111118| ----------| ---------|
112119| [ README.md] ( README.md ) | Quick start, architecture overview |
113- | [ ESSAY.md] ( ESSAY.md ) | Competition essay (322 words) |
120+ | [ ESSAY.md] ( ESSAY.md ) | Competition essay (327 words) |
114121| [ CONTEST_START.md] ( CONTEST_START.md ) | Contest timeline, original work proof |
115122| [ docs/ARCHITECTURE.md] ( docs/ARCHITECTURE.md ) | Technical architecture deep-dive |
116123| [ docs/THREAT_MODEL.md] ( docs/THREAT_MODEL.md ) | Who attacks, what we detect |
@@ -119,7 +126,34 @@ cd mehrguard
119126| [ docs/SHARED_CODE_REPORT.md] ( docs/SHARED_CODE_REPORT.md ) | Module-by-module shared code % |
120127| [ SECURITY.md] ( SECURITY.md ) | Security policy, disclosure |
121128| [ PRIVACY.md] ( PRIVACY.md ) | What data we store/don't store |
129+ | [ docs/VIDEO_DEMO.md] ( docs/VIDEO_DEMO.md ) | Demo video and script |
130+
131+ ---
132+
133+ ## 🎬 Demo Video
134+
135+ ** YouTube Link:** [ https://youtu.be/n8bheouj4jM ] ( https://youtu.be/n8bheouj4jM )
136+
137+ The screencast demonstrates:
138+ - Real-time QR scanning on all platforms
139+ - Phishing detection with explainable verdicts
140+ - Red Team developer mode with 19 attack scenarios
141+ - Beat the Bot gamification feature
142+ - Cross-platform UI consistency
143+
144+ ---
145+
146+ ## ⏰ Submission Timeline
147+
148+ | Date | Event |
149+ | ------| -------|
150+ | September 15, 2025 | Contest opens |
151+ | December 5, 2025 | Repository created |
152+ | January 4, 2026 | Current version: v2.0.36 |
153+ | ** January 12, 2026** | ** Submission deadline (23:59 CET)** |
154+ | January 22, 2026 | Winners announced |
122155
123156---
124157
125158* This checklist is designed for judges to verify every claim in under 10 minutes.*
159+ * Version: 2.0.36 | Last Updated: January 4, 2026*
0 commit comments