Logo Lanfrica

jonathankene742-Blue/amharic-fluency-lab

Domaine:

natural language processing

Type de record:

softwaretools
Créateur:
jon
Hôte:
Interactive Amharic course: Fidel chart, conjugation lab, spaced repetition, and a Wax & Gold decoder. # የአማርኛ ማዕከል · Amharic Fluency Lab An interactive Amharic course that runs in a single HTML file: from the Ge'ez script to C1/C2 literary reading, including a Fidel chart with stroke-order animation, a verb conjugation lab with live root highlighting, a Leitner spaced-repetition engine, a phonetic Fidel keyboard, and a ሰምና ወርቅ (Wax & Gold) poetics decoder. ## Running it ```bash cd amharic-fluency-lab python3 -m http.server 8000 # then open localhost ``` Opening `index.html` directly with `file://` also works in most browsers, but a local server is more reliable: some browsers refuse to resolve an import map from a `file://` origin. The first load needs an internet connection, because React, Tailwind, Framer Motion and the Babel JSX compiler are pulled from CDNs (there is no build step and no `npm install`). All *content* — every Fidel mapping, vocabulary entry, conjugation table, dialogue, proverb, verse and reading passage — is local in `data/`, so once the page is open the app works with no further network traffic, and all progress is stored in `localStorage`. No Amharic system voice? The audio falls back to an articulatory synthesiser built on WebAudio: a consonant gesture (burst, friction, nasal buzz or glide at the correct place of articulation) followed by a vowel made of two band-passed formants. It is good enough to drill the seven vowel orders and the ejective/plain contrasts, and it is labelled honestly in Settings as not being a native speaker. ## Publishing it Every path in the app is relative, so it can be served from a subdirectory (`username.github.io`) without changes. There is no server, no build output and no secret to keep, which makes any static host sufficient. ```bash ./tools/deploy-pages.sh ~/.amharic-lab-token ``` The script authenticates, creates the repository, commits, pushes to `main` and switches on GitHub Pages. The token is read from the file rather than passed as an argument, so it never reac …