# Status Fitur (untuk Developer)

Halaman ini ringkasan **kesiapan tiap fitur** untuk membantu menentukan apa yang
aman didemokan saat trial ke user. Ditujukan untuk tim developer, bukan pengguna.

> Perbarui tabel ini setiap ada perubahan signifikan agar tetap akurat saat demo.
> Acuan kebenarannya tetap [Spesifikasi Fitur](spesifikasi-fitur.md) — kalau tabel
> ini berbeda, yang berlaku spesifikasi.
>
> Diselaraskan dengan spesifikasi **versi 3.2 (18 Agustus 2026)**; baris
> _Gantt & ketergantungan task_ mengikuti **3.4 (2 September 2026)**.

## Keterangan Status

| Lambang                 | Arti                                                         |
| ----------------------- | ------------------------------------------------------------ |
| ✅ **Siap**             | Fitur stabil dan aman didemokan ke user.                     |
| 🧪 **Eksperimen**       | Berfungsi tapi masih bisa berubah; demokan dengan hati-hati. |
| 🚧 **Dalam pengerjaan** | Belum lengkap; hindari mendemokan ke user.                   |

## Daftar Fitur

| Fitur                                | Status  | Catatan demo                                                                                                          |
| ------------------------------------ | ------- | --------------------------------------------------------------------------------------------------------------------- |
| Login & autentikasi                  | ✅ Siap | **Login pakai NIK**, bukan email. Termasuk ganti kata sandi paksa saat pertama login.                                 |
| Manajemen user (super admin)         | ✅ Siap | `/admin/users`: buat user, sinkron divisi, set password, aktif/nonaktif. Tidak ada hapus user.                        |
| Manajemen tugas (buat, edit, hapus)  | ✅ Siap | UI lewat sheet (`CreateTaskSheet`, `EditTaskSheet`, `TaskDetailSheet`). Tugas berjejak dibatalkan, bukan dihapus.     |
| Sub-tugas                            | ✅ Siap | Satu tingkat; hanya assignee induk yang bisa membuat. Judul + deskripsi opsional; tenggat diwarisi dari induk.        |
| Bukti tugas (proof)                  | ✅ Siap | Komponen `TaskProofSection`. Hanya bisa diubah saat tugas `in_progress`. Siapkan file contoh untuk demo.              |
| Review tugas                         | ✅ Siap | Komponen `TaskReviewSection`. Tombolnya **Terima** & **Perlu Perbaikan**.                                             |
| Perpanjangan tenggat                 | ✅ Siap | Komponen `TaskDeadlineSection`. Pengajuan oleh assignee tugas utama (sub-tugas dikecualikan), keputusan oleh atasan.  |
| Diskusi/komentar real-time           | ✅ Siap | Komponen `TaskDiscussionSection`. Butuh server real-time (Reverb) aktif.                                              |
| Mention `@nama` + lampiran komentar  | ✅ Siap | Autocomplete `@` di kolom komentar; sunting/hapus hanya oleh penulis, penanda _diedit_.                               |
| Proyek (buat, edit, duplikat, hapus) | ✅ Siap | Dialog lengkap. Buat proyek butuh Admin/Supervisor divisi; **deadline wajib**; status awal `Draft`.                   |
| Anggota & peran proyek               | ✅ Siap | Tambah, ubah peran, keluarkan. Kandidat lintas divisi ditegakkan server-side.                                         |
| Proyek terminal & jeda               | ✅ Siap | `Completed`/`Cancelled` membekukan isi; `On Hold` menggeser tenggat saat dilanjutkan.                                 |
| Divisi & peran divisi                | ✅ Siap | Keanggotaan divisi **hanya lewat super admin** (`/admin/divisions`); halaman Members di divisi baca-saja.             |
| Tugas berulang                       | ✅ Siap | Sheet buat/edit + hapus. Frekuensi: **Daily / Weekly / Bi-weekly / Monthly**; Monthly hanya tanggal 1–28.             |
| Routine work                         | ✅ Siap | Hasil terbitan: tidak bisa diedit, dihapus, dipecah sub-tugas, atau diajukan perpanjangan.                            |
| Media Library                        | ✅ Siap | **Baca-saja**: telusuri, lihat detail, unduh. Tidak ada unggah/hapus di halaman ini; media routine work tidak muncul. |
| Tugas pribadi (My Tasks)             | ✅ Siap | Status To Do/In Progress/Done + checklist sub-tugas. Super admin tidak punya menu ini.                                |
| Notifikasi in-app + push mobile      | ✅ Siap | Lonceng + badge realtime; push lewat `MOBILE_PUSH_URL`. **Tidak ada notifikasi email.**                               |
| Dashboard                            | ✅ Siap | Kartu _My Tasks_/_Due Soon_/_Overdue_, daftar tugas, dan maksimal 8 kartu proyek aktif.                               |
| Activity Log (super admin)           | ✅ Siap | `/admin/activities` + ekspor CSV.                                                                                     |
| Arsip proyek (super admin)           | ✅ Siap | `/admin/archives`: pulihkan atau hapus permanen; purge otomatis setelah 30 hari.                                      |
| Duplikat proyek                      | ✅ Siap | Nama baru + opsi salin anggota (default nyala) & salin assignee (default mati); hasilnya berstatus `Pending`.          |
| **Gantt & ketergantungan task**      | 🧪 Eksperimen | Tab _Gantt_ di halaman proyek: batang, milestone, arsiran akhir pekan, penanda terlambat, dan panah _harus selesai dulu_ **antar task induk** (subtask tidak ikut) yang hanya bisa disunting owner/PIC. Batangnya membuka detail task tanpa pindah tab. **Pasif** — tidak memblokir status dan tidak menggeser tenggat, jadi jangan dijanjikan sebagai penjadwal saat demo. Kebutuhannya masih ditimbang; rincian di spesifikasi 04.6. |
| Settings (Profile / Security / Appearance) | ✅ Siap | Ubah nama, email & foto profil, ganti kata sandi (wajib password lama, `throttle:6,1`), tema Light/Dark/System. Foto profil dipilih dari koleksi preset — tidak ada unggah berkas; rincian di spesifikasi 01.7. |
| **Hapus akun sendiri**               | 🚧 Akan dicabut | Kartu _Delete account_ di Settings → Profile. Jangan didemokan — pengelolaan akun tetap wewenang super admin. Rincian & antrean pencabutannya di spesifikasi 01.6. |

> **Catatan:** Tabel di atas disusun dari rute, komponen UI, dan spesifikasi
> fitur. Sesuaikan status bila ada fitur yang sebenarnya masih kasar di lapangan
> saat diuji.

## Yang Sengaja Tidak Ada (jangan dijanjikan saat demo)

- Registrasi mandiri, login Google, verifikasi email, dan 2FA — semuanya dicabut.
- Notifikasi email (menunggu worker antrean production milik tim lain).
- Penghapusan akun oleh super admin — **sudah diputuskan akan dibangun** (K9 revisi), tapi
  belum ada; yang berlaku sekarang menonaktifkan akun.
- Papan kanban, label tugas, filter per-assignee, dan balasan bertingkat di
  diskusi.
- Ekspor laporan CSV selain Activity Log, serta dashboard khusus super admin.
- Notifikasi dan pengingat untuk tugas pribadi.

## Checklist Sebelum Demo ke User

- [ ] Server real-time (Reverb) berjalan — agar diskusi/komentar tampil langsung.
- [ ] **Batas unggahan PHP sudah dinaikkan** (`upload_max_filesize` 10M,
      `post_max_size` 110M, `memory_limit` 256M, `client_max_body_size` nginx).
      Nilai bawaan 2M membuat unggah dokumen gagal dengan modal error mentah, dan
      **harus dibaca dari PHP-FPM, bukan CLI**.
- [ ] `MOBILE_PUSH_URL` terisi bila push mobile ikut didemokan — kosongkan bila
      tidak, supaya tidak ada percobaan kirim yang gagal di log.
- [ ] Ingat: **scheduler tidak berjalan di lokal**. Terbitkan tugas berulang lewat
      **Run Now** / **Run All Active** saat demo, jangan menunggu jadwal.
- [ ] Saat menunjukkan halaman **Settings → Profile**, jangan gulir sampai kartu
      **Delete account** — jalur itu masih hidup dan destruktif sampai dicabut.
- [ ] Tersedia akun demo dengan peran yang sesuai (mis. Owner & Member), dan
      NIK-nya mengikuti pola `^[A-Z]+-[0-9]+$`.
- [ ] Ada proyek & divisi contoh yang sudah terisi data.
- [ ] Siapkan file contoh (gambar/dokumen) untuk demo bukti & media.
- [ ] Coba satu kali alur penuh di [Mulai Cepat](../quick-start.md) sebelum tampil.
