2026-05-22 16:33:47 +02:00
2026-05-20 17:56:48 +02:00
2026-05-22 16:33:47 +02:00
2026-05-20 13:59:06 +02:00
2026-05-22 16:33:47 +02:00
2026-05-22 16:33:47 +02:00
2026-05-22 16:33:47 +02:00
2026-05-22 16:33:47 +02:00
2026-05-20 18:18:38 +02:00
2026-05-22 16:33:47 +02:00
2026-05-22 16:33:47 +02:00
2026-05-20 18:18:53 +02:00

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).

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).

S
Description
No description provided
Readme 2.3 MiB
Languages
Python 99.8%
Makefile 0.2%