# План развития и архитектурная дорожная карта: Study Qpid (study.qpid.pro) > **Принцип проектирования**: *«Работает как автомат Калашникова»* — сверхнадёжно, мгновенно, полностью автономно, защищено для публичного интернета, без раздутых зависимостей и без привязки к платным внешним API. --- ## 1. Архитектура системы Сервис разворачивается в Docker-окружении на защищённом сервере за Nginx с SSL Let's Encrypt (`study.qpid.pro`). ``` ┌─────────────────────────────────────────────────────────────┐ │ study.qpid.pro │ │ Nginx (HTTPS / Let's Encrypt / Security Headers) │ └──────────────────────────────┬──────────────────────────────┘ │ proxy_pass 127.0.0.1:8002 ┌──────────────────────────────▼──────────────────────────────┐ │ Docker Container: study-qpid-pro │ │ │ │ • FastAPI Lifespan & Security Middlewares (GZip, Headers) │ │ • Модульные APIRouters (auth, cards, srs, reader, etc.) │ │ • SQLite WAL + mmap I/O (транзакции, 0.01ms чтение) │ │ • Локальный Piper Neural TTS (чистый нативный голос VITS) │ │ • Вынесенные JSON-датасеты (data/seeds/) │ │ • Модульные CSS-стили (7 предметных таблиц + PWA SW v6.7) │ └──────────────────────────────┬──────────────────────────────┘ │ http://ollama:11434 (Keep-Alive 120s) ┌──────────────────────────────▼──────────────────────────────┐ │ Docker Container: study-ollama │ │ • Qwen 2.5 3B Instruct (контекстный перевод предложений │ │ и педагогический дебрифинг уроков) │ └─────────────────────────────────────────────────────────────┘ ``` --- ## 2. Реализованные этапы развития (Completed Roadmap) ### ✅ Этап 1: Защищённое ядро (MVP) и базовый словарь - [x] Авторизация на сессионных куках (`HttpOnly`, `SameSite=Lax`, `Secure`). - [x] Хэширование паролей `PBKDF2-HMAC-SHA256` с уникальной солью на пользователя. - [x] Rate limiting для предотвращения атак перебором. - [x] Офлайн-словарь (140k+ записей) с каскадным переводом. - [x] Сохранение слов с контекстным предложением и горячими клавишами (`Ctrl+Enter`). - [x] Журнал личного словаря, поиск, фильтрация по тегам и коллекциям. ### ✅ Этап 2: Организация, экспорт и PWA - [x] Коллекции и теги, разбивка слов по категориям. - [x] Пакетные операции над карточками (массовое перемещение, удаление, добавление тегов). - [x] Экспорт данных в форматы: CSV, JSON, Anki TSV и Markdown. - [x] PWA-манифест и Service Worker для офлайн-доступа к приложению. ### ✅ Этап 3: Алгоритм интервальных повторений (SRS SM-2) и тренажер - [x] Реализация математической модели SuperMemo SM-2 (Ease Factor, Repetitions, Intervals). - [x] 3D-флип карточки с градацией оценок (Снова, Трудно, Хорошо, Легко). - [x] Режим Smart Quiz (выбор из 4 вариантов с дистракторами из той же части речи). - [x] Режим активного ввода (Active Typing) с набором английского слова по русскому переводу. - [x] Smart Daily Mix: сбалансированная подборка (10 новых + 10 повторов + 5 проблемных слов). - [x] Детекция проблемных слов (Leeches) и повторный фокус на них. - [x] Аналитика: календарь активности (Heatmap 180 дней), стрик дней, процент удержания (Retention Rate), оценка уровня CEFR. ### ✅ Этап 4: Интерактивная читалка и книжная полка - [x] Поддержка книг и документов: EPUB, PDF, TXT, Markdown (`.md`). - [x] Автоматический сборщик стандартов IETF RFC по номеру или URL. - [x] Интеграция с Wikipedia: автономная загрузка статей с очисткой верстки под тайм-бюджет. - [x] Интерактивный клик-перевод каждого слова с выводом контекста. - [x] Добавление слова и цитаты в словарь в 1 клик прямо из текста. - [x] Непрерывное чтение (continuous scroll) с карточками перехода между главами. - [x] Темы оформления (Light, Dark, Sepia, Night, Parchment, Hacker) и типографика. ### ✅ Этап 5: Автономный локальный ИИ (Ollama) и нейро-озвучка (Piper) - [x] Развертывание локального контейнера Ollama с моделью `qwen2.5:3b`. - [x] Контекстный перевод предложений с учетом целевого слова и сохранением в кэш SQLite. - [x] Локальный VITS-синтез речи Piper TTS (US Lessac, RU Dmitri) с нулевой задержкой. - [x] Фоновое пред-кэширование произношения слов и предложений при добавлении в словарь. - [x] Тренажёр аудирования (Listening) с проверкой понимания. ### ✅ Этап 6: Грамматика Murphy & Тестирование CEFR - [x] 260 интерактивных заданий Cloze Tap по международным уровням A1–B2. - [x] Автоматическая gap-ингестия: отправка ошибочных слов из тестов в активный тренажёр SRS. - [x] Фоновый воркер майнинга тестов из загруженной литературы. - [x] 15 базовых юнитов грамматики Murphy с формулами и теорией. - [x] Синхронизация с рукописным бумажным конспектом. ### ✅ Этап 7: Конструктор комплексного урока & Сессионный раннер - [x] Единый конструктор ежедневного урока: блоки слов (Flashcards/Quiz/Typing/Dictation), грамматики, аудирования, чтения. - [x] Встроенные готовые шаблоны (Экспресс, Сбалансированный, Глубокий, Аудио+Чтение). - [x] Адаптивный подбор темы грамматики («Самая слабая тема по ошибкам», «Предыдущая тема»). - [x] Сквозная телеметрия ошибок сессии и интеллектуальный ИИ-дебрифинг от Qwen 2.5 3B. - [x] Детерминированный фолбэк для мгновенного завершения сессии при выключенной Ollama. ### ✅ Этап 8: Глубокий технический рефакторинг и оптимизация (Beta-refactor) - [x] **Этап 1 рефакторинга**: Удаление мертвого кода (`parse_text`), оптимизация SQL в фоновых задачах. - [x] **Этап 2 рефакторинга**: Вынос 3 100+ строк захардкоженных датасетов в `data/seeds/*.json`. - [x] **Этап 3 рефакторинга**: Keep-Alive пул соединений для Ollama (120s), офлайн-лемматизация в словаре. - [x] **Этап 4 рефакторинга**: Модуляризация бэкенда (`app/main.py` сокращён с 2 240 до 142 строк, создано 11 APIRouters). - [x] **Этап 5 рефакторинга**: Модуляризация CSS (`style.css` 8 746 строк разделен на 7 предметных файлов, обновлён прекэш SW v6.7). - [x] 100% покрытие авто-тестами: 44/44 тестов проходят в Docker. --- ## 3. Ближайшие планы и вектор развития (Future Enhancements) 1. **Браузерный букмарклет для захвата слов**: - Минималистичный JS-скрипт для браузера, позволяющий по клику отправить выделенное слово и контекст страницы в личный словарь `study.qpid.pro`. 2. **HTML5 Web Speech API fallback**: - Дополнительный запасной канал озвучивания через встроенный `window.speechSynthesis` при мобильном режиме без связи. 3. **Расширение библиотеки Murphy**: - Постепенное расширение учебных юнитов грамматики с 15 до 30+ тем (Passive Voice, Reported Speech, Phrasal Verbs in Context). 4. **Адаптивные интервалы по времени суток**: - Учёт утренних и вечерних окон повторения в сессионном раннере для максимальной концентрации.