О чём эта работа

Ты делаешь маленький работающий сервис для своего класса. Проект такого рода оценивают по тому, решает ли он настоящую задачу. Поэтому начни с вопроса, чем твой бот лучше фотографии расписания в общем чате. Ответ обычно в трёх вещах. Он отвечает мгновенно на конкретный день, он знает про замены, он не теряется в переписке.

Из каких частей собрать проект

  • Список команд. Напиши на бумаге, что бот умеет. Обычно хватает четырёх команд. Расписание на сегодня, на завтра, на любой день недели и домашнее задание. Список команд нужен до кода, иначе бот обрастает случайными функциями и ни одна не доведена.
  • Хранение расписания. Для класса подойдёт обычный файл с данными, например таблица или структура в формате JSON, где на каждый день недели лежит список уроков. Базу данных заводить незачем, и об этом стоит прямо написать в работе с обоснованием.
  • Подключение к Telegram. Бот создаётся через BotFather, который выдаёт токен доступа. Дальше подойдёт любая библиотека для работы с ботами на Python. Опиши в работе, как устроен цикл. Бот спрашивает сервер о новых сообщениях, разбирает команду, отвечает текстом.
  • Замены. Это самая ценная часть проекта, потому что ради неё бота и открывают. Реши, кто вносит замену и как. Обычно делают отдельную команду для старосты с проверкой, что её отправил именно он, и запись замены на конкретную дату поверх обычного расписания.
  • Проверка на людях. Дай ботом попользоваться пяти одноклассникам и запиши, что пошло не так. Почти всегда всплывает одно и то же. Команду пишут с опечаткой, спрашивают в выходные, просят расписание на прошедший день. Обработка этих случаев и отличает учебную поделку от рабочего инструмента.

Что оценит преподаватель

Первым делом спросят, работает ли бот сейчас. Приготовь телефон и покажи живьём, это сильнее любой презентации. Второй вопрос обычно про ошибки. Незнакомая команда, пустое расписание на воскресенье, отключённый интернет. Бот должен отвечать понятной фразой в каждом из этих случаев. Третий вопрос про то, понимаешь ли ты свой код. Будь готов объяснить, где программа разбирает команду и где берёт данные.

Отдельно ценится честность про границы. Скажи прямо, что бот работает, пока запущена программа на твоём компьютере, и что для круглосуточной работы его нужно разместить на сервере. Это взрослый ответ, и он лучше обещания, которое не выполняется.

Где брать материал

Начни с официальной документации Telegram для разработчиков ботов, там описаны команды и формат ответов. Дальше подойдёт документация выбранной библиотеки с примерами первого бота. Само расписание возьми настоящее, своего класса, и покажи в работе, как ты перевёл его из таблицы в структуру данных. Этот переход хорошо иллюстрирует тему для пятого-девятого класса.

Типичная ошибка в этой теме

Проект пытаются делать универсальным. Бот для всей школы, с выбором класса, с личными кабинетами и уведомлениями. До защиты обычно доживает половина, и ни одна часть не работает целиком. Сделай сначала бота для своего класса и доведи его до конца. Расширение легко описать словами в разделе о развитии проекта, и это засчитывается, а вот недоделанная функция в демонстрации стоит дорого.

С чего начать в первый день

Создай бота у BotFather и добейся, чтобы он отвечал одним словом на любое сообщение. Это займёт вечер и сразу снимает главную неопределённость проекта, потому что дальше остаётся только работа с данными расписания. Заодно ты поймёшь, где хранится токен и как запускается программа.

Частые вопросы

Какой язык программирования выбрать

Для школьного проекта удобнее всего Python, у него простые библиотеки для ботов и много примеров. Если ты уже уверенно пишешь на другом языке, бери его и обоснуй выбор в работе.

Нужно ли размещать бота на сервере

Для защиты достаточно запуска на своём компьютере. Размещение на сервере опиши как следующий шаг развития, с указанием, зачем оно нужно.

Что делать, если расписание меняется каждую неделю

Вынеси расписание в отдельный файл, чтобы менять данные без правки кода. Это и есть главный приём, который стоит показать на защите.