Нормально делай, нормально будет

Свят Соколов slava877

Рейтинг: 61
не верифицирован
Всего отзывов: 0
  • Работ в портфолио: 1
  • Типовых услуг: 1
  • Работ на продажу: 0
  • Возраст: 25 лет
  • Стаж работы: 4 года
  • Зарегистрирован: 14.01.2024
  • Юридический статус:Частное лицо
Был на сайте:

Telegram-бот для автоматизации приёма и обработки заявок на перевозку домашних животных

Используемые навыки:

Описание

Клиент — компания, занимающаяся перевозкой домашних животных по России. До начала работы весь процесс приёма заявок велся вручную: потенциальный клиент писал менеджеру в личные сообщения, менеджер уточнял маршрут, параметры животного, контакты отправителя и получателя, согласовывал цену и дату — каждый раз в свободном формате, без структуры. Это порождало несколько системных проблем.
Во-первых, менеджер тратил значительное время на рутинный сбор одних и тех же данных по каждому клиенту. Во-вторых, информация терялась в переписке — не было единого места хранения заявок, контактов и истории клиента. В-третьих, клиент не мог самостоятельно узнать стоимость доставки без звонка или переписки с менеджером — это создавало барьер на входе и увеличивало время от интереса до оформления заявки.
Клиент поставил задачу: создать Telegram-бота, который возьмёт на себя весь первичный сбор информации, автоматически рассчитает стоимость доставки по маршруту, проведёт клиента по шагам оформления заявки и передаст менеджеру уже структурированный, полностью заполненный заказ. Бот должен был работать круглосуточно, не требовать участия менеджера на старте, и при этом оставлять все данные в базе для последующей работы.
Дополнительным требованием была простота для конечного пользователя: человек, который никогда не пользовался подобными сервисами, должен был пройти весь путь от знакомства с ботом до оформления заявки без путаницы и тупиков.

Решение

Бот был разработан на Python с использованием фреймворка aiogram 3, базы данных PostgreSQL и Redis для персистентного хранения состояний пользователей. Архитектура строилась вокруг нескольких ключевых решений.
Двухэтапный поток прайс-листа и заказа. Расчёт стоимости и оформление заказа были намеренно разделены на два независимых этапа. Пользователь мог в любой момент узнать цену маршрута — без регистрации питомца, без ввода адресов и контактов. Это снизило барьер входа: человек сразу видит стоимость и только потом решает оформлять заказ или нет. Сам заказ оформляется отдельным, более детальным потоком — с выбором конкретного питомца, адресами, контактами отправителя и получателя, датой доставки, промежуточными экранами подтверждения и финальным резюме перед созданием заявки.
Автоматический расчёт стоимости по координатам. Расстояние между городами вычисляется по формуле Гаверсинуса на основе GPS-координат — без внешних API, только встроенный модуль math. Результат умножается на дорожный коэффициент 1.35, что даёт приближение к реальному маршруту по дорогам. Если маршрут не удаётся рассчитать автоматически, клиент получает форму для передачи заявки менеджеру с явным указанием сроков обратной связи.
Нечёткий поиск городов. Пользователи вводят названия городов в свободной форме: "мск", "питер", "ростов". Модуль rapidfuzz распознаёт сокращения и опечатки, предлагает найденный город на подтверждение. Если город не опознан — просит уточнить, не прерывая флоу.
Навигация на каждом шаге. Каждая inline-клавиатура содержит кнопки "Назад" и "Главное меню" в нижней строке. Пользователь никогда не застревает в процессе — может вернуться на предыдущий шаг или выйти в главное меню в любой момент. Глобальная команда /cancel сбрасывает любое FSM-состояние.
Защита от злоупотреблений. Rate limiting: не более 5 запросов на расчёт и не более 5 оформленных заказов за 24 часа на одного пользователя. Лимит считается только по активным и подтверждённым заявкам — отменённые не засчитываются.
База данных и профиль клиента. Реализована структура из четырёх связанных таблиц: пользователи, питомцы, запросы на расчёт, заказы. Пользователь может добавлять несколько питомцев, редактировать контактные данные, просматривать историю заказов с полной детализацией. Администраторы получили панель с пагинацией по пользователям, заявкам и запросам на расчёт.

Результат

Бот полностью автоматизировал первичный этап работы с клиентом. Менеджер получает уже готовую, структурированную заявку: маршрут с точными адресами, параметры питомца, контакты обеих сторон, желаемую дату доставки и рассчитанную стоимость. Ручной сбор этих данных в переписке полностью исключён.
Клиент проходит путь от первого сообщения до оформленной заявки без участия менеджера. Onboarding-экран после регистрации объясняет логику работы сервиса в трёх шагах. Промежуточные экраны подтверждения на каждом этапе (город, адрес, контакты) снижают количество ошибок в данных — пользователь проверяет каждый блок информации перед отправкой.
Автоматический расчёт цены по координатам покрывает все 50 крупных городов России без внешних зависимостей. Для нестандартных маршрутов встроена форма передачи заявки менеджеру с гарантированным временем ответа.
База данных на PostgreSQL обеспечивает надёжное хранение всей истории взаимодействий: каждый запрос на расчёт, каждый оформленный заказ, каждое изменение в профиле фиксируется и доступно через административную панель. Redis гарантирует, что незавершённые сессии пользователей не теряются при перезапуске сервера.
На практике бот используется как основной канал приёма заявок: клиент заходит в Telegram, за 3–5 минут заполняет все необходимые данные, получает подтверждение с номером заказа и ждёт звонка менеджера исключительно для согласования времени забора питомца — всё остальное уже оформлено.

Презентация проекта

Снимок экрана 2026-03-15 180721.png
Снимок экрана 2026-03-15 180635.png
Снимок экрана 2026-03-15 180609.png
Снимок экрана 2026-03-15 180550.png
Снимок экрана 2026-03-15 180510.png
Снимок экрана 2026-03-15 180537.png

Оценили проект:

0
LARGE MEDIUM SMALL