Skip to content

Репозиторий проекта по автоматизации расчета мотивации преподавателей

License

Notifications You must be signed in to change notification settings

samplec0de/teacher-activity-tracker

Repository files navigation

Teacher Activity Tracker

Проект выполнялся в рамках курсовой работы на 3 курсе бакалавриата по направлению "Программная инженерия" Факультета компьютерных наук НИУ ВШЭ.

Описание проекта

Teacher Activity Tracker - это проект, созданный для автоматизированного опроса преподавателей о проделанной работе по курсам и урокам. Проект реализован на Python с использованием библиотеки Aiogram для работы с Telegram Bot API, а также Asyncpg для работы с PostgreSQL.

Основные функции бота включают:

  • Регистрацию преподавателей и курсов
  • Сбор информации об активностях преподавателей по урокам
  • Создание сводных отчетов по активностям преподавателей в формате Excel
  • Напоминания о предстоящем сборе информации об активностях перед окончанием срока

Демо-видео

https://www.youtube.com/watch?v=tIeZT2bn3w8 Демо видео

Документация

Часть комлпекта документов по ГОСТ ЕСПД, оформленных в рамках курсовой работы, находится в папке docs.

Документация по ГОСТ не поддерживается и актуальна только для версии 1.0.0.

Установка

  1. Установите Docker и Docker Compose.
  2. Клонируйте репозиторий:
git clone https://github.com/samplec0de/teacher-activity-tracker.git
cd teacher-activity-tracker
  1. Заполните файл bot.env в корневой папке проекта
BOT_TOKEN=токен вашего бота от BotFather
ADMIN_PASSWORD=пароль администратора
  1. Запустите проект с помощью Docker Compose:
docker-compose up -d

Бот будет запущен, и вы сможете начать взаимодействовать с ним через Telegram.

Использование

  1. Введите команду /start для начала работы с ботом.
  2. Введите команду /give_me_the_power для получения прав менеджера.
  3. Введите пароль из ADMIN_PASSWORD в файле bot.env.
  4. Введите команду /help для получения справки по командам бота.
  5. Создайте свой первый курс с помощью команды /add_course.
  6. Добавьте уроки в курс с помощью команды /add_lesson.
  7. Добавьте активности в урок с помощью команды /add_activity.
  8. Создайте одноразовый код-ссылку подключения преподавателя к курсу в боте с помощью команды /add_join_code.

В дальнейшем вы сможете добавлять новые курсы, уроки и активности. При необходимости вы можете изменить существующие курсы, уроки и активности или удалить их.

Для генерации отчета напишите /generate_report и следуйте инструкциям бота.

Пример отчета

Отчет состоит из нескольких листов. На каждом листе отображается информация об одном курсе. В первом столбце указывается номер урока, во втором название урока, в третьем название активности. Следующие столбцы отображают количество часов, потраченных преподавателем на каждую активность в каждом уроке.

report.png

Структура базы данных

database_diagram.png

Структура пакетов

packages.png

Планы по развитию

  1. Хранить состояния FSMContext в Redis
  2. Добавить генерацию "сырого" лога активностей преподавателей, где будут видны, в том числе их комментарии
  3. Добавить бинарный тип активности
  4. Добавить функционал уведомления о добавлении активности (писать в топик Kafka)
  5. Добавить запрет на добавление активностей после дедлайна

Third-Party Dependencies:

  • 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

About

Репозиторий проекта по автоматизации расчета мотивации преподавателей

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published