Review record RC-028 (Go, autonomous mode, not independent). Task: MIL-006#1 Task: MIL-006#2 Task: MIL-006#3 Task: MIL-006#4 Task: MIL-006#5
🚀 Flash Card
A flash card program for learning the most frequent Malay words with their Danish translations. It is the solution of day 31 of Udemy's 100 Days of Code: The Complete Python Pro Bootcamp, written for course participants who want to compare solutions and for visitors who browse the repository for ideas.
📚 Table of Contents
🧭 Overview
The program shows a Malay word on a card. After three seconds the card turns over and shows the Danish translation. You press the green tick when you know the word and the red cross when you do not. A known word is removed from the words to learn, and the words still to learn are saved, so the next start continues where you stopped.
| Part | What it is for |
|---|---|
src/flash_card/ |
The program, in four layers: domain, application, infrastructure, presentation |
tests/ |
pytest tests: unit, integration, e2e |
data/ |
The word list ms-da.csv and, after the first known word, your own words_to_learn.csv |
docs/ |
Project documents (business case, plan, design, review records) |
Doxyfile |
Doxygen configuration for the source code documentation |
The core program uses only the Python standard library. Spoken Malay words are an optional extra.
📋 Requirements
| Need | Why |
|---|---|
| Python 3.13 or later, with Tkinter | The program and its window (Tkinter is part of the standard Python installers for Windows and macOS; on Debian or Ubuntu install python3-tk) |
git |
To clone the repository |
| Doxygen (optional) | To build the source code documentation |
gTTS and playsound==1.2.2 (optional, extra speech) |
To hear the Malay word; needs a network connection |
🛠️ Setup
Create a virtual environment in .venv, activate it, upgrade pip and install the project. Run the commands in the repository folder.
Windows (PowerShell):
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
python -m pip install -e ".[dev]"
Linux and macOS:
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -e ".[dev]"
- Use
python -m pip install -e .if you only want to run the program; thedevextra addspytest,ruff,mypyandimport-linter. - Add the spoken word with
python -m pip install -e ".[speech]". - If PowerShell refuses to run
Activate.ps1, runSet-ExecutionPolicy -Scope CurrentUser RemoteSignedonce, or use.\.venv\Scripts\activate.batincmd. - Leave the environment with
deactivate. Delete the.venvfolder to start over.
▶️ Run
python -m flash_card
The program is run from the activated .venv. The window opens with the first card; the program is built step by step and the pull requests and milestones show each step.
🧪 Tests
python -m pytest
Quality checks used by the project:
python -m ruff check src tests
python -m mypy
lint-imports
The window test in tests/e2e/ is skipped when no display is available.
📄 License
GNU Affero General Public License v3.0 or later. See LICENSE.
🔗 Links
📎 Appendix: Project documents
The documents a newcomer needs, in reading order.
| Document | What it tells you |
|---|---|
| AGENTS.md | The rules AI agents follow in this repository |
| Business Case | Why the project exists, its scope and success criteria |
| Stakeholder Analysis | Who is involved; the stakeholder IDs used for owners and reviewers |
| Project Plan | The gateways and their schedule |
| Milestones | One document per gateway: Go/No-Go criteria and tasks |
| Artifact registry | Where each artifact type lives, the next version, the PO language and domain |
| Domain dictionary | The PO terms and the IT terms |
| Traceability matrix | How the artifacts link and when each was last reviewed |
| Framework README | The framework this project uses |
| Framework changelog | What changed in each framework release |