Initial commit of unified WebGIS projects
This commit is contained in:
@@ -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.
|
||||
Reference in New Issue
Block a user