97 lines
3.5 KiB
Markdown
97 lines
3.5 KiB
Markdown
# 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).
|