Skip to content

Многопользовательская платформа чат-ботов Telegram для подготовки к ЕГЭ

License

Notifications You must be signed in to change notification settings

afoninsb/tutorbot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TutorBot

Многопользовательская платформа Telegram-ботов для автоматизации работы учителя и репетитора при подготовке к ОГЭ и ЕГЭ

Подробнее о боте - Landingpage

Содержание

Введение

Данный проект создан в помощь педагогам и репетиторам при подготовке их учащихся к ЕГЭ. С его помощью Telegram-бот получает функционал, обеспечивающий раздачу заданий, сбор ответов и построение статистики.

Разделы административной панели:

  • Боты: добавление и настройка ботов, созданных с помощью @BotFather
  • Учащиеся: управление учащимися
  • Контент: добавление категорий и заданий и управление ими
  • Статистика: статистика по категориям, заданиям и ученикам за различные временные промежутки
  • Рейтинг: рейтинг учащихся

Добавленный и настроенный бот рассылает задания по настроенному учителем расписанию. Задание для рассылки выбирается случайно из активных категорий.

Стек технологий

Server: Python 3.10, Django 4.1

Инсталляция

1. Развёртываем Django-проект

По ssh зайти в домашнюю папку вашего сайта. В домашней папке вашего сайта (папка должна быть пуста):

  git clone git@github.com:afoninsb/tutorbot.git ./
  python3 -3.10 -m venv venv
  source venv/bin/activate
  pip install -r requirements.txt

2. Настраиваем переменные

Переименовать файл tutor_bot/.env.dist в tutor_bot/.env

В файле tutor_bot/.env:

# Код Django
SECRET_KEY=django-injrtyuygecure-k%yu756#j@g+t636456454y4yeqfu&yfso4!ci%s_&3mg5p
# Telegram ID Суперадмина
BIG_BOSS_ID=337470404
# Токен регистрационного бота
REGBOT_TOKEN=5963756302:AAGU7Esfy45tgwyrtj7srttEnumUctgjI
# Токен регистрационного бота для разработки
TEMP_REGBOT_TOKEN=5962239353:seghfasbf764gtfwvywagyubgutGYGFCluggtlT
# параметры подключения к базе данных
BD_NAME=bd_name
BD_USER=user_login_bd
BD_PASSWORD=bd_password
BD_HOST=localhost
# DEBUG - в разработке или в продакшене?
DEBUG=False
# NGROK - адрес для подключения локального бота через NGROK
NGROK=bflist6yilgfegfligi.ngrok.io
# Параметры подключения к sentry.io
SENTRY_DSN=https://34asdjfh34tr3qgtfo8tyg2dtlqgf72t3lf82976.ingest.sentry.io/4765764653523696

Переименовать файл tutor_bot/tutor_bot/settings.py.template в tutor_bot/tutor_bot/settings.py

В файле tutor_bot/tutor_bot/settings.py:

# URL вашего сайта
ALLOWED_HOSTS = ['your_cite.com']
BASE_URL = 'https://your_cite.com'

# Количество оставшихся задач, меньше которого срабатывает алерт
ALERT_MIN_TASKS = 10
# Количество дней до окончания тарифа, чтобы выдать алерт
ALERT_END_TARIF = 3
# Количество учащихся в бесплатном тарифе = Количество учащихся + Сам админ-учитель (3+1=4 - 3 учащихся)
STUDENT_FREE_TARIF = 4

3. Выполняем миграции, собираем статику, создаём суперпользователя для доступа в админку Django

  cd tutor_bot
  python3 manage.py migrate
  python3 manage.py collectstatic
  python3 manage.py createsuperuser

4. Настраиваем задание cron

Настроить файл tutor_bot/cron/cron.py на ежечасный запуск.

Начало работы

Суперадмин

  1. Создать регистрационного бота с помощью с помощью @BotFather. Этот бот будет использоваться для регистрации преподавателей в системе.
  2. Войти в этот бот и написать ему что-либо
  3. Прописать его токен в файле tutor_bot/.env
  4. Перезапустить сервер
  5. Информацию о контенте системы можно наблюдать в админке Django https://your_site.com/admin

Учитель

  1. Зайти в ваш адмнистративный бот в Telegram и написать боту какое-либо сообщение
  2. Пройти регистрацию
  3. Суперадмину в этот бот придёт оповещение. Необходимо одобрить или отказать. Если одобрить, то учитель становится администратором бота на сайте
  4. Нажать на кнопку клавиатуры "Войти в административную панель"
  5. Создать рабочего бота с помощью с помощью @BotFather
  6. В разделе Боты добавить его на сайте
  7. Настроить расписание работы бота, его пароль и параметры работы
  8. Добавить контент - категории и задания
  9. Пригласить учащихся в рабочий бот
  10. Запустить категории и бота, чтобы он начал выдавать задания

Ученик

  1. Войти в бот, указанный учителем
  2. Написать ему что-либо
  3. Пройти регистрацию
  4. Учитель в административной панели одобрит ученика
  5. Получать задания и давать правильные ответы

Галерея: админ. панель