Телеграм-бот для 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 для автоматизации сборки и деплоя проекта на сервер.