RentonSoft POS
POS-система для ресторанов, которая работает в двух кафе и как мультиарендный SaaS.
Один заказ — много рук: официанты, кухня, бар и касса работают с одним и тем же состоянием в реальном времени.
Задача
Обслуживание в ресторане разделено между столами, стойкой, кухней, баром и кассой. На каждом этапе нужно одно и то же состояние заказа, понятные права доступа и платёжная логика, которая не спишет деньги дважды и не потеряет позицию — на планшетах и в спешке.
Решение
Типизированный монорепозиторий: NestJS и Prisma на PostgreSQL, React и Vite на фронтенде. Комнаты реального времени по ролям доставляют каждое изменение на кухню, в бар, на кассу и официантам. Платежи транзакционные и идемпотентные: разделение по позициям или поровну, скидки, возвраты по PIN менеджера и сверка смен. Брендинг хранится в настройках, поэтому одна кодовая база обслуживает разные кафе, а SaaS-версия изолирует каждый бизнес в собственной схеме PostgreSQL.
Результат
Каждый день работает в Castor Coffee и Sisa Atelier и открыта для новых заведений как SaaS — с семидневным пробным периодом, после которого данные переходят в режим чтения, а не удаляются.
Что внутри
- Обслуживание столов, продажи на стойке и навынос в одном процессе
- Экраны кухни и бара с предупреждениями о задержках
- Разделение счёта, скидки, возвраты по PIN и Z-отчёты
- Складской учёт по рецептам: каждая продажа списывает ингредиенты
- SaaS со схемой на арендатора, пробным периодом и безопасной приостановкой
Стек
Под капотом
Слой кода этого проекта — модули и движущиеся части.
apps/api NestJS · Prisma · PostgreSQL 16 realtime/ Socket.IO rooms → kitchen · bar · cashier · waiters · display checks/ Check → Order → OrderItem, tax-inclusive totals payments/ split · discount · refund (idempotency keys, manager PIN) stock/ recipes (BOM) → ingredients consumed per sale tenancy/ schema-per-tenant, routed through AsyncLocalStorage apps/web React · Vite · TanStack Query · Zustand deploy Docker Compose · reverse proxy · nightly backups
Готовый софт
Обслуживание столов, экраны кухни и бара, раздельная оплата и складской учёт по техкартам — как SaaS или на вашем сервере.