
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
- Created: 06 Feb 2025
- Last Updated: 20 Oct 2025
- GitHub URL: View Repository
