Барбершоп принимал записи через звонки. Администратору приходилось вручную уточнять услугу, мастера, дату, свободное время и контакты клиента. Это занимало время, создавало риск накладок в расписании и было неудобно для клиентов вне рабочего времени.
Нужно было сделать MVP Telegram-бота, который позволит клиенту самостоятельно записаться к мастеру за несколько шагов, а администратору — сразу видеть актуальное расписание.
Требования к решению:
- выбор услуги, мастера, даты и времени в Telegram;
- три мастера и прайс из редактируемых Excel-совместимых файлов;
- учёт занятости каждого мастера;
- сбор контактов клиента;
- повторная запись без заполнения контактов;
- понятная таблица записи на неделю для администратора;
- ссылка на политику обработки персональных данных.
Разработали Telegram-бота на Python с использованием `aiogram 3` и пошаговой FSM-логики.
1. Вынес услуги и мастеров в CSV-файлы. Администратор может менять названия, цены, длительность услуг и информацию о мастерах через Excel без изменения кода.
2. Построили сценарий записи: услуга → мастер → дата → время → имя → телефон → email → подтверждение. Все действия выбора выполняются через инлайн-кнопки Telegram.
3. Реализовали расчёт доступности по интервалам, а не только по часу начала записи. Бот учитывает длительность услуги, не допускает пересечение записей у одного мастера и не предлагает время, если услуга закончится после закрытия барбершопа.
4. Добавили журнал подтверждённых записей `bookings.csv` и карточки клиентов `clients.csv`.
Карточка привязана к Telegram ID, поэтому при повторном обращении бот автоматически подставляет имя, телефон и email клиента.
5. Настроили автоматическое создание `weekly_schedule.xlsx`. В файле три листа — по одному для каждого мастера — со свободными и занятыми слотами на ближайшие семь дней.
6. Добавили страницу политики обработки персональных данных и кнопку на неё перед первым вводом имени. Сообщения клиента с именем, телефоном и email удаляются после обработки.
Получился MVP Telegram-бот для самостоятельной записи в барбершоп.
- Клиент проходит путь до записи без звонка администратору.
- Бот исключает двойную запись к одному мастеру и учитывает продолжительность услуги.
- Простая повторная запись: постоянный клиент не вводит контакты еще раз.
- Администратор получает готовое Excel-расписание на неделю с отдельными листами для
трех парикмахеров.
- Прайс и список мастеров можно обновлять без участия разработчика.
Технологии: Python 3.12, ·aiogram 3, FSM, Telegram API
Что можно развить после MVP:
Напоминания о визите, отмена и перенос записи, админ-панель и переход с CSV на базу данных.