Телеграм бот для рассылки уведомлений заступающим на дежурство.
1) Пользователь инициирует диалог с ботом обязательной командой /start
2) На стороне сервера (webhook-сервер) происходит регистрация пользователя в базе.
3) Администратор (в административной панели) добавляет пользователя в расписание (или создает новое расписание)
4) Каждый день в определенное системой время пользвателю приходит сообщение в Telegram о том что сегодня его очередь заступать на дежурство.
На данном этапе у пользователя есть возможность:
- Принять дежурство
Бот установит статус готовности пользователя заступить на дежурство - Заявить о том что
Бот найдет пользователя следующего по расписанию и предложит ему заступить на дежурство - Поменяться с кем либо
Бот предоставит пользователю список тех кто бы мог его подменить (дежурные из данного расписания)
Количество пользователей и расписаний ограничено только допустимым объемом БД.
Технологии
python 3.6
python-telegram-bot 8.1.1 - python-библиотека для работы с Telegram Bot API
django 2.0 - Основное приложение. Взаимодействие сбазой данных, администртивная панель.
django-rest-framework 3.7.3 - python-библиотека для написания REST-FULL API вокруг django. Cлужит прослойкой между django и python-telegram-bot
celery 4.1.0 - python-библиотека для фонового исполнения задач. Использутся как ядро подсистемы ежедневной отправки сообщений пользователям.
redis (python) 2.10.6 - Бэкэнд для celery в котором хранятся результаты выполнения задач
rabbitmq - Серевер для обмена сообщениями между django и celery