Skip to content

Repository files navigation

TypeLearn

CI Translation status License Top language

A language-learning app where you learn by typing what you hear: play a clip, read the expected sentence, type it, get instant feedback. Thai is the first dataset; the app is designed for any language.

  • docs/ — how to develop, deploy, and translate
  • specs/ — background docs: mission, roadmap, tech stack
  • openspec/specs/ — normative behaviour specs
  • src/backend/ — Django + Strawberry GraphQL
  • src/frontend/ — Vue 3 + Vite + Pinia + Tailwind
  • data/ — corpus and generated data, git-ignored

Running it locally

You need kind 0.33+, tilt, kubectl, helm, direnv, and Docker or rootless Podman. With Podman, first run export KIND_EXPERIMENTAL_PROVIDER=podman.

direnv allow
kind create cluster --config "$(scripts/kind-config.sh --write)"
tilt up

The app is then at http://localhost:8500. To load exercises, point TYPELEARN_CORPUS_DIR at a Common Voice release before creating the cluster and press Ingest the corpus in the Tilt UI.

Development mode, tests, debugging and running several worktrees are covered in docs/development.md. Installing on a real cluster is in docs/deployment.md.

Translating

Help translate TypeLearn on Hosted Weblate. You don't need to open a pull request: Weblate commits your translations and opens it for you. Any text not translated yet shows in English.

To change the English wording or add a language, see docs/translation.md.

Audio

The exercise clips and their sentences come from Mozilla Common Voice's Thai dataset: sentences read aloud by volunteers and released into the public domain under CC0. The clips aren't stored in this repository; they are loaded from a local copy of the dataset (see Running it locally). You can record or check Thai sentences for the dataset at commonvoice.mozilla.org/th.

License

AGPL-3.0-or-later — see LICENSE. Running a modified copy of this project as a network service still requires offering that copy's source to its users.

About

Dictation-based language learning app. Listen to a clip, type what you hear, get instant per-character feedback and end-of-lesson stats. Starts with Thai, designed for any language.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Packages

Used by

Contributors

Languages