BitStudio
Все работы
Веб-приложенияПодача · 2025

Подача

Заказ со стола по QR и кухонный экран в реальном времени.

СтекNode.jsFastifyWebSocketSQLiteRealtimeKDS
Подача

Обзор

«Подача» — система для ресторана «Корка»: гость сканирует QR у стола, заказывает с телефона, и заказ за секунду прилетает на кухонный экран (KDS). Меню нарисовано чистым CSS и SVG — без стоковых фото. Всё открывается в браузере и работает как приложение — без установки.

Задача

Нужен надёжный реалтайм между залом и кухней: статусы должны синхронизироваться мгновенно между всеми экранами и телефоном гостя, кухня не должна терять тикеты при обрыве Wi-Fi, повторное нажатие «Заказать» не должно задваивать заказ, а итог с модификаторами обязан считаться на сервере.

Решение

Лёгкий стек на Node.js, Fastify, WebSocket и single-writer SQLite в режиме WAL. Каждое изменение пишет ровно одну строку-событие в outbox в той же транзакции; экран реконнектится по курсору lastEventId, доигрывает пропущенное и переключается на live без разрыва. Идемпотентный заказ по ключу, оптимистичная блокировка бампа (условный UPDATE, проигравший получает 409), серверное ценообразование, стоп-лист 86 вживую, сессии на httpOnly-cookie с авторизацией на WS-upgrade, CSRF и роли customer / staff / admin.

Результаты

При обрыве связи не теряется ни один тикет: outbox + reconnect-replay по курсору
Идемпотентный заказ — двойной тап не создаёт второй тикет
Заказ прилетает на кухонный экран нужной станции за секунду
Развёрнуто живое демо против настоящей базы; грузится почти мгновенно на недорогом VPS

Связаться

Расскажите о проекте.