Задача
Требуется разработать веб-приложение - standalone-модуль для интерактивной карты зала ресторана. Система должна работать в двух режимах:
- Редактор схемы зала: перетаскивание столов, стен, зон и декора.
- Runtime-отображение: отображение статусов столов в реальном времени.
Ключевые технологии и требования
- Frontend: React 18+, TypeScript
- Canvas-библиотека: Fabric.js, Konva.js или аналог (с обоснованием выбора)
- Real-time обновления: WebSocket (задержка менее 500 мс)
- API/Webhooks: REST API + webhooks для двусторонней интеграции
- Дефолтное развертывание: Docker Compose
- Хранение данных: PostgreSQL + Redis
Функционал
- Столы разных форм: круг, квадрат, ромб, с настройкой атрибутов
- Статусы: свободен, забронирован, занят, заблокирован
- Timeline бронирований: 15-минутные слоты
- Декоративные элементы: стены, растения, зоны
- Поддержка нескольких этажей и залов
- API для получения и изменения статусов столов
- Proactive webhooks при смене статусов
Этапы работы
- Анализ canvas-библиотек + создание Proof of Concept (PoC)
- Разработка редактора схемы зала
- Реализация runtime-интерфейса, API и web-интеграций
Состав deliverables
- Git-репозиторий с полным исходным кодом
- Настроенный Docker Compose для развертывания
- Документация OpenAPI
- Коллекция запросов Postman
- Демо-данные для тестирования
Дополнительное примечание: полный пакет технического задания с референсами будет предоставлен подрядчику. Модуль должен быть self-sufficient, готов к автономной работе и интеграции с любыми внешними системами бронирования.