Logo Lanfrica

dannsingo/re-ithute-setswana

Domain:

natural language processing

Record type:

softwaretools
Creator:
dan
Host:
A practical Botswana Setswana learning app with lessons, games, dictionary, translator and professional source PDFs. # Re Ithute Setswana Re Ithute is an installable, offline-friendly Botswana Setswana learning app. It combines lessons, pronunciation practice, games, stories, grammar, dictionary search, translation guidance and device-local progress. ## Product architecture - React 19 application delivered through vinext/Cloudflare Sites and a static Vite GitHub Pages build. - One stable local progress record: `re-ithute-progress`. - No learner account, public learner API, analytics identity, payment system or active database. - Service-worker app shell and optional offline source-PDF cache. - Readable JSON backups for long-term data ownership. - Encrypted `.reithute.json` transfer packages and RI4 text-code fallback for no-login device moves. The dormant D1 example and ChatGPT authentication helper are starter capabilities, not active product features. Do not enable them without the review gates in SECURITY.md and Future Cloud/API Guardrails. ## Local development Requirements: Node.js 22.13 or newer. ```bash npm install npm run dev ``` Quality checks: ```bash npm run lint npm test npm run build:pages ``` ## Installing and moving devices Open the public app in Safari on iPhone and choose **Share → Add to Home Screen**. On Android, use **Install app** or **Add to Home screen**. To move progress without an account: 1. On the old device, open **Progress → Move securely to another phone**. 2. Create a strong passphrase and choose **Share encrypted transfer file**. 3. Send the file through AirDrop, WhatsApp, email or Files. Send the passphrase separately. 4. On the new device, open Re Ithute, choose **Open received transfer file**, enter the passphrase and restore. The file is encrypted locally. Re Ithute does not upload it and cannot recover a forgotten passphrase. For a transparent long-term archive, use **Export everything** and protect the readable JSON file yourself. ## Documentation - Architecture and data flow - Data portability protocol - Future Cloud/API guardr …