Все проекты
Мультитенантный SaaSРаботает в продакшенеСамостоятельная разработка от начала до конца

Мультитенантная ERP-платформа для ресторанов и доставки

Единая система для всех операций: администрирование клиентов и биллинга, POS со сменами и заказами, складской учёт, себестоимость, финансы и расчёт зарплаты — с изоляцией данных каждого клиента.

Администрирование платформы — операционный дашборд SaaS
Администрирование платформы — операционный дашборд SaaS

Проблема и цель

Рестораны и службы доставки обычно работают с набором разрозненных инструментов: POS от одного поставщика, таблицы для складского учёта и себестоимости, ручной расчёт зарплаты. Целью было создать единый мультитенантный SaaS, охватывающий весь процесс — от подключения нового клиента до кассы, кухни, склада и финансовой отчётности, — чтобы новое заведение получало готовое программное обеспечение без индивидуальной разработки.

Моя роль и ответственность

Я самостоятельно спроектировал и разработал всю платформу: мультитенантную архитектуру и базу данных, Fastify REST API с обновлениями через WebSocket в реальном времени, фронтенды на Next.js для администрирования платформы, POS и бэк-офиса, JWT-аутентификацию с ролевым контролем доступа, а также бизнес-алгоритмы расчёта себестоимости и учёта запасов. Я также отвечаю за развёртывание и эксплуатацию в продакшене — миграции живых данных, мониторинг и развитие на основе отзывов операторов.

Модули продукта

Ключевые инженерные задачи

Синхронизация POS, кухни и бэк-офиса в реальном времени

Состояние заказов и смен должно оставаться согласованным для кассиров, кухонных экранов и менеджеров, работающих одновременно. Я реализовал синхронизацию через WebSocket с оптимистичными обновлениями интерфейса и обработкой конфликтов параллельного редактирования, поэтому касса не блокируется из-за сети.

Изоляция клиентов и ролевой доступ

Каждый запрос ограничен данными конкретного клиента, а разрешения определены по модулю и роли: владелец, менеджер, кассир, повар и курьер видят только то, что необходимо для их работы. Данные или ошибки одного клиента не могут попасть в учёт другого.

Себестоимость и складской учёт при реальных объёмах продаж

Рецепты, полуфабрикаты и складские операции питают механизм расчёта себестоимости, сохраняющий точность при изменении цен на ингредиенты. Тяжёлые отчёты выполняются оптимизированными запросами PostgreSQL с индексами и кешированием в Redis, а для денег и количеств используется точная десятичная арифметика.

Технологический стек

Фронтенд

  • Next.js
  • TypeScript
  • Tailwind CSS
  • Zustand
  • TanStack Query
  • React Hook Form
  • Zod

Бэкенд

  • Node.js
  • Fastify
  • REST API
  • WebSocket
  • JWT + RBAC

Данные

  • PostgreSQL
  • Prisma
  • Redis

Приложения и инфраструктура

  • Приложение курьера (Capacitor)
  • Cloudflare R2
  • Render
  • Vercel