Telegram-бот для поэтапного обучения SRE-основам с:
- учебными модулями и уроками,
- квизами и базовым mastery score,
- чеклистами и mentor review,
- SRS-повторением сложных тем,
- отчетами по прогрессу джунов.
Уроки выдаются порционно через /lesson и /lesson_next. Текст хранится в БД (таблица lesson_content_chunks) — выжимки по всем темам, чтобы джунам не обязательно идти во внешние источники. Ссылки в /sources остаются дополнительными.
Добавление текста из книг:
- Вручную: правка миграций или
INSERTвlesson_content_chunks. - Из PDF: скрипт
scripts/extract_pdf_chunks.pyвытаскивает текст из PDF и режет на чанки; можно вывести SQL под нужныйlesson_id. См.scripts/README.md.
- Скопируйте
.env.exampleв.envи заполнитеBOT_TOKEN. - (Опционально) добавьте allowlist:
ALLOWED_TELEGRAM_IDSMENTOR_TELEGRAM_IDSADMIN_TELEGRAM_IDS
- Запустите стек:
docker compose up --buildСервисы:
apiнаhttp://localhost:8080bot(long polling)worker(напоминания на повторение)postgres,redismigrate(однократное применение миграций)
/start/roadmap/lesson— следующий урок (порциями)/lesson_next— следующая порция текущего урока/done (lesson_id)/quiz <module_slug>/review/progress/sources <module_slug>/checklists <module_slug>/submit_checklist <checklist_id> <notes>/mentor_report(mentor/admin)/pending_reviews(mentor/admin)/review_submission <id> approve|rework [comment](mentor/admin)
GET /healthzGET /metricsGET /modules?telegram_id=<id>GET /users/progress?telegram_id=<id>GET /mentor/reportsPOST /mentor/checklists/review
cmd/bot— Telegram bot runtimecmd/api— HTTP API/отчеты/health/metricscmd/worker— SRS reminder workerinternal/app— доменная логика + storemigrations— схема и seed-контент (в т.ч. выжимки по урокам)scripts/— выгрузка текста из PDF в чанки (см.scripts/README.md)