# avdp13/learn architecture

> Architecture diagram of the GitHub repository avdp13/learn, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-12). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/avdp13/learn
- Repository: https://github.com/avdp13/learn

## Overview

This is a small collection of standalone Dutch-language study utilities: users create or select vocabulary lists, practice translations or English irregular verbs, and review results; a separate keyboard tool types Ancient Greek. The map keeps these distinct rather than implying they share a runtime. The README is empty, and the source index shows no cross-module references, so only directly visible calls and file I/O are connected.

Main entry points: [`Overhoring.py`](https://github.com/avdp13/learn/blob/main/Overhoring.py) (Quiz CLI), [`Overhoring_praten.py`](https://github.com/avdp13/learn/blob/main/Overhoring_praten.py) (Speech quiz), [`Dicts`](https://github.com/avdp13/learn/tree/main/Dicts) (Vocabulary lists), [`Bijvoegen.py`](https://github.com/avdp13/learn/blob/main/Bijvoegen.py) (List editor)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_vocab["Vocabulary practice"]
  node_list_editor["List editor<br/>[Bijvoegen.py]"]
  node_vocabulary_files["Vocabulary lists"]
  node_quiz_cli["Quiz CLI<br/>[Overhoring.py]"]
  node_speech_quiz["Speech quiz"]
  node_review["Score and review<br/>[Overhoring.py]"]
  node_speech_review["Spoken review"]
end

subgraph group_verbs["Verb practice"]
  node_verb_quiz["Irregular verbs"]
  node_verb_answers["Verb answer tables"]
end

subgraph group_greek["Greek input"]
  node_greek_mapper["Greek key mapping<br/>[OudGrieks_typen.py]"]
end

node_learner(("Learner"))
node_author(("List author"))
node_keyboard_user(("Keyboard user"))
node_keyboard_service["Keyboard events"]

node_author -->|"enters words"| node_list_editor
node_list_editor -->|"writes list"| node_vocabulary_files
node_learner -->|"selects lists"| node_quiz_cli
node_quiz_cli -->|"reads lists"| node_vocabulary_files
node_quiz_cli -->|"calls review"| node_review
node_learner -->|"selects lists"| node_speech_quiz
node_speech_quiz -->|"reads lists"| node_vocabulary_files
node_speech_quiz -->|"calls review"| node_speech_review
node_learner -->|"answers prompts"| node_verb_quiz
node_verb_quiz -->|"checks answers"| node_verb_answers
node_keyboard_user -.->|"presses keys"| node_keyboard_service
node_keyboard_service -->|"dispatches events"| node_greek_mapper
node_greek_mapper -->|"writes mapped keys"| node_keyboard_service

click node_list_editor "https://github.com/avdp13/learn/blob/main/Bijvoegen.py"
click node_vocabulary_files "https://github.com/avdp13/learn/tree/main/Dicts"
click node_quiz_cli "https://github.com/avdp13/learn/blob/main/Overhoring.py"
click node_speech_quiz "https://github.com/avdp13/learn/blob/main/Overhoring_praten.py"
click node_review "https://github.com/avdp13/learn/blob/main/Overhoring.py"
click node_speech_review "https://github.com/avdp13/learn/blob/main/Overhoring_praten.py"
click node_verb_quiz "https://github.com/avdp13/learn/blob/main/Irregular_verbs_En.py"
click node_verb_answers "https://github.com/avdp13/learn/blob/main/Irregular_verbs_En.py"
click node_greek_mapper "https://github.com/avdp13/learn/blob/main/OudGrieks_typen.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_list_editor,node_vocabulary_files,node_quiz_cli,node_speech_quiz,node_review,node_speech_review,node_keyboard_user toneBlue
class node_verb_quiz,node_verb_answers toneAmber
class node_greek_mapper toneMint
class node_learner,node_author,node_keyboard_service toneIndigo
```

## Components

### Vocabulary practice

- [List editor](https://github.com/avdp13/learn/blob/main/Bijvoegen.py): `Bijvoegen.py`
- [Vocabulary lists](https://github.com/avdp13/learn/tree/main/Dicts): `Dicts`
- [Quiz CLI](https://github.com/avdp13/learn/blob/main/Overhoring.py): `Overhoring.py`
- [Speech quiz](https://github.com/avdp13/learn/blob/main/Overhoring_praten.py): `Overhoring_praten.py`
- [Score and review](https://github.com/avdp13/learn/blob/main/Overhoring.py): `Overhoring.py`
- [Spoken review](https://github.com/avdp13/learn/blob/main/Overhoring_praten.py): `Overhoring_praten.py`

### Verb practice

- [Irregular verbs](https://github.com/avdp13/learn/blob/main/Irregular_verbs_En.py): `Irregular_verbs_En.py`
- [Verb answer tables](https://github.com/avdp13/learn/blob/main/Irregular_verbs_En.py): `Irregular_verbs_En.py`

### Greek input

- [Greek key mapping](https://github.com/avdp13/learn/blob/main/OudGrieks_typen.py): `OudGrieks_typen.py`

### Other components

- **Learner**
- **List author**
- **Keyboard user**
- **Keyboard events**

## Connections

- List author → List editor: enters words (evidence: `Bijvoegen.py`)
- List editor → Vocabulary lists: writes list (evidence: `Bijvoegen.py`)
- Learner → Quiz CLI: selects lists (evidence: `Overhoring.py`)
- Quiz CLI → Vocabulary lists: reads lists (evidence: `Overhoring.py`)
- Quiz CLI → Score and review: calls review (evidence: `Overhoring.py`)
- Learner → Speech quiz: selects lists (evidence: `Overhoring_praten.py`)
- Speech quiz → Vocabulary lists: reads lists (evidence: `Overhoring_praten.py`)
- Speech quiz → Spoken review: calls review (evidence: `Overhoring_praten.py`)
- Learner → Irregular verbs: answers prompts (evidence: `Irregular_verbs_En.py`)
- Irregular verbs → Verb answer tables: checks answers (evidence: `Irregular_verbs_En.py`)
- Keyboard user → Keyboard events: presses keys
- Keyboard events → Greek key mapping: dispatches events (evidence: `OudGrieks_typen.py`)
- Greek key mapping → Keyboard events: writes mapped keys (evidence: `OudGrieks_typen.py`)
