Кейс 07 / Разработка и DevOps

Сервис заказа еды и кабинет ресторана

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

Единая продуктовая система для выбора ресторана, оформления и оплаты заказа, отслеживания доставки и работы партнеров. В нее входят web-интерфейс, mobile приложения и адаптеры ресторанных интеграций.

  • Foodtech
  • Web и mobile
  • Интеграции

С чего начали

  • Разделили сценарий между гостем, рестораном, оператором и курьером.
  • Сохранили заказ единым объектом с общей историей для всех участников.
  • Вынесли интеграции с разными кассовыми системами в отдельные адаптеры.
  • Зафиксировали цену и состав заказа в момент подтверждения, а для внешних статусов ввели проверку допустимых переходов.

Что сделала команда

  • Разработали web-интерфейс каталога, поиска, карточки ресторана и корзины.
  • Синхронизировали меню, цены, модификаторы, график и недоступные позиции.
  • Добавили онлайн-оплату, промокоды, бонусы и расчет итоговой суммы.
  • Создали кабинет партнера и mobile приложения для клиента и курьера.
  • Реализовали события заказа, push-уведомления и поддержку в контексте доставки.
  • Добавили защиту от дублей и повторной оплаты, настроили мониторинг отдельных интеграций.

Как проверили результат

  • Недоступную позицию нельзя оплатить из старой вкладки.
  • Ресторан видит только свои заказы и настройки.
  • Повторное нажатие не создает второй заказ.
  • Сбой кассовой системы попадает в контролируемую очередь.
  • Ключевой путь проверяется в web, Android и iOS.

Что получил заказчик

  • Web и mobile приложения.
  • Сервисы заказа.
  • Кабинет ресторана.
  • Адаптеры интеграций.
  • Документация событий, дашборды, автотесты и порядок реагирования на инциденты.

Технологии и инструменты

  • React
  • TypeScript
  • ASP.NET Core
  • Kotlin
  • Swift
  • PostgreSQL
  • Redis
  • RabbitMQ

Следующий шаг

Обсудим задачу с похожими ограничениями

Пришлите короткое описание. Предложим формат первого этапа, критерии приемки и подходящий состав команды.