Zefest
Бронирование загородных домов: сайт, CRM и API
Платформа краткосрочной аренды домов: каталог с фильтрами, календарь доступности, бронирование без регистрации, кабинеты агентов и CRM для администраторов. Двойная бронь невозможна на уровне базы данных, мониторинг собран на Prometheus, Grafana, Loki и Tempo с алертами в Telegram. Основная разработка заняла 2 недели.
- Статус
- MVP, сайт сейчас не опубликован
- Период
- Декабрь 2025, 2 недели основной разработки
- Формат
- MVP под ключ
- Роль
- Архитектура, бэкенд, фронтенд, мониторинг, CI/CD

- эндпоинта API
- 52эндпоинта API
- страниц сайта и CRM
- 17страниц сайта и CRM
- pull request за 2 недели
- 34pull request за 2 недели
- панелей мониторинга
- 19панелей мониторинга


Задача
Нужно было быстро запустить бронирование домов с агентской моделью: агенты ведут свои дома, гости бронируют без аккаунта, администраторы видят всё в одной CRM.
Что сделано
- Каталог домов с фильтрами и карточкой: галерея, удобства, правила, условия аренды
- Календарь доступности, бронирование без аккаунта, отмена, выгрузка в календарь (.ics)
- «Предложить свою цену» с жизненным циклом заявки и историей цен
- Кабинеты агентов с регистрацией через reCAPTCHA
- 4 роли (администратор, агент, модератор, клиент) с JWT и RBAC
- CRM: дашборд, дома, агенты, клиенты, календарь броней
- Уведомления о бронях в Telegram и на email
- Интерфейс на русском и английском
Инженерные решения
- Двойная бронь невозможна: EXCLUDE-ограничение PostgreSQL по диапазону дат
- Асинхронные уведомления через собственную шину событий
- SEO-адреса с транслитерацией и защитой от дублей
- Rate limiting с разными лимитами на группы роутов, request-id в логах
Инфраструктура и DevOps
- Метрики Prometheus и дашборд Grafana на 19 панелей: RPS, p95/p99, ошибки, брони
- Логи в Loki, трейсинг через OpenTelemetry и Tempo, включая запросы к базе
- 10 правил алертинга с отправкой в Telegram, Sentry на фронтенде и бэкенде
- CI определяет изменённые сервисы, поднимает их версии и собирает только их
- Caddy на 4 поддомена с заголовками безопасности
Стек
- Go
- Gin
- PostgreSQL
- MinIO
- React
- Vite
- TanStack Table
- Prometheus
- Grafana
- Loki
- Tempo
- Sentry


