Для реализации использовались следующие технологии:
- Microsoft.NET Core
- Telegram API
- Entity Framework Core
- PostgreSQL
- Docker
Для управления очередями для сдачи лабораторных работ в разных учебных группах.
Новый пользователь регистрируется, указывая свои фамилию и имя, номер курса и группы. Зарегистрированный пользователь может:
- записаться в очередь добавленного в бота предмета
- добавить новый предмет
- посмотреть свой номер в очереди для конкретного предмета или для всех предметов
- выйти из очереди, в которой он находится
- пропустить человека вперёд себя
- сменить фамилию и(или) имя
- сменить курс и(или) номер группы
- отписаться от рассылки
- отписаться от бота
При добавлении в очередь пользователь записывается в список ожидающих. Каждый день в определённое время список ожидающих случайным образом перемешивается и добавляется в конец соответствующей очереди. Тем, кто подписан на рассылку, приходит уведомление с его местами в очередях, в которые он записан. Пользователи с админскими правами соответствующей командой могут вызвать генерацию очередей для своей группы в любой момент времени. Для использования админских команд необходимо владеть паролем, который при запуске бота генерируется и присылается владельцу бота.