VÉLOX Detailing Studio
Сайт, онлайн-запись, админ-панель и Telegram-бот для студии детейлинга. Все каналы работают с одной базой данных и общими правилами записи.
Задача
Студии нужно принимать записи с сайта и из Telegram, вести расписание мастеров и услуги, обновлять контент без разработчика и не допускать, чтобы одно и то же время заняли через разные каналы.
Решение
Единый продукт на FastAPI и PostgreSQL. Сайт, админ-панель и Telegram-бот используют одну базу данных и общий набор правил записи. Архитектура рассчитана на несколько студий: каждая запись привязана к своей студии.
Сайт для клиентов
Адаптивный сайт студии: услуги и цены, работы «до/после», отзывы, сертификаты и контакты. Тексты, фото и цены владелец меняет сам в админ-панели.
Онлайн-запись
- 1УслугаВыбор из каталога студии
- 2МастерВыбор специалиста, если услуга это допускает
- 3ВремяТолько свободные слоты
- 4КонтактыИмя, телефон, модель авто по желанию
- ПодтверждениеНомер записи, файл для календаря и страница отмены до установленного срока
Сайт, админ-панель и бот проверяют запись по одним и тем же правилам; пересечения по времени дополнительно контролируются ограничениями на уровне базы данных.
Админ-панель
Рабочее место студии: от расписания и загрузки мастеров до контента сайта. Доступ разделён по ролям.
- Расписание и загрузка мастеров
- Услуги, цены и мастера
- Клиенты и записи
- Контент сайта, медиа и отзывы
- Настройки и доступ сотрудников
- Роли: владелец, администратор, мастер
- Удаление данных клиента по запросу (152-ФЗ)
- Ежедневные резервные копии
Telegram-бот
Для клиентов
- Запись на услугу
- Mini App с календарём свободного времени
- Раздел «Мои записи»
- Перенос и отмена записи
- Вопрос администратору
- Напоминания за 24 часа и за 2 часа
Для студии
- Новые заявки приходят в чат администраторов
- Кнопки «Подтвердить», «Назначить мастера», «Отклонить»
Технологический стек
Backend
Данные
Бот
Интерфейс
Медиа
Качество
Тестирование и качество
Тесты на pytest разделены на unit-, интеграционные, API-тесты и тесты бота. Для них предусмотрено изолированное окружение: отдельный стек Docker Compose. Код проверяется линтером ruff, проверки запускаются в GitHub Actions.
Инфраструктура и развёртывание
Отдельные конфигурации для разработки, тестов и production; для сервера заданы лимиты памяти.
Схема базы данных версионируется через Alembic.
Ежедневные копии базы и медиа, плюс копия перед каждым обновлением.
Установка, обновление и бэкапы описаны в docs/deployment.md.
Удаление данных клиента по запросу в соответствии со 152-ФЗ.
Адреса серверов, ключи и доступы в кейсе не публикуются.