База знаний Додо ИС. Информационная система пиццерии. Основатель "Додо пиццы" выпустил бесплатное мобильное приложение для рестораторов. Разработка системы Dodo IS началась сразу же, как и бизнес Додо Пиццы — в 2011 году. Расскажем вам, как DocsInBox помогли «Додо Пицце» автоматизировать работу с системой «Меркурий», избежать просрочек гашения ветеринарных сертификатов и сократить время работы с ФГИС.
База знаний додо
На сегодняшний день Додо Пицца – сеть пиццерий №1 в России по количеству действующих ресторанов. Владелец сайта предпочёл скрыть описание страницы. База знаний Додо создавалась 6 лет назад как блог на WordPress, — вполне объяснимый выбор для быстрого старта. Сеть пиццерий «Додо пицца» застраховала от киберрисков свои информационные системы и ресурсы, в том числе, программное обеспечение, корпоративную электронную почту, Web-сайт, «облачный» сервис и базы данных. Информационная система Dodo IS состоит из 44 различных сервисов, таких как Трекер, Кассы ресторана или Базы знаний и многих других. База знаний ИИ Презентация. История о том, как мы автоматизировали контакт-центр «Додо Пиццы».
Додо ис база знаний - фото сборник
Компания Dodo Brands, которая развивает три бренда («Додо Пицца», «Дринкит» и «Донер 42») планирует провести первичное публичное размещение акций в начале 2024 года. Статистика и отчёты «Додо ИС» собирает данные обо всех аспектах работы: от скорости сборки конкретной пиццы до экономической эффективности пиццерии. База знаний Додо. В Базе хранится вся наша история! Мы выкладываем туда свежие новости компании, обсуждаем актуальные тренды, храним все стандарты, обучающие статьи и курсы. В Додо Пицце все бизнес-процессы управляются единой информационной платформой Dodo IS. Она помогает готовить пиццу, вести учёт продуктов, открытых и закрытых смен, управлять командой и многое другое. База знаний Додо ИС. Информационная система пиццерии. Главная» Новости» Додо новости.
Автоматизируем бизнес по-крупному: создаём свой «цифровой мозг»
Но тогда выбрали надежное и проверенное решение. Вот оно. Каждый из сервисов отвечал какому-то аспекту бизнеса: Например, DepartmentStructureService выдавал информацию по пиццериям, по департаментам. Департамент — это группа пиццерий под управлением одного франчайзи.
ReceivingOrdersService принимал и рассчитывал состав заказа. Сервисы обрабатывали данные из базы, хранили бизнес-логику. В них уже находились запросы к хранимым процедурам в базе и слой мапперов.
В хранимках была бизнес-логика, особенно много в тех, которые выдавали отчетные данные. ОРМ не использовался, все полагались на написанный руками sql. Еще был слой доменной модели и общих классов-хелперов, например, класс Order, хранивший заказ.
Там же, в слое, находился хелпер для преобразования текста отображения по выбранной валюте. Всё это можно представить такой моделью: Путь заказа Рассмотрим упрощенный первоначальный путь создания такого заказа. Изначально сайт был статический.
На нем были цены, а сверху — номер телефона и надпись «Хочешь пиццу — звони по номеру и закажи». Для заказа нам нужно реализовать простой flow: Клиент заходит на статический сайт с ценами, выбирает продукты и звонит по номеру, который указан на сайте. Клиент называет продукты, которые хочет добавить в заказ.
Называет свой адрес и имя. Оператор принимает заказ. Заказ отображается в интерфейсе принятых заказов.
Все начинается с отображения меню. Залогиненный пользователь-оператор в один момент времени принимает лишь один заказ. Поэтому draft-корзина может храниться в его сессии сеанс пользователя хранится в памяти.
Там объект Cart, в котором продукты и информация о клиенте. По продукту вытаскивается информация из базы и добавляется информация о продукте в корзину. Да, здесь можно не вытаскивать продукт из базы, а передавать с фронтенда.
Но для наглядности я показал именно путь из базы. Далее вводим адрес и имя клиента. При нажатии «Создать заказ»: Запрос отправляем в OrderController.
Получаем Cart из сессии, там лежат продукты в нужном нам количестве. Дополняем Cart информацией о клиенте и передаем в метод AddOrder класса ReceivingOrderService, где он сохраняется в базу. В базе есть таблицы с заказом, составом заказа, клиентом и они все связаны.
Интерфейс отображения заказа идет и вытаскивает последние заказы и отражает их. Новые модули Прием заказа был важен и необходим. Нельзя сделать бизнес по продаже пиццы, если нет приема заказа для продажи.
Поэтому система начала обрастать функционалом — примерно с 2012 по 2015 года. За это время появилось много различных блоков системы, которые я буду называть модулями, в противовес понятию сервиса или продукта. Модуль — это набор функций, которые объединены какой-то общей бизнес-целью.
При этом физически они находятся в одном приложении. Модули можно назвать блоками системы. Например, это модуль отчетов, интерфейсы админки, трекер продуктов на кухне , авторизация.
Это всё разные интерфейсы для пользователя, некоторые имеют даже различные визуальные стили. При этом все в рамках одного приложения, одного работающего процесса. Технически модули оформлялись как Area вот такая идея даже осталась в asp.
Там были отдельные файлы для фронтенда, моделей, а также свои классы контроллеров. В итоге система преобразовалась из такой... Это: Site — первая версия сайта dodopizza.
Export: выгрузка отчетов из Dodo IS для 1C. Personal — личный кабинет сотрудника. Отдельно разрабатывался и имеет свою точку входа и отдельный дизайн.
Позже мы ушли от него, переведя всю статику на CDN Akamai. Остальные же блоки находились в приложении BackOffice.
Здесь для упрощения она показана как часть пути в том же атрибуте, хотя это переход на страницу логина. В случае позитивного сценария мы получим правильно заполненную сессию и перейдём в Backoffice Controller. Если данные есть, то нужно проверить их на актуальность в базе пользователя. Не изменилась ли его роль, не надо ли его не пускать теперь на страницу. В этом случае после получения сессии 1 надо напрямую сходить в базу и проверить доступы пользователя с помощью слоя логики аутентификации 2. Далее либо на логин-страницу, либо переход в контроллер. Такая вот простая система, но при этом не совсем стандартная.
Если все процедуры пройдены, то пропускаем дальше в логике в контроллерах и методах. Данные пользователей отделены от всех других данных, они хранятся в отдельной таблице membership, функции из слоя логики AuthService вполне могут стать api-методами. Границы домена определены вполне чётко: пользователи, их роли, данные о доступах, выдача и отзыв доступов. Всё выглядит так, что можно вынести в отдельный сервис. Так и сделали: У такого подхода есть ряд проблем. Например, вызов метода внутри процесса — не то же самое, что вызов по http внешнего сервиса. Латенси, надёжность, поддерживаемость, прозрачность операции совершенно другие. Подробнее именно о таких проблемах рассказывал Андрей Моревский в своем докладе »50 оттенков микросервисов». Сервис аутентификации и с ним сервис устройств используются для бэкофиса, то есть для сервисов и интерфейсов, используемых на производстве.
Аутентификация для клиентских сервисов вроде сайта или мобильного приложения происходит отдельно без использования Auth. Отделение заняло около года, а сейчас мы опять занимаемся этой темой, переводя систему уже на новые сервисы аутентификации со стандартными протоколами. Почему отделение длилось так долго? По пути было множество проблем, которые замедляли: Нам хотелось перевести данные о пользователях, устройствах и аутентификации из баз по стране в одну. Для этого пришлось переводить все таблицы и использование с идентификатора int на глобальный идентификатор UUId недавно перерабатывали этот код Роман Букин «Uuid — большая история маленькой структуры» и open-source проект Primitives. Хранение данных по пользователям так как это персональная информация имеет свои ограничения и для некоторых стран надо хранить их отдельно. Но глобальный идентификатор пользователя должен быть. Много таблиц в базе имеет аудит информацию о том пользователе, который совершил операцию. Это потребовало дополнительного механизма, чтобы была консистентность.
После создания api-сервисов был долгий и постепенный период перевода на другую систему. Переключения должны были происходить бесшовно для пользователей и требовали ручной работы. Схема регистрации устройства в пиццерии: Общая архитектура после выделения Auth и Devices-сервиса: Чем занимается Трекер Теперь про второй из нагруженных сервисов. Трекер выполняет двойственную роль: С одной стороны, его задача — показывать сотрудникам на кухне, какие заказы сейчас в работе, какие продукты сейчас нужно готовить. С другой стороны — оцифровывать все процессы на кухне. Когда в заказе появляется новый продукт например, пицца , он попадает на станцию трекера «Раскатка». На этой станции стоит пиццамейкер, который берёт плюшку нужного размера и раскатывает её, после чего отмечает на планшете трекера, что выполнил свою задачу и передаёт раскатанную основу теста на следующую станцию — «Начинение». Там следующий пиццамейкер начинает пиццу, затем отмечает на планшете, что выполнил свою задачу и ставит пиццу в печь это тоже отдельная станция, которую нужно отметить на планшете. Такая система была с самого начала в Додо и самого начала существования Dodo IS.
Она позволяет полностью отслеживать и оцифровывать все операции. Кроме того трекер подсказывает, как готовить тот или иной продукт, проводит каждый вид продукта по своим схемам изготовления, хранит оптимальное время приготовления продукта и трекает все операции над продуктом.
По его словам, компания может открыть ресторанные точки в разных сегментах: кофейни, суши-бары, кафе восточной кухни.
Кроме того, владелец сети не исключил создание гостиниц мини-форматов и химчисток. В ближайшее время компания планирует создать сеть «кебаб-хаусов», в которой с помощью мобильного приложения можно будет изменить рецепт шаурмы под себя. Аналитики Knight Frank опасаются, что компания может столкнуться с нежеланием потенциальных участников подключается к единой облачной информационной системе и, соответственно, платить за это, помимо роялти.
Также вызывает вопросы как будут учитываться различные технологические потребности профилей предпринимателей столь диверсифицированного портфеля франшиз.
Но когда появилась сеть пиццерий, перенос данных занимал бы слишком много времени. Нужно было с нуля настроить синхронизацию. Клиенты ведут бухгалтерию в 1С:Фреш, поэтому мы развернули для франчайзи отдельное облако на технологии Фреш, в котором сделали необходимые доработки. Сейчас так работают уже с 10 облачными базами Додо франчайзи.
Подробно про механизм интеграции рассказываем и показываем на видео: Автоматизировали оплату самозанятым и контроль доставок В ходе доработок сделали загрузку и учет зарплаты самозанятых, это актуально для многих франчайзи. Курьеры часто работают как самозанятые — поставщики услуг по доставке. Теперь поступления услуг на оплату создаются автоматически и на основании приходов формируются платежные поручения в банк. Решили еще одну задачу по работе с курьерами — настроили сверку со Сбербанком для контроля доставок.
Франшиза «Додо пицца»
Пользуйтесь фильтрами и категориями, чтобы быстро находить нужную информацию и ориентироваться в базе знаний Додо. Dodo IS - Персонал. Графики Проверяйте актуальность информации, особенно если вы используете старые статьи. Убедитесь, что вы работаете с самой свежей и актуальной информацией. Мобильное приложение, единая система менеджмента и развитие «Базы знаний». Dodo IS — информационная система как ядро франчайзинга Не стесняйтесь задавать вопросы.
Кассир Додо. Додо пицца кассир. Додо пицца ресторан.
Первый ресторан Додо. Додо пицца Митино. Пиццерии в Великобритании. Оценка в Додо пицце. Додо пицца Жуковский. Оценить в Додо приложении. Додо пицца Ново Садовая 8а. Додо пиццерия витрина.
Додо пицца Махачкала. Додо ИС личный кабинет. Dodo is личный кабинет. База знаний Додо. Сколько стоит франшиза Додо пицца в России. В Додо пицца договор труда. Трекер Додо ИС. Dodo is вход.
Менеджер смены вход Додо. Додо ИС бэк. Dodo is io Manager. Статистика заказов. Карта заказов статистика. Статистика по заказам на сайте. Tiu статистика заказов. Dodo is кабинет сотрудника Dodo is.
Додо пицца кассовый Интерфейс. Интерфейс кассира dodopizza касса. Додо ИС менеджер офиса. Пиццамейкер Додо. Додо персонал личный. Додо история заказов. Как добавить карту в приложении Додо. Как добавить карту в Додо.
Как поменять карту в Додо приложении. Dodo is изменить номер. Планшеты у оператора банка.
Найм и увольнение Управляющий видит заявки от соискателей, смотрит резюме, приглашает на собеседование, ведёт статистику производительности и увольняет лентяев. Экраны с меню Система через интернет выводит на экраны в пиццерии сезонные предложения и актуальное меню с ценами этой пиццерии. Промоакции «Додо ИС» помогает конструировать промоакции и управлять промокодами в масштабах всей сети или одной пиццерии. Управление курьерами Удобное приложение помогает курьерам выбрать лучший маршрут, не забывать продукты в заказе и вводит в доставку элемент соревнования. Статистика и отчёты «Додо ИС» собирает данные обо всех аспектах работы: от скорости сборки конкретной пиццы до экономической эффективности пиццерии.
В системе учтено время, деньги, люди и продукты. Подробнее о «Додо ИС»: новая пиццерия и сотрудники , рабочие будни , всё о заказе , отчёты, экраны, доставка, поставщики Пицца — реалити-шоу Когда гости заказывают пиццу на сайте, они видят процесс приготовления вживую. За это отвечает «Додо ИС» — она знает, какая пицца сейчас на столе и когда будет готов заказ. Гостям интересно, когда будет готова именно их пицца, сколько времени на неё уходит, успеет ли курьер за 60 минут. Посмотреть как делается ваша пицца Процессы описаны Мы собрали полную базу знаний по всем аспектам работы пиццерии: организации кухни, уборке, заготовке, выпечке, общению с клиентом, управлению персоналом. В базе знаний хранятся все рабочие документы, макеты рекламных материалов. База знаний собрана на закрытом сайте, к которому получают доступ все франчайзи. В ней же создан сайт с электронными стандартами.
Сайт адаптирован для использования на любых устройствах. Дома стажёры смогут учить стандарты с ноутбука, в пиццерии использовать планшет. Если у менеджера есть рабочий смартфон, стандарты будут всегда под рукой. Это не только полный учебник по управлению пиццерией, но и платформа для обмена опытом. Мы смотрим на успехи друг друга, улучшаем системы и совершенствуем стандарты каждую неделю. Честные условия Нам важен успех наших франчайзи. Для нас франчайзи — это партнёры. Мы хотим привлекать в сеть близких по духу людей, которые разделят наши ценности.
Вместе мы хотим построить международную сеть пиццерий, которая станет для всех примером. К сумме выплат добавляется НДС. Мы создали фонд, который формируется из ежемесячных маркетинговых отчислений франчайзи и финансирует федеральную рекламу. Мы лидер рынка и при нашем охвате территории, реклама на федеральных телеканалах — это эффективно. Бюджет на старт: от 10 млн рублей В бюджет включена аренда, ремонт, закупка оборудования, найм персонала, маркетинговые затраты и закупка ингредиентов для первого месяца работы. Это полная смета, а не только затраты на ремонт. Даём эксклюзив Мы гарантируем доставку за 60 минут или раньше, поэтому пиццерии ориентируются на доставку внутри района или небольшого города. Мы даём эксклюзивные права на город или район в крупном городе: Москве и Санкт-Петербурге.
Это не только часть концепции честности компании, но и инструмент роста продаж. Благосостояние «Додо» базируется на продуманной автоматизации бизнес-процессов. Для этого компания использует облачную информационную систему «Додо ИС» и интеллектуальный подход к видеонаблюдению. Начиналось все со стремления достигнуть порядка и продемонстрировать покупателям выпечку вкусной пиццы высокого качества. Во всех пиццериях на кухнях установлены камеры, видеопоток с которых открыт для просмотра на сайте «ДП». Камеры в заведениях из инструмента live-трансляции превратились в источник информации для видеоаналитики.
Программа обрабатывала фотографии за мгновение, используя нейронные сети. Бот предлагал пользователю на выбор один из шести стилей. Примерно то же самое делает приложение Prisma. Icon8 собрал 7,5 млн подписчиков и получил грант от Павла Дурова в номинации «Фоторедактор». Издание Venture Beat отметило Icon8 как «лучший бот для мессенджеров». Полученные знания и навыки Дмитрий перенес в свой новый проект - DBrain.
Компания дополняет преимущества нейросетей возможностями технологии распределенного реестра. По сути это блокчейн-платформа для командного проектирования «слабого» искусственного интеллекта. Обучать нейронную сеть долго и дорого, поскольку при разметке данных требуется выполнить значительный объем работы вручную. Коллектив Dbrain нашел простой способ уменьшить себестоимость создания и улучшить точность нейронных сетей: обучать сетку за небольшую плату может каждый. Приложение «DBrain», объединенное с Ethereum DApp , дает возможность любому интернет-пользователю решать задачи, получая за них DBR внутренняя криптовалюта. Любой владелец смартфона, ноутбука или ПК с доступом в сеть, установив Telegram-бота способен поставлять данные фото, видео, геолокацию и т.
Вкусная пицца для сотрудников
Главная» Новости» Новости додо пицца. Покупая франшизу «Додо пиццы», франчайзи получает доступ на закрытый сайт с базой знаний по ведению данного вида бизнеса: организация работы кухни, управление персоналом, макеты рекламы, образцы рабочих документов. База знаний Додо ИС. Разработка системы Dodo IS началась сразу же, как и бизнес Додо Пиццы — в 2011 году. Новая главная страница «Базы знаний» Додо. Задача Заложить фундамент, чтобы в будущем система смогла удовлетворить разнородные потребности франчайзи и Додо: 1) новым франчайзи дать простые инструкции по запуску пиццерий; 2) опытным предложить секреты.
О том, как разработчики пилят IT в Dodo
Соловьев подчеркивает, что это ЕРП-система, которая охватывает все аспекты Додо-бизнеса: заказы клиентов, мобильное приложение и сайт, процессы приготовления пиццы в пиццерии, работу кассы и прием платежей, всю операционную работу пиццерии и многое другое. Поэтому крайне важно защитить ее от сбоев и киберрисков, подытожил финансовый директор.
ААндрей Елькин Прирост однозначно есть, а вот на сколько процентов сказать не могу. У нас был очень сложный год, как, собственно, и у всех. Например, в апреле продажи просели, а октябрь выстрелил с неожиданной силой. Как обстоят дела с конкуренцией? ААндрей Елькин Конкуренция постоянно растет. В Балашиху после меня пришел Доминос. Во Фрязино Доминос и Папа Джонс.
Сейчас сильная конкуренция со стороны агрегаторов. В Хабаровске конкурентов гораздо больше. ДДмитрий Пильщиков Конкуренция огромная. Но по настоящему достойных и именно наших конкурентов около 10. Вы проводили анализ - кто ваш гость? Наши клиенты все, кто ест пиццу. ААндрей Елькин Нет какой то точной статистики. Но мы отмечали что в утренние и обеденные часы чаще приходят люди среднего возраста, около 40, а вечером частые гости молодежь и парочки.
ДДмитрий Пильщиков Назовите, пожалуйста, три самых популярных блюда из вашего меню. ААндрей Елькин Додстер, пицца Додо, пепперони на доставку. В зале это готовая пицца кусочками по 49 руб. В зале готовим разные пиццы в разное время. ААндрей Елькин Однозначно можно сказать, что это пицца. С 2019 года в меню появились пиццы бюджетного сегмента, они пользуются наибольшей популярностью. ДДмитрий Пильщиков Наверное, пицца пепперони, додстер и капучино или кола. Часто ли ресторан оплачивает пиццу клиентам?
На эти заказы даём сертификаты. ААндрей Елькин Т. Например, в пиццерии в Хабаровске в прошлом месяце было 3-4 не вовремя доставленных пиццы в месяц. ДДмитрий Пильщиков Редко, у нас среднее время доставки 25 минут. Оказывает ли франчайзер поддержку по основным направлениям юридические вопросы, бухгалтерия? ААндрей Елькин Оказывает информационную поддержку. В базе знаний много информации, в том числе по таким вопросам. Какие-то вещи рассказывают на обучении франчайзи перед открытием первого ресторана.
Но, в целом, это ответственность партнёра.
В которой публикуется вся основная полезная информация для управляющих пиццерией, менеджеров смены, отдельных категорий сотрудников. И которая работает как ключевой канал коммуникации. Посудите сами: где еще сотруднику можно найти всю необходимую на его рабочем месте информацию в формате стандартов, которая регулярно обновляется? Например, как показано на рисунке ниже.
И перед выходом на смену каждый сотрудник проверяет те разделы, которые касаются лично его. Помогает ему в этом регулярный дайджест, который приходит на почту. Подписка, к слову, доступна как простым сотрудникам, так и руководству. Небольшое лирическое отступление: когда мы формировали систему управления знаниями, дайджесты играли важную роль. Ведь если тебе на почту регулярно приходит все то новое, что обсуждалось по твоей теме в течение дня или недели, — профессиональный интерес или простое любопытство пересиливают, и ты тоже подключаешься к обсуждению.
Еще удобной опцией были последние обсуждавшиеся вопросы, и топ-10 вопросов дня. Но это — уже на странице самой системы. За который в Додо отвечает небольшая команда. Например, за стандарты — отдельный сотрудник. Есть редактор, к которому можно обратиться вообще по любому поводу.
И до недавнего времени был один универсальный Арсений, выступавший в роли и аналитика, и разработчика, и продакта. К счастью эта команда была недавно усилена, — новые горизонты и задачи потребовали новых людей! И если стандарты — вещь относительно стабильная — то многие статьи базы знаний нужно корректировать чуть ли не раз в квартал.
Помогли франчайзи Додо автоматически готовить управленческую отчётность Настроили синхронизацию данных Додо ИС и 1С Ядро франшизы Dodo Brands — собственная информационная система Додо ИС, которую разрабатывали практически с основания сети. В нее поступает вся информация с рабочих мест пиццерий: что заказали, сколько нужно продуктов, куда поехал курьер. Это мощный сервис для автоматизации работы франчайзи, но для ведения бухгалтерского учета данные нужно переносить в 1С. Своему первому клиенту среди франчайзи Додо мы помогаем с 2014 года. Пока у клиента работала одна пиццерия, достаточно было сопровождения 1С:Бухгалтерии — бухгалтера копировали данные из Додо ИС вручную. Но когда появилась сеть пиццерий, перенос данных занимал бы слишком много времени. Нужно было с нуля настроить синхронизацию.
Клиенты ведут бухгалтерию в 1С:Фреш, поэтому мы развернули для франчайзи отдельное облако на технологии Фреш, в котором сделали необходимые доработки.
База знаний додо
Ядро франшизы Dodo Brands — собственная информационная система Додо ИС, которую разрабатывали практически с основания сети. База знаний Додо ИС. Информационная система пиццерии. Покупая франшизу «Додо пиццы», франчайзи получает доступ на закрытый сайт с базой знаний по ведению данного вида бизнеса: организация работы кухни, управление персоналом, макеты рекламы, образцы рабочих документов. Dodo Pizza часто называет себя ИТ-компанией. Дмитрий Павлов, директор по продукту Dodo IS, рассказывает подробности об устройстве системы и делится несколькими кейсами, когда все пошло не так.
Улучшите опыт использования Додо с помощью наших полезных советов
Кроме того трекер подсказывает, как готовить тот или иной продукт, проводит каждый вид продукта по своим схемам изготовления, хранит оптимальное время приготовления продукта и трекает все операции над продуктом. Так выглядит экран планшета на станции трекера «Раскатка» Откуда нагрузки? В каждой из пиццерий примерно по пять планшетов с трекером. В 2016 году у нас было больше 100 пиццерий а сейчас более 600. Каждый из планшетов делает раз в 10 секунд запрос на бэкэнд и выгребает данные из таблицы заказа связка с клиентом и адресом , состава заказа связка с продуктом и указание количества , таблицы учёта мотивации в ней трекается время нажатия. Когда пиццамейкер нажимает на продукт на трекере, происходит обновление записей во всех этих таблицах. Таблица заказа общая, в неё же одновременно идут вставки при принятии заказа, обновления от других частей системы и многочисленные считывания, например, на телевизоре, который висит в пиццерии и показывает готовые заказы клиентам. В период борьбы с нагрузками, когда всё и вся кэшировалось и переводилось на асинхронную реплику базы, эти операции с трекером продолжили ходить в мастер-базу.
Тут не должно быть никакого отставания, данные должны быть актуальными, рассинхрон недопустим. Также отсутствие собственных таблиц и индексов на них не позволяло написать более специфичные запросы, заточенные под своё использование. Для примера, трекеру может быть эффективно иметь индекс на пиццерию на таблице заказов. Мы всегда выгребаем из базы трекера заказы по пиццерии. При этом для приёма заказа не так важно, в какую пиццерию он падает, важнее, какой клиент сделал этот заказ. А значит там нужен индекс по клиенту. Ещё для трекера в таблице заказа не обязательно хранить id напечатанного чека или связанные с заказом бонусные акции.
Эта информация наш сервис трекера не интересует. В общей монолитной базе таблицы могли быть только компромиссным вариантом между всеми пользователями. Это было одной из изначальных проблем. Изначально архитектура была такая: Даже после выделения в отдельные процессы большая часть кодовой базы оставалась общей для разных сервисов. Всё, что ниже контроллеров, было единым и жило в одном репозитории. Использовались общие методы сервисов, репозиториев, общая база, в которой лежали общие таблицы. Разгружаем Трекер Главная проблема с трекером в том, что данные должны синхронизироваться между различными базами.
Это же и главное его отличие от разделения Auth-сервиса, заказ и его статус могут изменяться и должны отображаться в различных сервисах. Мы принимаем заказ на Кассе Ресторана это сервис , он сохраняется в базе в статусе «Принят». После этого он должен попасть на трекер, где ещё несколько раз изменит свой статус: от «Кухня» до «Упакован». При этом с заказом могут происходить какие-то внешние воздействия от Кассы или интерфейса Менеджера смены. Приведу в таблице статусы заказа с их описанием: Схема изменения статусов заказа выглядит так: Статусы меняются между разными системами. И здесь трекер не является конечной системой, в которой замыкаются данные. Мы видели несколько возможных подходов для разделения в таком случае: Концентрируем все действия заказа в одном сервисе.
В нашем случае этот вариант требует слишком большого сервиса по работе с заказом. Если бы мы остановились на нём, то получился бы второй монолит. Проблемы бы мы не решили. Одна система делает вызов в другую. Второй вариант уже интереснее. Но при нём возможны цепочки вызовов каскадные сбои , связность компонентов выше, управлять этим сложнее. Организуем события, и каждый сервис обменивается с другим через эти события.
Откуда нагрузки? Каждый залогиненный пользователь бэкофиса на каждый запрос ходит в базу, в таблицу пользователей, через sql-запрос вытаскивает оттуда пользователя и проверяет, есть ли у него нужные доступы и права на эту страницу. Каждое из устройств делает то же самое только с таблицей устройств, проверяя свою роль и свои доступы. Большое количество запросов в мастер-базу приводит к её загрузке и трате ресурсов общей базы на эти операции. Разгружаем Auth У Auth изолированный домен, то есть данные о пользователях, логинах или устройствах поступают в сервис пока будущий и там остаются. Если они кому-то понадобятся, то он пойдёт в этот сервис за данными. Схема работы изначально была такой: Хочется немного пояснить, как это работало: Запрос извне приходит на бэкэнд там Asp. Net MVC , приносит с собой куку сессии, которая используется для получения сессионных данных из Redis 1.
В ней либо есть информация о доступах, и тогда доступ в контроллер открыт 3,4 , либо нет. Если доступа нет, нужно пройти процедуру авторизации. Здесь для упрощения она показана как часть пути в том же атрибуте, хотя это переход на страницу логина. В случае позитивного сценария мы получим правильно заполненную сессию и перейдём в Backoffice Controller. Если данные есть, то нужно проверить их на актуальность в базе пользователя. Не изменилась ли его роль, не надо ли его не пускать теперь на страницу. В этом случае после получения сессии 1 надо напрямую сходить в базу и проверить доступы пользователя с помощью слоя логики аутентификации 2. Далее либо на логин-страницу, либо переход в контроллер.
Такая вот простая система, но при этом не совсем стандартная. Если все процедуры пройдены, то пропускаем дальше в логике в контроллерах и методах. Данные пользователей отделены от всех других данных, они хранятся в отдельной таблице membership, функции из слоя логики AuthService вполне могут стать api-методами. Границы домена определены вполне чётко: пользователи, их роли, данные о доступах, выдача и отзыв доступов. Всё выглядит так, что можно вынести в отдельный сервис. Так и сделали: У такого подхода есть ряд проблем. Например, вызов метода внутри процесса — не то же самое, что вызов по http внешнего сервиса. Латенси, надёжность, поддерживаемость, прозрачность операции совершенно другие.
Подробнее именно о таких проблемах рассказывал Андрей Моревский в своем докладе «50 оттенков микросервисов». Сервис аутентификации и с ним сервис устройств используются для бэкофиса, то есть для сервисов и интерфейсов, используемых на производстве. Аутентификация для клиентских сервисов вроде сайта или мобильного приложения происходит отдельно без использования Auth. Отделение заняло около года, а сейчас мы опять занимаемся этой темой, переводя систему уже на новые сервисы аутентификации со стандартными протоколами. Почему отделение длилось так долго? По пути было множество проблем, которые замедляли: Нам хотелось перевести данные о пользователях, устройствах и аутентификации из баз по стране в одну. Для этого пришлось переводить все таблицы и использование с идентификатора int на глобальный идентификатор UUId недавно перерабатывали этот код Роман Букин «Uuid — большая история маленькой структуры» и open-source проект Primitives. Хранение данных по пользователям так как это персональная информация имеет свои ограничения и для некоторых стран надо хранить их отдельно.
Но глобальный идентификатор пользователя должен быть. Много таблиц в базе имеет аудит информацию о том пользователе, который совершил операцию. Это потребовало дополнительного механизма, чтобы была консистентность. После создания api-сервисов был долгий и постепенный период перевода на другую систему. Переключения должны были происходить бесшовно для пользователей и требовали ручной работы.
Хранение данных по пользователям так как это персональная информация имеет свои ограничения и для некоторых стран надо хранить их отдельно. Но глобальный идентификатор пользователя должен быть. Много таблиц в базе имеет аудит информацию о том пользователе, который совершил операцию. Это потребовало дополнительного механизма, чтобы была консистентность. После создания api-сервисов был долгий и постепенный период перевода на другую систему. Переключения должны были происходить бесшовно для пользователей и требовали ручной работы. Схема регистрации устройства в пиццерии: Общая архитектура после выделения Auth и Devices-сервиса: Чем занимается Трекер Теперь про второй из нагруженных сервисов. Трекер выполняет двойственную роль: С одной стороны, его задача — показывать сотрудникам на кухне, какие заказы сейчас в работе, какие продукты сейчас нужно готовить. С другой стороны — оцифровывать все процессы на кухне. Когда в заказе появляется новый продукт например, пицца , он попадает на станцию трекера «Раскатка». На этой станции стоит пиццамейкер, который берёт плюшку нужного размера и раскатывает её, после чего отмечает на планшете трекера, что выполнил свою задачу и передаёт раскатанную основу теста на следующую станцию — «Начинение». Там следующий пиццамейкер начинает пиццу, затем отмечает на планшете, что выполнил свою задачу и ставит пиццу в печь это тоже отдельная станция, которую нужно отметить на планшете. Такая система была с самого начала в Додо и самого начала существования Dodo IS. Она позволяет полностью отслеживать и оцифровывать все операции. Кроме того трекер подсказывает, как готовить тот или иной продукт, проводит каждый вид продукта по своим схемам изготовления, хранит оптимальное время приготовления продукта и трекает все операции над продуктом. Так выглядит экран планшета на станции трекера «Раскатка» Откуда нагрузки? В каждой из пиццерий примерно по пять планшетов с трекером. В 2016 году у нас было больше 100 пиццерий а сейчас более 600. Каждый из планшетов делает раз в 10 секунд запрос на бэкэнд и выгребает данные из таблицы заказа связка с клиентом и адресом , состава заказа связка с продуктом и указание количества , таблицы учёта мотивации в ней трекается время нажатия. Когда пиццамейкер нажимает на продукт на трекере, происходит обновление записей во всех этих таблицах. Таблица заказа общая, в неё же одновременно идут вставки при принятии заказа, обновления от других частей системы и многочисленные считывания, например, на телевизоре, который висит в пиццерии и показывает готовые заказы клиентам. В период борьбы с нагрузками, когда всё и вся кэшировалось и переводилось на асинхронную реплику базы, эти операции с трекером продолжили ходить в мастер-базу. Тут не должно быть никакого отставания, данные должны быть актуальными, рассинхрон недопустим. Также отсутствие собственных таблиц и индексов на них не позволяло написать более специфичные запросы, заточенные под своё использование. Для примера, трекеру может быть эффективно иметь индекс на пиццерию на таблице заказов. Мы всегда выгребаем из базы трекера заказы по пиццерии. При этом для приёма заказа не так важно, в какую пиццерию он падает, важнее, какой клиент сделал этот заказ. А значит там нужен индекс по клиенту. Ещё для трекера в таблице заказа не обязательно хранить id напечатанного чека или связанные с заказом бонусные акции. Эта информация наш сервис трекера не интересует. В общей монолитной базе таблицы могли быть только компромиссным вариантом между всеми пользователями. Это было одной из изначальных проблем. Изначально архитектура была такая: Даже после выделения в отдельные процессы большая часть кодовой базы оставалась общей для разных сервисов. Всё, что ниже контроллеров, было единым и жило в одном репозитории. Использовались общие методы сервисов, репозиториев, общая база, в которой лежали общие таблицы. Разгружаем Трекер Главная проблема с трекером в том, что данные должны синхронизироваться между различными базами. Это же и главное его отличие от разделения Auth-сервиса, заказ и его статус могут изменяться и должны отображаться в различных сервисах.
Додо IS охватывает только производственный процесс или работу компании в целом, включая поставки и персонал? Несмотря на то, что мы построили уже самую большую сеть в России, пока мы находится на начальной стадии развития информационной системы. По крайней мере, если оценивать ее с позиции нашего видения будущего продукта. Мы еще не успели создать и запустить все модули, которые нужны франчайзи. Сейчас наш основной фокус — операции производства, менеджмента и работы с клиентами. HR-блок также занимает важную часть в нашей системе, потому что текучка кадров в бизнесе общественного питания очень большая. То есть ваша задача автоматизировать с помощью Додо IS всю работу ресторана? Мы хотим передавать франчайзи не только информационную систему для автоматизации базовых бизнес-процессов, но также помогать с принятием решений и обменом опытом. Сейчас у нас уже есть база знаний, в которой доступны статьи, рассказывающие о возможных проблемах, способах их решения и нестандартных сценариях работы. Какая техническая база стоит за системой Додо IS? Мы делаем ставку на «облака» и полностью полагаемся на виртуальные центры обработки данных для разработки, обеспечения работы Додо IS, хранения информации и сбора больших данных. А если бы всего этого сейчас не было? Представьте, что колл-центр вам нужно было организовать на базе классической АТС, вместо вычислительных мощностей в облаке нужно было бы строить собственный дата-центр.
Додо ис персонал
Сейчас у нас уже есть база знаний, в которой доступны статьи, рассказывающие о возможных проблемах, способах их решения и нестандартных сценариях работы. Какая техническая база стоит за системой Додо IS? Что дает франшиза: технологию, проект пиццерии, рецепты, подключение к информационной системе «Додо ИС», сайт, приложение для мобильных устройств, маркетинг, услуги единого колцентра, обучение, базу знаний. Разработан интерфейс Базы Знаний. Всем франчайзи «Додо Пиццы» предоставляется доступ к базе знаний.
Додо ис база знаний - 84 фото
История архитектуры Dodo IS: путь бэкофиса - | Додо is личный кабинет. Палочки с креветками Додо. Додо ис смены. |
Как «Додо Пицца» использует зерокодинг для базы знаний | Додо is личный кабинет. Палочки с креветками Додо. Додо ис смены. |
Основатель "Додо пиццы" выпустил бесплатное мобильное приложение для рестораторов. Что оно умеет? | Стандарты Додо пицца. База знаний додо. Личный кабинет сотрудника. |
Как открыть пиццерию по франшизе
История о том, как мы автоматизировали контакт-центр «Додо Пиццы» | Сеть пиццерий «Додо пицца» застраховала от киберрисков свои информационные системы и ресурсы, в том числе, программное обеспечение, корпоративную электронную почту, Web-сайт, «облачный» сервис и базы данных. |
«Простые решения» настроили интеграцию с 1С для франчайзи Додо - Простые решения | Мы выкладываем туда свежие новости компании, обсуждаем актуальные тренды, храним все стандарты, обучающие статьи и курсы. |
Платформа Додо Академия
We are migrating from Angular in some places. Detailed production monitoring with Prometheus, visualization with Grafana, and log collection by Azure Data Explorer. Technology radars.
В Додо пицца договор труда.
Трекер Додо ИС. Dodo is вход. Менеджер смены вход Додо.
Додо ИС бэк. Dodo is io Manager. Статистика заказов.
Карта заказов статистика. Статистика по заказам на сайте. Tiu статистика заказов.
Dodo is кабинет сотрудника Dodo is. Додо пицца кассовый Интерфейс. Интерфейс кассира dodopizza касса.
Додо ИС менеджер офиса. Пиццамейкер Додо. Додо персонал личный.
Додо история заказов. Как добавить карту в приложении Додо. Как добавить карту в Додо.
Как поменять карту в Додо приложении. Dodo is изменить номер. Планшеты у оператора банка.
Додо кабинет. Dodo ИС персонал. Dodo зарядная станция Apple.
Додо ИС менеджер смены. Карта возможностей Додо пицца. Как отменить заказ в Додо.
Додо ИС вход в личный. Додо ИС ответы на тесты. Как открыть анкету Додо ИС.
Додо is личный кабинет. График Додо. Додо пицца планшеты.
Курьер Додо. Личный кабинет Додо ИС выручка. Додо пицца униформа.
Додо пицца форма.
Пояснение по названиям: Cashier — Касса ресторана. ShiftManager — интерфейсы для роли «Менеджер смены»: оперативная статистика по продажам пиццерии, возможность поставить в стоп-лист продукты, изменить заказ. OfficeManager — интерфейсы для роли «Управляющий пиццерии» и «Франчайзи». Здесь собраны функции по настройке пиццерии, её бонусных акций, прием и работа с сотрудниками, отчеты.
PublicScreens — интерфейсы для телевизоров и планшетов, висящих в пиццериях. На телевизорах отображается меню, рекламная информация, статус заказа при выдаче. Они использовали общий слой сервисов, общий блок доменных классов Dodo. Core, а также общую базу. Иногда еще могли вести по переходам друг к другу.
В том числе к общим сервисам ходили и отдельные сайты, вроде dodopizza. При появлении новых модулей старались по максимуму переиспользовать уже созданный код сервисов, хранимых процедур и таблиц в базе. Для лучшего понимания масштаба модулей, сделанных в системе, вот схема из 2012 года с планами развития: К 2015 году всё на схеме и даже больше было в продакшн. Прием заказа перерос в отдельный блок Контакт Центра, где заказ принимается оператором. Появились общедоступные экраны с меню и информацией, висящие в пиццериях.
На кухне есть модуль, который автоматически воспроизводит голосовое сообщение «Новая пицца» при поступлении нового заказа, а также печатает накладную для курьера. Это сильно упрощает процессы на кухне, позволяет не отвлекаться на большое количество простых операций сотрудникам. Блок доставки стал отдельной Кассой Доставки, где заказ выдавался курьеру, который предварительно встал на смену. Учитывалось его рабочее время для начисления зарплаты. Параллельно с 2012 по 2015 появилось более 10 разработчиков, открылось 35 пиццерий, развернули систему на Румынию и подготовили к открытию точек в США.
Разработчики уже не занимались всеми задачами, а были разделены на команды. Проблемы В том числе из-за архитектуры но не только. Хаос в базе Одна база — это удобно. В ней можно добиться консистентности, причем за счет средств, встроенных в реляционные базы. Работать с ней привычно и удобно, особенно, если там мало таблиц и немного данных.
Но за 4 года разработки в базе оказалось около 600 таблиц, 1500 хранимых процедур, во многих из которых была еще и логика. Увы, хранимые процедуры не приносят особого преимущества при работе с MySQL. Они не кэшируются базой, а хранение в них логики усложняет разработку и отладку. Переиспользование кода тоже затруднено. На многих таблицах не было подходящих индексов, где-то, наоборот, было очень много индексов, что затрудняло вставку.
Надо было модифицировать около 20 таблиц — транзакция на создание заказа могла выполняться около 3-5 секунд. Данные в таблицах не всегда были в наиболее подходящей форме. Где-то нужно было сделать денормализацию. Часть регулярно получаемых данных была в колонке в виде XML-структуры, это увеличивало время выполнения, удлиняло запросоы и усложняло разработку. К одним и тем же таблицам производились очень разнородные запросы.
Особенно страдали популярные таблицы, вроде упоминавшейся таблицы orders или таблицы pizzeria. Они использовались для вывода оперативных интерфейсов на кухне, аналитики. Еще к ним обращался сайт dodopizza. Данные не были агрегированными и много расчетов происходило на лету средствами базы. Это создавало лишние вычисления и дополнительную нагрузку.
Часто код ходил в базу тогда, когда мог этого не делать. Где-то не хватало bulk-операций, где-то надо было бы разнести один запрос на несколько через код, чтобы ускорить и повысить надежность. Связность и запутанность в коде Модули, которые должны были отвечать за свой участок бизнеса, не делали этого честно. Некоторые из них имели дублирование по функциям для ролей. Например, локальному маркетологу, который отвечает за маркетинговую активность сети в своем городе, приходилось пользоваться как интерфейсом «Админа» для заведения акций , так и интерфейсом «Менеджера Офиса» для просмотра влияния акций на бизнес.
Конечно, внутри оба модуля использовали один сервис, который работал с с бонусными акциями. Сервисы классы в рамках одного монолитного большого проекта могли вызывать друг друга для обогащения своих данных. С самими классами-моделей, которые хранят данные, работа в коде велась различно. Где-то были конструкторы, через которые можно было указать обязательные поля. Где-то это делалось через публичные свойства.
Конечно, получение и преобразование данных из базы было разнообразным. Логика была либо в контроллерах, либо в классах сервисов.
Если заказ меньше суммы сертификата, то остаток «сгорит», если больше — нужно будет сделать доплату. Как оформить заказ Укажите в форме данные вашей компании, сумму и количество сертификатов. Например: на 10 000 рублей вы можете оформить десять сертификатов по 1 000 рублей и раздать каждому сотруднику или оформить один сертификат для большого мероприятия.
В течение часа персональный менеджер обработает заявку и выставит счет.