Ziyadah Bulanan Tahfizh (Rust + Tauri)
Aplikasi desktop ringan untuk rekap perkembangan hafalan santri, dengan keamanan data berlapis.
01 Ringkasan
Aplikasi desktop Windows untuk merekap dan memantau perkembangan ziyadah (tambahan hafalan Al-Qur'an) santri tahfizh secara bulanan. Dibangun dengan Rust + Tauri v2 sehingga ringan dan installer-nya kecil dibanding aplikasi Electron. Data santri disimpan dalam database terenkripsi, dan distribusi aplikasi dikunci dengan sistem lisensi offline Ed25519 yang terikat pada perangkat.
02 Problem
Rekap perkembangan hafalan santri sebelumnya dilakukan manual berbasis kertas/Excel terpisah per kelas — rawan salah hitung jumlah lembar dan ranking, format tidak konsisten antar bulan, serta data sulit dirapikan. Karena aplikasi didistribusikan ke device milik pesantren, dibutuhkan kontrol pemakaian yang serius: proteksi lisensi agar tidak sembarang dipasang dan proteksi data agar tidak bisa dibaca langsung dari berkas aplikasi.
03 Solusi & Pendekatan
Backend ditulis dalam Rust di atas Tauri v2; frontend memakai HTML/CSS/JS vanilla tanpa framework agar tetap ringan. Data disimpan di SQLite in-memory lalu dipersist ke file terenkripsi AES-256-GCM; kunci enkripsi diamankan dengan Windows DPAPI dan dikaitkan ke HWID mesin (MachineGuid + serial volume + identitas CPU di-hash SHA-256). Lisensi offline berupa file license.lic — ditandatangani Ed25519 oleh tool admin terpisah (license_gen). Setiap Tauri command diverifikasi lisensinya ulang langsung (anti-patch titik tunggal), plus deteksi rollback jam sistem dan self-integrity check hash binary.
04 Fitur Utama
- Tambah santri manual atau massal (copy-paste dari Excel).
- Edit inline nama, surat awal, dan surat saat ini per santri.
- Kalkulasi otomatis jumlah lembar dan ranking (nilai sama berbagi peringkat).
- Setup 6 kelas (Judud / Mutawassith / Qudama) via sidebar; kalender Hijriah.
- Cetak laporan PDF A4 multi-halaman via html2pdf, otomatis ke folder Downloads.
- Database terenkripsi AES-256-GCM dengan migrasi otomatis dari format lama.
- Lisensi offline per-device Ed25519 + deteksi rollback jam & self-integrity check.