chore: sync repository snapshot

This commit is contained in:
GuavaPopper
2026-06-11 14:53:35 +07:00
parent 529d8bcc70
commit 3bed7457ec
88 changed files with 13102 additions and 152 deletions
+57 -99
View File
@@ -1,128 +1,86 @@
# WebGIS SPBU
# WebGIS SPBU Laravel
WebGIS SPBU adalah aplikasi Sistem Informasi Geografis sederhana untuk memetakan dan mengelola titik Stasiun Pengisian Bahan Bakar Umum (SPBU). Aplikasi ini memakai Leaflet untuk peta interaktif, PHP untuk API, dan MySQL/MariaDB untuk penyimpanan data.
WebGIS SPBU adalah aplikasi Laravel untuk memetakan dan mengelola titik Stasiun Pengisian Bahan Bakar Umum (SPBU). Aplikasi ini mempertahankan tampilan Leaflet, Tailwind CDN, DaisyUI CDN, dan Font Awesome dari versi HTML/PHP lama, tetapi backend-nya sudah memakai route, controller, model, migration, dan seeder Laravel.
## Fitur
- Menampilkan peta interaktif dengan pilihan layer peta standar dan satelit.
- Menambah data SPBU dengan klik lokasi langsung di peta.
- Mengedit data SPBU dan memindahkan marker dengan drag.
- Menghapus data SPBU dari halaman input maupun halaman daftar data.
- Menampilkan daftar SPBU, statistik total, statistik status operasional, pencarian, dan mini map sebaran.
- Mengelompokkan marker berdasarkan status `Buka 24 Jam` dan `Tidak Buka 24 Jam`.
- Landing page dengan peta latar.
- Input SPBU dari klik peta.
- Edit atribut SPBU.
- Drag marker untuk memindahkan lokasi.
- Hapus data SPBU.
- Halaman daftar data, statistik, pencarian, quick list, dan mini map.
## Teknologi
## Menjalankan Dengan Docker
- HTML, CSS, JavaScript
- PHP PDO
- MySQL atau MariaDB
- Leaflet
- Tailwind CSS CDN
- DaisyUI CDN
- Font Awesome CDN
## Struktur Project
```text
.
|-- api/
| |-- config.php
| |-- delete_spbu.php
| |-- get_spbu.php
| |-- save_spbu.php
| `-- update_spbu.php
|-- database/
| `-- schema.sql
|-- pages/
| |-- input.html
| `-- showdata.html
|-- .env.example
|-- index.html
`-- README.md
```powershell
docker compose up --build
```
## Prasyarat
Buka:
- Web server lokal seperti Laragon, XAMPP, atau Apache/Nginx dengan PHP.
- PHP dengan ekstensi PDO MySQL aktif.
- MySQL atau MariaDB.
- Koneksi internet untuk memuat library CDN dan tile map.
```text
http://localhost:8000
```
## Instalasi
Container `app` akan otomatis:
1. Clone repository ini ke direktori web server lokal.
- membuat `.env` dari `.env.example` jika belum ada
- menyinkronkan konfigurasi dari `docker-compose.yml` ke `.env`
- generate `APP_KEY` jika belum tersedia
- menunggu MySQL siap
- menjalankan migration
- menjalankan seeder
- menjalankan Laravel di port `8000`
```bash
git clone https://github.com/GuavaPopper/WebGIS_SPBU.git
```
Database MySQL berjalan di service `db` dengan volume `spbu-mysql-data`.
2. Masuk ke folder project.
## Menjalankan Lokal Tanpa Docker
```bash
cd WebGIS_SPBU
```
Pastikan PHP 8.3, Composer, dan MySQL aktif.
3. Buat database dan tabel dengan menjalankan script:
```powershell
composer install
Copy-Item .env.example .env
php artisan key:generate
```
```sql
database/schema.sql
```
Buat database MySQL:
Script tersebut akan membuat database `spbu_baru`, tabel `spbu`, dan contoh data awal.
```sql
CREATE DATABASE spbu_baru CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
```
4. Salin file `.env.example` menjadi `.env`.
Sesuaikan `.env` jika user/password MySQL berbeda, lalu jalankan:
```bash
cp .env.example .env
```
```powershell
php artisan migrate --seed
php artisan serve --host=127.0.0.1 --port=8000
```
5. Sesuaikan konfigurasi database di file `.env`.
```env
DB_HOST=localhost
DB_NAME=spbu_baru
DB_USER=root
DB_PASS=
```
6. Jalankan project melalui web server lokal, misalnya:
```text
http://localhost/SPBU_Enhanced/
```
## Halaman Aplikasi
- `index.html`: halaman awal dan peta latar.
- `pages/input.html`: halaman input, edit, hapus, dan pemindahan titik SPBU.
- `pages/showdata.html`: halaman daftar data, statistik, pencarian, dan mini map.
Buka `http://127.0.0.1:8000`.
## Endpoint API
| Endpoint | Method | Fungsi |
| Method | Endpoint | Fungsi |
| --- | --- | --- |
| `api/get_spbu.php` | `GET` | Mengambil semua data SPBU |
| `api/save_spbu.php` | `POST` | Menyimpan data SPBU baru |
| `api/update_spbu.php` | `POST` atau `PUT` | Memperbarui data SPBU |
| `api/delete_spbu.php` | `DELETE` atau `POST` dengan `_method=DELETE` | Menghapus data SPBU |
| `GET` | `/api/spbu` | Mengambil semua data SPBU |
| `POST` | `/api/spbu` | Menyimpan data SPBU baru |
| `PUT` | `/api/spbu/{id}` | Memperbarui data SPBU |
| `DELETE` | `/api/spbu/{id}` | Menghapus data SPBU |
## Format Data SPBU
## Halaman
```json
{
"nama_spbu": "SPBU Jl. Ahmad Yani",
"nomor_spbu": "64.751.01",
"status": "Buka 24 Jam",
"latitude": -0.0600366,
"longitude": 109.3458023
}
- `/` - landing page
- `/input` - input, edit, hapus, dan pindah marker
- `/data` - daftar data, statistik, search, quick list, dan mini map
## Testing
```powershell
php artisan test
```
Nilai `status` yang valid:
## Catatan Migrasi
- `Buka 24 Jam`
- `Tidak Buka 24 Jam`
## Catatan Konfigurasi
File `.env` ikut disertakan untuk kebutuhan setup repository private. Jika project dipindahkan ke environment lain, sesuaikan nilai database di `.env` atau gunakan `.env.example` sebagai template konfigurasi.
Source versi lama disimpan di folder `_legacy_original` untuk referensi. Folder itu tidak ikut masuk ke Docker image.