3.4 KiB
Amateurfunk-Anki
Download the German amateur-radio exam question catalog from the Bundesnetzagentur and turn it into Anki decks.
Quick start
make # fetch + build (default)
make fetch # download + extract the catalog only → data/
make anki # rebuild .apkg files from data/ → anki/
make test # run both test suites
make clean # remove data/ and anki/
Output: five .apkg files under anki/. Betriebliche and
Vorschriften get one deck each (shared across all license classes);
Technische is split per class into three decks (N / E / A) following
the catalog's class field. A class-A candidate who wants every
Technische question imports all three Technische decks. Re-importing
a newer build preserves your review history.
Exam question source
The catalog is published by the Bundesnetzagentur (BNetzA), the German federal regulator for telecommunications. Current edition: 3. Auflage, März 2024 (issued 2024-03-20, ~1750 questions across license classes N, E, A).
- Landing page: https://www.bundesnetzagentur.de/DE/Fachthemen/Telekommunikation/Frequenzen/SpezielleAnwendungen/Amateurfunk/start.html
- Machine-readable ZIP (what we download):
PruefungsfragenZIP.zip— contains the JSON question tree, thesvgs/figure folder, and aREADME.txtwith the official Quellenvermerk. - Human-readable PDF (not used by this pipeline):
Pruefungsfragen.pdf
BNetzA replaces the file in place across editions, so the URL is
stable; the fetcher detects updates via the HTTP Last-Modified
header.
See also
50ohm.de is an excellent companion learning resource for the same exam — community-maintained explanations, worked examples, and study material that complement the bare question catalog the decks built here are based on.
Requirements
Python 3.11+, standard library only. No third-party dependencies.
Explanations
The back of each card optionally carries a terse English explanation
of why the right answer is right. Explanations are not part of the
BNetzA catalog — they're authored separately (by humans or AI agents)
into explanations.json at the repo root. The build is non-blocking
on this: questions without an entry just show no explanation block.
Entries with confidence < 7 render a small "low confidence" badge
so learners know the reasoning is provisional.
EXPLANATIONS.md is the editorial contract: schema, sourcing
guidance, confidence scale, and the workflows an AI agent should
follow when asked to add or improve entries.
More
CLAUDE.md— project orientation, pipeline overview.DESIGN.md— source-discovery notes, JSON schema, per-stage design contracts.EXPLANATIONS.md— schema + workflows for the explanations database.
License
The downloader and builder code is in this repo. The exam questions
themselves are published by the Bundesnetzagentur under
DL-DE→BY-2.0; attribution
is preserved in every generated artifact (README.txt inside
data/<edition>/, attribution field in the per-edition manifest).