Pendahuluan
Latar belakang, tujuan, dan ruang lingkup sistem
1.1 Latar Belakang
Bank Indonesia Kantor Perwakilan Jawa Barat menyelenggarakan Karya Kreatif Jawa Barat (KKJ) 2026 pada tanggal 26–28 Juni 2026 di Trans Studio Mall (TSM) Bandung. Dalam rangka memaksimalkan dampak sosial acara ini, Bank Indonesia berinisiatif mengintegrasikan program wakaf produktif dalam ekosistem event melalui konsep "Wakaf Kopi".
Konsep ini memungkinkan pengunjung acara untuk berwakaf secara digital melalui website yang tersedia di booth, memilih tujuan program wakaf sesuai kehendak, melakukan pembayaran via QRIS, dan mendapatkan voucher kopi gratis sebagai bentuk apresiasi atas kebaikan yang telah dilakukan. Seluruh dana yang terkumpul akan disalurkan kepada lembaga-lembaga Nazhir resmi yang telah bermitra.
1.2 Tujuan Dokumen
Dokumen ini merupakan Product Requirements Document (PRD) yang mendefinisikan seluruh persyaratan fungsional dan non-fungsional untuk pengembangan sistem Wakaf Kopi. Dokumen ini berfungsi sebagai:
Referensi bagi tim developer dalam membangun seluruh komponen sistem
Dokumen formal yang disepakati antara Bank Indonesia dan tim pengembang
Acuan untuk proses User Acceptance Testing (UAT) sebelum go-live
1.3 Ruang Lingkup
Sistem yang akan dikembangkan mencakup tiga komponen utama: Website Publik yang dapat diakses oleh pengunjung event, Dashboard Admin untuk pengelolaan data dan pelaporan oleh tim Bank Indonesia, serta Interface Kasir yang khusus digunakan untuk validasi voucher kopi di meja kasir. Seluruh sistem berbasis web dan dapat diakses melalui browser standar tanpa instalasi aplikasi tambahan.
Gambaran Umum Sistem
Arsitektur konseptual dan ekosistem Wakaf Kopi
2.1 Konsep Utama Sistem
Wakaf Kopi adalah platform digital yang menghubungkan empat ekosistem secara terintegrasi: pengunjung event sebagai wakif, website sebagai media transaksi, Midtrans QRIS sebagai kanal pembayaran, dan lembaga Nazhir sebagai penerima dana wakaf. Sistem ini memastikan setiap transaksi tercatat, terverifikasi, dan dapat diaudit secara transparan.
- Diakses pengunjung dengan scan QR code di booth event
- Menampilkan pilihan program wakaf beserta deskripsi
- Form isian data wakif dan nominal wakaf
- Pembayaran QRIS real-time via Midtrans
- Voucher kopi digital dengan QR code unik terenkripsi
- Halaman laporan publik untuk transparansi dana
- Monitoring real-time selama event berlangsung
- Manajemen program wakaf dan lembaga mitra
- Data lengkap wakif dan riwayat transaksi
- Analytics mendalam: funnel, tren, peak hours
- Validasi voucher oleh kasir (interface terpisah)
- Laporan formal untuk Bank Indonesia (Excel + PDF)
2.2 Alur Sistem Secara Keseluruhan
Pengunjung
Website
Data wakif
Midtrans
Otomatis
Di kasir
2.3 Posisi Legal Sistem
Sistem Wakaf Kopi berposisi sebagai platform fasilitator yang menghubungkan wakif dengan lembaga Nazhir resmi bersertifikat BWI (Badan Wakaf Indonesia). Sistem ini tidak bertindak sebagai Nazhir independen. Seluruh dana yang terkumpul disalurkan langsung kepada lembaga mitra yang telah ditetapkan. Pernyataan ini akan dicantumkan secara eksplisit dalam Syarat & Ketentuan (Terms of Service) website. Biaya MDR QRIS (0,7% per transaksi) ditanggung sepenuhnya oleh Bank Indonesia.
Informasi Proyek & Infrastruktur
Detail teknis, teknologi, dan infrastruktur yang digunakan
3.1 Detail Event & Klien
3.2 Infrastruktur Teknis
3.3 Ringkasan Anggaran
Peran Pengguna (User Roles)
Definisi aktor dan hak akses dalam sistem
- Pengunjung event yang ingin berwakaf
- Tidak memerlukan akun atau login
- Berinteraksi via website publik
- Menerima voucher kopi setelah wakaf
- Dapat menunjukkan QR voucher ke kasir
- Petugas meja kopi di booth event
- Hanya dapat validasi voucher
- Akses: scan laser / scan kamera
- Dapat mencetak struk atau kirim email
- Tidak dapat melihat data lain
- Tim operasional Bank Indonesia
- Monitoring dashboard selama event
- Lihat & export data transaksi
- Manajemen program dan voucher
- Generate laporan Excel dan PDF
- Tim developer / IT Bank Indonesia
- Seluruh hak akses Admin
- Kelola akun pengguna admin
- Konfigurasi sistem dan API
- Akses log aktivitas penuh
Spesifikasi Halaman Website Publik
8 halaman publik yang dapat diakses tanpa login — P1 = Kritis, P2 = Penting, P3 = Pendukung
/Tujuan Halaman
Halaman pertama yang dilihat pengunjung setelah scan QR. Harus memberi kesan profesional, memotivasi untuk berwakaf, dan memudahkan navigasi ke program wakaf.
Komponen Utama
- Hero section: headline utama + tombol "Wakaf Sekarang"
- Counter animasi: total wakif, total dana terkumpul
- Grid program wakaf (card dengan foto, deskripsi, tombol)
- Seksi "Cara Berwakaf" (3 langkah visual)
- Daftar lembaga mitra beserta logo
- Trust indicators: transparan, amanah, tepat sasaran
- Footer dengan info event dan disclaimer legal
Persyaratan Khusus
- Waktu load halaman < 2 detik di koneksi 4G
- Fully responsive: desktop, tablet, handphone
- Counter terkumpul diperbarui setiap 60 detik
- Desain sesuai identitas KKJ 2026 + BI
/programTujuan Halaman
Menampilkan seluruh program wakaf yang tersedia dalam format yang mudah dibandingkan. Membantu pengunjung memilih program sesuai niat.
Komponen Utama
- Grid card program: foto, nama, deskripsi singkat
- Nama lembaga mitra per program
- Total terkumpul per program (opsional)
- Tombol "Wakaf Sekarang" di setiap card
- Filter program berdasarkan lembaga (jika lebih dari 3 lembaga)
Program Wakaf (Initial)
- Wakaf Sumur Bersih (Rumah Bintang Indonesia)
- Wakaf Masjid Pelosok (BSI Maslahat)
- Wakaf Al-Qur'an (Rumah Bintang Indonesia)
- Wakaf Motor Dakwah Dai Toraja (Dompet Dhuafa)
- Wakaf Sekolah Pedalaman (Dompet Dhuafa)
- Wakaf Palestina (Kasih Palestina)
/program/{slug}Tujuan Halaman
Menampilkan detail program wakaf yang dipilih sekaligus menyediakan form untuk memulai transaksi wakaf. Ini adalah halaman utama konversi.
Komponen Utama
- Foto + nama + deskripsi lengkap program
- 3 manfaat utama program (ikon + teks)
- Info lembaga mitra (logo + nama)
- Kutipan hadits/dalil relevan
- Form: nama lengkap, nomor HP, doa/harapan (opsional)
- Pilihan nominal: 4 preset + input bebas
- Info voucher kopi sebagai reward
- Tombol "Lanjutkan ke Pembayaran"
- Pernyataan data aman + link ToS
Validasi Form
- Nama: wajib, min 3 karakter
- Nomor HP: wajib, format Indonesia (08xx/+62)
- Email: opsional, validasi format jika diisi
- Nominal: wajib, min Rp 10.000
- Validasi client-side + server-side
/bayar/{kode_transaksi}Tujuan Halaman
Menampilkan QRIS Midtrans untuk proses pembayaran. Halaman ini kritikal — harus reliable dan memberikan panduan yang jelas kepada pengunjung.
Komponen Utama
- Ringkasan wakaf: nama, program, nominal
- QR Code QRIS Midtrans (ukuran besar, mudah di-scan)
- Countdown timer 15 menit (kedaluwarsa QRIS)
- Instruksi bayar: buka e-wallet/m-banking → scan QRIS
- Status pembayaran: polling setiap 5 detik
- Auto-redirect ke halaman sukses saat paid
- Tombol "Cek Status" manual jika auto tidak berjalan
- Pesan jika transaksi expired + opsi mulai ulang
Persyaratan Teknis
- Polling status ke API setiap 5 detik
- Tampilkan animasi loading saat polling
- Handle expired QRIS dengan pesan jelas
- Proteksi: halaman hanya bisa diakses pemilik transaksi
/selesai/{kode_transaksi}Tujuan Halaman
Menampilkan konfirmasi wakaf berhasil dan voucher kopi dengan QR code unik. Ini adalah halaman reward yang ditunjukkan pengunjung ke kasir.
Komponen Utama
- Konfirmasi "Wakaf Berhasil" + ucapan apresiasi
- Detail transaksi: nama, program, nominal, waktu
- Voucher kopi: QR code unik + kode teks
- Masa berlaku voucher (mis: s/d 30 Juni 2026)
- Instruksi: "Tunjukkan QR ini ke kasir"
- Tombol "Simpan Voucher" (screenshot hint)
- Kutipan Al-Qur'an tentang wakaf
- Tombol "Kembali ke Beranda"
Keamanan Voucher
- QR berisi payload terenkripsi HMAC-SHA256
- Satu transaksi hanya menghasilkan satu voucher
- Status voucher tampil jika sudah digunakan
- Halaman tetap accessible hingga voucher expired
/status/{kode_transaksi}Tujuan Halaman
Halaman fallback jika pengunjung keluar dari halaman bayar sebelum redirect otomatis. Memungkinkan cek status manual dan akses ulang ke voucher.
Komponen Utama
- Status transaksi (pending/berhasil/gagal/kedaluwarsa)
- Tombol "Cek Ulang Status" → query ke Midtrans
- Jika berhasil: tampilkan link ke halaman voucher
- Jika gagal/expired: opsi mulai transaksi baru
Kasus Penggunaan
- Pengunjung menutup browser sebelum redirect
- Koneksi internet terputus saat redirect
- Ingin mengakses ulang voucher yang sudah ada
/laporanTujuan Halaman
Menampilkan data terkumpul secara publik untuk membangun kepercayaan pengunjung dan membuktikan transparansi pengelolaan dana.
Komponen Utama
- Total dana terkumpul (diperbarui otomatis)
- Jumlah wakif berpartisipasi
- Breakdown per program wakaf (bar chart)
- Breakdown per lembaga penerima
- Info jadwal penyaluran simbolis
- Data di-cache 5 menit (performa)
Catatan
- Data ditampilkan secara agregat, tidak per individu
- Nama wakif tidak ditampilkan di halaman publik
- Diperbarui setiap 5 menit via cache
/tentangTujuan Halaman
Memberikan informasi resmi tentang program Wakaf Kopi, penyelenggara, dan disclaimer legal yang diperlukan untuk compliance.
Komponen Utama
- Deskripsi program Wakaf Kopi
- Info penyelenggara: Bank Indonesia Jabar
- Profil singkat lembaga mitra wakaf
- Syarat & Ketentuan (ToS)
- Disclaimer posisi sebagai fasilitator
- Informasi kontak / helpdesk event
Persyaratan Legal
- Wajib cantumkan: "WakafKopi adalah fasilitator, bukan Nazhir"
- Wajib cantumkan: nama lembaga Nazhir penerima
- Konten ToS disetujui oleh pihak Bank Indonesia
Spesifikasi Dashboard Admin
12 menu dashboard untuk pengelolaan sistem oleh tim Bank Indonesia
Alur Pengguna (User Flows)
Diagram alur lengkap untuk setiap skenario penggunaan sistem
wakafkopi.id secara otomatis./admin/kasir dengan akun kasir. Tampilan interface kasir muncul — tanpa menu lain.window.print(). Dialog print browser muncul dengan printer iWare C58BT sebagai default. Kasir klik Print.Persyaratan Fungsional
MUST = wajib ada · SHOULD = sebaiknya ada · COULD = opsional jika waktu memungkinkan
| ID | Prioritas | Persyaratan | Halaman/Menu |
|---|---|---|---|
| FR-001 | MUST | Sistem harus menampilkan minimal 6 program wakaf yang dapat dipilih pengunjung | P-01, P-02 |
| FR-002 | MUST | Pengunjung harus dapat mengisi form wakaf tanpa memiliki akun | P-03 |
| FR-003 | MUST | Pembayaran hanya melalui QRIS via Midtrans dengan countdown timer 15 menit | P-04 |
| FR-004 | MUST | Sistem harus menghasilkan voucher kopi otomatis setelah pembayaran dikonfirmasi Midtrans | P-05, Sistem |
| FR-005 | MUST | QR code voucher harus terenkripsi dengan HMAC-SHA256 dan tidak dapat dipalsukan | M-07, Sistem |
| FR-006 | MUST | Setiap voucher hanya dapat ditukarkan satu kali (one-time use) dengan atomic database update | M-07, Sistem |
| FR-007 | MUST | Interface kasir harus mendukung validasi via laser scanner USB HID (iWare BS-E8QR) | M-07 |
| FR-008 | MUST | Interface kasir harus mendukung validasi via kamera browser (html5-qrcode) | M-07 |
| FR-009 | MUST | Dashboard admin harus menampilkan data real-time (auto-refresh 30 detik) selama event | M-01 |
| FR-010 | MUST | Sistem harus menyediakan ekspor laporan dalam format Excel (.xlsx) mencakup minimal 6 jenis laporan | M-09 |
| FR-011 | MUST | Sistem harus menyediakan ekspor laporan formal PDF dengan header logo Bank Indonesia dan KKJ 2026 | M-09 |
| FR-012 | MUST | Kasir harus dapat mencetak struk thermal 58mm langsung dari browser via window.print() | M-07 |
| FR-013 | MUST | Sistem harus mengirim struk konfirmasi via email (Google Workspace SMTP) setelah kasir meminta | M-07 |
| FR-014 | MUST | Midtrans webhook harus diverifikasi dengan signature key sebelum memproses notifikasi | Sistem |
| FR-015 | MUST | Semua transaksi, scan voucher, dan aksi admin harus tercatat di log aktivitas | M-12 |
| FR-016 | SHOULD | Halaman laporan publik harus menampilkan total dana terkumpul secara agregat per program | P-07 |
| FR-017 | SHOULD | Dashboard harus menampilkan analytics funnel konversi dan heatmap jam tersibuk | M-02 |
| FR-018 | SHOULD | Admin harus dapat melakukan rekonsiliasi manual antara data lokal dan data Midtrans | M-05 |
| FR-019 | SHOULD | Sistem harus menampilkan alert jika voucher yang sama di-scan lebih dari 2 kali | M-06 |
| FR-020 | COULD | Counter total wakif dan total dana di landing page dapat diperbarui setiap 60 detik secara animasi | P-01 |
Persyaratan Non-Fungsional
Standar performa, keamanan, dan ketersediaan sistem
- Waktu load halaman publik < 2 detik pada koneksi 4G
- Response API validasi voucher < 500ms
- Response API cek status pembayaran < 1 detik
- Dashboard admin load < 3 detik (data besar)
- Mampu menangani 100 concurrent user tanpa degradasi
- Cache Redis untuk query berat (TTL 60 detik)
- PHP OPcache aktif di VPS
- HTTPS wajib di semua halaman (SSL Let's Encrypt)
- HMAC-SHA256 untuk semua QR code voucher
- CSRF protection aktif di semua form
- Rate limiting: 5 request/menit per IP untuk endpoint wakaf
- Row-level locking untuk redemption voucher (cegah race condition)
- Midtrans webhook signature verification wajib
- Admin password hashed (bcrypt, cost 12)
- Session expiry 2 jam untuk akun kasir
- Google Chrome 120+ (desktop & mobile) — UTAMA
- Safari 17+ (iOS iPhone) — penting untuk pengunjung
- Mozilla Firefox 120+
- Microsoft Edge 120+
- Samsung Internet (Android) — penting untuk pengunjung
- Responsive layout: 320px hingga 1920px lebar
- Camera API: HTTPS wajib untuk kamera kasir
- Target uptime 99.5% selama periode event (26–28 Juni)
- Queue worker Supervisor (auto-restart jika crash)
- MySQL backup harian ke storage lokal VPS
- Error logging aktif (Laravel Telescope atau log file)
- Halaman fallback 503 jika maintenance mode aktif
- Midtrans inquiry manual tersedia jika webhook gagal
Perangkat Kasir (Hardware)
Spesifikasi hardware yang dikonfirmasi untuk digunakan di meja kasir event
| Perangkat | Model | Spesifikasi | Fungsi dalam Sistem | Status |
|---|---|---|---|---|
| Laser / QR Scanner | iWare BS-E8QR | USB Wired · HID Keyboard Emulation · Membaca 1D + 2D QR Code · Suffix Enter otomatis | Scan QR code voucher dari layar HP pengunjung. Input sebagai keyboard USB ke PC kasir. | ✓ Dikonfirmasi |
| Thermal Printer | iWare C58BT | Bluetooth · Lebar kertas 58mm · Printable area 52mm | Cetak struk redemption voucher setelah kasir memilih "Print Struk". CSS @page 58mm via browser print. | ✓ Dikonfirmasi |
| PC / Laptop Kasir | Disediakan klien | Windows 10/11 · Chrome 120+ · Bluetooth (untuk printer) · Port USB (untuk scanner) | Menjalankan browser Chrome, mengakses interface kasir di /admin/kasir. |
⚠ Disediakan klien |
| Handphone Kasir (alternatif) |
Disediakan klien | Android / iOS · Chrome / Safari terbaru · Kamera belakang | Alternatif jika laser scanner tidak tersedia. Menggunakan mode "Kamera" di interface kasir. | Opsional |
Printer iWare C58BT harus dipasangkan (pair) via Bluetooth ke PC kasir sehari sebelum event. Custom paper size 58mm harus dikonfigurasi di driver printer Windows. Test print dari browser Chrome wajib dilakukan untuk verifikasi layout struk. Disarankan menguji juga mode kamera di HP sebagai backup jika scanner mengalami masalah.
Batasan & Asumsi
Hal-hal yang berada di luar cakupan dan asumsi yang digunakan dalam pengembangan
11.1 Di Luar Ruang Lingkup (Out of Scope)
- Aplikasi mobile native (Android / iOS)
- Integrasi dengan sistem internal Bank Indonesia
- Pengelolaan rekening atau transfer dana langsung ke lembaga (dilakukan manual oleh BI)
- Sistem manajemen inventory kopi
- Fitur live streaming atau media sosial
- Infrastruktur server setelah akhir Juni 2026 (post-event hosting)
- Pengembangan fitur baru setelah serah terima proyek
- Pembuatan konten foto/video untuk program wakaf
11.2 Asumsi Pengembangan
- Akun Midtrans existing sudah aktif dan terverifikasi untuk production
- Akun Google Workspace untuk SMTP email tersedia dan dapat di-generate App Password
- Klien menyediakan PC kasir, scanner, dan printer yang dikonfirmasi
- Konten program wakaf (deskripsi, foto) disediakan oleh klien selambatnya H-7
- Data lembaga mitra dan nomor rekening (untuk laporan) disediakan klien
- Proses UAT (User Acceptance Testing) dilakukan H-3 event
- Revisi pasca-UAT tidak melebihi 2 hari kerja
- Venue event (TSM) memiliki akses internet yang cukup untuk operasional kasir
Deliverables, Timeline & Persetujuan
Daftar hasil pengerjaan, rencana jadwal, dan persetujuan formal
12.1 Daftar Deliverables
12.2 Rencana Timeline
12.3 Persetujuan Dokumen
Dengan menandatangani dokumen ini, para pihak menyatakan telah membaca, memahami, dan menyetujui seluruh persyaratan yang tercantum dalam Product Requirements Document ini. Dokumen ini menjadi dasar pengembangan dan referensi penerimaan (acceptance) sistem.
| Pihak | Nama & Jabatan | Tanda Tangan | Tanggal |
|---|---|---|---|
| Bank Indonesia Jabar Perwakilan Klien |
___________________________ Jabatan: ___________________ | _____ / _____ / 2026 | |
| Tim Pengembang Penanggung Jawab Teknis |
___________________________ Full Stack Developer | _____ / _____ / 2026 |
Perubahan terhadap persyaratan setelah dokumen ini ditandatangani harus didokumentasikan dalam addendum tertulis yang disetujui kedua belah pihak. Perubahan yang berdampak pada timeline atau anggaran akan didiskusikan dan disepakati terlebih dahulu sebelum implementasi.