Skip to content

s9mcqytn4y-sys/QControl

Repository files navigation

Qora QC Desktop

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.

Arah Produk 2026

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/options sebagai source of truth utama.
  • Cache lokal SQLDelight dipakai untuk fallback offline, draft lokal, dan antrean sinkronisasi.
  • Chart dan laporan hanya memakai data nyata.

Endpoint Utama

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

Login Development

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.

Workflow Saat Ini

  • Login screen dengan validasi input dan API nyata.
  • Dashboard enterprise compact.
  • Lembar Periksa PRESS, SEWING, dan CUTTING.
  • Checksheet V2 memakai nested payload agar totalProduksi tidak 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.

Offline Queue Recovery

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_key tidak boleh membuat row ganda.
  • Retry manual tidak boleh menaikkan retry_count.
  • Abort manual tidak boleh menaikkan retry_count.
  • Item ABORTED hanya boleh kembali dikirim setelah operator menekan Retry Manual.
  • Item PENDING tidak boleh dihapus langsung; batalkan dulu jika perlu.

Development

Verifikasi cepat:

.\gradlew clean desktopMainClasses --no-configuration-cache --stacktrace
.\gradlew desktopTest --no-configuration-cache --stacktrace
.\gradlew run --no-configuration-cache --stacktrace

Verifikasi penuh sebelum push:

.\scripts\verify-and-push.ps1

QA gate tanpa commit otomatis:

.\scripts\qa-local-gate.ps1
.\scripts\qa-local-gate.ps1 -WithBackendSmoke

Opsi 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-cache

Native packaging membutuhkan JDK 17 penuh dengan jlink dan jpackage.

Dokumentasi Utama

  • AGENTS.md
  • GEMINI.md
  • docs/DESIGN.md
  • docs/DATA_MODEL.md
  • docs/API_CONTRACT.md
  • docs/SYSTEM_LIFECYCLE.md
  • docs/VERIFICATION_LOG_G4A.md
  • docs/RESEARCH_BEST_PRACTICES_2026.md
  • docs/QA_UI_HARDENING_REPORT_2026_06.md
  • docs/NODE_RELATION_EDITOR_DECISION.md
  • docs/VERIFICATION_LOG_FOUNDATION_CLEANUP.md

Status Fase

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.

About

Qora QC Desktop - Kotlin Multiplatform desktop client for PGNServer quality control workflows

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors