R_ShipDays

Zefest

Бронирование загородных домов: сайт, CRM и API

Платформа краткосрочной аренды домов: каталог с фильтрами, календарь доступности, бронирование без регистрации, кабинеты агентов и CRM для администраторов. Двойная бронь невозможна на уровне базы данных, мониторинг собран на Prometheus, Grafana, Loki и Tempo с алертами в Telegram. Основная разработка заняла 2 недели.

Статус
MVP, сайт сейчас не опубликован
Период
Декабрь 2025, 2 недели основной разработки
Формат
MVP под ключ
Роль
Архитектура, бэкенд, фронтенд, мониторинг, CI/CD
Главная страница Zefest Booking: поиск домов по направлению и датам
эндпоинта API
52эндпоинта API
страниц сайта и CRM
17страниц сайта и CRM
pull request за 2 недели
34pull request за 2 недели
панелей мониторинга
19панелей мониторинга
CRM Zefest: календарь бронирований по домам
CRM: календарь броней со статусами (демо-данные локального стенда)
CRM Zefest: дашборд администратора
CRM: дашборд администратора с последними бронями

Задача

Нужно было быстро запустить бронирование домов с агентской моделью: агенты ведут свои дома, гости бронируют без аккаунта, администраторы видят всё в одной 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

Нужен похожий проект?

Короткий бриф в Telegram, ответ лично от меня в течение дня.