Qora QC Desktop adalah aplikasi desktop Quality Control untuk operator pabrik. Aplikasi membaca PGNServer API, menyimpan cache lokal SQLDelight, mengelola Draft Lokal, Antrean Sinkronisasi offline, dan workflow Lembar Periksa untuk QC Press, QC Sewing, dan Cutting Material.
Stack utama: Kotlin Multiplatform, Compose Desktop, Material 3, Ktor Client, Koin, SQLDelight, dan native packaging Windows.
Qora QC mengikuti model relation-first:
Supplier -> Raw Material -> Komposisi Material/BOM -> Part -> Defect Inheritance -> Lembar Periksa -> Riwayat -> 7 Tools QC -> Laporan
Prinsip utama:
- Data server selalu lewat PGNServer API.
- Desktop tidak membaca PostgreSQL langsung.
- Checksheet memakai
/api/v1/operasi/lembar_periksa/optionssebagai source of truth utama. - Cache lokal SQLDelight dipakai untuk fallback offline, draft lokal, dan antrean sinkronisasi.
- Chart dan laporan hanya memakai data nyata.
Base URL default:
http://localhost:8080/api/v1
Endpoint penting:
GET /cek_sistem
GET /readiness
POST /otentikasi/masuk
GET /otentikasi/profil
GET /master-data/snapshot
GET /operasi/lembar_periksa/options
POST /operasi/rekam_lembar_periksa_v2
GET /operasi/riwayat_lembar_periksa
GET /analitik/7-tools/summary
GET /analitik/pareto
GET /analitik/ringkasan_ng
Akun development yang umum dipakai saat PGNServer lokal aktif:
NIP : 12345678
Password : admin12345
Jangan hardcode kredensial ini ke source production. Nilai development hanya boleh dipakai untuk smoke test lokal.
- Login screen dengan validasi input dan API nyata.
- Dashboard enterprise compact.
- Lembar Periksa PRESS, SEWING, dan CUTTING.
- Checksheet V2 memakai nested payload agar
totalProduksitidak menggelembung. - Draft Lokal dengan autosave dan recovery.
- Antrean Sinkronisasi untuk submit offline.
- Offline Queue Recovery UI untuk melihat, retry, abort, dan hapus antrean gagal.
- Riwayat QC Contract + Cache Fallback (G4-A).
- Master Data V2 dari snapshot PGNServer.
- SQLDelight normalized cache untuk transisi relation-first.
- Advanced Analytics 7 Tools QC (G5-A) dengan konsolidasi summary endpoint.
- Chart renderer saat ini memakai Compose Canvas internal. Vico adalah kandidat library eksternal paling aman untuk Compose Multiplatform jika kebutuhan interaksi chart bertambah; KoalaPlot masih layak dipantau tetapi API 0.x lebih berisiko, sedangkan Kandy lebih cocok untuk plotting/export data science daripada native Compose Desktop operasional.
- Media Engine dengan caching visual.
- Riwayat, Analitik, Laporan, Media, Sinkronisasi, dan Pengaturan.
Status antrean:
PENDING : menunggu dikirim
FAILED : gagal sementara dan bisa retry otomatis/manual
ABORTED : dibatalkan; tidak boleh auto-resubmit tanpa aksi operator
Aturan penting:
- Duplicate
idempotency_keytidak boleh membuat row ganda. - Retry manual tidak boleh menaikkan
retry_count. - Abort manual tidak boleh menaikkan
retry_count. - Item
ABORTEDhanya boleh kembali dikirim setelah operator menekan Retry Manual. - Item
PENDINGtidak boleh dihapus langsung; batalkan dulu jika perlu.
Verifikasi cepat:
.\gradlew clean desktopMainClasses --no-configuration-cache --stacktrace
.\gradlew desktopTest --no-configuration-cache --stacktrace
.\gradlew run --no-configuration-cache --stacktraceVerifikasi penuh sebelum push:
.\scripts\verify-and-push.ps1QA gate tanpa commit otomatis:
.\scripts\qa-local-gate.ps1
.\scripts\qa-local-gate.ps1 -WithBackendSmokeOpsi backend smoke mengharapkan PGNServer berjalan di http://localhost:8080.
Manual gate:
git diff --check
.\gradlew clean --stacktrace
.\gradlew desktopMainClasses --stacktrace
.\gradlew desktopTest --stacktrace
.\gradlew packageDistributionForCurrentOS --stacktrace
.\gradlew checksumWindowsMsi --stacktrace --no-configuration-cacheNative packaging membutuhkan JDK 17 penuh dengan jlink dan jpackage.
AGENTS.mdGEMINI.mddocs/DESIGN.mddocs/DATA_MODEL.mddocs/API_CONTRACT.mddocs/SYSTEM_LIFECYCLE.mddocs/VERIFICATION_LOG_G4A.mddocs/RESEARCH_BEST_PRACTICES_2026.mddocs/QA_UI_HARDENING_REPORT_2026_06.mddocs/NODE_RELATION_EDITOR_DECISION.mddocs/VERIFICATION_LOG_FOUNDATION_CLEANUP.md
G1 Master Data UX : selesai dasar
G2 SQLDelight Cache/Offline : selesai dasar
G3C Offline Queue Recovery : closed
G3D Checksheet Decomposition : closed / refactor
G4A Riwayat QC Contract : selesai
G4B Riwayat QC Details : selesai
G5A Analitik 7 Tools QC : selesai
G5B Analytics Drill-down : berikutnya
G6 Export Excel/PDF : setelah analitik stabil
Catatan G3D:
- G3D adalah refactor aman.
- Tidak mengubah payload V2.
- Tidak mengubah SQLDelight schema.
- Tidak mengubah behavior offline queue.
- Fokus utama: memecah resolver load, mapper options, dan fallback master data.
Catatan G3D:
- G3D adalah refactor aman.
- Tidak mengubah payload V2.
- Tidak mengubah SQLDelight schema.
- Tidak mengubah behavior offline queue.
- Fokus utama: memecah resolver load, mapper options, dan fallback master data.