A fast, lightweight web app to help you master German grammatical articles — der, die, and das.
Built with Rust and Axum. No database required.
German articles are notoriously tricky. Every noun has a grammatical gender, and there are few reliable rules to follow — you just have to memorize them. This app turns that memorization into a quick, repeatable practice loop.
Practice mode — you're shown a random German noun and its English translation. Pick the correct article. Get instant feedback.
Flashcard mode — after practising, come back here to review the words you keep getting wrong. Cards are sorted by how many times you've missed them, so you focus on your weakest spots.
Progress is tracked in memory for the duration of your session.
- Rust (stable)
git clone https://github.com/your-username/german-articles.git
cd german-articles
cargo runThen open http://localhost:3000 in your browser.
Nouns are loaded from data/noun_list.csv. The format is:
article,noun,translation
der,Hund,dog
die,Katze,cat
das,Haus,house
Add your own words to expand the vocabulary set.
src/
main.rs — server startup
routes.rs — URL routing
handlers.rs — request logic
models.rs — data types
database.rs — in-memory state + CSV loading
templates/
index.html — practice page
flashcards.html — flashcard review page
data/
noun_list.csv — vocabulary list
| Crate | Purpose |
|---|---|
| axum | Web framework |
| tokio | Async runtime |
| serde | JSON serialisation |
| rand | Random word selection |
| csv | Vocabulary file parsing |
Contributions are welcome — whether that's fixing bugs, improving the UI, or adding more vocabulary.
- Fork the repo
- Create a branch (
git checkout -b my-feature) - Commit your changes
- Open a pull request
If you want to add a large set of nouns to noun_list.csv, that's especially appreciated.
MIT