Files
C_UAS_WEBGIS_AndrieWijaya_D…/README.md
T
2026-06-11 18:14:21 +07:00

151 lines
5.1 KiB
Markdown

# Tugas Besar SIG - WebGIS Poverty Mapping
Repository ini berisi aplikasi utama Tugas Besar SIG dan artifact tugas kelas WebGIS dasar.
## Prioritas Penilaian
Jalankan dan nilai aplikasi utama pada folder:
```text
WebgisPovertyMapping/
```
Folder `01/` disertakan sebagai bukti tugas kelas/prototype pengembangan sebelum aplikasi final.
## Daftar Project
| Folder | Peran | Ringkasan |
| --- | --- | --- |
| `01/` | Tugas kelas WebGIS dasar | CRUD POI/lokasi usaha, digitasi jalan polyline, digitasi parsil polygon |
| `WebgisPovertyMapping/` | Aplikasi final tugas besar | Auth, role admin/operator/viewer, dashboard, kebutuhan bantuan, import/export, keamanan, laporan |
## Mapping Database
Setiap project memakai database terpisah agar schema tidak saling bertabrakan saat di-import.
```text
01 -> db_webgis_01
WebgisPovertyMapping -> db_webgis
```
## URL Lokal Dengan Docker
Jalankan dari root repository dengan Docker Compose lokal:
```bash
cp .env.example .env
docker compose -f docker-compose.yml -f docker-compose.local.yml up --build -d
```
Buka:
```text
http://localhost:8080/
http://localhost:8080/01/
http://localhost:8080/WebgisPovertyMapping/
```
Tambahkan `APP_PORT=8081` di `.env` jika port `8080` sudah dipakai.
## Quick Start Aplikasi Final
Setelah Docker berjalan, buka aplikasi final:
```text
http://localhost:8080/WebgisPovertyMapping/
```
Database `db_webgis` otomatis dibuat dan diisi dari `WebgisPovertyMapping/setup_database.sql` saat volume MariaDB Docker masih kosong.
XAMPP tidak lagi menjadi jalur utama. Jika perlu menjalankan mode legacy tanpa Docker, lihat `WebgisPovertyMapping/docs/deployment-xampp.md`.
## Quick Start Docker
Docker setup menjalankan dua service:
- `app`: PHP 8.2 + Apache untuk root repo, `01/`, dan `WebgisPovertyMapping/`.
- `db`: MariaDB 11.4 yang otomatis import `01/setup_database.sql` dan `WebgisPovertyMapping/setup_database.sql` saat volume database masih kosong.
Jalankan dari root repository:
```bash
cp .env.example .env
docker compose -f docker-compose.yml -f docker-compose.local.yml up --build -d
```
Buka:
```text
http://localhost:8080/
http://localhost:8080/01/
http://localhost:8080/WebgisPovertyMapping/
```
Tambahkan `APP_PORT=8081` di `.env` jika port `8080` sudah dipakai. Untuk reset database Docker dari awal:
```bash
docker compose -f docker-compose.yml -f docker-compose.local.yml down -v
docker compose -f docker-compose.yml -f docker-compose.local.yml up --build -d
```
## Deployment Coolify
Gunakan repo ini sebagai source project Coolify dengan Docker Compose deployment. File `docker-compose.yml` adalah konfigurasi production: service `app` hanya memakai `expose: 80`, sehingga tidak membuka host port publik. Domain publik diarahkan oleh reverse proxy Coolify ke container port `80`; service `db` tetap private di network internal compose.
1. Push root repository ini ke Git provider yang bisa diakses Coolify.
2. Di Coolify, buat resource baru dari Git repository tersebut.
3. Pilih build pack/deployment type `Docker Compose`.
4. Pastikan compose file yang dipakai adalah `docker-compose.yml` di root repository.
5. Assign domain pada service `app`, misalnya:
```text
https://ifuntanhub.dev
```
Karena container Apache listen di port `80`, domain tidak perlu diberi suffix port.
6. Set environment variable berikut di Coolify:
```env
MARIADB_ROOT_PASSWORD=isi-password-kuat
```
7. Deploy. Saat database volume masih kosong, MariaDB otomatis menjalankan:
```text
01/setup_database.sql
WebgisPovertyMapping/setup_database.sql
```
8. Setelah deploy, buka URL publik Coolify root. Landing page akan menampilkan link ke project kelas `01/` dan aplikasi final `WebgisPovertyMapping/`.
Catatan penting:
- Jangan tambahkan `ports:` di `docker-compose.yml` production. Jika port host dipublish, service dapat terbuka di luar kontrol reverse proxy.
- `docker-compose.local.yml` hanya untuk development lokal dan tidak perlu dipilih di Coolify.
- Jika ingin langsung membuka aplikasi final sebagai halaman utama domain, atur domain/path di reverse proxy ke `/WebgisPovertyMapping/` atau ubah landing page root sesuai kebutuhan.
- Jika database Docker perlu direset di Coolify, hapus persistent volume database terlebih dahulu. Tanpa reset volume, file SQL init tidak dijalankan ulang oleh MariaDB.
## Environment
- Runtime utama: Docker Compose dengan PHP 8.2 Apache dan MariaDB 11.4.
- Di Docker, aplikasi memakai `DB_HOST=db` dan `DB_PORT=3306`.
- Default port `3307` hanya relevan untuk mode XAMPP legacy.
- Leaflet, Chart.js, font, tile peta, dan geocoding memakai CDN/layanan eksternal sehingga demo membutuhkan koneksi internet.
- File root `DESIGN.md` adalah catatan desain lokal yang tidak terkait pengumpulan dan diabaikan oleh `.gitignore`.
## Urutan Demo Yang Disarankan
1. Buka `WebgisPovertyMapping/` sebagai aplikasi final.
2. Login dengan akun demo:
```text
Administrator: admin / password
Operator : operator / password
Viewer : viewer / password
```
3. Untuk akses publik tanpa login, buka langsung halaman peta aplikasi final.
4. Tunjukkan peta, dashboard, rumah ibadah, penduduk miskin, proximity/blank spot, kebutuhan bantuan, dan laporan.
5. Jika diminta bukti tugas kelas, buka `01/`.