Skip to content

Nikhub03/telegram-schedule-bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Telegram Schedule Bot 🤖

Бот для получения расписания занятий и списка преподавателей. Разработан для студентов, чтобы упростить доступ к учебной информации. ✨ Функционал

📅 Расписание занятий по дням недели и типу недели (четная/нечетная)

👨‍🏫 Список преподавателей по команде /teachers

🆘 Помощь по команде /help

🏠 Старт по команде /start

🔍 Умный парсинг запросов на естественном языке

🚀 Установка и запуск

  1. Клонирование репозитория bash

git clone https://github.com/Nikhub03/telegram-schedule-bot.git cd telegram-schedule-bot

  1. Установка зависимостей bash

pip install -r requirements.txt

Если файла requirements.txt нет, установите зависимости вручную: bash

pip install pytelegrambotapi python-dotenv

  1. Настройка окружения

    Получите токен бота у @BotFather

    Создайте файл .env в корне проекта:

env

TELEGRAM_TOKEN=ваш_токен_здесь

Убедитесь, что .env добавлен в .gitignore
  1. Запуск бота 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!

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages