Проект выполнялся в рамках курсовой работы на 3 курсе бакалавриата по направлению "Программная инженерия" Факультета компьютерных наук НИУ ВШЭ.
Teacher Activity Tracker - это проект, созданный для автоматизированного опроса преподавателей о проделанной работе по курсам и урокам. Проект реализован на Python с использованием библиотеки Aiogram для работы с Telegram Bot API, а также Asyncpg для работы с PostgreSQL.
Основные функции бота включают:
- Регистрацию преподавателей и курсов
- Сбор информации об активностях преподавателей по урокам
- Создание сводных отчетов по активностям преподавателей в формате Excel
- Напоминания о предстоящем сборе информации об активностях перед окончанием срока
https://www.youtube.com/watch?v=tIeZT2bn3w8
Часть комлпекта документов по ГОСТ ЕСПД, оформленных в рамках курсовой работы, находится в папке docs
.
Документация по ГОСТ не поддерживается и актуальна только для версии 1.0.0.
- Установите Docker и Docker Compose.
- Клонируйте репозиторий:
git clone https://github.com/samplec0de/teacher-activity-tracker.git
cd teacher-activity-tracker
- Заполните файл bot.env в корневой папке проекта
BOT_TOKEN=токен вашего бота от BotFather
ADMIN_PASSWORD=пароль администратора
- Запустите проект с помощью Docker Compose:
docker-compose up -d
Бот будет запущен, и вы сможете начать взаимодействовать с ним через Telegram.
- Введите команду
/start
для начала работы с ботом. - Введите команду
/give_me_the_power
для получения прав менеджера. - Введите пароль из
ADMIN_PASSWORD
в файлеbot.env
. - Введите команду
/help
для получения справки по командам бота. - Создайте свой первый курс с помощью команды
/add_course
. - Добавьте уроки в курс с помощью команды
/add_lesson
. - Добавьте активности в урок с помощью команды
/add_activity
. - Создайте одноразовый код-ссылку подключения преподавателя к курсу в боте с помощью команды
/add_join_code
.
В дальнейшем вы сможете добавлять новые курсы, уроки и активности. При необходимости вы можете изменить существующие курсы, уроки и активности или удалить их.
Для генерации отчета напишите /generate_report
и следуйте инструкциям бота.
Отчет состоит из нескольких листов. На каждом листе отображается информация об одном курсе. В первом столбце указывается номер урока, во втором название урока, в третьем название активности. Следующие столбцы отображают количество часов, потраченных преподавателем на каждую активность в каждом уроке.
- Хранить состояния FSMContext в Redis
- Добавить генерацию "сырого" лога активностей преподавателей, где будут видны, в том числе их комментарии
- Добавить бинарный тип активности
- Добавить функционал уведомления о добавлении активности (писать в топик Kafka)
- Добавить запрет на добавление активностей после дедлайна
- asyncpg: Copyright (c) 2016-present the asyncpg authors and contributors
- aiogram: Copyright (c) 2019 Alex Root Junior
- openpyxl: Copyright (c) 2010 openpyxl
- aiocron: Copyright (c) 2016 Gael Pasgrimaud