Files
WebGIS-Project/webgis-v3/README.md
T
2026-06-10 19:48:00 +07:00

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.*