Initial commit of unified WebGIS projects

This commit is contained in:
ilham_gmail
2026-06-11 17:42:40 +07:00
commit a0c61f2bc2
64 changed files with 7924 additions and 0 deletions
+76
View File
@@ -0,0 +1,76 @@
# ERD Summary - WebGIS
Dokumen ini merangkum skema database yang dipakai aplikasi pada `sql/migrations/001_init_schema.sql` dan `webgis.sql`.
## Tabel Utama
### `users`
Menyimpan akun pengguna aplikasi.
Kolom penting:
- `email`
- `password_hash`
- `name`
- `organization`
- `org_address`
- `org_phone`
- `org_proof_path`
- `role` dengan nilai `manager` atau `admin`
- `status` dengan nilai `pending`, `active`, `rejected`, atau `pending_verification`
- `email_verified`
- field verifikasi email seperti `email_verification_token_hash`, `email_verification_expires`, dan timestamp terkait
- `approved_by` dan `approved_at`
### `lokasi`
Menyimpan seluruh marker yang tampil di peta.
Kolom penting:
- `nama`
- `no_telp`
- `latitude` dan `longitude`
- `alamat`
- `jenis`
- field khusus rumah seperti `nama_kk`, `rumah_status`, `members`, `monthly_income`
- field bantuan seperti `assisted`, `last_assisted_at`, `assistance_notes`, `sumber_bantuan`, `bentuk_bantuan`
- `photo_path`
- `created_by`
### `bantuan_detail`
Menyimpan detail histori bantuan per lokasi.
Kolom penting:
- `lokasi_id`
- `tanggal_bantuan`
- `pemberi_bantuan`
- `catatan`
- `pemberi_lokasi_id`
- `jumlah`
### `migrations`
Menyimpan catatan migration yang sudah dijalankan.
## Relasi
- `users.approved_by` mengarah ke `users.id`
- `lokasi.created_by` mengarah ke `users.id`
- `lokasi.sumber_bantuan` mengarah ke `lokasi.id`
- `bantuan_detail.lokasi_id` mengarah ke `lokasi.id`
- `bantuan_detail.pemberi_lokasi_id` mengarah ke `lokasi.id`
## Alur Data
1. Guest melihat data publik di peta dan tabel.
2. Pengelola mendaftar, menerima kode verifikasi email, lalu akun dibuat dalam status menunggu persetujuan admin.
3. Admin menyetujui akun pengelola.
4. Pengelola yang disetujui dapat menambah dan mengubah data miliknya.
5. Admin bisa mengelola seluruh data.
## Catatan Implementasi
- Database yang dipakai adalah MySQL/MariaDB.
- Semua relasi foreign key dibuat agar data tetap konsisten.
- Kolom bantuan dan verifikasi email disimpan langsung di tabel utama supaya alurnya sederhana untuk pengembangan berikutnya.