docs: update TODO.md with completed background tasks and book mining
This commit is contained in:
@@ -347,6 +347,28 @@
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
### 16.2. ⚡ Фоновые задачи и генерация тестов CEFR из загруженных книг (Background Tasks & Book Mining)
|
||||||
|
- [x] **Zero-Daemon менеджер фоновых задач (`app/tasks.py`)**:
|
||||||
|
- Таблица SQLite `background_tasks` (id, user_id, task_type, status, progress_current, progress_total, message, params_json, result_json, error_message).
|
||||||
|
- Асинхронное исполнение через чистый `asyncio.create_task` без Celery, Redis и внешних брокеров (100% Ponytail).
|
||||||
|
- Кооперативная отмена задач (`cancel_task`, `is_task_cancelled`).
|
||||||
|
- Эндпоинты API: `POST /api/tasks/mine-books`, `GET /api/tasks/active`, `GET /api/tasks/{task_id}`, `POST /api/tasks/{task_id}/cancel`.
|
||||||
|
- [x] **Движок анализа и майнинга предложений из книг (`app/miner.py`)**:
|
||||||
|
- Разбиение текста глав на чистые предложения с защитой английских инициалов и сокращений (`Mr.`, `Mrs.`, `Dr.`, `Prof.`, `St.`, `Jr.`).
|
||||||
|
- Сопоставление с лексической шкалой Oxford 3000/5000 (A1..B2) и базой частей речи.
|
||||||
|
- Подбор грамматически и лексически корректных дистракторов того же уровня CEFR и части речи.
|
||||||
|
- Формирование 4-вариантных заданий Cloze Tap со скрытием ключевого слова `___`.
|
||||||
|
- Защита от дубликатов предложений через `UNIQUE(level, sentence)` в SQLite.
|
||||||
|
- Автоматическая очистка русскоязычного глоссария (`clean_translation`) от паразитных латинских транслитов Викисловаря.
|
||||||
|
- [x] **Интерфейс в веб-приложении (PWA)**:
|
||||||
|
- Кнопка `⚡ Собрать тесты из книг` в шапке тестов CEFR.
|
||||||
|
- Модальное окно с выбором книги (или всей библиотеки), целевого уровня (A1..B2 / ALL) и количества вопросов.
|
||||||
|
- Интерактивный фоновый баннер со спиннером, живым счетчиком прогресса `X / Y (%)` и кнопкой отмены задачи.
|
||||||
|
- Бейджик источника `📖 «Название книги» (Глава)` в карточке вопроса и в разборе ответа.
|
||||||
|
- [x] Автоматический тест `test_background_tasks_and_book_mining` в `tests/test_api.py` (30/30 тестов успешно пройдены).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
### 17. 🍔 Разгрузка хеддера и единая навигация через боковое меню / Drawer (Unified Navigation & Header Redesign)
|
### 17. 🍔 Разгрузка хеддера и единая навигация через боковое меню / Drawer (Unified Navigation & Header Redesign)
|
||||||
- [ ] **Проблема перегруженного хеддера**:
|
- [ ] **Проблема перегруженного хеддера**:
|
||||||
- В шапке скопилось 8+ кнопок (`📚 Читалка`, `🎯 Тесты CEFR`, `📖 Грамматика`, `🎓 Тренажёр`, `📊 Статистика`, `📤 Экспорт`, тема, шестеренка, профиль), на экранах планшетов и ноутбуков возникает переполнение и визуальный шум.
|
- В шапке скопилось 8+ кнопок (`📚 Читалка`, `🎯 Тесты CEFR`, `📖 Грамматика`, `🎓 Тренажёр`, `📊 Статистика`, `📤 Экспорт`, тема, шестеренка, профиль), на экранах планшетов и ноутбуков возникает переполнение и визуальный шум.
|
||||||
|
|||||||
Reference in New Issue
Block a user