F
Fand_igor

Единая панель общепита с сайтом и мобильным приложением

Сейчас работаю над проектом как над единой панелью для общепита, которая объединяет сайт, мобильное приложение, внутреннюю панель управления, backend API, складской и закупочный контур, а также интеграции с внешними каналами заказов. Идея проекта родилась из анализа рынка и практики внедрения: в большинстве случаев касса, сайт, мобильное приложение, SEO, внутренняя операционная работа и дополнительные сервисы существуют разрозненно и плохо связаны между собой.

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

Что решает проект

  • объединяет клиентский и внутренний контур работы заведения в одной системе;
  • объединяет сайт, мобильное приложение, внутреннюю панель, операционный контур и маркетинговую основу в одном продукте;
  • позволяет централизованно управлять меню, заказами, остатками, закупками и точками продаж;
  • формирует единый API для сайта, внутренней панели и бот-интеграций;
  • снижает зависимость от разрозненных сервисов, в которых касса, сайт, приложение и продвижение живут отдельно;
  • устраняет фрагментацию процессов и даёт бизнесу единый центр управления;
  • создаёт архитектурную базу для дальнейшего развития в SaaS-продукт для общепита.

Текущий статус проекта

  • проект находится в активной разработке;
  • backend уже оформлен как рабочее API-приложение на Laravel;
  • клиентский сайт уже собран как отдельный frontend;
  • внутренняя панель для персонала выделена в отдельное приложение и развивается как самостоятельный контур;
  • архитектура заранее подготовлена под дальнейшее масштабирование по ролям, точкам, каналам продаж, мобильному приложению и дополнительным модулям.

Что уже реализовано

  • единый backend на Laravel 10 с API-first подходом и версионированием api/v1;
  • отдельный клиентский frontend для заказа и отдельная внутренняя панель для управления;
  • авторизация через OTP, пароль и Sanctum;
  • профиль пользователя, смена пароля, запрос на смену номера телефона;
  • каталог меню с категориями, позициями, изображениями, модификаторами и объёмами;
  • поддержка дополнительных параметров позиции, включая объёмы и модификаторы;
  • оформление заказов через сайт;
  • история заказов и просмотр деталей заказа;
  • чат по заказу между системой и пользователем;
  • отдельный контур упрощённого заказа через бот;
  • складской блок с ингредиентами, рецептами и списанием остатков;
  • заявки на закупку и приёмка поставок;
  • административные методы для работы с заказами, складом, закупками и статистикой;
  • справочники точек продаж, языков, переводов, уровней лояльности и юридических лиц;
  • журнал активности, рабочие сессии сотрудников, привязка соцсетей и impersonation;
  • базовый контур управления ботами, хранения конфигураций и статистики.

Что важно в проекте технически

  • архитектура разделена на контроллеры, сервисы, модели, события и фоновые задачи;
  • бизнес-логика вынесена в отдельные сервисы, а не смешана с HTTP-слоем;
  • API защищено через Sanctum, middleware, rate limiting и API keys;
  • меню вынесено под отдельную защиту через API key с возможностью ограничений по IP и endpoint;
  • заложена мультиточечная модель работы: меню может быть доступно только в определённых точках, ингредиенты и остатки привязаны к конкретной локации, закупки и заказы учитывают location_id, а в заказах предусмотрен канал поступления, например сайт, бот или точка;
  • предусмотрен отдельный слой прав и ролей для клиентов, бариста, менеджеров и администратора;
  • реализована мультиязычность через таблицы языков и переводов;
  • конфигурация проекта сразу проектировалась с feature flags для поэтапного включения новых возможностей;
  • токены ботов хранятся в зашифрованном виде;
  • проект строится как единая интеграционная точка для сайта, панели и ботов.
  • проект строится как единая интеграционная точка для сайта, панели, будущего мобильного приложения и внешних каналов.

Архитектурная идея развития

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

  • сайт заказа решает клиентский сценарий;
  • мобильное приложение должно дать тот же единый продукт в мобильном формате;
  • внутренняя панель закрывает операционную работу персонала;
  • backend API объединяет все внешние и внутренние каналы;
  • бот-контур позволяет подключать дополнительные сценарии оформления заказов и коммуникации;
  • мультиточечная архитектура позволяет масштабировать решение под несколько локаций;
  • feature flags дают возможность включать новые режимы поэтапно, без ломки основного контура;
  • в одной системе можно постепенно собирать и операционную часть, и клиентский канал, и цифровое продвижение.

В текущей конфигурации уже предусмотрено дальнейшее развитие в сторону:

  • онлайн-оплаты;
  • доставки;
  • программы лояльности;
  • более развитого режима мультилокаций;
  • мобильного приложения;
  • более широкой административной панели;
  • расширения под другие форматы общепита.

Моя роль

Моя роль в проекте - от идеи и архитектурной проработки до практической реализации ключевых частей системы.

  • продумываю сам продукт как платформу, а не как набор отдельных экранов;
  • анализирую рынок и проблемы существующих разрозненных решений;
  • проектирую backend-архитектуру и структуру API;
  • определяю модель данных, сущности и векторы масштабирования;
  • реализую backend на Laravel;
  • развиваю клиентский и внутренний фронтенд-контур;
  • проектирую интеграцию между сайтом, внутренней панелью и ботами;
  • формирую основу для дальнейшего расширения в полноценную единую систему для управления бизнесом общепита в одном окне.

Технологии

  • PHP
  • Laravel 10
  • Laravel Sanctum
  • MySQL
  • Vue 3
  • Vue Router
  • Axios
  • Ant Design Vue
  • Bootstrap 5
  • API-first архитектура

Практическая ценность проекта

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