尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
Reclaiming African Voices — a cinematic, multilingual, offline-first heritage storytelling app.
Maloba is Setswana for "yesterday"; the tagline Mantswe a maloba means "Voices of Yesterday."
Ubuntu Heritage brings South Africa's foundational indigenous literature and heritage to life as an
interactive, cinematic graphic novel — and invites communities to add their own voices to the archive.
Built for the Advancing African Digital Humanities Ideation Hub (AADHIH) "Reclaiming African Voices"
hackathon (UNISA · BaobabX Academy).檢視完整 README ↗Reclaiming African Voices — a cinematic, multilingual, offline-first heritage storytelling app.
Maloba is Setswana for "yesterday"; the tagline Mantswe a maloba means "Voices of Yesterday."
Ubuntu Heritage brings South Africa's foundational indigenous literature and heritage to life as an interactive, cinematic graphic novel — and invites communities to add their own voices to the archive. Built for the Advancing African Digital Humanities Ideation Hub (AADHIH) "Reclaiming African Voices" hackathon (UNISA · BaobabX Academy).
A single Expo app (web + Android + iOS) that does four things, humanities first:
sourceNotes). Where a
fact isn't sourced, it's marked, not fabricated. AI-generated images and machine translations are
always labelled as such.| Source | Author | What the module does |
|---|---|---|
| Mhudi | Sol Plaatje (1930) | Survival, egalitarian partnership, and the subversion of the colonial pastoral myth; Mhudi's proto-feminist agency. |
| Ityala Lamawele | S.E.K. Mqhayi (1914) | The inkundla (traditional Xhosa court) — indigenous jurisprudence and restorative justice (ubulungisa). |
| Indaba, My Children | Credo Mutwa (1964) | Cosmology and creation myth (Ninavanhu-Ma, the Tree of Life); an act of oral-tradition preservation. |
| Inkondlo kaZulu | B.W. Vilakazi (1935) | The journey from oral izimbongi to written verse — a meta-story about how a language survives. |
Around them: the Cultural Atlas (Unsung Heroes · Marriage Rites · Peopling of SA · Totems & Clans · the Nine Provinces · the Presidents · National Days), the interactive Journey timeline, the Community Archive, the Heritage Ledger, and an "Ask Ubuntu" guide that answers strictly from the site's own grounded content.
The entire interface switches across eleven of South Africa's twelve official languages — South African Sign Language, the twelfth since 2023, is the one not yet served. Literary content is human-reviewed in English + Setswana; the other nine languages are shown as machine-draft, clearly labelled "unreviewed," pending native-speaker review — never passed off as authoritative.
See docs/02-tech-stack.md for the rationale and free-tier limits, and docs/10-status-and-roadmap.md for exactly what runs today vs. what activates with a key.
cd app
cp .env.example .env # optional keys; Pollinations + the core app need none
npm install
npm run web # open in the browser (primary demo target)
# or: npm run start # scan the QR code with Expo Go on your phone
npm run typecheck && npm test # pure-logic unit tests — the count is whatever `npm test` prints
npm run check:docs # docs lint: stale product name, wrong language count
The app is fully usable with no keys. Adding keys upgrades specific features (see the roadmap doc).
Nothing in the test suite renders (issue #53), so a layout or interaction change is only really checked by looking at it — and the deployed site is the wrong place to look, because a merge is not a deploy. Serve the working tree instead:
npm run web:fresh # same Wi-Fi: open http://<your-pc-ip>:8081 on the phone
npm run web:tunnel # from anywhere: a public https URL, via @expo/ngrok
--tunnel prints "Tunnel ready" and then shows you localhost:8081 — it does not print the
public URL. Read it from ngrok's local API while the server runs:
curl -s http://127.0.0.1:4040/api/tunnels # -> public_url: https://<id>.exp.direct
Both hot-reload, so a fix is a refresh away. The tunnel URL is reachable by anyone who has it while it runs — stop the server when you are done.
Start here: CLAUDE.md (project context) → AGENTS.md (working rules) → STATUS.md (live log) → docs/10-status-and-roadmap.md (implemented vs. planned). Deep dives live in docs/; the concept-submission narrative and task backlog in specs/.
Built on the integrity rule truth only — no invented heritage (AGENTS.md), full POPIA compliance (docs/05-popia-compliance.md), honest labelling of all AI-generated content, and respect for community ownership of recorded voices (private/public + real erasure).
Created by Tumo Olorato Mogame. In partnership with UNISA · BaobabX Academy. Ambient music/soundscapes credited in-app to African Tribe Echoes.