1fcad7d9b2
- Add ExportController: allMiskinPDF (all data) + radiusMiskinPDF
(server-side Haversine filtering per ibadah radius)
- Add two table-based PDF Blade views (dompdf-compatible, no flexbox/grid)
- Add export routes (/export/pdf, /export/pdf/radius/{id}/{radius})
with numeric route constraints
- Add "Ekspor PDF" button to data tabular view
- Add CSV + PDF radius export buttons to map analysis panel;
exportRadiusCSV() reuses existing isInside(); PDF href synced on
ibadah click and radius slider change
- 5 new tests: access control, PDF content-type, 404 + param validation
- Mark K-04 and Section 5 (Cetak & Ekspor) complete in missing_features.md
- Update README with export features
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
106 lines
4.6 KiB
Markdown
106 lines
4.6 KiB
Markdown
# Fitur & Role yang Belum Ada di Project WebGIS
|
||
|
||
> Berdasarkan perbandingan dokumen SKPL (`D1041231009_RadityaIndraPutranto_SKPL_SIG.docx`) dengan implementasi aktual project.
|
||
>
|
||
> **Terakhir diperbarui:** 2026-06-03 — setelah implementasi Ekspor PDF + per Radius (Plan 5).
|
||
|
||
---
|
||
|
||
## 🔐 1. Sistem Autentikasi & Role
|
||
|
||
### 1.1 Komponen:
|
||
|
||
- [x] **Model User** — `App\Models\User` dengan `HasRoles` (Spatie)
|
||
- [x] **Migration `users`** — Tabel users + password_reset_tokens
|
||
- [x] **Halaman Login** — `resources/views/auth/login.blade.php`
|
||
- [x] **AuthController** — Login/logout dengan session regeneration
|
||
- [x] **Middleware Auth** — Semua route dilindungi, API di-enforce di backend
|
||
- [x] **Role-Based Access Control (RBAC)** — Spatie Laravel Permission v8, 4 role aktif
|
||
|
||
### 1.2 Empat role:
|
||
|
||
| # | Role | Kode SKPL | Status |
|
||
|---|---|---|---|
|
||
| 1 | **Administrator Sistem** | A-01 s/d A-05 | ⚠️ A-01 selesai, A-02–A-05 belum (lihat bagian 2) |
|
||
| 2 | **Pengurus Rumah Ibadah** | I-01 s/d I-06 | ⚠️ Bisa CRUD ibadah, tapi belum ada ownership |
|
||
| 3 | **Petugas Pendataan (Operator)** | P-01 s/d P-05 | ⚠️ Bisa CRUD miskin, belum ada form edit & verifikasi |
|
||
| 4 | **Pemangku Kebijakan** | K-01 s/d K-04 | ⚠️ View-only sudah, dashboard & ekspor lanjutan belum |
|
||
|
||
### 1.3 Gap ownership yang ditemukan saat implementasi:
|
||
|
||
- [x] **Ownership Rumah Ibadah** — `pengurus_ibadah` seharusnya hanya bisa edit/hapus data ibadah miliknya sendiri. Saat ini bisa edit/hapus **semua** ibadah. Butuh kolom `user_id` di tabel `rumah_ibadah` + policy/gate untuk enforce ownership.
|
||
|
||
---
|
||
|
||
## 🛠️ 2. Fitur Administrator (A-01 s/d A-05)
|
||
|
||
| Kode | Fitur | Status |
|
||
|---|---|---|
|
||
| A-01 | **Manajemen Pengguna** — CRUD user, assign role, reset password | ✅ Selesai |
|
||
| A-02 | **Bulk Delete** — Hapus data massal | ❌ Belum ada |
|
||
| A-02 | **Import CSV** — Import data dari file CSV | ❌ Belum ada |
|
||
| A-03 | **Konfigurasi Sistem** — Batas wilayah, radius min/max, legenda peta | ❌ Belum ada |
|
||
| A-04 | **Log Aktivitas** — Mencatat dan menampilkan log aktivitas pengguna | ❌ Belum ada |
|
||
| A-04 | **Statistik Penggunaan** — Ringkasan penggunaan sistem | ❌ Belum ada |
|
||
| A-04 | **Notifikasi Perubahan Data** — Notif jika data ditambah/diubah | ❌ Belum ada |
|
||
| A-05 | **Backup & Restore** — Backup database manual, jadwal backup otomatis | ❌ Belum ada |
|
||
|
||
---
|
||
|
||
## ✏️ 3. Fitur Edit Data (Multiple Roles)
|
||
|
||
Data bisa ditambah dan dihapus. Untuk lokasi: drag marker (ibadah & miskin) dan ubah radius (ibadah saja) sudah bisa. Namun **belum ada form edit** untuk field lainnya.
|
||
|
||
| Fitur | Role terkait | Status |
|
||
|---|---|---|
|
||
| **Form Edit Rumah Ibadah** — Edit nama, jenis, pengurus, telepon, jemaah, keterangan | I-06, A-02 | ✅ Selesai |
|
||
| **Form Edit Keluarga Miskin** — Edit nama KK, jumlah jiwa, pekerjaan, pendapatan, kondisi | P-02, A-02 | ✅ Selesai |
|
||
|
||
---
|
||
|
||
## 📊 4. Fitur Analisis & Dashboard (Pemangku Kebijakan)
|
||
|
||
| Kode | Fitur | Status |
|
||
|---|---|---|
|
||
| K-02 | **Dashboard Statistik Lengkap** — Perbandingan antar wilayah, tren waktu | ✅ Selesai |
|
||
| K-03 | **Analisis Kesenjangan (Gap Analysis)** — Identifikasi wilayah miskin yang kurang terjangkau rumah ibadah | ✅ Selesai |
|
||
| K-04 | **Ekspor Laporan Terfilter** — Ekspor khusus per radius/wilayah untuk laporan resmi | ✅ Selesai |
|
||
|
||
---
|
||
|
||
## 🖨️ 5. Fitur Cetak & Ekspor Lanjutan
|
||
|
||
| Fitur | Role terkait | Status |
|
||
|---|---|---|
|
||
| **Cetak Laporan Wilayah** — Print daftar keluarga miskin dalam radius rumah ibadah | I-04 | ✅ Selesai |
|
||
| **Ekspor PDF** — Format laporan resmi | K-04 | ✅ Selesai |
|
||
| **Ekspor per Radius** — Data yang terfilter per analisis radius | I-04, K-04 | ✅ Selesai |
|
||
|
||
---
|
||
|
||
## 📋 Ringkasan
|
||
|
||
| Kategori | Selesai | Belum |
|
||
|---|---|---|
|
||
| Autentikasi & RBAC | ✅ 6/6 komponen | — |
|
||
| Role Pengguna | ✅ 4/4 role | — |
|
||
| Ownership pengurus_ibadah | ✅ 1/1 | — |
|
||
| Fitur Admin | ✅ 1/8 | ❌ 7 fitur |
|
||
| Fitur Edit Data | ✅ 2/2 | — |
|
||
| Fitur Analisis/Dashboard | ✅ 3/3 | — |
|
||
| Fitur Cetak/Ekspor | ✅ 3/3 | — |
|
||
| **Total sisa** | | **~7 item** |
|
||
|
||
---
|
||
|
||
## 🗺️ Urutan Plan yang Disarankan
|
||
|
||
| Plan | Isi | Prioritas |
|
||
|---|---|---|
|
||
| ~~Plan 1~~ | ~~Auth & RBAC~~ | ✅ Selesai |
|
||
| ~~Plan 2~~ | ~~Form Edit Rumah Ibadah & Keluarga Miskin + Ownership~~ | ✅ Selesai |
|
||
| ~~Plan 3~~ | ~~Manajemen Pengguna (Admin: CRUD user, assign role)~~ | ✅ Selesai |
|
||
| ~~Plan 4~~ | ~~Dashboard Statistik + Gap Analysis (Pemangku Kebijakan)~~ | ✅ Selesai |
|
||
| ~~Plan 5~~ | ~~Ekspor PDF + Ekspor per Radius + Cetak Laporan~~ | ✅ Selesai |
|
||
| Plan 6 | Fitur Admin lanjutan (Bulk delete, CSV import, Log, Backup) | Rendah |
|