Oracle3
Open-source trading engine and MCP server for prediction markets. Fee-aware no-arbitrage trading across related contracts, live on Kalshi, Polymarket and Solana or on paper.
Platform wakaf digital: berwakaf mudah, transparan, dan tercatat. Demo interaktif.
Translation pending
FinanceTypeScript · JavaScriptGitHub @cipherionnOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
Wakaf Digital — Demo Interaktif (Yayasan Khazanah Berkah Mulia / KBM) Demo web wakaf digital yang sepenuhnya bisa dicoba end-to-end memakai mock backend (in-memory store di sisi server + API routes). Tidak ada database sungguhan dan tidak ada payment gateway asli.Read the full README ↗
Demo web wakaf digital yang sepenuhnya bisa dicoba end-to-end memakai mock backend (in-memory store di sisi server + API routes). Tidak ada database sungguhan dan tidak ada payment gateway asli.
npm install
npm run dev
# buka http://localhost:3000
Build produksi:
npm run build && npm start
| Peran | Cara masuk |
|---|---|
| Admin | /admin → [email protected] / admin123 |
| Wakif | /riwayat → email apa pun + OTP 123456 (selalu diterima). Pakai [email protected] untuk melihat riwayat contoh. |
/program: 10 program dikelompokkan jadi 4 seksi
berdasarkan jenis — Wakaf Uang, Wakaf Melalui Uang, Infaq &
Shadaqah, dan Zakat — masing-masing dengan penjelasan singkat. Filter
kategori + pencarian kata kunci berlaku lintas seksi.DEMO … — sengaja
memakai huruf agar tidak bisa dimasukkan ke aplikasi bank sungguhan)./wakaf/[id]: countdown mundur benar-benar jalan.
POST /api/transactions/[id]/pay → status paid → redirect ke halaman sukses.expired
/sertifikat/[nomor]: nomor unik, print-friendly, tombol
Unduh PDF (jsPDF) + Cetak. Bisa diverifikasi di /verifikasi./riwayat: login mock (email + OTP 123456), daftar
transaksi by email, lihat & unduh ulang sertifikat./admin/dashboard:
/zakat: hitung zakat maal (nisab 85 gr emas,
kadar 2,5%) dan zakat penghasilan. Hasil hitungan langsung membawa
nominalnya ke form pembayaran lewat ?nominal=./profil: latar belakang, visi, misi, tujuan,
legalitas, dewan pengurus & nazhir, kontak. Konten masih placeholder
(bertanda TODO) menunggu company profile resmi KBM./transparansi:
GET /api/donations, proyeksi publik: tanpa
email/telepon; yang memilih anonim tampil sebagai "Hamba Allah").
Selesaikan pembayaran mock → nama langsung muncul di paling atas.Reset data demo: tombol di banner atas setiap halaman, atau
POST /api/reset. Mengembalikan mock-db ke kondisi seed.
Alur wakaf → sertifikat, ditangkap otomatis oleh
scripts/capture-screenshots.mjs
(node scripts/capture-screenshots.mjs saat server demo berjalan).
Tombol "Simulasikan pembayaran berhasil" ditandai jelas sebagai alat demo.
Rp 313.500.000 → Rp 313.600.000, 214 → 215 wakif (baca dari mock-db yang sama).
| Beranda | Daftar program | Detail + form |
|---|---|---|
| Kalkulator zakat | Profil yayasan |
|---|---|
Seluruh gambar program adalah ilustrasi dummy, dan isi halaman Profil (nama pengurus, nomor legalitas, alamat, kontak) adalah data karangan untuk keperluan demo — semuanya akan diganti dengan materi resmi KBM.
Diuji pada 3 lebar: HP 390px, tablet 768px, desktop ≥1024px.
lg; nav penuh muncul di desktop.Rp 1,04 miliar,
Rp 325 juta) via formatRupiahCompact agar tidak terpotong di layar sempit.sm+.app/(pages) Halaman publik + area /admin (layout & guard terpisah)
app/api/... Mock backend — tiap route menunda 500–1500ms (lib/api/server.ts)
components/ Komponen UI, dipecah per fungsi (+ components/admin/*, components/home/*)
lib/mock-db/ In-memory store server-side + data seed
lib/api/client.ts Wrapper fetch tunggal untuk semua komponen
lib/store/ Zustand: sesi login (persist localStorage) & toast
lib/config.ts SEMUA nilai yang dipercepat/dipalsukan untuk demo
types/ Tipe domain bersama + kamus istilah per jenis program
program_type adalah sumbu utama pengelompokan, mengikuti pembagian lembaga
wakaf (rujukan definisi BWI):
| Jenis | Arti singkat |
|---|---|
wakaf-uang | Uangnya jadi objek wakaf. Pokok dijaga, hasil pengelolaan yang disalurkan (dana abadi). |
wakaf-melalui-uang | Uang langsung diwujudkan jadi aset wakaf (tanah, masjid, sumur). |
infaq-shadaqah | Sedekah sukarela, disalurkan langsung habis. |
zakat | Kewajiban, terikat nisab/haul & 8 asnaf. |
Karena istilahnya berbeda-beda, PROGRAM_TYPE_TERMS di types/index.ts memetakan
sebutan per jenis dan dipakai konsisten di form, sertifikat, riwayat, dan
transparansi:
| Wakaf | Infaq/Shadaqah | Zakat | |
|---|---|---|---|
| Pemberi | Wakif | Donatur | Muzakki |
| Pengelola | Nazhir | Lembaga penyalur | Amil |
| Bukti | Sertifikat Wakaf | Bukti Donasi | Bukti Setor Zakat |
kategori (masjid, pendidikan, produktif-UMKM, sumur & air bersih, kemanusiaan,
sosial & dhuafa) tetap ada sebagai klasifikasi sekunder untuk filter.
Semua ditandai komentar di kode. Ringkasnya:
| Lokasi | Disederhanakan | Untuk produksi |
|---|---|---|
lib/config.ts → VA_TTL_MS | Masa berlaku VA 3 menit | Kembalikan ke 24 jam |
lib/api/server.ts → mockLatency() | Delay 500–1500ms tiap request | Hapus |
lib/mock-db/ | Store di memori proses | Database sungguhan (Prisma/Drizzle) |
lib/mock-db/ → makeVaNumber() | Nomor VA tiruan diawali DEMO (tidak bisa dibayar) | VA asli dari payment gateway (Midtrans/Xendit) |
app/api/transactions/[id]/pay | Webhook dipicu tombol | Callback + verifikasi signature dari payment gateway |
app/api/transactions/[id]/expire | Expiry di-set dari browser | Job terjadwal / callback gateway |
app/api/auth/* | 1 akun admin hardcode; OTP wakif selalu 123456 | User store + hash + sesi ber-token + OTP asli |
components/mock-file-input.tsx | File dibaca jadi data URL di browser | Upload ke object storage, simpan URL |
components/brand-logo.tsx | Wordmark "kbm" dibuat via CSS | Ganti dengan file SVG/PNG logo resmi |
lib/config.ts → HARGA_EMAS_PER_GRAM | Harga emas di-hardcode untuk nisab zakat | Ambil dari API harga emas / setelan admin |
app/profil/page.tsx | Nama pengurus, akta/SK/NIB/NPWP, alamat & kontak semuanya dummy karangan | Isi dari company profile resmi KBM |
components/site-footer.tsx | Legalitas di footer ikut dummy | Samakan dengan data resmi |
components/program-illustration.tsx | Ilustrasi SVG dummy menggantikan foto program | Isi imageUrl dengan foto dokumentasi asli |
reactStrictMode: false (next.config.js) agar interval countdown demo tidak
double-fire di dev.components/program-illustration.tsx) — bukan foto stok, supaya konsisten
dan tidak ada gambar yang tidak sesuai konteks. Begitu foto dokumentasi asli
tersedia, cukup isi imageUrl pada data program.MIT.