183 lines
6.8 KiB
Markdown
183 lines
6.8 KiB
Markdown
# WebGIS Pengentasan Kemiskinan — Pontianak v2.0
|
|
### Sistem Informasi Geografis berbasis Masyarakat & Rumah Ibadah
|
|
|
|
---
|
|
|
|
## 🏗️ Struktur Proyek
|
|
|
|
```
|
|
webgis-kemiskinan/
|
|
├── index.html # Frontend utama
|
|
├── .htaccess # URL rewriting Apache
|
|
├── config/
|
|
│ ├── app.php # Konstanta aplikasi
|
|
│ └── database.php # Koneksi PDO MySQL
|
|
├── includes/
|
|
│ └── helpers.php # Auth, sanitasi, log, utils
|
|
├── api/
|
|
│ ├── index.php # Router RESTful
|
|
│ └── controllers/
|
|
│ ├── AuthController.php
|
|
│ ├── PendudukController.php
|
|
│ ├── KeluargaController.php
|
|
│ ├── BantuanController.php
|
|
│ ├── HistoriController.php
|
|
│ ├── LaporanController.php
|
|
│ ├── RumahIbadahController.php
|
|
│ ├── DashboardController.php
|
|
│ ├── PetaController.php
|
|
│ ├── PrioritasController.php
|
|
│ ├── ChatController.php
|
|
│ ├── LogController.php
|
|
│ ├── PeristiwaController.php
|
|
│ └── UserController.php
|
|
├── assets/
|
|
│ ├── css/style.css
|
|
│ └── js/
|
|
│ ├── api.js # HTTP helper
|
|
│ ├── app.js # Bootstrap & routing
|
|
│ ├── map.js # Leaflet engine
|
|
│ ├── dashboard.js
|
|
│ ├── penduduk.js
|
|
│ ├── keluarga.js
|
|
│ ├── bantuan.js
|
|
│ ├── laporan.js
|
|
│ └── ri.js # RI + Prioritas + Chat + Log
|
|
├── uploads/
|
|
│ ├── foto_laporan/
|
|
│ └── bukti_bantuan/
|
|
└── sql/
|
|
└── schema.sql # Database lengkap + seed data
|
|
```
|
|
|
|
---
|
|
|
|
## 🚀 Cara Instalasi
|
|
|
|
### 1. Persyaratan
|
|
- PHP 8.0+
|
|
- MySQL 5.7+ / MariaDB 10.3+
|
|
- Apache/Nginx dengan mod_rewrite aktif
|
|
|
|
### 2. Setup Database
|
|
```sql
|
|
mysql -u root -p < sql/schema.sql
|
|
```
|
|
Atau import via phpMyAdmin.
|
|
|
|
### 3. Konfigurasi
|
|
Edit `config/database.php`:
|
|
```php
|
|
define('DB_HOST', 'localhost');
|
|
define('DB_NAME', 'webgis_kemiskinan');
|
|
define('DB_USER', 'root');
|
|
define('DB_PASS', 'password_anda');
|
|
```
|
|
|
|
### 4. Web Server
|
|
Letakkan folder di `htdocs/` (XAMPP) atau `/var/www/html/`.
|
|
|
|
```
|
|
http://localhost/webgis-kemiskinan/
|
|
```
|
|
|
|
### 5. Akun Demo
|
|
| Username | Password | Role |
|
|
|----------------|----------|------------|
|
|
| admin | admin123 | Admin |
|
|
| pengurus_jami | admin123 | Pengurus RI|
|
|
| pimpinan | admin123 | Pimpinan |
|
|
| warga1 | admin123 | Masyarakat |
|
|
|
|
---
|
|
|
|
## 📡 API Endpoints
|
|
|
|
| Method | Endpoint | Keterangan |
|
|
|--------|------------------------------|-------------------------------|
|
|
| POST | /api/auth | Login |
|
|
| DELETE | /api/auth/logout | Logout |
|
|
| GET | /api/auth/me | Info user saat ini |
|
|
| GET | /api/penduduk | List penduduk |
|
|
| POST | /api/penduduk | Tambah penduduk |
|
|
| PUT | /api/penduduk/:nik | Update penduduk |
|
|
| DELETE | /api/penduduk/:nik | Hapus penduduk |
|
|
| GET | /api/keluarga | List keluarga |
|
|
| POST | /api/keluarga | Tambah KK |
|
|
| GET | /api/bantuan | Jenis bantuan |
|
|
| POST | /api/histori | Catat penyaluran |
|
|
| GET | /api/histori/:nik/cek | Cek riwayat penerima |
|
|
| POST | /api/laporan | Kirim laporan (publik) |
|
|
| PUT | /api/laporan/:id | Update status laporan |
|
|
| GET | /api/rumah-ibadah | List rumah ibadah |
|
|
| GET | /api/dashboard | Statistik dashboard |
|
|
| GET | /api/peta?layer=penduduk | GeoJSON peta penduduk |
|
|
| GET | /api/peta?layer=rumah_ibadah | GeoJSON rumah ibadah |
|
|
| GET | /api/peta?layer=laporan | GeoJSON laporan |
|
|
| GET | /api/prioritas | Daftar prioritas bantuan |
|
|
| POST | /api/chat | Kirim pesan |
|
|
| POST | /api/peristiwa | Catat peristiwa kependudukan |
|
|
| GET | /api/log | Log aktivitas |
|
|
|
|
---
|
|
|
|
## 🗄️ Struktur Database (ERD Ringkas)
|
|
|
|
```
|
|
role ──────────────────── user
|
|
│
|
|
rumah_ibadah ┘
|
|
│
|
|
keluarga ─────── penduduk ──── histori_bantuan ─── bantuan
|
|
│
|
|
laporan (opsional nik_terdampak)
|
|
riwayat_pendidikan
|
|
peristiwa_kependudukan
|
|
log_aktivitas
|
|
```
|
|
|
|
---
|
|
|
|
## 🎯 Fitur Sistem
|
|
|
|
| # | Fitur | Status |
|
|
|---|-------|--------|
|
|
| 1 | CRUD Penduduk + validasi NIK 16 digit | ✅ |
|
|
| 2 | Umur otomatis dari tanggal lahir | ✅ |
|
|
| 3 | Validasi logika umur vs pendidikan | ✅ |
|
|
| 4 | Relasi Keluarga (KK → Anggota) | ✅ |
|
|
| 5 | Sistem peristiwa kependudukan | ✅ |
|
|
| 6 | Laporan masyarakat + status tracking | ✅ |
|
|
| 7 | Histori bantuan per NIK | ✅ |
|
|
| 8 | Cek penerima bantuan sebelumnya | ✅ |
|
|
| 9 | Multi-role (Admin/Pengurus/Pimpinan/Masyarakat) | ✅ |
|
|
| 10| WebGIS Leaflet + cluster + radius RI | ✅ |
|
|
| 11| Layer filter (miskin/rentan/mampu) | ✅ |
|
|
| 12| Prioritas bantuan otomatis (miskin+sakit) | ✅ |
|
|
| 13| Dashboard statistik real-time | ✅ |
|
|
| 14| Chat koordinasi antar pengurus | ✅ |
|
|
| 15| Log aktivitas sistem | ✅ |
|
|
| 16| Export CSV prioritas | ✅ |
|
|
| 17| Deteksi warga belum pernah dibantu | ✅ |
|
|
| 18| GeoJSON API untuk Leaflet | ✅ |
|
|
|
|
---
|
|
|
|
## 🔒 Hak Akses per Role
|
|
|
|
| Fitur | Admin | Pengurus | Pimpinan | Masyarakat |
|
|
|-----------------------|-------|----------|----------|------------|
|
|
| CRUD Penduduk | ✅ | ✅ | 👁 | ❌ |
|
|
| CRUD Keluarga | ✅ | ✅ | 👁 | ❌ |
|
|
| Salurkan Bantuan | ✅ | ✅ | ❌ | ❌ |
|
|
| Verifikasi Laporan | ✅ | ✅ | ❌ | ❌ |
|
|
| Kirim Laporan | ✅ | ✅ | ✅ | ✅ |
|
|
| Dashboard | ✅ | ✅ | ✅ | ❌ |
|
|
| Manajemen User | ✅ | ❌ | ❌ | ❌ |
|
|
| Chat Koordinasi | ✅ | ✅ | ❌ | ❌ |
|
|
| Log Aktivitas | ✅ | ❌ | ✅ | ❌ |
|
|
|
|
---
|
|
|
|
*WebGIS Kemiskinan Pontianak v2.0 — Dikembangkan untuk mendukung intervensi bantuan sosial tepat sasaran berbasis data spasial.*
|