CompanyBot

Форк
0

README.MD

GitHub Actions Workflow Status GitHub commit activity

GitHub top language

Бот-ассистент для приема заявок от клиентов.
Пользователь выбирает тему запроса(отдел кому будет адресован запрос), далее вводит сам запрос (любое поддерживаемое сообщение Telegram).
Далее предлагается ввести контактные данные для обратной связи (показывается клавиатура с кнопками, пользователь выбирает тип контакта, вводит данные).
Реализована валидация e-mail и телефонного номера.
Обязателен ввод хотя бы 1 контакта и имени.
По умолчанию бот отправляет данный запрос с контактными данными администратору бота.
Администратор бота может присоединить бота к каналу в качестве администратора - тогда бот будет отправлять запрос в этот канал.
Администратор устанавливает описание компании (команда /about)

Учтены ограничения по частоте отправки сообщений в чаты


Технологии:

  • Java 17.0.5
  • Spring Boot 3.2.0
  • Gradle 8.4
  • Spring Data JPA
  • Validation API
  • Spring Cache (Caffeine)
  • Liquibase
  • Lombok
  • Mapstruct
  • JUnit5, Mockito, TestContainers
  • Postgresql 16.0
  • TelegramApi для Java: https://github.com/rubenlagus/TelegramApi
  • Покрытие тестами 93%
  • Docker, Docker-compose

Бот реализован как LongPolling: Для запуска необходимо скопировать .env.example и переименовать его в .env.config: cp ./.env.example ./.env.config Оставляем только следующие переменные:

  • APP_PORT= - порт на котором будет работать приложение
  • BOT_ADMIN= - Телеграм ID администратора
  • POSTGRES_DB="cbotDB" - название базы данных
  • POSTGRES_USER= - юзернейм в PG
  • POSTGRES_PASSWORD= - пароль в PG

для старта контейнеров запускаем скрипт start.sh
bash start.sh ${BRANCH_NAME} C_BOT_NAME=${BOTNAME} C_BOT_TOKEN=${BOT_TOKEN}
где

  • ${BRANCH_NAME} имя ветки, с которой будет билдиться проект
  • ${BOTNAME} - имя бота (из BotFather)
  • ${C_BOT_TOKEN} - токен бота (из BotFather)

для остановки контейнеров запускаем скрипт stop.sh

Описание

Telegram bot-assistant for interaction with company users and gathering contact data from them.

Языки

Java

  • TSQL
  • Shell
  • Dockerfile
Сообщить о нарушении

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.