Чёрная пятница в Хабр Киоске
На Хабр Карьере стартует новый марафон удалёнки! Прокачиваем себя, команду и свое рабочее место. Присоединяйтесь!
R50 0c0a29c077326d3c155cb5e82d8361e6
Разработка ПО

Zoe Telegram Bot

Добавлено 30 янв 2018 в 06:09

Телеграм бот для рассылки уведомлений заступающим на дежурство.

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

2bb0ff095d