
Project Description & Details
Task
AnkiGenAddon addresses a practical problem: Developed an advanced Anki add-on in Python for automatic card generation with support for code snippets (with syntax highlighting), markdown, and JSX. Implemented custom UI dialog windows, progress tracking, and several learning modes: Dive Mode (structured programming study), Testing Mode (knowledge assessment), and Language Learning Mode (Beta). Ensured reliability with a comprehensive set of pytest tests.
The project is commercial and currently in active development. It is related to services: Full-stack web applications and dashboards.
The case demonstrates an approach to tasks in the area of "Full-stack web applications and dashboards": from task definition to delivery with a clear module structure.
Before starting, we fixed the readiness criteria: clear first screen, predictable form errors, and the ability to improve without rewriting half of the codebase.
Solution
A training but complete implementation was made with a focus on code readability and reproducible builds.
The scenarios are designed so that the main actions fit within one or two screens: fewer switches, fewer input errors. Navigation and field labels are aligned with familiar patterns — the user does not need to "learn the interface".
Special attention is given to loading states and empty lists: skeleton/spinner where data comes asynchronously, and clear empty-state texts instead of an empty table.
Architecture and stack
Server and data: python-dotenv.
Infrastructure and utilities: aiohttp, beautifulsoup4, openai, pygments, pytest, pytest-asyncio, pytest-cov, requests, tiktoken, typing-extensions, PyQt6, asyncio.
Language distribution in the repository: Python (95%), JavaScript (2.5%), HTML (1.1%), CSS (1%), Shell (0.3%), Dockerfile (0.1%).
Layers are separated so that the UI does not know the details of transport: API/storage adapters, domain types, presentation components. This simplifies backend replacement and targeted UX tweaks.
Key features
- aiohttp — used in product logic: reduces the amount of custom code and speeds up the addition of new screens.
- beautifulsoup4 — used in product logic: reduces the amount of custom code and speeds up the addition of new screens.
- openai — used in product logic: reduces the amount of custom code and speeds up the addition of new screens.
- pygments — used in product logic: reduces the amount of custom code and speeds up the addition of new screens.
- pytest — used in product logic: reduces the amount of custom code and speeds up the addition of new screens.
- pytest-asyncio — used in product logic: reduces the amount of custom code and speeds up the addition of new screens.
- pytest-cov — used in product logic: reduces the amount of custom code and speeds up the addition of new screens.
- python-dotenv — used in product logic: reduces the amount of custom code and speeds up the addition of new screens.
Additionally:
- Integration and use of aiohttp in product logic and interface.
- Integration and use of beautifulsoup4 in product logic and interface.
- Integration and use of openai in product logic and interface.
Result
The MVP already covers the key scenario; next — expanding reporting, tests, and monitoring.
The source code is open: https://github.com/astropsy999/ankiGenAddon — you can evaluate the module structure and commit style.
What I would improve
The next step is observability (logs/metrics), regression auto-tests, and API documentation for integrators. For high-load scenarios — profiling bottlenecks and caching reference data.
FAQ
What is «ankiGenAddon» for?
Developed an advanced Python-based Anki addon for automated flashcard generation, featuring support for code snippets (with syntax highlighting), markdown, and JSX. Implemented custom UI dialogs, progress tracking, and multiple learning modes: Dive Mode (structured programming learning), Testing Mode (knowledge assessment), and Language Learning Mode (Beta). Ensured robustness with a comprehensive pytest suite.
Which stack powers «ankiGenAddon»?
Technologies: aiohttp, beautifulsoup4, openai, pygments, pytest, pytest-asyncio, pytest-cov, python-dotenv, requests, tiktoken, typing-extensions, PyQt6, asyncio.
Project information
CommercialIn Development
- Created: 06 Feb 2025
- Last Updated: 20 Oct 2025
- GitHub URL: View Repository