Телеграм-бот для B2B-компании
Введение
Этот проект — многофункциональный Телеграм-бот, разработанный для B2B-компании. Основная цель — автоматизировать и упростить взаимодействие с клиентами и партнерами, предоставив им удобный инструмент для получения информации и решения типовых задач. Бот служит основной точкой контакта, снижая нагрузку на менеджеров и ускоряя процессы.
Поскольку проект защищен NDA, в портфолио будет представлено только видео с демонстрацией его работы.
Ссылки
- Git-репозиторий: Приватный (NDA)
Выбор стека технологий
Для разработки был выбран фреймворк NestJS на TypeScript. Это решение обеспечило строгую типизацию, четкую модульную архитектуру и масштабируемость, что критически важно для поддержки и дальнейшего развития проекта.
Для взаимодействия с Telegram API использовалась библиотека Telegraf.js с интеграцией nestjs-telegraf. Она предоставляет удобный интерфейс для работы со всеми возможностями Telegram, включая интерактивные сценарии (scenes/wizards).
Для деплоя я настроил контейнеризацию с помощью Docker и Docker Compose, а также CI/CD-пайплайн в Drone CI. Это позволило автоматизировать сборку и развертывание приложения при каждом обновлении.
Модули и функциональность
Архитектура бота построена на модулях, каждый из которых отвечает за свою логическую часть.
| Модуль | Описание |
|---|---|
| Start | Отвечает за приветствие новых пользователей и базовую навигацию. |
| Info | Предоставляет общую информацию о компании, услугах и партнерах. |
| FAQ | Реализует раздел с часто задаваемыми вопросами для самообслуживания пользователей. |
| Support | Содержит интерактивный сценарий (wizard) для создания обращений в техподдержку. |
| Khabarovsk | Специфичный для региона модуль со сценариem подачи заявки на верификацию. |
| Admin | Функциональность для администраторов бота (например, рассылки или управление пользователями). |
Ход работы
В ходе работы над проектом я выполнил следующие задачи:
- Спроектировал и реализовал модульную архитектуру приложения на NestJS.
- Разработал интерактивные многошаговые сценарии (wizards) для сбора данных от пользователей, таких как заявка на верификацию или обращение в поддержку.
- Реализовал систему разграничения доступа с помощью гардов (guards), отделив логику для администраторов и обычных пользователей.
- Настроил управление состоянием диалога (session management) для корректной работы сценариев.
- Подготовил и настроил окружение для развертывания: написал
Dockerfileиdocker-compose.yml. - Настроил CI/CD в Drone CI для автоматизации сборки и деплоя проекта на сервер.