Ziyadah Bulanan Tahfizh (Rust + Tauri)
A lightweight desktop app for tracking students' memorization progress, with layered data security.
01 Overview
A Windows desktop app for recording and monitoring students' monthly Quran memorization ("ziyadah") progress at a tahfizh boarding school. Built with Rust + Tauri v2 for a light footprint and small installer. Student data is stored in an encrypted database, and distribution is locked to each device via an offline Ed25519 license system.
02 Problem
Students' memorization progress was previously tracked manually with paper/spreadsheets split per class — prone to miscalculated sheet totals and rankings, inconsistent formatting across months, and hard to organize. Because the app is distributed to the school's own PCs, strong usage control was required: license protection so it cannot be freely installed, and data protection so records cannot be read directly from the app files.
03 Solution & Approach
The backend is written in Rust on Tauri v2, with a vanilla HTML/CSS/JS frontend (no framework) to keep it light. Data lives in an in-memory SQLite DB and is persisted to an AES-256-GCM encrypted file; the encryption key is sealed with Windows DPAPI and bound to the device HWID (MachineGuid + volume serial + CPU identity hashed with SHA-256). Licensing is fully offline: an admin tool (license_gen) signs a license.lic file with Ed25519. Every Tauri command re-verifies the license directly (no single patching point), supported by clock-rollback detection and a self-integrity check of the running binary.
04 Key Features
- Add students manually or in bulk (copy-paste from Excel).
- Inline editing of names, starting surah, and current surah per student.
- Automatic calculation of sheet totals and rankings (ties share a rank).
- 6-class setup (Judud / Mutawassith / Qudama) via sidebar; Hijri calendar.
- A4 PDF report printing via html2pdf, saved automatically to Downloads.
- AES-256-GCM encrypted database with automatic migration from the old format.
- Offline per-device Ed25519 licensing + clock-rollback detection & self-integrity check.