First commit / commit pertama
This commit is contained in:
@@ -0,0 +1,96 @@
|
||||
# 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).
|
||||
Reference in New Issue
Block a user