Серверная часть проекта бота для Slack и Telegram, который умеет отправлять сообщения по расписанию.
Фронтенд находится в другом репозитории
Связь с разработчиками — #butler_bot в Слаке Нетологии.
Сервер работает на express
.
Основные обязанности сервера:
- предоставление данных фронтенду проекта
- работа с MongoDB для хранения данных
- взаимодействие с API Slack и Telegram
- для выполнения задач по расписанию используется Heroku Scheduler
В качестве базы данных используется MongoDB. Работа с ней происходит через официальный клиент.
В базе данных хранятся две коллекции:
- хуки (hooks)
- лекции (lessons)
Хуки — это уникальные эндпоинты, с помощью которых бот отправляет сообщения в определенный канал. Для каждого канала студентов есть собственный хук в MongoDB. Дополнительно там хранится так же называние группы, id и название канала.
Лекции — информация о названии, дате проведения, анонсе лекции. Сформированные на базе этой информации сообщения автоматически отправляются студентам.
- Установи зависимости
npm i
- Создай файл
.env
в корне проекта. Добавь в него следующие переменные:MONGODB_URI
— ссылка для подключения к MongoDB с даннымиPORT
— порт, на котором должен работать сервер (обычно 8080)TELEGRAM_BOT_TOKEN
— токен телеграм бота
- Запусти локальный сервер
npm start