First commit / commit pertama

This commit is contained in:
Mr.Haruna
2026-06-13 11:24:58 +07:00
commit 522c4f7200
166 changed files with 13326 additions and 0 deletions
+96
View File
@@ -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).