Sistem Manajemen Pajak Bumi & Bangunan Tingkat Desa All-in-one platform untuk digitalisasi penagihan PBB, pemetaan GIS wilayah, arsip SPPT digital, dan aplikasi petugas lapangan.
📖 Panduan Instalasi · 📲 Panduan Notifikasi · 📘 Wiki Teknis · 📋 Changelog · 🔒 Security
PBB Manager dibangun khusus untuk menyelesaikan masalah nyata pengelolaan pajak di tingkat desa — mulai dari pencatatan manual yang rawan hilang, kesulitan pemantauan pembayaran real-time, hingga distribusi SPPT yang tidak efisien. Sistem ini menggabungkan dashboard web admin, peta GIS interaktif, portal layanan warga, dan aplikasi mobile petugas lapangan dalam satu platform terintegrasi.
| Aspek | ❌ Cara Lama | ✅ PBB Manager |
|---|---|---|
| Pencatatan | Buku DHKP fisik rawan rusak/hilang | Database digital terenkripsi + backup otomatis |
| Monitoring | Rekap manual akhir bulan | Dashboard real-time per wilayah + heatmap GIS |
| Distribusi SPPT | Cetak massal, bagi manual | Smart Scan + arsip digital per NOP |
| Penagihan | Petugas bawa buku tebal | Aplikasi mobile ringan + update status instan |
| Layanan Warga | Datang ke kantor desa | Portal mandiri 24/7 + cetak kwitansi online |
| Keamanan Data | File Excel tanpa proteksi | PIN NOP + rate limiting + XSS/CSRF protection |
┌──────────────────────────────────────────────────────────────────┐
│ PBB Manager v10.4.0 │
├──────────────────┬──────────────────┬────────────────────────────┤
│ Web Dashboard │ Portal Publik │ PBB Mobile v2.1.0 │
│ (Admin/Petugas)│ (Warga) │ (Petugas Lapangan) │
│ │ │ │
│ Next.js 16 │ Turnstile CAPTCHA│ Expo SDK 55 │
│ React 19 │ PIN NOP 4-Digit │ React Native 0.85 │
│ Tailwind CSS 4 │ NOP Masking │ NativeWind │
├──────────────────┴──────────────────┴────────────────────────────┤
│ API Layer (Next.js App Router) │
│ Server Actions · REST API · JWT Auth │
├──────────────────────────────────────────────────────────────────┤
│ Prisma 7.8 ORM + SQLite (WAL Mode) │
│ PRAGMA synchronous=NORMAL · busy_timeout=5000 │
└──────────────────────────────────────────────────────────────────┘
| Layer | Teknologi | Keterangan |
|---|---|---|
| Frontend Web | Next.js 16, React 19, Tailwind CSS 4 | SSR/SSG, React Compiler, App Router |
| Mobile | Expo SDK 55, React Native 0.85 | APK/AAB via EAS Build |
| Database | Prisma 7.8 + SQLite (WAL) | Portabel, zero-config, concurrent reads |
| Auth | NextAuth v4 + JWT (Mobile) | Session-based (web), Bearer token (mobile) |
| GIS | Leaflet + React-Leaflet | GPX ingestion, heatmap, polygon overlay |
| Security | Cloudflare Turnstile, bcrypt, DOMPurify | CAPTCHA, hashing, sanitization |
PBB Manager v10.0 menerapkan pengamanan berlapis untuk melindungi privasi data wajib pajak:
- 🔑 PIN NOP 4-Digit — Akses data sensitif (salin NOP, cetak kwitansi, unduh E-SPPT, pengajuan mutasi) wajib verifikasi 4 digit terakhir NOP dari SPPT fisik
- 🛡️ NOP Masking — Semua NOP di portal publik dan peta GIS otomatis disensor (
35.17.XXX.XXX-XXXX.X) - ⏱️ Rate Limiting — Maks. 5 percobaan PIN salah → blokir IP selama 15 menit
- 🤖 Cloudflare Turnstile — Bot protection dengan rendering eksplisit, SPA-safe lifecycle
- 🔒 Mobile API Guard — JWT validation ketat di seluruh endpoint petugas
- 📦 Zip Slip Protection — Path traversal guard pada restore database
- 🧹 XSS Protection — Sanitasi metadata GIS dan input pengguna via DOMPurify
- 🕵️ Anti-Indexing — Triple-shield:
X-Robots-Tag+ meta robots +robots.txt
Detail lengkap: SECURITY.md · Wiki Keamanan
🗺️ GIS Command Center
- Peta interaktif dengan layer Dusun/RT/RW dan citra satelit
- Heatmap gradasi warna berdasarkan persentase pelunasan wilayah
- Upload massal file GPX dengan auto-detect metadata dari nama file
- Detail WP belum bayar langsung dari popup peta
- NOP tersensor di peta publik, transparan di peta admin
📱 PBB Mobile v2.1.0 (Petugas Lapangan)
- Login dengan JWT Bearer Token & koneksi server dinamis berbasis domain VPS desa
- Pencarian WP cepat dengan lazy loading untuk ribuan data
- Update status pembayaran real-time dari lapangan
- Timeline penagihan harian sebagai bukti audit
- Push Notification Instan (Double-Strike FCM/Expo) dengan prioritas Doze Mode Android
- Deep Linking Navigasi Cerdas: Ketuk notifikasi untuk langsung menuju detail WP
- Build APK/AAB otomatis via EAS Build
📄 Smart Scan Arsip Digital
- Unggah file E-SPPT massal dari Bapenda (ribuan halaman)
- Algoritma pemecahan otomatis per NOP
- Pratinjau dan unduh SPPT personal melalui portal
- Kompresi arsip otomatis untuk efisiensi penyimpanan
🏛️ Portal Layanan Warga
- Cek tagihan mandiri 24/7 tanpa login
- Cetak kwitansi A6 resmi & unduh E-SPPT PDF
- Pengajuan mutasi (Waris, Jual Beli, Hibah) dengan generate dokumen .docx
- Cek status pembayaran Bapenda real-time
- Redirect pembayaran online EPAY Jombang
📊 Dashboard & Laporan
- Statistik realisasi real-time per Dusun/RT/RW
- Grafik performa pembayaran dan trend tahunan
- Export laporan Excel/PDF untuk kebutuhan pelaporan
- Sinkronisasi data dengan DHKP Bapenda (Smart Sync)
- Web Push Notifications Asli untuk info delegasi tugas real-time di layar Desktop/Browser
| Role | Platform | Kemampuan |
|---|---|---|
| ADMIN | Web Dashboard | Konfigurasi penuh: GIS, arsip, sinkronisasi data, manajemen pengguna, backup/restore |
| PETUGAS | PBB Mobile | Penagihan lapangan: update status bayar, pencarian WP, riwayat transaksi harian |
| WARGA | Portal Publik | Layanan mandiri: cek tagihan, cetak kwitansi, unduh E-SPPT, ajukan mutasi (setelah verifikasi PIN) |
Prasyarat: Node.js v20+ · Git
# 1. Clone repository
git clone https://github.com/balongbesuk/pbb-app.git
cd pbb-app
# 2. Install & setup otomatis (database + seed + env)
npm install
# 3. Jalankan development server
npm run dev
# 4. Jalankan unit testing
npm run testBuka http://localhost:3000 — Login default: admin / admin123
cd pbb-mobile
npm install
npx expo start📘 Panduan lengkap: Panduan Instalasi · Checklist Produksi
| Dokumen | Deskripsi |
|---|---|
| 📖 Panduan Instalasi | Setup server, konfigurasi database, inisialisasi awal |
| 📲 Panduan Push Notifikasi | Setup notifikasi ganda FCM + Web VAPID untuk desa |
| 📘 Wiki Teknis & Keamanan | Arsitektur, hardening, indeks teknis GIS |
| 📱 Panduan Mobile Build | Build APK/AAB dengan EAS Build |
| 📋 Dokumentasi Penggunaan | Panduan operasional harian admin & petugas |
| ✅ Checklist Produksi | Environment, backup, proxy, hardening sebelum go-live |
| 📋 Changelog | Riwayat perubahan semua versi |
| 🔒 Security Policy | Kebijakan keamanan & cara melaporkan kerentanan |
Kontribusi dalam bentuk apapun sangat diapresiasi! Silakan buka Issue untuk melaporkan bug atau Pull Request untuk perbaikan dan fitur baru.
- Fork repository ini
- Buat branch fitur:
git checkout -b fitur/fitur-baru - Commit perubahan:
git commit -m "feat: tambah fitur baru" - Push ke branch:
git push origin fitur/fitur-baru - Buka Pull Request
Proyek ini dilisensikan di bawah MIT License — bebas digunakan, dimodifikasi, dan didistribusikan.
Dikembangkan untuk kemajuan digitalisasi desa di Indonesia 🇮🇩
Dibuat dengan ❤️ oleh Balongbesuk · Terakhir diperbarui: Juni 2026