Данный бот был разработан в ходе учебной практики в вузе, которую курировала PARMA Technologies Group. Целью проекта является оптимизация работы HR.
- Заточен для удобства использования обычными пользователями.
- Полностью асинхронный, под копотом aiogram, что значит он справится с высокой нагрузкой.
- Использован грамотный с точки зрения проектирования шаблон для создания масштабируемых ботов.
- Сохраняет в MongoDB и берет из неё JSON-подобные данные.
- Простота установки, мы позаботились о вас и подготовили необходимые докерфайлы.
- Имеет утилиту собственной разработки, которая работает с календарем Outlook.
- Вашему HR не нужно будет договариваться о времени встречи, мы сделаем это за вас.
Предупреждение. Следующие шаги относятся к задачам настройки окружения и они требуют специальных навыков. Предполагается, что их будет выполнять DevOps вашей компании.
- Убедитесь, что вы зарегистрировали бота в телеграме, сохраните полученный токен в безопасное время, дальше он нам пригодится.
- Также нам поданибится нгрок-токен, который мы можем получить здесь
- Позаботьтесь о создании аккаунта организации в Microsoft, у вас должен быть аккаунт с учетными записями, которые имеют лицензию Office 365 и Azure.
Для демонстрации мы использовали бесплатную 90-ти дневную подписку на программу разработчиков от Microsoft, которая предоставила нам песочницу с 16-тью автоматически-сгенерированными, лицензированными учетными записями и их аккаунт администратора.
- Администратор вашей организации должен войти в Azure и завести новую регистрацию приложения, обязательно указав перенаправление на
https://login.microsoftonline.com/common/oauth2/nativeclient
. Здесь нам понадобятся индетификатор приложения и индетификатор каталога, в дальнейшемCLIENT_ID
иTENANT_ID
, соответственно. - Также он устанавливает секретный ключ, именуемый далее
SECRET_ID
, настраивая срок действия, сохраняет его в безопасное место. - Затем он должен добавить разрешения API и предоставить свое согласие. Таблица настроенных разрешений должна выглядеть следующим образом.
Имя API или разрешения | Тип | Описание | Требуется согласие администратора | Состояние |
---|---|---|---|---|
Microsoft Graph API (2) | ||||
Calendars.Read.Write | Приложение | Читать и записывать в календари всех почтовых адресов | Да | Предоставлено для вашей организации |
User.Read | Делегированные | Входить в систему и читать профиль пользователя | Нет | Предоставлено для вашей организации |
Клонируем репозиторий, командой:
git clone https://github.com/VladSmirN/parma_tgbot
Затем создаем файл с переменными окружения .env
, в которые записываем следущие переменные:
Переменная | Значение |
---|---|
MONGO_EXPRESS_USERNAME | admin |
MONGO_EXPRESS_PASSWORD | ****** |
bot_token | ****** |
NGROK_TOKEN | ****** |
PROD_OR_DEV | prod |
CLIENT_ID | ****** |
SECRET_ID | ****** |
TENANT_ID | ****** |
Запускаем бота следующей командой:
sudo docker-compose -f docker-compose.prod.yml up --build -d
К сожалению, это только MVP, поэтому здесь много чего нет. Единственный способ установить HR и вакансии: зайти в Mongo Express. После добавления данных в соответствующие коллекции, бот будет корректно работать. Мы добавим хороший интерфейс следующими патчами.
Наш бот не состоялся бы, если не aiogram, aiogram-bot-template, loguru, pyngrok, motor, O365 Python