diff --git a/01/backend/api/jalan.php b/01/backend/api/jalan.php index 7264a11..886efd9 100644 --- a/01/backend/api/jalan.php +++ b/01/backend/api/jalan.php @@ -1,10 +1,10 @@ - { + const segments = window.location.pathname.split('/'); + const targetIndex = segments.findIndex(seg => ['01', '02', '03', 'versi'].includes(seg)); + if (targetIndex !== -1) { + return segments.slice(0, targetIndex).join('/'); + } + return ''; +}; +export const BASE_URL = getBaseUrl(); const createService = (endpoint) => ({ getAll: async () => { diff --git a/02/backend/api/jalan.php b/02/backend/api/jalan.php index 7264a11..886efd9 100644 --- a/02/backend/api/jalan.php +++ b/02/backend/api/jalan.php @@ -1,10 +1,10 @@ - { + const segments = window.location.pathname.split('/'); + const targetIndex = segments.findIndex(seg => ['01', '02', '03', 'versi'].includes(seg)); + if (targetIndex !== -1) { + return segments.slice(0, targetIndex).join('/'); + } + return ''; +}; +export const BASE_URL = getBaseUrl(); const createService = (endpoint) => ({ getAll: async () => { diff --git a/03/backend/api/jalan.php b/03/backend/api/jalan.php index 7264a11..886efd9 100644 --- a/03/backend/api/jalan.php +++ b/03/backend/api/jalan.php @@ -1,10 +1,10 @@ - { + const segments = window.location.pathname.split('/'); + const targetIndex = segments.findIndex(seg => ['01', '02', '03', 'versi'].includes(seg)); + if (targetIndex !== -1) { + return segments.slice(0, targetIndex).join('/'); + } + return ''; +}; +export const BASE_URL = getBaseUrl(); const createService = (endpoint) => ({ getAll: async () => { diff --git a/README.md b/README.md index 0f22db8..d80a113 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,19 @@ -# WebGIS Poverty Map +# D1041231071 — WebGIS Smart City Project +**Naufal Zaky R | UAS WebGIS** -Aplikasi WebGIS PHP + MySQL untuk pemetaan data kemiskinan, fasilitas, laporan warga, dan analisis blank spot bantuan. +Aplikasi WebGIS berbasis PHP + MySQL untuk pemetaan data kemiskinan, fasilitas umum, laporan warga, dan analisis blank spot bantuan sosial di Kota Pontianak. -## Stack +## Stack Teknologi - PHP 8.2 Apache -- MySQL/MariaDB -- Leaflet -- PDO MySQL +- MySQL / MariaDB + PostGIS +- Leaflet.js (peta interaktif) +- PDO MySQL (koneksi database) -## Deploy Coolify +## Cara Deploy (Coolify) 1. Buat database MySQL/MariaDB di Coolify. -2. Import `database/webgis_db.sql` ke database tersebut. +2. Import `db_scripts/webgis_naufal_zaky.sql` ke database tersebut. 3. Buat aplikasi baru dari repo ini. 4. Pilih build menggunakan `Dockerfile` di root repository. 5. Set environment variable: @@ -28,9 +29,7 @@ DB_USERNAME=user_database DB_PASSWORD=password_database ``` -Root aplikasi menampilkan halaman pemilih progres dari `index.html`. Versi final berjalan di `/project_final`, jadi gunakan `APP_BASE_PATH=/project_final` untuk deploy Coolify ini. - -`CORS_ALLOWED_ORIGIN` boleh dikosongkan untuk same-origin deployment. Isi dengan domain aplikasi jika API memang perlu diakses dari origin lain. +Aplikasi final berjalan di `/webgis_app`. Gunakan `APP_BASE_PATH=/webgis_app` untuk deploy. ## Akun Awal @@ -39,23 +38,38 @@ Setelah import SQL: - Admin: `admin / admin123` - Pengguna: `pengguna / user123` -Ganti password akun demo setelah deploy jika aplikasi dibuka publik. +> Ganti password akun demo setelah deploy jika aplikasi dibuka publik. -## Struktur Penting +## Struktur Project -- `index.html` - halaman awal untuk memilih progres. -- `01/`, `02/`, `03/`, `final/` - progres pertemuan. -- `project_final/` - aplikasi final yang berjalan di `/project_final`. -- `database/webgis_db.sql` - struktur dan seed database lengkap. -- `Dockerfile` - image PHP Apache untuk Coolify. -- `.env.example` - contoh environment variable deploy. +``` +D1041231071_NaufalZakyR_UAS_WebGISProject/ +├── beranda.html ← Halaman pemilih progres +├── webgis_app/ ← Aplikasi final (main app) +│ ├── panel_admin/ ← Halaman & fitur admin +│ ├── panel_user/ ← Halaman & fitur pengguna +│ ├── endpoints/ ← API endpoint PHP +│ ├── core_config/ ← Konfigurasi (DB, session, auth) +│ └── public_assets/ ← CSS & JS (global, panel, map) +├── db_scripts/ ← SQL scripts database +│ ├── buat_tabel.sql +│ ├── data_awal_wilayah.sql +│ ├── data_awal_pengguna.sql +│ └── webgis_naufal_zaky.sql +├── version_01/ ← Progres pertemuan 1 +├── version_02/ ← Progres pertemuan 2 +├── version_03/ ← Progres pertemuan 3 +├── legacy_version/ ← Versi lama (referensi) +├── Dockerfile ← Docker image untuk Coolify +└── .env ← Konfigurasi environment +``` -## Local XAMPP +## Jalankan di XAMPP Lokal -Untuk menjalankan dari XAMPP seperti struktur lama, set base path: +Set konfigurasi di `.env`: ```env -APP_BASE_PATH=/project/project_final +APP_BASE_PATH=/D1041231071_NaufalZakyR_UAS_WebGISProject/webgis_app DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=webgis_db @@ -63,4 +77,5 @@ DB_USERNAME=root DB_PASSWORD= ``` -Import `database/webgis_db.sql`, lalu buka `/project/project_final/login.php`. +Import `db_scripts/webgis_naufal_zaky.sql` ke phpMyAdmin, lalu buka: +`http://localhost/D1041231071_NaufalZakyR_UAS_WebGISProject/webgis_app/login.php` diff --git a/database/create_tables.sql b/db_scripts/buat_tabel.sql similarity index 100% rename from database/create_tables.sql rename to db_scripts/buat_tabel.sql diff --git a/database/seed_users.sql b/db_scripts/data_awal_pengguna.sql similarity index 100% rename from database/seed_users.sql rename to db_scripts/data_awal_pengguna.sql diff --git a/database/seed_pontianak.sql b/db_scripts/data_awal_wilayah.sql similarity index 100% rename from database/seed_pontianak.sql rename to db_scripts/data_awal_wilayah.sql diff --git a/database/webgis_db.sql b/db_scripts/webgis_naufal_zaky.sql similarity index 100% rename from database/webgis_db.sql rename to db_scripts/webgis_naufal_zaky.sql diff --git a/index.html b/index.html index 1ba1c19..0c9ad80 100644 --- a/index.html +++ b/index.html @@ -8,7 +8,7 @@