PRODUCT REQUIREMENT DOCUMENT (PRD) ENTERPRISE ECOSYSTEM
SAKILA (Sistem Administrasi Keuangan & Logistik Amal)
The Comprehensive Master Architecture & Complete Institutional ERP Specification
Versi 6.0-Enterprise (Full-Suite NGO ERP & Native Mobile Integration)
- Entitas Pengembang & Pemilik: Lembaga Wakaf Al-Qur'an Braille β Lembaga Swadaya Masyarakat (LSM) Ummi Maktum Voice (UMV), Bandung, Indonesia.
- Domain Utama:
https://adm.umv.or.id(Host Server:adm.umv.or.id/srv.umv.or.id). - Arsitektur Inti: Laravel Enterprise API/Web ERP (PHP 8.4) + Flutter Native Mobile Client (Dart 3.7+).
- Klasifikasi Dokumen: CANONICAL ENTERPRISE ECOSYSTEM SPECIFICATION β Dokumen rujukan menyeluruh lintas disiplin (Auditor Finansial, Enterprise Architect, Tim Keamanan UU PDP, Tim Aksesibilitas, dan Tim Operasional Logistik).
- Tanggal Rilis: 11 September 2026.
00. RINGKASAN EKSEKUTIF: MENGENAL SAKILA SECARA UTUH
SAKILA (Sistem Administrasi Keuangan & Logistik Amal) BUKAN SEKADAR APLIKASI DONASI ATAU CHAT WHATSAPP.
SAKILA adalah Enterprise Resource Planning (ERP) Lembaga Nirlaba Berbasis Tertutup (Closed-Loop Trust & Impact Engine) yang mengelola seluruh rantai nilai lembaga sosial keagamaan:
1. Penerimaan Amanah (Inbound Trust): Penggalangan wakaf, CRM donatur, kuitansi resmi, dan pelayanan CS WhatsApp 24/7.
2. Pengelolaan Internal (Back-Office Governance): Akuntansi buku besar, anggaran program (RAB), perpajakan (E-Bupot), persuratan resmi, dan penggajian staf/amil (Payroll & HRD).
3. Produksi & Pemeliharaan Logistik (Braille Logistics): Pemeliharaan mesin emboss cetak braille, persediaan kertas khusus braille, dan QC perakitan Al-Qur'an 30 Juz.
4. Penyaluran & Dampak Lapangan (Field Delivery & Outbound Impact): Verifikasi mustahik tunanetra, pemrosesan surat permohonan bantuan dari SLB se-Indonesia, dan serah terima mushaf braille dengan bukti foto geotag GPS oleh relawan.
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β SAKILA ENTERPRISE ECOSYSTEM β
βββββββββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββ€
β GARDA DEPAN (MOBILE NATIVE) β GARDA TENGAH (INTEGRATION) β GARDA BELAKANG (WEB ERP) β
β [ Flutter Android/iOS ] β [ Laravel API, Pusher, AI ] β [ Laravel Web Back-Office ]β
βββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββ€
β β’ Portal Donatur & E-Sertifikat β β’ Dual-Gateway WhatsApp Hub β β’ Modul Logistik & Braille β
β β’ Verifikasi Wakaf Masuk β (Meta Cloud API + Mpedia) β β’ Permohonan SLB & Mustahik β
β β’ CS Omnichannel & Whisper (π) β β’ AI Safira (Gemini LLM) β β’ Akuntansi, Kas & Pajak β
β β’ Serah Terima Mushaf Relawan β β’ Real-time Pusher WebSockets β β’ HRD, Payroll & Absensi Amil β
β β’ Dinding Doa Donatur (Aamiin) β β’ Financial State Machine β β’ Persuratan & Kesekretariatanβ
β β’ Kehadiran/Ping Petugas Mobile β β’ Security & Encrypted Gateway β β’ CRM & WhatsApp Blast Center β
βββββββββββββββββββββββββββββββββββ΄βββββββββββββββββββββββββββββββββ΄ββββββββββββββββββββββββββββββββ
01. IDENTITAS, FILOSOFI & VISI NORTH STAR
1.1. Filosofi Kelembagaan
Terinspirasi dari sahabat mulia Nabi Muhammad SAW, Abdullah bin Ummi Maktum, seorang tunanetra yang gigih menghafal wahyu dan diangkat menjadi muadzin serta pemimpin kota Madinah saat Rasulullah SAW bertugas keluar kota.
Lembaga Wakaf Al-Qur'an Braille Ummi Maktum Voice (UMV) berikhtiar membebaskan tunanetra muslim dari buta huruf Al-Qur'an dengan memproduksi dan membagikan Mushaf Al-Qur'an Braille Standar 30 Juz (terdiri dari 30 jilid tebal) secara 100% GRATIS ke seluruh pelosok tanah air.
1.2. Institutional Positioning
- Legalitas: Lembaga Swadaya Masyarakat (LSM) / Lembaga Sosial Wakaf Al-Qur'an Braille (Bukan Yayasan).
- Tanggung Jawab Finansial: Wakaf adalah dana abadi umat (Mauquf bih). Setiap rupiah yang masuk wajib dapat dipertanggungjawabkan secara hukum, akuntansi, dan syariah, serta ditutup dengan laporan penyerahan mushaf braille nyata ke tangan tunanetra.
02. MODUL GARDA BELAKANG: WEB BACK-OFFICE ERP LEMBAGA
Modul-modul ini diakses oleh jajaran manajemen, staf kantor, akuntan, sekretariat, dan teknisi percetakan melalui antarmuka web desktop di https://adm.umv.or.id:
2.1. Modul Penyaluran, Permohonan Mustahik & Asesmen Tunanetra
- Pengontrol Backend:
BeneficiaryRequestController.php,DistributionController.php. - Fungsi Utama:
1. Portal Publik Permohonan Bantuan: Formulir online terbuka bagi kepala sekolah SLB-A, yayasan tunanetra, panti asuhan netra, atau perorangan tunanetra untuk mengajukan bantuan mushaf braille (publicForm,storePublic).
2. Verifikasi Kebutuhan & Prioritas: Menilai tingkat kemampuan baca braille (Paham/Belajar/Belum), kondisi fisik (Total Blind / Low Vision), dan kepemilikan mushaf (Belum punya / Punya tapi sudah aus/kempis titik timbulnya).
3. Manajemen Penyaluran (Distributions): Mengalokasikan nomor seri mushaf yang siap kirim, menugaskan kurir/relawan, dan merekam berita acara serah terima.
2.2. Modul Logistik Percetakan Braille & Aset Mesin
- Pengontrol Backend:
AssetController.php,MaintenanceController.php,MasterDataController.php,LoanController.php. - Fungsi Utama:
1. Perawatan Mesin Emboss Braille: Mesin cetak titik timbul braille (seperti Braillo atau Index Braille) adalah aset paling bernilai bagi lembaga. Modul ini mencatat siklus servis, penggantian spare part pin pengetuk, dan kalibrasi ketebalan titik timbul (MaintenanceController).
2. Inventaris Aset & Checklist: Pencatatan aset inventaris kantor, studio rekaman audio braille, dan perangkat penunjang kantor (AssetController@checklistForm).
3. Peminjaman Alat/Aset: Peminjaman alat kerja lapangan oleh relawan atau divisi lain (LoanController@returnForm).
2.3. Modul Keuangan Umum, Kas, Anggaran (RAB) & Perpajakan
- Pengontrol Backend:
BudgetController.php,FinanceTransactionController.php,WithdrawalController.php,EBupotController.php,TaxRateController.php. - Fungsi Utama:
1. Rencana Anggaran Biaya (RAB / Budgeting): Perencanaan anggaran per program kerja dakwah, percetakan, dan operasional dengan alur persetujuan bertingkat (BudgetController@approve).
2. Buku Besar Kas & Bank (General Ledger): Pencatatan mutasi kas masuk/keluar harian lembaga, mutasi antar-rekening operasional, dan rekonsiliasi bank (FinanceTransactionController@showLedger,transferForm).
3. Pencairan Dana (Withdrawal): Pengajuan pencairan kas operasional program dengan otorisasi resmi (WithdrawalController@approve).
4. Kepatuhan Pajak (E-Bupot & PPh): Integrasi tarif pemotongan pajak PPh 21/23 untuk jasa vendor/pembelian bahan baku kertas braille dan ekspor dokumen bukti potong elektronik (EBupotController@export).
2.4. Modul HRD, Kepegawaian & Penggajian Amil (Payroll)
- Pengontrol Backend:
PayrollController.php,AbsenceController.php,SalaryFixController.php,EmployeeLoanController.php. - Fungsi Utama:
1. Penggajian Otomatis (Payroll): Penghitungan gaji pokok, tunjangan keamilan, insentif lembur cetak braille, dan pemotongan kasbon secara otomatis (PayrollController@generate).
2. Slip Gaji Digital: Penerbitan dan pencetakan slip gaji resmi amil lembaga (PayrollController@printSlip).
3. Rekap Absensi Staf: Rekap kehadiran amil/petugas kantor (AbsenceController).
4. Pinjaman & Kasbon Staf: Pengelolaan pengajuan pinjaman karyawan dan skema potong gaji bulanan (EmployeeLoanController).
2.5. Modul Kesekretariatan & Tata Kelola Persuratan
- Pengontrol Backend:
LetterController.php. - Fungsi Utama:
1. Buku Agenda Surat Masuk & Keluar: Penomoran otomatis surat resmi lembaga (surat permohonan wakaf, surat tugas relawan, surat rekomendasi Kemenag/BWI).
2. Arsip Digital Surat: Pengunggahan pindaian (scan) surat fisik dan pencarian cepat arsip persuratan (LetterController@quickSearch,archive).
3. Konsep Surat (Compose): Penyusunan draf surat keluar internal sebelum ditandatangani pimpinan lembaga.
2.6. Modul CRM Donatur, Segmentasi & WhatsApp Blast Center
- Pengontrol Backend:
DonorController.php,DonorGroupController.php,DonorCleansingController.php,WhatsAppBlastController.php,WhatsAppTemplateController.php. - Fungsi Utama:
1. Pembersihan Data Kontak (Cleansing): Mendeteksi dan menggabungkan kontak ganda (duplikat nama/HP) agar data donatur selalu bersih (DonorCleansingController@execute).
2. Segmentasi Komunitas (Donor Groups): Mengelompokkan donatur berdasarkan majelis taklim, instansi BUMN, korporasi, atau donatur perorangan rutin (DonorGroupController).
3. Mesin WhatsApp Blast Resmi: Mengirimkan kabar buletin perkembangan dakwah braille, doa harian, dan informasi program ke ribuan donatur dengan template terverifikasi Meta (WhatsAppBlastController).
2.7. Modul Kolaborasi Tim, Disposisi Tugas & Suara (VoIP)
- Pengontrol Backend:
TaskController.php,ComplaintController.php,InternalChatController.php,VoipController.php. - Fungsi Utama:
1. Manajemen Tugas & Disposisi: Pembagian tugas harian staf antar-divisi (TaskController).
2. Pusat Resolusi Pengaduan (Complaint Handling): Menampung komplain donatur terkait keterlambatan kuitansi atau konfirmasi transfer (ComplaintController@adminResolve).
3. Chat Internal Staf: Komunikasi privat antar-pegawai di lingkungan kantor (InternalChatController).
4. VoIP / SIP PBX: Ekstensi telepon kabel/IP untuk penerimaan panggilan masuk donatur di meja CS (VoipController).
2.8. Modul Keagenan & Syiar Duta Wakaf
- Pengontrol Backend:
AgentCampaignController.php,AgentDashboardController.php. - Fungsi Utama:
1. Manajemen Duta Wakaf: Pengelolaan relasi agen syiar wakaf di daerah/kampus.
2. Pencairan Insentif Syiar Berbasis OTP: Permintaan tarik bagi hasil/ujrah syiar yang dikunci dengan verifikasi kode OTP WhatsApp (AgentDashboardController@requestWithdrawOtp).
03. MODUL GARDA DEPAN: MOBILE APPLICATION (FLUTTER NATIVE)
Modul-modul ini dirancang khusus untuk layar sentuh HP Android & iOS (sakila-flutter) dengan mengutamakan prinsip Universal Design (Aksesibel untuk Tunanetra & Pengguna Awas):
3.1. Modul Donatur & Jamaah (Donor Surface)
- Fitur Utama:
- Katalog Wakaf Braille Multi-Program: Pilihan wakaf 1 Mushaf Lengkap (30 Juz), Wakaf Per-Juz, Wakaf Kertas Khusus Braille, dan Sedekah Operasional Dakwah.
- Kuitansi Digital & E-Sertifikat Abadi: Halaman kuitansi resmi lengkap dengan QR-Code verifikasi publik (
https://adm.umv.or.id/transactions/{id}/certificate). - Dinding Doa Donatur (Wall of Prayers): Feed doa akad yang diinput saat donasi, dengan tombol interaktif bagi pengguna lain untuk mengaminkan (
amin_count).
3.2. Modul CS Omnichannel & Balas Internal (Whisper π)
- Fitur Utama:
- Native In-House Engine: Terhubung langsung ke WhatsApp donatur tanpa Chatwoot.
- Tombol Gembok Balas Internal (Whisper): Memungkinkan staf CS, supervisor, dan verifikator berdiskusi di dalam ruang chat donatur dengan bubble kuning lembut (
#FFF9C4) tanpa pesan tersebut terkirim ke WhatsApp donatur. - Pemberitahuan Antrean: Indikator status kehadiran petugas (online/offline) dan penugasan tiket obrolan (assignment).
3.3. Modul Admin Wakaf & Verifikasi Mutasi Bank
- Fitur Utama:
- Pemeriksaan Bukti Transfer vs Mutasi: Menampilkan foto struk transfer yang dikirim donatur.
- Pre-Verification Correction: Kemampuan mengoreksi nominal atau bank tujuan sebelum diverifikasi, yang langsung dicatat ke
audit_logs(Action:CORRECT). - Penerbitan Kuitansi Satu Sentuhan: Begitu disetujui, kuitansi resmi terbit dan sistem otomatis mengirimkan pesan terima kasih + kuitansi ke WhatsApp donatur.
3.4. Modul Penyaluran Relawan Lapangan (Volunteer Surface)
- Fitur Utama:
- Serah Terima Mushaf Braille di Lapangan: Form bagi relawan untuk mencatat nama penerima tunanetra atau guru SLB.
- Bukti Dokumentasi Geotag: Pengunggahan foto serah terima yang otomatis menyematkan koordinat lokasi GPS dan cap waktu resmi (WIB) untuk mencegah laporan fiktif.
04. INTEGRITAS FINANSIAL, KEAMANAN DATA & HAK AKSES KETAT
4.1. Canonical Financial State Machine (Model C)
Untuk mencegah manipulasi nilai uang wakaf:
* transactions.amount: Nilai faktual mutasi awal hasil verifikasi bank (IMMUTABLE SELAMANYA).
* transactions.current_amount: Nilai aktif transaksi setelah koreksi resmi.
* transaction_adjustments: Buku catatan kronologis perubahan pasca-verifikasi dengan siklus otorisasi:
text
[ DRAFT ] (Dibuat Staf Keuangan)
β
βΌ (Disetujui Manajer Keuangan)
[ APPROVED ]
β
βΌ (Atomic Database Transaction + lockForUpdate)
[ APPLIED ] βββΊ Update transactions.current_amount & status = 'adjusted'
* Concurrency & Atomicity Protection: Mencegah approval ganda dengan row-level locking dan sifat eksekusi idempotent.
4.2. Pemisahan Wewenang (Separation of Duties)
super_adminBUKAN MANAJER KEUANGAN. Super Admin dilarang menyetujui koreksi finansial rutin.- Emergency Bypass: Penggunaan hak darurat oleh Super Admin wajib memenuhi prinsip 4-Mata (OTP Direktur Eksekutif), memiliki batas waktu (time-box) maksimal 60 menit, memicu alarm instan ke WhatsApp pimpinan, dan tercatat di audit log khusus
EMERGENCY_BYPASS_ACTION.
4.3. Perlindungan Privasi Tunanetra (UU Perlindungan Data Pribadi / PDP)
- Application-Level Encryption (AES-256-CBC): Kolom NIK (
official_id), nomor telepon, dan titik koordinat GPS rumah tunanetra di tabelbeneficiarieswajib terenkripsi di level database. File dump SQL tidak memuat data sensitif dalam teks terbuka (plaintext). - GPS Fuzzing: Tampilan peta sebaran publik ke donatur wajib digeser secara acak dalam radius 500mβ1km (tingkat kelurahan) agar rumah tunanetra tidak menjadi target tindak kejahatan.
- Arsip Dokumentasi Privacy-Blurred: Setelah 24 bulan, foto serah terima diburamkan fitur wajah dan latar rumahnya untuk perlindungan privasi jangka panjang tanpa merusak tautan bukti donasi.
4.4. WhatsApp Idempotency & Anti-Duplikasi Kuitansi
- Kolom
idempotency_keypada tabelomnichannel_messagesberstatus WAJIB (NOT NULL UUID v4) untuk setiap pesan keluar (outgoing). - Setiap upaya retry atau pengalihan rute (fallback) wajib menggunakan
logical_message_iddanidempotency_keyyang sama persis agar donatur tidak menerima pesan kuitansi atau tagihan dobel saat jaringan lambat.
05. SPESIFIKASI INFRASTRUKTUR & PERANGKAT LUNAK
- Sistem Operasi Server: Debian 12 Bookworm (Linux 64-bit).
- Web Server & SSL: Nginx dengan TLS 1.3 / Grade A+ SSL.
- Backend Runtime: PHP 8.4.x (Strict Typing).
- Basis Data Utama (Single Source of Truth): MySQL 8.4.x Enterprise.
- Transport Real-Time: Pusher WebSocket Channels (sub-second broadcast).
- Mesin Kecerdasan Buatan (AI): Gemini LLM Engine (Safira Assistant) dengan protokol Permission-to-Know.
- Mobile Runtime: Dart SDK
^3.7.2& Flutter 3.x Native (Android API 26+ & iOS 14+).
06. ROADMAP PENYELARASAN STRATEGIS (FASE 1 HINGGA FASE 5)
flowchart TD
Fase1[Fase 1: Pengerasan Fondasi Finansial, Permissions & Enkripsi PDP]
Fase2[Fase 2: Aktivasi Modul Lapangan Relawan & Penyaluran Braille Geotag]
Fase3[Fase 3: Audit Total Aksesibilitas Pembaca Layar TalkBack Tuna Netra]
Fase4[Fase 4: Integrasi Modul Pemeliharaan Mesin Emboss Braille & Stok Kertas]
Fase5[Fase 5: Aktivasi Penuh Dinding Doa Donatur & Keterlibatan Spiritual]
Fase1 --> Fase2
Fase2 --> Fase3
Fase3 --> Fase4
Fase4 --> Fase5
- Fase 1 (Fokus Saat Ini - Trust & Security Hardening): Penyelarasan array izin granular Spatie di Flutter, aktivasi tabel
transaction_adjustments(Model C) dengan row-locking, enkripsi AES data mustahik, dan penegakan UUID idempotensi pesan. - Fase 2 (Closed-Loop Impact Lapangan): Membuka layar serah terima mushaf Al-Qur'an Braille di aplikasi mobile Flutter untuk relawan lapangan lengkap dengan foto GPS.
- Fase 3 (Universal Design Perfection): Menyisir seluruh antarmuka mobile agar 100% ramah pembaca layar tuna netra (TalkBack/VoiceOver).
- Fase 4 (Logistik Percetakan Terpadu): Menghubungkan pelacakan nomor seri mushaf dari mesin cetak hingga ke tangan penerima.
- Fase 5 (Spiritual Engagement): Mengaktifkan feed doa bersama di beranda donatur.
07. MATRIKS STATUS KESIAPAN SISTEM & TRAFFIC LIGHT AUDIT REPORT
Untuk keperluan tinjauan para ahli (peer-review & audit), kondisi kesiapan teknis seluruh 33 modul SAKILA diklasifikasikan ke dalam 4 indikator warna:
* π’ HIJAU (Production-Ready): Sudah dibangun, aktif, dan berjalan normal di sistem operasional harian.
* π‘ KUNING (Partial / In-Progress): Fitur/kodenya sudah ada, namun masih membutuhkan penyempurnaan/penguatan (hardening) agar 100% mematuhi spesifikasi.
* π΄ MERAH (Architectural Gap): Spesifikasi arsitektur penting yang belum dituangkan ke dalam skema database fisik atau baris kode.
* βͺ ABU-ABU (Roadmap Backlog): Memang belum dikerjakan saat ini karena dijadwalkan pada roadmap masa depan (Fase 2, 4, 5).
7.1. Matriks Evaluasi 33 Modul Sakila
| Area | Nama Modul / Fitur | Status Kesiapan | Catatan Audit & Realitas Lapangan |
|---|---|---|---|
| Garda Depan (Mobile) | 1. Katalog Wakaf & Submit Donasi | π’ HIJAU | Berjalan lancar untuk donatur umum (guest) maupun member login. |
| 2. Kuitansi Digital & QR E-Sertifikat | π’ HIJAU | QR Code publik aktif permanen, zona waktu WIB sudah sinkron akurat. | |
| 3. CS WhatsApp & Whisper Rahasia (π) | π’ HIJAU | Chat native terhubung, bubble kuning gembok #FFF9C4 berjalan lancar. |
|
| 4. Verifikasi Wakaf Pending | π’ HIJAU | Admin wakaf bisa koreksi nominal/bank sebelum klik setujui kuitansi. | |
| 5. Detak Jantung Petugas (Ping Online) | π’ HIJAU | Aplikasi otomatis kirim status online ke server berkala. | |
| 6. Aksesibilitas Pembaca Layar (TalkBack) | π‘ KUNING | Layar utama rapi, layar sekunder belum semua disisir widget Semantics. |
|
| 7. Modul Serah Terima Relawan Lapangan | βͺ ABU-ABU | Roadmap Fase 2: Form mobile serah terima mushaf belum dibuat. | |
| 8. Dinding Doa Donatur (Wall of Prayers) | βͺ ABU-ABU | Roadmap Fase 5: Kolom amin_count ada di DB, antarmuka doa belum aktif. |
|
| Garda Tengah (API & Core) | 9. Native Omnichannel (Anti-Chatwoot) | π’ HIJAU | 100% In-House tanpa pihak ketiga, handal dan aman. |
| 10. AI Safira (Gemini Engine) | π’ HIJAU | Aktif, melayani sapaan insani tuna netra, patuh aturan non-yayasan. | |
| 11. Daily Wakaf Milestone Harian | π’ HIJAU | Bot otomatis kirim capaian mushaf sore hari ke donatur di hari yang sama. | |
| 12. Sinkronisasi Waktu Server (WIB) | π’ HIJAU | Jam di aplikasi, kuitansi, dan database sudah seragam waktu Jakarta. | |
| 13. Granular Permissions Spatie di Mobile | π‘ KUNING | Di backend roles sudah ada, tapi di mobile masih pakai pengecekan role kasar. | |
| 14. WhatsApp Idempotency Key (UUID v4) | π‘ KUNING | Konsep disepakati, kolom UUID di tabel pesan belum diterapkan di DB. | |
| 15. Uji Kebal AI (Safira Adversarial Test) | π‘ KUNING | AI aktif, tapi automated test suite anti-leak rahasia belum dibuat di backend. | |
| 16. Enkripsi Data Mustahik (UU PDP) | π‘ KUNING | Tabel beneficiaries ada tapi masih 0 data (belum ada NIK yang terancam bocor). |
|
17. Model Finansial C (transaction_adjustments) |
π΄ MERAH | Tabel adjustment ledger & kolom current_amount belum ada di MySQL live. |
|
| 18. Super Admin Emergency Bypass Lock | π΄ MERAH | Fitur kunci 4-mata (OTP Direktur) dan time-lock 60 menit belum dikodekan. | |
| Garda Belakang (Web ERP) | 19. Penggajian Amil (Payroll & Slip Gaji) | π’ HIJAU | Berjalan aktif di web (PayrollController), hitung gaji & cetak slip normal. |
| 20. Buku Kas & Mutasi Keuangan | π’ HIJAU | Berjalan aktif (FinanceTransactionController), pencatatan kas & transfer ada. |
|
| 21. Anggaran Biaya Lembaga (RAB) | π’ HIJAU | Berjalan aktif (BudgetController), fungsi create & approval anggaran aktif. |
|
| 22. Pencairan Dana Kas (Withdrawal) | π’ HIJAU | Berjalan aktif (WithdrawalController), persetujuan pencairan kas operasional. |
|
| 23. Perpajakan Lembaga (E-Bupot & PPh) | π’ HIJAU | Berjalan aktif (EBupotController), ekspor dokumen bukti potong pajak amil. |
|
| 24. CRM Donatur & Pembersihan Duplikat | π’ HIJAU | Berjalan aktif (DonorCleansingController), merge kontak donatur dobel rapi. |
|
| 25. WhatsApp Blast & Manajemen Template | π’ HIJAU | Berjalan aktif (WhatsAppBlastController), broadcast massal resmi Meta. |
|
| 26. Buku Agenda Surat Masuk & Keluar | π’ HIJAU | Berjalan aktif (LetterController), pengarsipan surat resmi lembaga aman. |
|
| 27. Absensi Fingerprint & Kasbon Staf | π’ HIJAU | Berjalan aktif (AbsenceController, EmployeeLoanController). |
|
| 28. Pengaduan Donatur & Disposisi Tugas | π’ HIJAU | Berjalan aktif (ComplaintController, TaskController). |
|
| 29. Form Permohonan Bantuan dari SLB | π’ HIJAU | Berjalan aktif (BeneficiaryRequestController), form online publik siap pakai. |
|
| 30. Keagenan Duta Wakaf & Tarik Ujrah OTP | π’ HIJAU | Berjalan aktif (AgentDashboardController), penarikan komisi aman via OTP. |
|
| 31. Inventaris Aset & Peminjaman Barang | π’ HIJAU | Berjalan aktif (AssetController, LoanController). |
|
| 32. Jadwal Servis Mesin Emboss Braille | π‘ KUNING | MaintenanceController ada dasar CRUD, tapi modul telemetri belum ada. |
|
| 33. Pelacakan Nomor Seri Mushaf ke SLB | βͺ ABU-ABU | Roadmap Fase 4: Integrasi nomor seri percetakan hingga ke tangan siswa. |
7.2. Ringkasan Statistik Kesiapan
- π’ HIJAU (Operasional Normal & Siap Tempur): 20 Fitur (60.6%)
- π‘ KUNING (Jalan / Butuh Sedikit Penguatan): 7 Fitur (21.2%)
- π΄ MERAH (Celah Arsitektur Finansial yang Belum Dibuat): 2 Fitur (6.1%)
- βͺ ABU-ABU (Backlog Rencana Masa Depan Sesuai Roadmap): 4 Fitur (12.1%)
08. KESIMPULAN BAGI AUDITOR & PARA AHLI
Dokumen ini membuktikan bahwa:
1. Bagi Auditor Keuangan: Sakila memiliki tata kelola pencatatan yang memisahkan fakta historis dari koreksi, menolak pengubahan data verified sepihak, dan mematuhi prinsip 4-mata.
2. Bagi Enterprise Architect: Sakila membagi beban secara sehat: antarmuka bergerak yang lincah di mobile (Flutter) didukung oleh mesin ERP yang kokoh di back-office (Laravel).
3. Bagi Pakar Keamanan & Regulasi (UU PDP): Data mustahik tunanetra terlindungi dengan enkripsi tingkat aplikasi dan penyamaran koordinat lokasi.
4. Bagi Pakar Aksesibilitas: Sakila menempatkan penyandang disabilitas netra bukan hanya sebagai penerima manfaat, tetapi juga sebagai pengguna sistem yang dihormati melalui desain universal.
09. MITIGASI RISIKO & STANDAR OPERASIONAL TAMBAHAN
Sebagai penyempurnaan dari hasil audit arsitektur finansial dan logistik di lapangan, standar berikut WAJIB diterapkan:
9.1. Skenario Offline-First Relawan Lapangan
Mengingat infrastruktur jaringan di daerah pelosok (SLB daerah) sering mengalami blank spot:
* Aplikasi mobile relawan (Flutter) wajib memiliki penampungan basis data lokal berbasis SQLite (Couchbase Lite / Isar).
* Form serah terima dan pengunggahan foto geotag harus bisa di-submit dan disimpan ke local queue saat offline.
* Background Sync Worker akan secara otomatis mengunggah data ke server (adm.umv.or.id) segera setelah mendeteksi konektivitas jaringan memadai.
9.2. Strategi Retensi Data (Data Pruning & Archiving)
Untuk mencegah degradasi performa akibat pembengkakan database MySQL:
* Log Audit & Histori WhatsApp: Data yang usianya melebihi 12 bulan tidak boleh dibiarkan di tabel utama.
* Sistem harus mengeksekusi Cron Job bulanan untuk mengekstrak data usang ini ke format .csv.gz atau dipindahkan ke Cold Storage (misal: AWS S3 Glacier / Local Backup Drive) sebelum menghapusnya dari database aktif (Auto-Prune).
9.3. Alur Resolusi Refund (Koreksi Saldo Eksternal)
Selain koreksi nominal salah ketik (Model C Adjustment), ada kasus di mana donatur meminta pengembalian uang (Refund):
* Sistem tidak memproses pengiriman uang keluar secara terprogram (no auto-disbursement API).
* Staf keuangan membuka tiket Refund Request.
* Persetujuan (Approval): Wajib diotorisasi oleh Manajer Keuangan.
* Setelah dana ditransfer kembali ke donatur secara manual oleh bendahara, transaksi dicatat ke dalam sistem sebagai adjustment_refund untuk memastikan neraca kas kembali seimbang.
9.4. Throttling & Anti-Banned WhatsApp Blast
Untuk menghindari sanksi pemblokiran dari Meta akibat pengiriman massal:
* Laravel Queue (seperti Redis Horizon) diwajibkan untuk menahan laju blast dengan batasan maksimal 20 pesan per detik (atau sesuai batasan spesifik tier Meta API).
* Skema Exponential Backoff diterapkan jika terjadi kegagalan pengiriman sesaat (transient errors) untuk mencegah spam flagging.
9.5. Disaster Recovery Plan (DRP)
- RPO (Recovery Point Objective): Maksimal 1 Jam. Server wajib menjalankan sinkronisasi backup database inkremental setiap 1 jam, yang langsung dikirim ke storage terpisah di luar server VPS utama.
- RTO (Recovery Time Objective): Maksimal 24 Jam. Jika server utama (
srv.umv.or.id) rusak secara fisik atau terkena ransomware, tim infrastruktur memiliki waktu maksimal 24 jam untuk melakukan instalasi (provisioning) di server baru dan restore data dari backup terakhir.
Dokumen ini diterbitkan secara sah sebagai cetak biru resmi arsitektur menyeluruh SAKILA Enterprise Ecosystem.
10. ORGANIZATION PUBLIC LANDING PAGE & TENANT TEMPLATE STUDIO
Product Change Request β 16 Oktober 2026 | Status: PLANNED (belum diimplementasikan)
10.1. Tujuan dan Hak Pelanggan
SAKILA adalah ERP SaaS lintas organisasi. Setiap organisasi pelanggan berhak mengelola identitas visual, struktur, konten, dan publikasi landing page milik organisasinya sendiri. SAKILA menyediakan mesin template, editor, hosting, aksesibilitas, dan mekanisme publikasi; tidak boleh memaksakan desain, konten, ataupun program UMV/Al-Qur'an Braille sebagai default universal. Landing page organisasi berbeda dari situs pemasaran SAKILA, dashboard ERP privat, dan program operasional di dalam tenant.
10.2. Pengalaman Pengguna dan Fitur Wajib
- Saat tenant dibuat, sistem menyiapkan draft landing page menggunakan template netral sesuai jenis organisasi; pelanggan dapat mengubah atau membiarkannya tidak dipublikasikan. Pembuatan tenant tidak otomatis menerbitkan konten dummy.
- Template gallery: pilihan beberapa template responsif dan aksesibel (misalnya lembaga sosial, rumah ibadah, pendidikan, komunitas, dan template netral); pilihan, preview, dan pergantian template tidak menghilangkan konten yang tersimpan.
- Customization mandiri oleh admin/editor berwenang: logo, favicon, warna, tipografi dari pilihan aman, header, menu, footer, hero/banner, CTA, susunan section, dan pilihan layout; tampilkan preview desktop/mobile serta preview sebelum publish.
- Content editor: teks, gambar dengan alt text, profil organisasi, kontak, alamat, FAQ, berita/artikel sederhana, tautan sosial, dan section yang dapat disusun ulang. Pilihan section program/kegiatan, penggalangan dana, dan formulir kontak tersedia hanya jika modul dan izin tenant mengizinkan; tidak ada kewajiban memakai modul fundraising.
- Workflow konten: draft β preview β publish/unpublish; revisi/version history dan rollback publikasi; penanda siapa mengubah/menerbitkan serta waktu perubahan. Penyuntingan draft tidak langsung mengubah halaman publik.
- Hak akses: tenant_admin dapat memberi izin khusus landing-page-editor/publisher melalui RBAC; super-admin platform hanya melakukan tugas dukungan sesuai otorisasi dan audit, bukan menguasai konten klien.
- Branding paket: paket Free dapat memakai subdomain SAKILA dan label Powered by SAKILA menurut kontrak; paket Premium dapat mendukung custom domain dan pilihan branding sesuai entitlement. Logo, warna, serta konten inti tetap dapat dikendalikan pelanggan pada kedua paket.
- SEO dan discoverability: title, meta description, Open Graph, canonical URL, sitemap/robots sesuai status publish, dan slug halaman yang aman; draft dan preview tidak terindeks.
- Media management: unggah media dengan batas ukuran/jenis, validasi file dan sanitasi, kompresi gambar yang sesuai, penghapusan aman, quota per tenant, dan pelacakan referensi agar perubahan template tidak merusak aset.
10.3. Domain, HTTPS, dan Status Tenant
- Halaman publik memakai canonical host tenant, contoh
https://namaorganisasi.sakidi.my.id/di LAB; base domain wajib configurable untuk domain resmi SAKILA kelak. - Wildcard SSL ataupun sertifikat per-tenant boleh digunakan jika HTTPS valid, SNI/routing benar, renewal otomatis, dan provisioning melaporkan status kesiapan sebenarnya. Jangan tandai situs siap tayang ketika DNS/vhost/TLS belum valid.
- Custom domain memerlukan verifikasi kepemilikan domain, pemeriksaan collision, TLS valid, dan mapping fail-closed; jangan memakai host tak dikenal sebagai fallback ke tenant lain.
- Suspend/Terminate organisasi menutup akses publik sesuai kebijakan lifecycle; jangan menampilkan konten tenant yang sudah tidak aktif. Purge permanen tetap mengikuti otorisasi terpisah.
- Landing page publik dapat diakses tanpa login; editor, preview nonpublik, dan semua operasi publish wajib menggunakan autentikasi serta otorisasi tenant.
10.4. Keamanan, Isolasi, dan Aksesibilitas
- Data landing page dan media terisolasi per tenant; cegah IDOR, XSS melalui editor/HTML, CSRF, unggahan berbahaya, SSRF pada media remote, injeksi script template, dan kebocoran cache/CDN antar tenant.
- Template dan section hanya menggunakan komponen serta konfigurasi yang diizinkan; jangan menyediakan arbitrary PHP/JS/HTML executable kepada editor tenant pada fase awal.
- WCAG 2.2 AA sebagai target, HTML semantik, struktur heading, label, skip link, keyboard penuh, kontras warna, fokus terlihat, notifikasi
role=status/alert, alternative text, dan navigasi NVDA/JAWS/TalkBack; editor harus aksesibel juga, bukan hanya halaman hasil terbitan. - Statistik publik sederhana (page views/CTA) opsional dan memperhatikan privasi, persetujuan cookie jika diperlukan, serta tanpa mengekspos data back-office.
10.5. Prioritas Rilis dan Batas Cakupan
MVP landing page: gallery template netral, tema dan identitas visual, editor section inti, media aman, preview, publish/unpublish, domain HTTPS siap, SEO dasar, role editor/publisher, dan uji NVDA. Tahap berikutnya: template marketplace, A/B testing, advanced analytics, custom forms, custom domain Premium, multilingual per situs, dan komponen integrasi modul yang lebih kaya. Fitur lanjutan bukan prasyarat MVP kecuali ditetapkan ulang oleh Owner.
10.6. Acceptance Criteria
- Given organisasi baru aktif, when admin membuka Site Builder, then draft template tersedia tetapi halaman dummy belum otomatis terbit.
- Given dua tenant A dan B, when A mengganti logo, layout, atau menerbitkan konten, then perubahan tidak muncul pada B; URL host salah dan permintaan cross-tenant ditolak.
- Given admin mengganti template, when membuka preview dan kemudian publish, then konten tetap utuh, tampilan konsisten di desktop/mobile, dan versi sebelumnya dapat dipulihkan.
- Given pengguna tanpa izin publish, when mencoba publish melalui UI ataupun HTTP langsung, then operasi ditolak serta dicatat sesuai audit policy.
- Given URL tenant belum punya TLS valid atau organisasi suspended, when situs dibuka, then sistem tidak mengklaim halaman live/ready atau menayangkan konten milik tenant lain.
- Given pengguna NVDA, when mengubah tema, section, media, preview, dan publish, then semua kontrol dan status dapat ditelusuri keyboard serta diumumkan dengan benar.
Ketentuan implementasi: PRD ini mendefinisikan kebutuhan produk; tidak mengotorisasi deployment, perubahan database, atau infrastruktur saat dokumen disunting. Pengembangan mengikuti prioritas dan acceptance terpisah.
10.7. Retensi Data Pasca-Terminate β BACKLOG-ONLY
Status: BACKLOG / NOT IMPLEMENTED
Kebutuhan produk yang masih menunggu persetujuan terpisah:
- Retensi data organisasi setelah Terminate selama 14 hari kerja.
- Scheduled export sebelum batas retensi.
- Notifikasi email dan pengingat sebelum batas retensi tercapai.
- Pengecualian legal hold yang menghentikan penghitung retensi sesuai otorisasi hukum.
- Controlled purge setelah seluruh prasyarat persetujuan terpenuhi.
Seluruh penghapusan/purge tetap dilarang sampai policy, approval, mekanisme, audit, backup/restore, dan penerimaan dual-control disetujui secara terpisah. Bagian backlog ini tidak mengotorisasi migration, schema, route, lifecycle change, provisioning, atau implementasi purge.
10.8. Automatic DEMO Data on Organization Creation β MVP DESIGN
Status: DESIGN / NOT IMPLEMENTED
Create Organization menyediakan pilihan aksesibel:
- Mulai Kosong sebagai default.
- Isi dengan Data Contoh (DEMO) untuk paket
foundation_social_v1yang diizinkan.
Setelah organisasi dan tenant berhasil dibuat melalui jalur resmi, job tenant-scoped terpisah menyiapkan data DEMO. Job DEMO memiliki status, retry, lock, timeout, failure redaction, dan idempotency sendiri; status HTTPS tidak digabung dengan status DEMO. HTTPS Ready tidak menunggu DEMO Ready, dan DEMO Ready tidak mengklaim HTTPS Ready.
MVP Foundation Social v1 hanya mencakup data fiktif berlabel DEMO yang didukung schema/model terverifikasi: user simulasi dengan role yang tersedia, divisi dasar, program, donor, dan transaksi dengan foreign key valid. Beneficiary, distribusi, payroll, Koperasi, PBX, omnichannel, dan finance lanjutan ditunda sampai capability contract dan preflight masing-masing lulus.
Seeder global atau lintas-tenant (DatabaseSeeder, MasterDummySeeder, CoreProgramsSeeder, CoreCategoriesSeeder, dan ProductDemoSeeder) tidak boleh dipanggil langsung oleh alur organisasi. Implementasi wajib memakai runner tenant-scoped, schema allowlist, demo_run_id, read-back tenant identity, dan selective cleanup allowlist. Tidak boleh ada data pribadi nyata, credential, token, atau password default.
Paket template masjid, pendidikan, dan organisasi umum hanya dirancang sebagai perluasan berikutnya; tidak termasuk implementasi MVP ini. Semua migration, queue worker, database write, cleanup endpoint, dan deployment memerlukan acceptance implementasi terpisah.