tt_bot GitHub ↗
Telegram-бот для лабораторных

Лабораторная сдаётся в чате

tt_bot принимает работы прямо в Telegram, сам ведёт очередь проверок и отдаёт преподавателю готовый CSV-отчёт. Каждая работа получает позицию в очереди, статус и результат.

Python aiogram asyncio

Схематичный вид: чат сдачи и очередь проверок

01

Сдал в чате

Прикрепил файл к сообщению — бот подтвердил приём и назвал позицию в очереди.

02

Очередь ведётся сама

Асинхронные исполнители проверяют работы по порядку и следят за доступностью сервисов.

03

CSV у преподавателя

Итоги курса — готовым файлом: кто сдал, какую работу и с каким результатом.

1 чат

Сдача, статусы и результат — не выходя из Telegram

asyncio

Исполнители разбирают очередь параллельно, без простоя

история

У каждой работы — статус, позиция и след в журнале

CSV

Итоги курса преподаватель выгружает одним файлом

Возможности

Весь цикл лабораторной — без кабинетов и ручных таблиц

Шесть вещей, которые tt_bot берёт на себя: от первого сообщения студента до файла с итогами.

Приём лабораторных в чате

Работа сдаётся сообщением в Telegram: файл прикреплён, бот подтвердил приём и назвал позицию в очереди.

Асинхронные исполнители

Очередь построена на asyncio: проверки идут параллельно, чат не блокируется, а поток сдач обрабатывается спокойно.

Проверка доступности сервисов

Перед запуском бот убеждается, что целевой сервис отвечает. Сервис недоступен — задача честно ждёт, а не выдаёт ложный результат.

Статусы и история

Принята, в очереди, проверяется, готово: статус работы виден в любой момент, история остаётся в чате.

CSV-отчёты для преподавателя

По итогам преподаватель выгружает готовый CSV: кто сдал, какую лабораторную и с каким результатом.

Деплой на любой машине

Python, aiogram и токен бота — tt_bot живёт на ноутбуке кафедры или на сервере факультета без особой инфраструктуры.

Как работает

Четыре шага от сообщения до отчёта

Каждая сдача проходит один и тот же прозрачный конвейер — студент видит его статусы в чате.

01

Создание задачи

Студент отправляет сообщение с файлом — бот регистрирует задачу и ставит её в очередь.

02

Очередь asyncio

Исполнители разбирают задачи асинхронно: несколько проверок идут одновременно, никто не простаивает.

03

Проверка сервиса

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

04

Отчёт CSV

Результат записывается в отчёт — преподаватель скачивает готовый файл без ручного сведения таблиц.

Демо

Очередь вживую

Так бот ведёт список работ: принимает задачи, проверяет доступность сервиса, честно сообщает об ошибках и доводит каждую до результата.

Список ожидания
Зачтено: 1 · В очереди: 2
#12 Иванов И.Лабораторная 3 · вариант 5 зачтено
#13 Петрова А.Лабораторная 2 · вариант 1 сервис: OK
#14 Сидоров К.Лабораторная 1 · вариант 4 проверяется
#15 Кузнецов М.Лабораторная 4 · вариант 2 в очереди
#16 Орлова Е.Лабораторная 3 · вариант 5 в очереди

Учебная задача в списке ожидания. Локальная иллюстрация: не подключается к реальным сервисам, данные никуда не отправляются.

Запустите очередь на своей машине

Код открыт: клонируйте репозиторий, добавьте токен бота — и первая лабораторная встанет в очередь уже сегодня.