Dipersiapkan untuk Bank Indonesia Kantor Perwakilan Jawa Barat
Acara Karya Kreatif Jawa Barat 2026 · TSM Bandung
Product Requirements Document
Sistem Digital
Wakaf Kopi
Platform Wakaf Digital Terintegrasi dengan Reward Voucher Kopi — Karya Kreatif Jawa Barat 2026
Web-Based Platform Midtrans QRIS Laravel 13 + React 19 Admin Dashboard Kasir System Laporan PDF & Excel

Kendali Dokumen

VersiTanggalDiubah olehKeterangan
1.025 Mei 2026Tim DeveloperVersi awal dokumen PRD

Persetujuan Diperlukan dari

JabatanNamaTanda Tangan
Perwakilan Bank Indonesia Jabar________________
Penanggung Jawab Teknis________________
Daftar Isi
1Pendahuluan
2Gambaran Umum Sistem
3Informasi Proyek & Infrastruktur
4Peran Pengguna (User Roles)
5Spesifikasi Halaman Website Publik
6Spesifikasi Dashboard Admin
7Alur Pengguna (User Flows)
8Persyaratan Fungsional
9Persyaratan Non-Fungsional
10Perangkat Kasir (Hardware)
11Batasan & Asumsi
12Deliverables, Timeline & Persetujuan
1

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:

Panduan Pengembangan

Referensi bagi tim developer dalam membangun seluruh komponen sistem

Dasar Kesepakatan

Dokumen formal yang disepakati antara Bank Indonesia dan tim pengembang

Kriteria Penerimaan

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.

2

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.

🌐 Website Publik (Facing Pengunjung)
  • 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
⚙️ Dashboard Admin (Facing Tim BI)
  • 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

📱 Scan QR
Pengunjung
🌐 Pilih Program
Website
📋 Isi Form
Data wakif
💳 Bayar QRIS
Midtrans
🎫 Voucher QR
Otomatis
☕ Tukar Kopi
Di kasir
Paralel: Semua transaksi masuk ke Dashboard Admin secara real-time untuk monitoring

2.3 Posisi Legal Sistem

Pernyataan Legal Penting

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.

3

Informasi Proyek & Infrastruktur

Detail teknis, teknologi, dan infrastruktur yang digunakan

3.1 Detail Event & Klien

PenyelenggaraBank Indonesia Kantor Perwakilan Jawa Barat
Nama EventKarya Kreatif Jawa Barat 2026
Tanggal Event26 – 28 Juni 2026 (3 Hari)
LokasiTrans Studio Mall (TSM) Bandung
Deadline Development25 Juni 2026 (30 hari)
Payment GatewayMidtrans (akun existing, QRIS only)

3.2 Infrastruktur Teknis

ServerVPS AMD 4 Core · 4GB RAM · 10GB NVMe
OS ServerUbuntu 24.04 LTS
Web FrameworkLaravel 13 + Inertia.js + React 19
DatabaseMySQL 8.0 + Redis 7 (cache & queue)
StylingTailwind CSS 4 + Vite
Email SMTPGoogle Workspace

3.3 Ringkasan Anggaran

Domain + SSL
Rp 400.000
Registrasi 1 tahun
VPS Server
Rp 600.000
1 bulan (periode event)
Jasa Development
Rp 8.500.000
UI/UX · Frontend · Backend · DevOps
Total Proyek
Rp 9.500.000
Termasuk semua komponen
4

Peran Pengguna (User Roles)

Definisi aktor dan hak akses dalam sistem

🙏
Wakif
Publik / Tanpa Login
  • 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
Kasir
Login — Akses Terbatas
  • 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
⚙️
Admin
Login — Akses Operasional
  • Tim operasional Bank Indonesia
  • Monitoring dashboard selama event
  • Lihat & export data transaksi
  • Manajemen program dan voucher
  • Generate laporan Excel dan PDF
🔑
Super Admin
Login — Akses Penuh
  • Tim developer / IT Bank Indonesia
  • Seluruh hak akses Admin
  • Kelola akun pengguna admin
  • Konfigurasi sistem dan API
  • Akses log aktivitas penuh
5

Spesifikasi Halaman Website Publik

8 halaman publik yang dapat diakses tanpa login — P1 = Kritis, P2 = Penting, P3 = Pendukung

P-01
Beranda (Landing Page)
/
Prioritas 1

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
P-02
Daftar Program Wakaf
/program
Prioritas 2

Tujuan 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)
P-03
Detail Program & Form Wakaf
/program/{slug}
Prioritas 1

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
P-04
Halaman Pembayaran QRIS
/bayar/{kode_transaksi}
Prioritas 1

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
P-05
Sukses & Voucher Kopi
/selesai/{kode_transaksi}
Prioritas 1

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
P-06
Cek Status Pembayaran
/status/{kode_transaksi}
Prioritas 2

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
P-07
Laporan Publik & Transparansi
/laporan
Prioritas 2

Tujuan 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
P-08
Tentang Kami & ToS
/tentang
Prioritas 3

Tujuan 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
6

Spesifikasi Dashboard Admin

12 menu dashboard untuk pengelolaan sistem oleh tim Bank Indonesia

7

Alur Pengguna (User Flows)

Diagram alur lengkap untuk setiap skenario penggunaan sistem

UF-01 Alur Utama Berwakaf — Pengunjung Event Aktor: Wakif (Pengunjung)
1
Scan QR Code di Booth
Pengunjung mengarahkan kamera HP ke QR code yang terpasang di booth Wakaf Kopi. Browser membuka website wakafkopi.id secara otomatis.
2
Melihat Landing Page
Halaman beranda ditampilkan dengan counter total wakif, daftar program, dan tombol "Wakaf Sekarang". Pengunjung memilih program yang diinginkan.
3
Memilih Program & Membaca Detail
Pengunjung membaca deskripsi program, manfaat, dan lembaga penyalur. Klik "Wakaf Sekarang" untuk lanjut ke form.
4
Mengisi Form Wakaf
Pengunjung mengisi: nama lengkap, nomor HP, doa/harapan (opsional), dan memilih nominal (4 preset atau input bebas, min. Rp 10.000).
5
Sistem Membuat Transaksi
Backend memvalidasi form, membuat record wakif + transaksi (status: pending), request QRIS ke Midtrans API, menyimpan snap token dan URL QRIS.
6
Melakukan Pembayaran QRIS
Pengunjung membuka e-wallet atau m-banking, memilih menu QRIS, scan QR code yang ditampilkan di halaman, konfirmasi pembayaran. Timer 15 menit berjalan.
Alternatif: Jika timer habis → muncul pesan kedaluwarsa → opsi mulai transaksi baru
7
Midtrans Mengirim Notifikasi Webhook
Setelah pembayaran berhasil, Midtrans mengirim webhook ke endpoint sistem. Sistem memverifikasi signature, update status transaksi ke "paid", generate voucher dengan QR terenkripsi HMAC-SHA256.
8
Halaman Polling Deteksi Pembayaran Berhasil
Polling setiap 5 detik mendeteksi status berubah menjadi "paid". Halaman otomatis redirect ke halaman sukses + voucher.
9
Menampilkan Voucher Kopi
Pengunjung melihat konfirmasi wakaf berhasil, detail transaksi, dan QR code voucher kopi. Pengunjung dapat menyimpan (screenshot) voucher untuk ditunjukkan ke kasir.
10
Menukarkan Voucher ke Kasir
Pengunjung menunjukkan layar HP berisi QR voucher kepada kasir. Kasir scan QR, sistem validasi, kasir memberikan 1 cangkir kopi.
Informasi Alur
Trigger: Scan QR di booth
End state: Kopi diterima
Durasi est.: 3–5 menit
Happy path: 10 langkah
Kode Warna
Aksi Pengguna
Proses Sistem
Keputusan
UF-02 Alur Kasir — Validasi Voucher via Laser Scanner Aktor: Kasir + Sistem
1
Login ke Interface Kasir
Kasir membuka browser di PC meja kasir, login ke /admin/kasir dengan akun kasir. Tampilan interface kasir muncul — tanpa menu lain.
2
Pilih Mode: "Scanner"
Kasir klik tab "🔫 Scanner". Hidden input field aktif dan dalam keadaan focus. Scanner USB iWare BS-E8QR sudah terhubung dan siap.
3
Pengunjung Tunjukkan QR Voucher
Pengunjung membuka halaman voucher di HP dan menampilkan QR code kepada kasir.
4
Kasir Arahkan Scanner ke QR
Scanner membaca QR dan mengirim payload sebagai keyboard input. Sistem mendeteksi input cepat (<50ms per karakter) = input scanner. Auto-submit saat karakter Enter diterima.
5
Sistem Validasi HMAC + Database
API verifikasi: (1) Parse payload QR, (2) Hitung ulang HMAC, bandingkan dengan signature, (3) Query database dengan row lock, (4) Cek status = 'active' dan masa berlaku valid.
6a
✅ Voucher Valid — Update Database
Atomic UPDATE: set status = 'used', used_at = now(), used_by = kasir_id. Log scan ke voucher_scan_logs. Response dikirim ke kasir.
7a
Tampilan Hijau + Nama Wakif
Overlay fullscreen hijau muncul dengan ✅ besar, nama wakif, program, nominal. Muncul 3 tombol: "Print Struk", "Kirim Email", "Scan Berikutnya". Kasir memberikan kopi kepada pengunjung.
6b
❌ Voucher Tidak Valid
Kondisi gagal: signature tidak cocok, voucher sudah digunakan, atau masa berlaku habis. Response error dengan alasan spesifik. Log attempt dicatat.
Alur alternatif — tidak ada kopi yang diberikan
7b
Tampilan Merah + Alasan
Overlay fullscreen merah muncul dengan ❌ besar dan pesan jelas: "Voucher sudah digunakan pada [waktu]" atau pesan sesuai kondisi error.
Informasi Alur
Hardware: iWare BS-E8QR USB
Waktu validasi: < 500ms
Proteksi: HMAC-SHA256 + Row Lock
Kondisi Error
Signature salah: QR palsu
Sudah digunakan: Duplikat
Masa berlaku habis: Expired
UF-03 Alur Kasir — Print Struk & Kirim Email Setelah Validasi Aktor: Kasir + Sistem
1
Voucher Berhasil Divalidasi
Lanjutan dari UF-02 Langkah 7a. Overlay hijau tampil dengan 3 pilihan tombol aksi.
2a
Kasir Klik "Print Struk"
Tab baru terbuka dengan halaman struk thermal 58mm yang sudah terformat. Auto-trigger window.print(). Dialog print browser muncul dengan printer iWare C58BT sebagai default. Kasir klik Print.
3a
Struk Dicetak
Printer thermal mencetak struk 58mm berisi: nama wakif, program, nominal, kode transaksi, status "VOUCHER REDEEMED", dan QR kecil. Tab otomatis tertutup.
2b
Kasir Klik "Kirim Email"
Modal kecil muncul dengan field email. Jika wakif mengisi email saat form: sudah ter-pre-fill otomatis. Kasir konfirmasi/koreksi email bersama pengunjung. Klik "Kirim".
3b
Email Dikirim via Queue
Queue job didispatch (non-blocking). Toast notifikasi: "Email sedang dikirim ke [alamat]". Email terkirim dalam <30 detik via Google Workspace SMTP. Kasir bisa langsung lanjut ke scan berikutnya.
4
Kembali ke Mode Scan
Kasir klik "Scan Berikutnya" atau overlay auto-dismiss. Interface kembali ke mode idle, siap untuk pengunjung berikutnya. Hidden input auto-refocus untuk scanner.
Informasi Alur
Printer: iWare C58BT (BT)
Kertas: Thermal 58mm
Email SMTP: Google Workspace
Email delay: < 30 detik
UF-04 Alur Admin — Ekspor Laporan Distribusi Dana untuk Seremoni Aktor: Admin / Super Admin
1
Buka Menu Laporan & Ekspor
Admin login ke dashboard, buka menu M-09 "Laporan & Ekspor".
2
Pilih Jenis Laporan
Admin memilih "Berita Acara Penyaluran Wakaf" atau "Sertifikat Distribusi per Lembaga" sesuai kebutuhan seremoni hari terakhir.
3
Set Rentang Tanggal & Filter
Admin memilih rentang tanggal event (26–28 Juni 2026) dan filter program/lembaga jika diperlukan. Preview ringkasan data ditampilkan sebelum ekspor.
4
Klik "Ekspor PDF"
Sistem mendispatch queue job ekspor. Progress bar ditampilkan. Admin dapat melanjutkan aktivitas lain selama ekspor berlangsung.
5
Queue Job Memproses Ekspor
Backend generate PDF formal dengan header logo BI + KKJ 2026, tabel data per lembaga, total bruto/MDR/neto, ruang tanda tangan. File disimpan sementara di storage.
6
Download File Tersedia
Notifikasi muncul: "File laporan siap diunduh". Admin klik unduh. File PDF tersimpan ke komputer admin. File dihapus dari server setelah 24 jam.
Informasi Alur
Output: PDF Formal BI
Header: Logo BI + KKJ 2026
Konten: TTD pihak BI + Lembaga
Retensi file: 24 jam
UF-05 Alur Admin — Monitoring Real-Time Selama Event Aktor: Admin / Super Admin
1
Buka Dashboard di Hari Event
Admin membuka dashboard di browser. Semua KPI card, grafik real-time, dan tabel transaksi terbaru langsung tampil.
2
Auto-Refresh Setiap 30 Detik
KPI card dan tabel transaksi terbaru diperbarui setiap 30 detik tanpa reload halaman. Grafik diperbarui setiap 60 detik.
3
Terima Alert Otomatis
Jika ada transaksi pending lebih dari 15 menit, atau scan voucher gagal berulang dari satu kasir, sistem menampilkan alert di bagian atas dashboard.
4
Investigasi Transaksi Bermasalah
Admin klik alert → diarahkan ke menu Transaksi dengan filter otomatis. Admin dapat trigger "Cek Status Midtrans" manual untuk transaksi pending.
5
Ekspor Laporan Harian
Di akhir setiap hari event, admin mengekspor "Laporan Harian" via menu M-09 untuk briefing tim Bank Indonesia.
Informasi Alur
Refresh KPI: 30 detik
Alert pending: > 15 menit
Laporan harian: Per hari event
8

Persyaratan Fungsional

MUST = wajib ada · SHOULD = sebaiknya ada · COULD = opsional jika waktu memungkinkan

IDPrioritasPersyaratanHalaman/Menu
FR-001MUSTSistem harus menampilkan minimal 6 program wakaf yang dapat dipilih pengunjungP-01, P-02
FR-002MUSTPengunjung harus dapat mengisi form wakaf tanpa memiliki akunP-03
FR-003MUSTPembayaran hanya melalui QRIS via Midtrans dengan countdown timer 15 menitP-04
FR-004MUSTSistem harus menghasilkan voucher kopi otomatis setelah pembayaran dikonfirmasi MidtransP-05, Sistem
FR-005MUSTQR code voucher harus terenkripsi dengan HMAC-SHA256 dan tidak dapat dipalsukanM-07, Sistem
FR-006MUSTSetiap voucher hanya dapat ditukarkan satu kali (one-time use) dengan atomic database updateM-07, Sistem
FR-007MUSTInterface kasir harus mendukung validasi via laser scanner USB HID (iWare BS-E8QR)M-07
FR-008MUSTInterface kasir harus mendukung validasi via kamera browser (html5-qrcode)M-07
FR-009MUSTDashboard admin harus menampilkan data real-time (auto-refresh 30 detik) selama eventM-01
FR-010MUSTSistem harus menyediakan ekspor laporan dalam format Excel (.xlsx) mencakup minimal 6 jenis laporanM-09
FR-011MUSTSistem harus menyediakan ekspor laporan formal PDF dengan header logo Bank Indonesia dan KKJ 2026M-09
FR-012MUSTKasir harus dapat mencetak struk thermal 58mm langsung dari browser via window.print()M-07
FR-013MUSTSistem harus mengirim struk konfirmasi via email (Google Workspace SMTP) setelah kasir memintaM-07
FR-014MUSTMidtrans webhook harus diverifikasi dengan signature key sebelum memproses notifikasiSistem
FR-015MUSTSemua transaksi, scan voucher, dan aksi admin harus tercatat di log aktivitasM-12
FR-016SHOULDHalaman laporan publik harus menampilkan total dana terkumpul secara agregat per programP-07
FR-017SHOULDDashboard harus menampilkan analytics funnel konversi dan heatmap jam tersibukM-02
FR-018SHOULDAdmin harus dapat melakukan rekonsiliasi manual antara data lokal dan data MidtransM-05
FR-019SHOULDSistem harus menampilkan alert jika voucher yang sama di-scan lebih dari 2 kaliM-06
FR-020COULDCounter total wakif dan total dana di landing page dapat diperbarui setiap 60 detik secara animasiP-01
9

Persyaratan Non-Fungsional

Standar performa, keamanan, dan ketersediaan sistem

⚡ Performa
  • 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
🔒 Keamanan
  • 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
🌐 Kompatibilitas Browser
  • 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
🛡 Ketersediaan & Keandalan
  • 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
10

Perangkat Kasir (Hardware)

Spesifikasi hardware yang dikonfirmasi untuk digunakan di meja kasir event

PerangkatModelSpesifikasiFungsi dalam SistemStatus
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
Catatan Setup Hardware (Dilakukan H-1 Event)

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.

11

Batasan & Asumsi

Hal-hal yang berada di luar cakupan dan asumsi yang digunakan dalam pengembangan

11.1 Di Luar Ruang Lingkup (Out of Scope)

❌ Tidak Termasuk dalam Proyek Ini
  • 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

📌 Asumsi yang Digunakan
  • 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
12

Deliverables, Timeline & Persetujuan

Daftar hasil pengerjaan, rencana jadwal, dan persetujuan formal

12.1 Daftar Deliverables

1
Source Code Sistem
Seluruh kode sumber website publik, dashboard admin, dan interface kasir dalam repository Git
2
Website Live di VPS
Sistem terdeploy di VPS Ubuntu 24 dengan SSL aktif, siap digunakan untuk event
3
Database Schema & Migrasi
Skema database MySQL lengkap dengan seed data awal (program wakaf, lembaga, akun admin)
4
Akun Admin & Kasir
Akun Super Admin, Admin, dan Kasir yang siap digunakan, lengkap dengan panduan login
5
Dokumen Teknis
Panduan deploy ulang, environment variables yang diperlukan, dan catatan konfigurasi server
6
Panduan Penggunaan Kasir
Dokumen singkat 1–2 halaman untuk pelatihan kasir: cara login, scan, print, dan kirim email
7
Midtrans Konfigurasi Aktif
Payment gateway Midtrans QRIS terkonfigurasi dalam mode production dengan notification URL yang benar
8
Dukungan Selama Event
Tim developer on-call selama 26–28 Juni 2026 untuk penanganan masalah teknis yang mungkin terjadi

12.2 Rencana Timeline

Minggu 1 · 25 Mei – 1 Jun
Persiapan & Desain
  • Finalisasi requirements & konten dari klien
  • Setup repository, Laravel 13, React 19
  • Database schema & migrasi awal
  • UI/UX wireframe & mockup (Figma)
  • Konfigurasi Midtrans sandbox
Minggu 2 · 2 – 8 Juni
Website Publik & Pembayaran
  • Landing page + halaman program
  • Form wakaf + validasi
  • Integrasi Midtrans QRIS
  • Halaman pembayaran + polling
  • Webhook handler + generate voucher
  • Halaman sukses + voucher display
Minggu 3 · 9 – 15 Juni
Dashboard & Kasir
  • Auth admin + role system
  • Dashboard analytics + grafik
  • Interface kasir: laser + kamera
  • Print struk + email struk
  • Manajemen transaksi + voucher
  • Laporan & export Excel + PDF
Minggu 4 · 16 – 25 Juni
Testing & Deployment
  • End-to-end testing semua flow
  • UAT bersama tim Bank Indonesia
  • Setup VPS + Nginx + SSL
  • Deployment production
  • Switch Midtrans ke production
  • Training kasir H-1 event
Event · 26 – 28 Juni
Go-Live & Support
  • Developer on-call selama event
  • Monitor dashboard real-time
  • Ekspor laporan harian
  • Penyaluran simbolis hari terakhir
  • Ekspor data final + Berita Acara

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.

PihakNama & JabatanTanda TanganTanggal
Bank Indonesia Jabar
Perwakilan Klien
___________________________ Jabatan: ___________________ _____ / _____ / 2026
Tim Pengembang
Penanggung Jawab Teknis
___________________________ Full Stack Developer _____ / _____ / 2026
Catatan Revisi

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.

PRD-WK-2026-01 · Versi 1.0 · 25 Mei 2026
Sistem Digital Wakaf Kopi — Karya Kreatif Jawa Barat 2026
Bank Indonesia Kantor Perwakilan Jawa Barat