10 KiB
10 KiB
План развития проекта Notes (notes.qpid.pro)
Принцип проектирования: «Работает как автомат Калашникова» — сверхнадёжно, мгновенно, без раздутых зависимостей и необходимости постоянного ручного обслуживания.
1. Архитектура и стек решений
┌─────────────────────────────────────────────────────────────┐
│ notes.qpid.pro │
│ (Nginx Reverse Proxy + Let's Encrypt) │
└──────────────────────────────┬──────────────────────────────┘
│ proxy_pass :8002
┌──────────────────────────────▼──────────────────────────────┐
│ Backend: Python 3.12 │
│ FastAPI / Uvicorn + SQLite (WAL mode) + Dictionary APIs │
└──────────────────────────────┬──────────────────────────────┘
│
┌───────────────────────┴───────────────────────┐
▼ ▼
┌─────────────────────────────┐ ┌─────────────────────────────┐
│ Внешние открытые API │ │ Локальная БД SQLite │
│ • Free Dictionary API │ │ • vocabulary_cards │
│ (IPA, audio, definitions) │ │ • search_history │
│ • MyMemory / Context Trans. │ │ • srs_reviews (SM-2) │
│ (перевод на русский) │ │ • tags & categories │
└─────────────────────────────┘ └─────────────────────────────┘
Выбор технологий:
- Backend: Python 3.12 + FastAPI (асинхронный, лёгкий, типизированный, мгновенный запуск).
- База данных: SQLite в режиме
WAL(Write-Ahead Logging). Полная транзакционность, нулевые затраты на администрирование, бэкап копированием одного файла. - Frontend: Vanilla ES6+ / Modern CSS / HTML5. Без тяжелых бандлеров и node_modules. Адаптивный мобильный интерфейс (PWA), оффлайн-кэш на LocalStorage/CacheStorage, поддержка хоткеев.
- Внешние API (Zero-cost & Open):
- Free Dictionary API (
api.dictionaryapi.dev): официальная фонетическая транскрипция IPA, аудио-файлы нативного произношения (US/UK), английские определения и примеры. - MyMemory Translated API: качественный перевод фраз и предложений на русский язык.
- Free Dictionary API (
2. Этапы реализации (Roadmap)
Этап 1: Ядро системы (MVP) — Быстрый поиск, перевод и фиксация
Цель: закрыть боль переключения контекста при чтении документации.
- 1.1. Базовый интерфейс ввода:
- Строка поиска в фокусе при открытии страницы.
- Горячие клавиши:
Enter— мгновенный перевод.Ctrl + Enter(илиCmd + Enter) — сохранить карточку.Esc— очистить поле ввода.Ctrl + P(или пробел на карточке) — воспроизвести аудио-произношение.
- 1.2. Каскадный переводчик (Backend API):
- Автоопределение ввода: отдельное слово или предложение/фраза.
- Запрос словарных данных (транскрипция, аудио mp3, толкование, русский перевод).
- Кэширование запросов в локальной SQLite для мгновенного повторного показа.
- 1.3. Контекстное сохранение:
- Поле для ввода контекстного предложения (откуда взято слово).
- Быстрый выбор тега (по умолчанию
#networking,#general,#protocol). - Возможность подправить перевод перед сохранением.
- 1.4. Журнал истории и база слов:
- Хронологическая лента сохраненных слов с датой и временем.
- Поиск и фильтрация по сохранённым словам.
- Мгновенное удаление / редактирование.
Этап 2: Организация, теги и экспорт
Цель: структурирование профессионального глоссария инженера.
- 2.1. Система тегов и коллекций:
- Тегирование по направлениям:
#routing,#switching,#security,#bgp,#linux-kernel,#troubleshooting. - Фильтрация в один клик.
- Тегирование по направлениям:
- 2.2. Экспорт данных:
- Экспорт в CSV / Markdown.
- Экспорт готовой колоды для Anki (
.csv/.apkg) с аудио и контекстом. - Резервное копирование базы данных в 1 клик.
- 2.3. PWA (Progressive Web App):
- Возможность установки на смартфон / десктоп как самостоятельное приложение.
- Работа со списком слов в режиме оффлайн.
Этап 3: Встроенный тренажер интервальных повторений (SRS / SM-2)
Цель: гарантированное запоминание без необходимости устанавливать сторонние программы.
- 3.1. Движок алгоритма SuperMemo-2 (SM-2):
- Расчет фактора легкости (Ease Factor,
EF). - Очередь повторений на сегодня: карточки со статусом
Due. - 4 кнопки оценки:
Again(< 10 минут)Hard(+12 часов)Good(+1 день\rightarrow+3 дня\rightarrow+7 дней...)Easy(+4 дня\rightarrowгеометрическая прогрессия)
- Расчет фактора легкости (Ease Factor,
- 3.2. Режим карточек (Flashcards):
- Лицевая сторона: английский термин + аудио.
- Оборотная сторона: русский перевод + контекстное предложение + определение.
- 3.3. Режим Cloze Deletion (Вставка пропущенного слова):
- Мозг тренируется вспоминать термин прямо в техническом предложении:
"The switch [ ... ] the packet if the VLAN tag is invalid."
- Мозг тренируется вспоминать термин прямо в техническом предложении:
- 3.4. Аудио-диктант (Active Spelling):
- Сервис проигрывает произношение термина, пользователь печатает его на слух.
Этап 4: Профессиональный инструментарий сетевого инженера
Цель: превратить сервис в персонального ментора по сетевому английскому.
- 4.1. Встроенный сетевой глоссарий и акронимы:
- База популярных сетевых акронимов и аббревиатур (MTU, MSS, BFD, ECMP, CIDR, STP, SYN/ACK) с расшифровкой и техническим смыслом.
- 4.2. Статистика и аналитика прогресса:
- Счётчик дней непрерывного обучения (Daily Streak).
- График объёма активного словарного запаса.
- Коэффициент удержания памяти (% успешно вспомненных слов).
- 4.3. Быстрый захват из браузера:
- Букмарклет (Bookmarklet) для выделения слова на любой веб-странице документации и мгновенной отправки в
notes.qpid.pro.
- Букмарклет (Bookmarklet) для выделения слова на любой веб-странице документации и мгновенной отправки в
3. Критерии качества («Автомат Калашникова»)
- Скорость: Открытие страницы
< 100мс, поиск< 300мс. - Отказоустойчивость: Если внешний API словаря недоступен, сервис предлагает ручной ввод без блокировки интерфейса.
- Безопасность данных: Данные хранятся в надежной локальной SQLite, регулярный автоматический snapshot базы.
- Удобство: Управление полностью доступно с клавиатуры (без необходимости тянуться к мыши).