Telegram-бот для студентов: расписание, замены преподавателей, напоминания перед парами и расписание автобусов — в одном чате.
- Онбординг — после
/startвыбирается корпус и группа; формат группы проверяется через API расписания. - Расписание — команда
/scheduleили кнопка в меню: день недели, пары, при необходимости замены на выбранный день. - Напоминания — заранее (по умолчанию за ~10 минут до начала пары) сообщение с предметом, аудиторией и преподавателем; можно отключить в настройках.
- Автобусы — направления вроде «к учебному корпусу» / «к метро» (парсинг маршрутов; для части сценариев нужны Playwright/Chromium или настроенный Selenium — см. docs/README.md).
- Настройки — язык интерфейса (ru, en, de, no, sv, fi), смена корпуса и группы, включение и выключение уведомлений.
Данные пользователей хранятся в SQLite; файл БД и persistence создаются при работе бота (пути задаются в .env).
- Python 3.10+, python-telegram-bot (polling).
- HTTP-клиент httpx для API расписания и замен.
- Опционально Redis для общего кэша расписания между процессами (см.
.env.example).
git clone https://github.com/CraftStick/StudentBuddy.git
cd StudentBuddy
python3 -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .envВ .env обязательно укажи BOT_TOKEN (от @BotFather) и SCHEDULE_API_TOKEN (токен API расписания). Затем:
python3 health_check.py
python3 bot.pyПодробнее: установка, Docker, деплой и переменные окружения — docs/README.md.