chore: sync repository snapshot
This commit is contained in:
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user