bersihkan_file_kedua
This commit is contained in:
@@ -1,96 +0,0 @@
|
||||
# Changelog — Transformasi WebGIS sesuai SKPL
|
||||
|
||||
Dokumen ini merangkum perubahan aplikasi dari **"WebGIS Smart City Pontianak"** menjadi **"WebGIS Pemetaan Kemiskinan Terpadu"** sesuai dokumen SKPL.
|
||||
|
||||
Status saat ini: **Fase A (Fondasi)** dan **Fase B (Visualisasi Peta)** selesai & teruji.
|
||||
|
||||
---
|
||||
|
||||
## 1. Sistem Role & Autentikasi
|
||||
|
||||
| Sebelum | Sesudah |
|
||||
|---|---|
|
||||
| 2 role: `admin`, `user` | 4 role SKPL: `publik`, `enumerator`, `operator`, `pimpinan` |
|
||||
| Login dasar | + Lockout 5× percobaan gagal (KF-01) |
|
||||
| — | Cek akun nonaktif (`is_active`) saat login |
|
||||
| — | Catat `last_login` |
|
||||
| Routing role hardcode | Routing dinamis per role via `roleHome()` |
|
||||
| `requireRole('admin')` (exact) | RBAC fleksibel `requireAnyRole([...])` |
|
||||
|
||||
File: `config/auth_check.php`, `login.php`, `logout.php`, `index.php`
|
||||
|
||||
## 2. Struktur Folder & Halaman
|
||||
|
||||
- `user/` → di-rename menjadi `pimpinan/` (dashboard, peta, laporan)
|
||||
- **Baru:** `enumerator/` — area petugas lapangan (mobile-friendly)
|
||||
- **Baru:** `peta_publik.php` — peta tanpa login untuk masyarakat
|
||||
- **Baru:** `admin/log.php` — halaman log aktivitas
|
||||
|
||||
## 3. Database
|
||||
|
||||
| Perubahan | Detail |
|
||||
|---|---|
|
||||
| `users` diperluas | + `email`, `is_active`, `wilayah_tugas`, `last_login`; ENUM role jadi 4 |
|
||||
| Tabel baru `activity_log` | Audit trail aktivitas pengguna (KF-04) |
|
||||
| Tabel baru `wilayah` | Polygon kelurahan + `jumlah_penduduk` untuk choropleth (KF-06) |
|
||||
|
||||
File migrasi:
|
||||
- `database/migrations/001_fase_a_roles.sql`
|
||||
- `database/migrations/002_wilayah.sql`
|
||||
- `database/webgis_db.sql` (diperbarui untuk install baru)
|
||||
|
||||
## 4. Manajemen User (KF-02 / KF-03)
|
||||
|
||||
`admin/users.php` + `api/users.php` dirombak:
|
||||
- Kelola 4 role
|
||||
- Status aktif/nonaktif
|
||||
- Email & wilayah tugas (enumerator)
|
||||
- Proteksi akun utama (ID 1) & akun sendiri dari penghapusan
|
||||
|
||||
## 5. Log Aktivitas (KF-04)
|
||||
|
||||
- Helper `logActivity()` di `config/activity.php`
|
||||
- Dicatat saat: login, logout, dan CRUD data (warga, user)
|
||||
- Ditampilkan di `admin/log.php` (300 entri terbaru)
|
||||
|
||||
## 6. Visualisasi Peta (Fase B)
|
||||
|
||||
| Fitur SKPL | Implementasi |
|
||||
|---|---|
|
||||
| Choropleth (KF-06) | `api/wilayah.php` — gradasi warna % kemiskinan + legenda |
|
||||
| Heatmap (KF-08) | `api/heatmap.php` — data agregat tanpa info pribadi |
|
||||
| Layer switcher (KF-09) | Toggle choropleth & heatmap |
|
||||
| Pencarian lokasi (KF-11) | Cari kelurahan, peta auto-`flyTo` |
|
||||
|
||||
Dipasang di: peta publik, peta operator, peta pimpinan.
|
||||
File: `assets/js/public-map.js`, `assets/js/skpl-layers.js`
|
||||
|
||||
## 7. Branding & Keamanan API
|
||||
|
||||
- Branding "Smart City" → "WebGIS Kemiskinan / Pemetaan Kemiskinan"
|
||||
- Guard mutasi API: role `admin` → `operator` (`requireOperatorForMutation` di `api/helpers.php`)
|
||||
|
||||
## 8. Perbaikan Bug
|
||||
|
||||
- Fungsi MySQL `ST_SRID()` (sintaks PostGIS) yang menyebabkan error diperbaiki di 5 file
|
||||
- Pemuatan `.env` otomatis + perbaikan path cookie sesi
|
||||
- Bug `window.APP_BASE` (binding `const` bukan properti window) di `skpl-layers.js` — diperbaiki
|
||||
|
||||
---
|
||||
|
||||
## Akun Testing (DB hasil migrasi)
|
||||
|
||||
| Role | Username | Password |
|
||||
|---|---|---|
|
||||
| Operator | `admin` | `admin123` |
|
||||
| Pimpinan | `pengguna` | `user123` |
|
||||
| Enumerator | `enumerator` | `user123` |
|
||||
| Publik | (tanpa login) | — |
|
||||
|
||||
---
|
||||
|
||||
## Belum Dikerjakan (warisan lama / fase berikutnya)
|
||||
|
||||
- Data spasial smart-city (SPBU, jalan, kavling, rumah ibadah, kawasan kumuh) **masih ada** — rencana di-repurpose/dibuang pada modul Manajemen Data.
|
||||
- Form input enumerator (`enumerator/input.php`) masih placeholder "Segera".
|
||||
- Modul Manajemen Data, Analisis Spasial, Geotagging, dan Pelaporan PDF belum dibuat (lihat rencana di bawah / dokumen perencanaan).
|
||||
@@ -1,93 +0,0 @@
|
||||
# Rencana Tahap Lanjutan — WebGIS Pemetaan Kemiskinan SKPL
|
||||
|
||||
Lanjutan setelah Fase A (Fondasi) & Fase B (Visualisasi Peta) selesai.
|
||||
Prinsip tetap: **fokus penuh ke SKPL** + **perluas bertahap**.
|
||||
|
||||
Modul SKPL yang tersisa: 3.3 Manajemen Data, 3.4 Analisis Spasial,
|
||||
3.5 Geotagging & Survei, 3.6 Dashboard & Pelaporan.
|
||||
|
||||
Urutan disusun berdasarkan ketergantungan: **C → D → E → F**
|
||||
(data kaya dulu, baru analisis & laporan).
|
||||
|
||||
---
|
||||
|
||||
## FASE C — Manajemen Data Kemiskinan (KF-12 s/d 18)
|
||||
|
||||
Fondasi data untuk semua modul berikutnya. Memperkaya `warga_miskin`.
|
||||
|
||||
| ID | Pekerjaan | KF |
|
||||
|---|---|---|
|
||||
| C1 | Perluas kolom `warga_miskin`: `nik_kk`, `alamat`, `wilayah_id`, `rt`, `rw`, `jumlah_jiwa`, `pekerjaan_kk`, `sumber_air`, `status_listrik`, `material_dinding`, `status_kepemilikan`, `status_verifikasi` | KF-12 |
|
||||
| C2 | Tabel `jenis_bantuan` (PKH, BPNT, PBI-JK, BLT) + `bantuan_sosial` (status per RT, tgl mulai/berakhir) | KF-17 |
|
||||
| C3 | Upload foto kondisi rumah (folder `uploads/`, kompres GD, 1–5 foto) | KF-13 |
|
||||
| C4 | Form input/edit lengkap di operator + popup detail kaya di peta | KF-12/14 |
|
||||
| C5 | Import CSV/Excel sesuai template Lampiran A + validasi & laporan error | KF-15 |
|
||||
| C6 | Export CSV / Excel / PDF (data penuh & hasil filter) | KF-16 |
|
||||
| C7 | Manajemen status bantuan per rumah tangga | KF-17 |
|
||||
| C8 | Verifikasi data (status + bulk verification + penanda di peta) | KF-18 |
|
||||
|
||||
**Catatan:** sekaligus repurpose `rumah_ibadah`/`spbu` → tabel `fasilitas_publik`
|
||||
(sekolah/puskesmas/pasar) untuk proximity, dan pensiunkan layer smart-city lama.
|
||||
|
||||
---
|
||||
|
||||
## FASE D — Geotagging & Form Enumerator (KF-24, 25, 26)
|
||||
|
||||
Membuat role Enumerator benar-benar fungsional.
|
||||
|
||||
| ID | Pekerjaan | KF |
|
||||
|---|---|---|
|
||||
| D1 | `enumerator/input.php` — form multi-langkah mobile + auto-GPS (`navigator.geolocation`) + koreksi manual di peta mini | KF-24/25 |
|
||||
| D2 | Upload foto langsung dari kamera HP | KF-13 |
|
||||
| D3 | Penugasan wilayah: enumerator hanya akses/input data di wilayah tugasnya | KF-26 |
|
||||
| D4 | (Opsional, prioritas rendah) Notifikasi in-app tugas baru | KF-27 |
|
||||
|
||||
---
|
||||
|
||||
## FASE E — Analisis Spasial (KF-19 s/d 23)
|
||||
|
||||
Butuh data kaya dari Fase C + `fasilitas_publik`.
|
||||
|
||||
| ID | Pekerjaan | KF |
|
||||
|---|---|---|
|
||||
| E1 | Filter multi-kriteria (kecamatan, pendidikan, pekerjaan, status bantuan, sumber air, material, kepemilikan) — hasil langsung di peta + jumlah | KF-19 |
|
||||
| E2 | Identifikasi zona prioritas (skor per kelurahan: % miskin + kepadatan + cakupan bantuan rendah) | KF-20 |
|
||||
| E3 | Proximity analysis ke fasilitas publik + identifikasi warga "terisolasi" (radius dapat diatur) | KF-21 |
|
||||
| E4 | Analisis cakupan bantuan (pie chart + choropleth per jenis bantuan) | KF-22 |
|
||||
| E5 | Analisis tren waktu (line chart jumlah warga & cakupan) | KF-23 |
|
||||
|
||||
---
|
||||
|
||||
## FASE F — Dashboard & Pelaporan (KF-28 s/d 31)
|
||||
|
||||
| ID | Pekerjaan | KF |
|
||||
|---|---|---|
|
||||
| F1 | Dashboard eksekutif: kartu KPI + grafik (Chart.js) + peta ringkasan zona prioritas | KF-28 |
|
||||
| F2 | Laporan per wilayah (tabel + grafik + peta) — cetak/unduh PDF | KF-29 |
|
||||
| F3 | Laporan rekapitulasi penerima bantuan per jenis (PDF) | KF-30 |
|
||||
| F4 | Grafik komparatif antar kecamatan (bar + radar) | KF-31 |
|
||||
|
||||
---
|
||||
|
||||
## Kebutuhan Non-Fungsional (NFR)
|
||||
|
||||
Sebagian implementasi, sebagian cukup didokumentasikan untuk final project:
|
||||
|
||||
- **Implementasi:** RBAC server-side (sudah), proteksi SQL Injection (PDO prepared — sudah), bcrypt cost 12 (sudah), validasi input, pesan error informatif, responsif mobile.
|
||||
- **Dokumentasi saja (di luar lingkup realistis final project):** JWT HS256, 100 user konkuren, enkripsi NIK, backup harian otomatis, uptime 99%, integrasi DTKS.
|
||||
|
||||
---
|
||||
|
||||
## Library Tambahan yang Diperlukan
|
||||
|
||||
- **Chart.js 4.x** — grafik dashboard & laporan (Fase E/F)
|
||||
- **PhpSpreadsheet** atau parser CSV manual — import/export Excel (Fase C)
|
||||
- **Dompdf** atau **mPDF** — generate PDF laporan (Fase F)
|
||||
- (Leaflet & leaflet.heat sudah dipakai)
|
||||
|
||||
---
|
||||
|
||||
## Rekomendasi Mulai
|
||||
|
||||
**Mulai dari Fase C (Manajemen Data)** karena membuka jalan untuk D, E, dan F
|
||||
sekaligus memperkaya popup detail peta (KF-10) yang sekarang masih minim.
|
||||
Reference in New Issue
Block a user