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