Repository navigation
TestBox v2.1.0
TestBox v2.1.0 — organization, insight, and true cross-device sync.
New
- Tags (برچسبها) — organize exams with tags: create, rename, delete, assign, filter. Replaces the old Marked page; existing marked questions migrate automatically (nothing is lost). Fully synced across devices, including deletions.
- Unresolved question state (حلنشده) — mark a question you worked on but couldn't solve, without entering an answer. It counts as attempted in daily/monthly reports but never distorts accuracy or scoring. Syncs with your exam data; cleared on retake.
Sync (complete rewrite of coverage)
- Everything persistent now syncs: folders, subjects, exams (config, type, timer, stopwatch flag), per-question answers/results/marks/unresolved, notes, daily activity & study time (daily/weekly/monthly statistics and calendar follow), account settings, tags + assignments, and deletions (tombstoned — no resurrection).
- Upload-first architecture preserved: offline edits are never overwritten; offline-created data uploads automatically on reconnect; repeated syncs are idempotent; no duplicates, no data loss.
- Verified two-device: online edit → cloud → other device, offline create → restart → reconnect → upload → other device, and reverse.
Fixed
- Offline account bug (Windows): opening the app without internet no longer logs you out or hides your local data. A failed token refresh no longer wipes your cached identity.
- Text input: folder rename and exam move no longer use native prompts (broken on Windows, IME-hostile on Android) — proper modals with full Persian/English input everywhere.
- Sync loop and stale-overwrite edge cases hardened; dirty sections are fingerprint-guarded against mid-sync edits.
Downloads
| File | Platform |
|---|---|
| TestBox-Setup-2.1.0.exe | Windows installer (x64) |
| TestBox-Portable-2.1.0.exe | Windows portable (x64) |
| TestBox-2.1.0.apk | Android (release-signed; sideload) |
Web: https://itsakhb.github.io/TestBox/
Notes
- Windows builds are unsigned (SmartScreen may warn — "More info → Run anyway").
- The Android APK is signed with the project's release key; future updates must come from the same key.