EazyPay is an offline-first, closed-loop digital payment infrastructure tailored for university campuses in Nigeria (starting with a pilot launch at Babcock University).
# EazyPay ⚡
EazyPay is an **offline-first, NFC-enabled campus cashless payment platform** designed for educational environments like Babcock University. It solves the critical challenge of network instability and connection failures in high-traffic campus ecosystems (cafeterias, print shops, transit hubs) using a secure local-ledger architecture.
---
## 📦 Downloadable Demo Build
EazyPay is currently safe to share as a **demo/prototype APK** for reviewers and stakeholders. It is **not** a live-money payment app.
To build the shareable internal demo APK from a JDK 17 Android build environment:
```bash
./scripts/build_share_apk.sh
```
The script copies the debug APK and SHA-256 checksum to:
```text
dist/EazyPay-demo-debug.apk
dist/EazyPay-demo-debug.apk.sha256
```
See `DISTRIBUTION.md` for release-signing instructions and distribution safety notes.
---
## 📊 Project Status & Implementation Progress
Below is the status of the EazyPay Android payment applet:
### ✅ What We Have Achieved (Completed Milestones)
* **Secure Local Storage (AES-256)**: Replaced unencrypted shared preferences with AndroidX `EncryptedSharedPreferences`. Built an automated data migration routine to clean legacy plain-text values safely.
* **Physical Biometrics diagnostics**: Connected native Android `BiometricManager` API to query biometric hardware availability and enrollment status, reporting status transparently in user settings.
* **Cryptographic Ledger Integrity (SHA-256)**: Implemented an append-only transaction hash chain validator (`verifyLocalLedgerIntegrity()`). It recursively checks block continuity and validates ECDSA signatures against active device keypairs.
* **Database Schema Hardening (Room v2)**: Re-architected and migrated the Room schema to Version 2. Standardized audit metrics like unique references (`txRef`), automatic campus fees, device/card ID binding, and UUID `idempotencyKeys`.
* **Database Tampering & Recovery Panel**: Created an interactive devel …