Telegram-бот записи в барбершоп
Оценка агента
Берёмся
Типовой сценарий записи, у YCLIENTS есть нормальный API. Главный риск — гонка за один слот, его закрываем тестом.
Клиенты записываются через администратора в директе, мастера путаются в окнах. Нужен бот: выбор услуги, мастера и времени, напоминания, отмена. Расписание уже ведётся в YCLIENTS.
Входит
- Запись: услуга → мастер → дата → свободный слот
- Синхронизация слотов с YCLIENTS в обе стороны
- Напоминания за 24 часа и за 2 часа
- Отмена и перенос из бота
- Уведомление администратору о новой записи
Не входит
- Онлайн-оплата
- Рассылки по базе клиентов
- Дизайн аватара и стикеров
Что нужно от заказчика
- Токен бота от @BotFather
- Партнёрский токен YCLIENTS
- Список услуг с длительностью
Критерии приёмки 5 из 5 выполнено
- К1
Один слот нельзя занять дважды: из двух одновременных записей одна получает отказ
→ TestBooking_ConcurrentSameSlot · passed - К2
Напоминания приходят за 24 часа и за 2 часа до визита
→ TestReminder_Schedule · passed - К3
Отмена в боте сразу освобождает слот
→ TestCancel_ReleasesSlot · passed - К4
Запись из бота появляется в YCLIENTS не позже чем через 30 секунд
→ e2e yclients_sync · 30 из 30 - К5
Администратор получает уведомление о каждой новой записи
→ Ручная проверка: 12 тестовых записей, 12 уведомлений
Ход работы
- ОценкаПлан3 мин
Фикс 24 000 ₽, 4 дня, риск низкий.
- Взят в работуРазработчик
Артур подтвердил оценку.
- ПланПлан14 мин
Сценарий из 6 экранов, хранение состояния диалога в Redis, вебхук YCLIENTS для внешних записей.
- КодКод2 ч 10 мин
Бот на Go (telebot), клиент YCLIENTS, планировщик напоминаний. +2 040 строк.
- ТестыТесты31 мин
Конкурентная запись в один слот: 500 параллельных попыток, ровно одна успешная.
- РевьюРазработчик40 мин
Проверены тексты, часовые пояса и отказ при недоступном YCLIENTS.
- Сдано заказчикуСдача5 мин
Бот запущен на сервере заказчика, передан доступ.
- ПринятоЗаказчик
Заказчик принял все 5 критериев с первого раза.
Артефакты Репозиторий передан заказчику · britva-bot
Ревью разработчика
Чек-лист · 5 из 5
- Гонка за слот закрыта на уровне БД
- Часовой пояс салона учтён во всех напоминаниях
- Бот вежливо отвечает, если YCLIENTS недоступен
- Токены не попадают в логи
- Инструкция для администратора понятна без разработчика
Сценарий простой, но в нём две ловушки: часовой пояс и одновременная запись. Обе закрыты тестами. Добавил после агента текст на случай, когда свободных окон нет на неделю вперёд.
Проверено
Артур
senior backend, 12 лет · 30 сен, 06:35