Telegram Schedule Bot 🤖
Бот для получения расписания занятий и списка преподавателей. Разработан для студентов, чтобы упростить доступ к учебной информации. ✨ Функционал
📅 Расписание занятий по дням недели и типу недели (четная/нечетная)
👨🏫 Список преподавателей по команде /teachers
🆘 Помощь по команде /help
🏠 Старт по команде /start
🔍 Умный парсинг запросов на естественном языке
🚀 Установка и запуск
- Клонирование репозитория bash
git clone https://github.com/Nikhub03/telegram-schedule-bot.git cd telegram-schedule-bot
- Установка зависимостей bash
pip install -r requirements.txt
Если файла requirements.txt нет, установите зависимости вручную: bash
pip install pytelegrambotapi python-dotenv
-
Настройка окружения
Получите токен бота у @BotFather
Создайте файл .env в корне проекта:
env
TELEGRAM_TOKEN=ваш_токен_здесь
Убедитесь, что .env добавлен в .gitignore
- Запуск бота bash
python Bot.py
🔧 Зависимости проекта
Создайте файл requirements.txt со следующим содержимым: text
pytelegrambotapi==13.7.0 python-dotenv==1.0.0
🛠 Технологии
Python 3.10+ - основной язык программирования
pyTelegramBotAPI - работа с Telegram Bot API
python-dotenv - управление конфигурацией и переменными окружения
Логирование - встроенный модуль logging для отслеживания событий
📁 Структура проекта text
telegram-schedule-bot/ ├── Bot.py # Точка входа, управление жизненным циклом бота ├── schedule.py # Основной класс бота (ООП архитектура) ├── data.py # Данные: расписание, преподаватели, тексты ├── config.py # Конфигурация (загрузка токена из .env) ├── requirements.txt # Зависимости проекта ├── .env.example # Шаблон для переменных окружения ├── .gitignore # Исключаемые файлы (токены, виртуальные среды) └── README.md # Документация
💡 Примеры использования Команды бота: text
/start - Начало работы с ботом /help - Справка по командам и возможностям /teachers - Получить список преподавателей
Текстовые запросы (естественный язык): text
"скинь расписание на вторник по 2 неделе" "расписание на среду нечетная неделя" "пятница четная неделя"
🎯 Для ревьюеров стажировки Т-Банк
Этот проект демонстрирует следующие навыки из требований стажировки: ✅ ООП (Объектно-ориентированное программирование)
Класс ScheduleBot - инкапсуляция всей логики бота в одном классе
Методы-обработчики - handle_start, handle_help, handle_teachers и другие
Отделение данных от логики - модуль data.py содержит только данные, schedule.py - логику
✅ Алгоритмы и структуры данных
Словари (dict) для хранения расписания с быстрым доступом O(1)
Алгоритм парсинга естественно-языковых запросов пользователя
Поиск по структурам данных - эффективное извлечение данных по ключам (день недели, тип недели)
✅ Python и практики разработки
Модульная архитектура - четкое разделение на data/config/logic модули
Безопасность - токены через переменные окружения (.env файл), защита от попадания в git
Логирование - настройка логирования событий бота
Обработка ошибок - graceful shutdown, обработка исключений при работе с API
Чистый код - понятные названия переменных, комментарии, структурированный код
✅ Дополнительные навыки
Работа с внешними API - интеграция с Telegram Bot API
Конфигурация приложений - использование .env файлов для настроек
Управление зависимостями - requirements.txt для воспроизводимости установки
📈 Планы по улучшению проекта
Добавление тестов - написание unit-тестов с использованием pytest
Контейнеризация - создание Dockerfile для запуска в контейнере
База данных - миграция с hardcoded данных на SQLite/PostgreSQL
Веб-интерфейс - создание простой админ-панели для управления расписанием
Расширение функционала - добавление уведомлений, календаря, экспорта в PDF
CI/CD - настройка GitHub Actions для автоматического тестирования
👤 Автор
Никита Telegram: @n1k1t110 GitHub: @Nikhub03 📝 Лицензия
Этот проект распространяется под лицензией MIT. Подробнее см. в файле LICENSE.
⭐ Если проект был полезен, поставьте звезду на GitHub!