Все кейсы

Frontend-разработчик

Кофемания

Панель оператора доставки, заказ и оплата за столом, сайты группы и поддержка карьерного портала.

Delivery Hub: лента заказов и карточка заказа на одном экране. Статус можно сменить вручную — например, если заказ уже пробит в кассе и повторно отправлять его не нужно.
Delivery Hub: лента заказов и карточка заказа на одном экране. Статус можно сменить вручную — например, если заказ уже пробит в кассе и повторно отправлять его не нужно.

Delivery Hub и оплата за столом.

2022–2025 · frontend ресторанной группы

Моя роль

Единственный frontend-разработчик на двух ключевых продуктах: оплату за столом вёл с первого коммита, Delivery Hub — с ноября 2023 по февраль 2025. Развивал интерфейсы, согласовывал контракт событий с командой бэкенда и параллельно делал сайты группы. Дорабатывал и поддерживал карьерный портал rabota.coffeemania.ru.

Delivery Hub
Лента заказов и инструменты оператора
Оплата и заказ
Меню, счёт, оплата через СБП и списание баллов
Сайты группы
Лендинги, сайты брендов и карьерный портал

Задача бизнеса

Оператору доставки нужна общая лента заказов, гостю — заказ и оплата по QR-коду, маркетингу — страницы к запуску ресторанов и брендов. Карьерный портал помогает кандидатам найти вакансию и отправить анкету.

Delivery Hub

Рабочее место оператора доставки

В ленту поступают заказы из всех каналов. В ней видны статусы, опоздания и недоплаты. Рядом открывается карточка заказа: оператор может проверить состав, сменить статус или передать заказ курьеру.

Из звонка — в оформленный заказ

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

Delivery Hub, новый заказ: профиль гостя подтягивается по телефону вместе с уровнем лояльности и адресами. Ресторан, время и стоимость доставки считаются по адресу.
Delivery Hub, новый заказ: профиль гостя подтягивается по телефону вместе с уровнем лояльности и адресами. Ресторан, время и стоимость доставки считаются по адресу.

Обновления в реальном времени

React и TypeScript на клиенте, SignalR для событий от .NET-бэкенда. В ленте есть фильтры, пагинация и подсветка заказов, требующих внимания.

Управление заказом из карточки

Смена статуса, переотправка в iiko, чек сборки, стикеры и передача в White Cabs доступны из карточки. Ручная смена статуса не требует повторной отправки в кассу.

Инженерные детали
  • Черновик вместо прямой правки

    При редактировании создаётся отдельный черновик заказа. Изменения применяются к заказу при сохранении.

  • Меню и отчёты

    В меню видны остатки, SKU и стоп-лист. Поиск учитывает варианты «е/ё» и «и/й». Отчёты оператора и шефа сортируются с учётом типов данных и выгружаются в Excel.

Ещё экраны (3)
Delivery Hub, карточка блюда: варианты приготовления, КБЖУ и остаток в ресторане. Можно добавить несколько позиций подряд, не закрывая окно.
Delivery Hub, карточка блюда: варианты приготовления, КБЖУ и остаток в ресторане. Можно добавить несколько позиций подряд, не закрывая окно.
Delivery Hub, оформление: способ оплаты, списание баллов через холд, платные приборы и ручная стоимость доставки.
Delivery Hub, оформление: способ оплаты, списание баллов через холд, платные приборы и ручная стоимость доставки.
Delivery Hub, отчёты оператора и шефа за период: сортировка по колонкам с учётом типа данных и выгрузка в Excel.
Delivery Hub, отчёты оператора и шефа за период: сортировка по колонкам с учётом типа данных и выгрузка в Excel.

Оплата и заказ

Заказ и оплата по QR-коду стола

Гость открывает сервис в браузере: получает счёт из кассы, списывает баллы и выбирает банк для оплаты через СБП. Позже добавил возможность самостоятельно заказать блюда из меню.

Оплата за столом: стол по QR-коду, счёт из кассы со списанием баллов, выбор банка для СБП с запомненным банком наверху и подтверждение оплаты с предложением оставить чаевые.
Оплата за столом: стол по QR-коду, счёт из кассы со списанием баллов, выбор банка для СБП с запомненным банком наверху и подтверждение оплаты с предложением оставить чаевые.

Проверка статуса платежа

Выбранный банк открывается диплинком и запоминается. Экран статуса опрашивает бэкенд до подтверждения, после успеха предлагает оставить чаевые через CloudTips.

Заказ из меню на телефоне

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

Инженерные детали
  • Состояние стола и корзины

    Доменные модели на Effector разделяют стол, счёт, меню, банки и оплату. Стол и корзина синхронизируются с адресом страницы. После 40 минут бездействия сессия стола сбрасывается.

  • Развитие после MVP

    От первого коммита до production в июле 2022 прошло 28 дней. Затем появились лояльность, чаевые, переход с Preact CLI на Vite и заказ к столу в 2024 году.

Ещё экраны (3)
Заказ к столу: меню с лентой категорий, карточка блюда в нижней шторке и корзина с модификаторами и комментариями.
Заказ к столу: меню с лентой категорий, карточка блюда в нижней шторке и корзина с модификаторами и комментариями.
Программа лояльности: вход по SMS-коду, а в корзине — ползунок списания баллов и недоступные блюда отдельным блоком.
Программа лояльности: вход по SMS-коду, а в корзине — ползунок списания баллов и недоступные блюда отдельным блоком.
Полный состав счёта и экран ожидания оплаты: пока банк не подтвердил платёж, идёт таймер и можно выбрать другой банк.
Полный состав счёта и экран ожидания оплаты: пока банк не подтвердил платёж, идёт таймер и можно выбрать другой банк.

Сайты группы

Сайты ресторанной группы

Делал лендинги «Кофемании», раздел «Устойчивое развитие», сайты «Жажды крови» и Bez Tarelok. Дорабатывал и поддерживал карьерный портал.

Сайты: лендинг ресторана «Кофемания Chef’s» — рассказ о концепции переключается вкладками поверх фотографии зала.
Сайты: лендинг ресторана «Кофемания Chef’s» — рассказ о концепции переключается вкладками поверх фотографии зала.
Сайты: первый экран «Жажды крови» — фоновое видео из открытой кухни, бронь стола и меню, переключатель RU/EN.
Сайты: первый экран «Жажды крови» — фоновое видео из открытой кухни, бронь стола и меню, переключатель RU/EN.
Карьерный портал «Кофемании»: главная страница с рассказом о команде и переходом к анкете.
Карьерный портал «Кофемании»: главная страница с рассказом о команде и переходом к анкете.
Карьерный портал: список вакансий. Каждую позицию можно раскрыть и посмотреть условия работы.
Карьерный портал: список вакансий. Каждую позицию можно раскрыть и посмотреть условия работы.

Внутри coffeemania.ru

Лендинги встроены в Next.js-приложение с серверным рендерингом и отдельной мобильной сборкой. «Устойчивое развитие» объединяет пять внутренних страниц.

Самостоятельные сайты

У «Жажды крови» — видео, 360°-тур на krpano и Schema.org. У Bez Tarelok — Next.js и CMS Keystone для редактирования контента.

Карьерный портал

Дорабатывал и поддерживал rabota.coffeemania.ru с CMS Strapi. На портале кандидаты смотрят вакансии и условия работы, выбирают позицию и отправляют анкету.

Ещё экраны (3)
Сайты: раздел «Устойчивое развитие» — хаб из пяти внутренних лендингов, карточки приходят из CMS.
Сайты: раздел «Устойчивое развитие» — хаб из пяти внутренних лендингов, карточки приходят из CMS.
Сайты: главная Bez Tarelok — слайдер и тексты редактируются в CMS Keystone.
Сайты: главная Bez Tarelok — слайдер и тексты редактируются в CMS Keystone.
Сайты: мобильная сборка coffeemania.ru — страница отдаётся отдельным шаблоном, бронь стола закреплена внизу экрана.
Сайты: мобильная сборка coffeemania.ru — страница отдаётся отдельным шаблоном, бронь стола закреплена внизу экрана.

Результат

Оплата за столом, Delivery Hub и сайты группы

Запустил первую версию оплаты за столом за 28 дней и развивал её ещё два с половиной года. Параллельно работал над Delivery Hub и сайтами группы, дорабатывал и поддерживал карьерный портал. По двум продуктам закрыл 208 задач.

28
дней от первого коммита оплаты за столом до продакшена
6
каналов заказов в одной ленте хаба: сайт и приложение, Яндекс Еда, Delivery Club, Сбер, MirCity и заказ за столом
326/327
коммитов во фронтенде Delivery Hub с ноября 2023 по февраль 2025 — мои

Стек

  • React
  • TypeScript
  • Effector
  • SignalR
  • Next.js
  • Vite
  • ExcelJS
  • SCSS Modules
  • Keystone
  • Strapi
  • Docker