ankiGenAddon main image

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

Technologies Used

aiohttpbeautifulsoup4openaipygmentspytestpytest-asynciopytest-covpython-dotenvrequeststiktokentyping-extensionsPyQt6asyncio

Languages

Python (95%)JavaScript (2.5%)HTML (1.1%)CSS (1%)Shell (0.3%)Dockerfile (0.1%)