# ROADMAP & GOAL — Satu Mimpi Government Portal (gov)

> Sumber acuan tunggal untuk scope & prioritas. Diturunkan dari desain.md,
> component.md, pages.md, sidebar.md + arahan tambahan dari user.
> Status terakhir diperbarui: lihat git log.

---

## STACK & PRINSIP

- Laravel Breeze + Blade + TailwindCSS + Alpine.js (tanpa npm berat tambahan).
- Design system gov (green `#4CAF50`, Poppins, dark mode class-based) — **sudah jadi**.
- Prinsip kerja saat ini: **UI/tampilan dulu** (utama). Logic & wiring DB menyusul.
- Gambar/berkas → **FiveManage CDN** (lihat FIVEMANAGE_SETUP.md). URL disimpan di DB.
- Auth ditujukan ke `users_gov` (UserGov), bukan tabel `users` Breeze default.

---

## STATUS SAAT INI

### ✅ Selesai — Fondasi (Design System Core)
- `tailwind.config.js`, `resources/css/app.css`, `resources/js/app.js`
  (dark mode, `appShell()`, `toastContainer()`, `toast()`).
- Komponen dasar: `icon`, `status-badge`, `toast-container`, `skeleton`.
- AppShell admin: `layouts/app.blade.php` + `components/admin/navbar`, `components/admin/sidebar`
  (collapsible, role-based `@admin`/`@operator`, pending badges, mobile drawer).
- `AppServiceProvider`: directive role, `pendingCounts`, pagination gov.

### ✅ Selesai — Batch A (redesign halaman existing)
- Komponen page-level: `page-header`, `breadcrumb`, `cards/stat-card`,
  `empty-state`, `vendor/pagination/gov`.
- Auth: `layouts/guest` (split branding) + login/register/forgot/reset/confirm/verify.
- Dashboard (stat cards 8 layanan, Chart.js line+doughnut, recent table, activity feed).
- Daftar KTP (`ktp-requests/index`) — filter bar, data-table, status badge, empty state.
- Profil (`profile/edit`) + partial **foto profil & signature pad** (UI siap FiveManage).
- Restyle komponen Breeze (text-input, buttons, dll) ke tema gov.

### ✅ Selesai — F2 (Service List + Detail)
- Komponen detail sudah jadi: `components/timeline` (generic vertical),
  `components/gov/request-timeline` (5-langkah kanonik per status),
  `components/gov/approval-action-card` (sticky, approve/reject + konfirmasi,
  state pending/approved/rejected, char counter, push `@stack('scripts')`).
- Semua 8 layanan selesai: KTP + KIA + Pernikahan + Pergantian Nama + Kartu Keluarga
  + Izin Kegiatan + Surat Tanah + Administrasi Rumah.
  Masing-masing: Model (cast lampiran array, relasi user/approver) + Controller
  (index/show/update) + 2 views (index: filter+table, show: detail+approval card+timeline).
- Login diperbarui: label "Email atau NIP", ikon user/lock, toggle password, info notice.
- Register diperbarui: 4-seksi (Data Pribadi, Jabatan, Akses, Keamanan) sesuai Stitch.
- `routes/web.php` + sidebar `match` pattern sudah terhubung ke route names sebenarnya.

### ⏳ Belum diverifikasi
- `npm run build` & `php artisan view:cache` Batch A — Bash terblokir classifier.
  Perlu user menjalankan atau mengizinkan Bash.

---

## SCOPE / GOAL LENGKAP

### BAGIAN 1 — Portal Layanan Pemerintah inti (pages.md)
- 8 layanan × (List + Detail): KTP*, KIA, Pernikahan, Pergantian Nama, Kartu Keluarga,
  Izin Kegiatan, Surat Tanah, Administrasi Rumah. (*KTP sudah ada route.)
- Data Penduduk, Data Keluarga, Riwayat Dokumen.
- Regulasi, CMS (home/profil/berita/FAQ/media), Laporan, Manajemen Pegawai,
  Notifikasi, Audit, Pengaturan.
- Public website: Home (10 section), About, Services, Service Detail, Tracking, News, Contact.

### BAGIAN 2 — Tanda tangan & tanggung jawab approval
- Setiap staff punya **signature digital** (signature pad → FiveManage).
- Dokumen yang di-*accept*: **approver = penanggung jawab = penandatangan**.
  TTD approver otomatis muncul di dokumen cetak (PrintTemplate).

### BAGIAN 3 — MODUL DISNAKER (9 sub-modul)
1. **Informasi Disnaker** — berita/regulasi/pengumuman. Warga: lihat berita.
   Admin/Staff: CRUD artikel.
2. **Katalog Harga Disnaker** — transparansi harga komoditas & kebutuhan logistik.
   Warga: lihat rincian barang, harga beli/jual (warga & instansi).
   Admin: CRUD barang, indikator penerimaan, batas min/max stok & penjualan.
3. **Arus Barang** (PEMERINTAH ONLY) — keluar/masuk barang.
   - Masuk: input data warga (foto KTP) + barang dijual → update stok gudang real-time
     + uang keluar → update kas.
   - Keluar: input data warga (foto KTP) / instansi (foto dokumen pemesanan) + barang dibeli
     → update stok real-time + uang masuk → update kas.
4. **Gudang** (PEMERINTAH ONLY) — daftar nama, jumlah, indikator (kurang/cukup/hampir penuh).
5. **Kas Disnaker** (PEMERINTAH ONLY) — 2 jenis: utama & bersama.
   Pelaporan penggunaan uang keluar (Kerjasama/MBG/lainnya).
6. **Kalender Kegiatan** — jadwal program/sosialisasi/rapat. Warga: lihat. Admin: CRUD agenda.
7. **Repositori Dokumen** — arsip digital (PDF/DOCX/gambar, maks 10MB).
   Toggle privasi: Publik / Privat (internal).
8. **Portal Layanan** — multi-step form (Legalitas, Kerja Sama, dll), unggah berkas (KTP/ID/sertifikat),
   tracking status tiket (Pending → Diproses → Disetujui/Ditolak), ID tiket.
9. **Pusat Pengaduan & Aspirasi** — form aduan (opsi anonim), dashboard penanganan tiket
   (chat/balasan internal), status: Open / In Progress / Resolved.

> Catatan: modul 1, 6, 9 "dapat digabung dengan kementrian lain jika dibutuhkan".

### BAGIAN 4 — Report PASPAMRES (gaya MDT)
- Form report: **nama, incident, officer(s) involved**, mirip MDT (Mobile Data Terminal).
- (Detail tambahan menyusul dari user.)

### BAGIAN 5 — Dokumentasi instalasi
- Buat panduan instalasi/setup project (diminta menyusul oleh user).

---

## INTEGRASI LINTAS-MODUL (penting)
- Arus Barang ⇄ Gudang (stok real-time) ⇄ Kas Disnaker (saldo). Tiga modul ini terikat.
- Foto KTP / dokumen → FiveManage CDN.
- Signature approver → dokumen cetak.

---

## URUTAN BUILD UI YANG DIUSULKAN (UI-first)
Fase per fase, verifikasi tiap selesai. (Centang saat beres.)

- [x] F0. Fondasi + AppShell
- [x] F1. Batch A (redesign existing)
- [ ] F2. Pola generik **Service List + Detail** (8 layanan) + ApprovalActionCard + Timeline
- [ ] F3. DISNAKER inti visual: **Gudang** → **Katalog Harga** → **Arus Barang** → **Kas**
- [ ] F4. DISNAKER pendukung: Informasi(berita) → Kalender → Repositori Dokumen
- [ ] F5. Portal Layanan (multi-step + tracking tiket) + Pusat Pengaduan
- [ ] F6. Report PASPAMRES (MDT-style)
- [ ] F7. Public website (Home dst.)
- [ ] F8. Wiring FiveManage (foto/signature/berkas) + dokumentasi instalasi

> Urutan bisa diubah sesuai prioritas user. Modul gudang/arus/kas dikelompokkan
> berdekatan karena saling terintegrasi.
