
Опис та деталі проекту
Задача
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 сценаріїв — профілювання вузьких місць та кешування довідників.
Часті запитання
Для чого потрібен проєкт «AnkiGenAddon»?
Розробив просунутий аддон для Anki на Python для автоматичної генерації карток з підтримкою фрагментів коду (з підсвічуванням синтаксису), markdown та JSX. Реалізував кастомні діалогові вікна UI, відстеження прогресу та кілька режимів навчання: Dive Mode (структуроване вивчення програмування), Testing Mode (оцінка знань) та Language Learning Mode (Beta). Забезпечив надійність за допомогою комплексного набору тестів pytest.
Який стек у «AnkiGenAddon»?
Технології: aiohttp, beautifulsoup4, openai, pygments, pytest, pytest-asyncio, pytest-cov, python-dotenv, requests, tiktoken, typing-extensions, PyQt6, asyncio.
Інформація про проект
CommercialIn Development
- Створено: 06 Feb 2025
- Оновлено: 20 Oct 2025
- URL GitHub: Переглянути репозиторій