ankiGenAddon main image

Project Description & Details

Задача

AnkiGenAddon решает прикладную задачу: Разработал продвинутое дополнение для Anki на Python для автоматической генерации карточек с поддержкой фрагментов кода (с подсветкой синтаксиса), markdown и JSX. Реализовал кастомные диалоговые окна UI, отслеживание прогресса и несколько режимов обучения: Dive Mode (структурированное изучение программирования), Testing Mode (оценка знаний) и Language Learning Mode (Beta). Обеспечил надежность с помощью комплексного набора тестов pytest.

Проект относится к коммерческий разработке и в активной разработке. Связан с услугами: Full-stack веб-приложения и дашборды.

Кейс показывает подход к задачам в области «Full-stack веб-приложения и дашборды»: от постановки до сдачи с понятной структурой модулей.

Перед стартом зафиксировали критерии готовности: понятный первый экран, предсказуемые ошибки форм, возможность доработки без переписывания половины кодовой базы.

Решение

Сделана учебная, но полноценная реализация с акцентом на читаемость кода и воспроизводимую сборку.

Сценарии спроектированы так, чтобы основные действия укладывались в один–два экрана: меньше переключений, меньше ошибок при вводе. Навигация и подписи полей согласованы с привычными паттернами — пользователю не нужно «учить интерфейс».

Отдельное внимание — состояния загрузки и пустые списки: skeleton/spinner там, где данные приходят асинхронно, и понятные empty-state тексты вместо пустой таблицы.

Архитектура и стек

Сервер и данные: python-dotenv.

Инфраструктура и утилиты: aiohttp, beautifulsoup4, openai, pygments, pytest, pytest-asyncio, pytest-cov, requests, tiktoken, typing-extensions, PyQt6, asyncio.

Распределение языков в репозитории: Python (95%), JavaScript (2.5%), HTML (1.1%), CSS (1%), Shell (0.3%), Dockerfile (0.1%).

Слои разделены так, чтобы UI не знал деталей транспорта: адаптеры API/хранилища, доменные типы, компоненты представления. Это упрощает замену бэкенда и точечные UX-правки.

Ключевые функции

  • aiohttp — использован в продуктовой логике: снижает количество самописного кода и ускоряет добавление новых экранов.
  • beautifulsoup4 — использован в продуктовой логике: снижает количество самописного кода и ускоряет добавление новых экранов.
  • openai — использован в продуктовой логике: снижает количество самописного кода и ускоряет добавление новых экранов.
  • pygments — использован в продуктовой логике: снижает количество самописного кода и ускоряет добавление новых экранов.
  • pytest — использован в продуктовой логике: снижает количество самописного кода и ускоряет добавление новых экранов.
  • pytest-asyncio — использован в продуктовой логике: снижает количество самописного кода и ускоряет добавление новых экранов.
  • pytest-cov — использован в продуктовой логике: снижает количество самописного кода и ускоряет добавление новых экранов.
  • python-dotenv — использован в продуктовой логике: снижает количество самописного кода и ускоряет добавление новых экранов.

Дополнительно:

  • Интеграция и использование aiohttp в продуктовой логике и интерфейсе.
  • Интеграция и использование beautifulsoup4 в продуктовой логике и интерфейсе.
  • Интеграция и использование openai в продуктовой логике и интерфейсе.

Результат

MVP уже покрывает ключевой сценарий; дальше — расширение отчётности, тестов и мониторинга.

Исходный код открыт: https://github.com/astropsy999/ankiGenAddon — можно оценить структуру модулей и стиль коммитов.

Что бы улучшил

Следующий шаг — observability (логи/метрики), автотесты на регресс и документация API для интеграторов. Для high-load сценариев — профилирование узких мест и кеширование справочников.

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