Проект выполнялся в рамках курсовой работы на 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
