# INFORMASI DESA ENGINE

## Sistem Informasi Administrasi Desa (SIAD)

### Desa Siofa Banua

---

# 1. TUJUAN

Dokumen ini menjadi pedoman implementasi teknis Modul Informasi Desa agar seluruh proses pengembangan mengikuti arsitektur Laravel yang konsisten, mudah dipelihara (maintainable), mudah dikembangkan (scalable), dan sesuai dengan standar proyek SIAD.

---

# 2. KARAKTERISTIK MODUL

Modul Informasi Desa menggunakan konsep **Singleton Module**, yaitu hanya memiliki satu data yang mewakili informasi resmi desa.

Karakteristik:

* Tidak memiliki fitur tambah data.
* Tidak memiliki fitur hapus data.
* Hanya terdapat satu record.
* Administrator hanya melakukan pembaruan data.

---

# 3. ARSITEKTUR

Menggunakan pola:

Controller

↓

Service

↓

Model

↓

Database

Controller tidak boleh berisi business logic.

Seluruh business logic berada pada Service.

---

# 4. STRUKTUR DIREKTORI

app/

├── Http/

│ ├── Controllers/

│ │ └── InformasiDesaController.php

│ └── Requests/

│ └── UpdateInformasiDesaRequest.php

│

├── Models/

│ └── InformasiDesa.php

│

├── Services/

│ └── InformasiDesaService.php

resources/

└── views/

└── informasi-desa/

├── show.blade.php

└── edit.blade.php

---

# 5. DATABASE

Tabel:

informasi_desa

Konsep:

Singleton Record

Jumlah Record:

1

Primary Key:

id

---

# 6. ALUR SISTEM

Administrator

↓

Menu Informasi Desa

↓

Controller

↓

Service

↓

Model

↓

Database

↓

Blade

---

# 7. ROUTE

Menggunakan Resource Route terbatas.

Hanya:

GET

Informasi Desa

GET

Edit Informasi Desa

PUT

Update Informasi Desa

Tidak menggunakan:

Create

Store

Destroy

---

# 8. CONTROLLER

Controller hanya bertugas:

* mengambil data
* memanggil Service
* mengirim data ke View
* redirect setelah update

Controller tidak boleh:

* melakukan validasi manual
* query database kompleks
* business logic

---

# 9. SERVICE

Service bertanggung jawab terhadap:

* mengambil singleton record
* update data
* membuat record pertama apabila database kosong
* business rule

---

# 10. MODEL

Model:

InformasiDesa

Menggunakan:

fillable

casts

timestamps

Tidak menggunakan business logic.

---

# 11. FORM REQUEST

Seluruh validasi menggunakan:

UpdateInformasiDesaRequest

Controller tidak boleh menggunakan validate().

---

# 12. VALIDASI

Field wajib:

Tentang Desa

Visi

Misi

Struktur Organisasi

Jam Kerja

Semua menggunakan tipe string.

---

# 13. BLADE

Halaman Show

Menampilkan seluruh informasi dalam Card.

Halaman Edit

Menampilkan form edit.

Menggunakan:

Textarea

untuk seluruh field.

---

# 14. UI

Halaman menggunakan layout admin SIAD.

Header:

Informasi Desa

Button:

Edit Informasi

Tidak terdapat:

Tambah

Delete

Import

Export

---

# 15. AUTHORIZATION

Administrator

View

Edit

Operator

View

Readonly

Warga

Tidak memiliki akses.

---

# 16. ERROR HANDLING

Apabila record belum ada:

Service otomatis membuat record default.

Administrator tidak perlu membuat data pertama.

---

# 17. AUDIT LOG

Seluruh perubahan dicatat.

Minimal menyimpan:

User

Tanggal

Perubahan Data

---

# 18. PORTAL

Portal Desa hanya membaca data.

Portal tidak boleh melakukan update.

Portal menggunakan data terbaru secara otomatis.

---

# 19. PERFORMANCE

Menggunakan satu query untuk mengambil data.

Tidak menggunakan query berulang.

Tidak menggunakan relasi yang tidak diperlukan.

---

# 20. STANDAR KODE

Mengikuti PSR-12.

Menggunakan Laravel Best Practice.

Menggunakan Dependency Injection.

Menghindari duplicate code.

Menggunakan Service Layer.

Menggunakan Form Request.

Menggunakan Singleton Pattern untuk data Informasi Desa.

---

# HASIL IMPLEMENTASI

Setelah modul selesai, Administrator dapat memperbarui informasi desa melalui panel admin, sedangkan Portal Desa akan menampilkan informasi tersebut secara otomatis tanpa adanya duplikasi data maupun konfigurasi tambahan.
