Краткое содержание

В статье я расскажу, как за 4 недели c помощью AI разработала систему учета для школьного кафе. Внедрение системы позволило добиться следующих результатов:

  • Сокращение среднего времени обслуживания на ребенка на ~30%

  • Сокращение максимального времени ожидания в очереди в среднем с 15 до 10 минут

  • Доступ к информации о питании детей для 60+ семей в реальном времени

  • Предоставление владельцам кафе инструментов для анализа продаж

Предыстория и определение проблемы

Все началось в родительском чате. Мы обсуждали рядовой, но важный вопрос: как узнать, что ребёнок в школе полноценно обедает, а не перебивается весь день булочками?

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

  • Родители не могли отследить питание детей

  • Администраторы тратили время на ручной учет

  • Владелица кафе не имела прозрачной аналитики

  • Классные руководители тратили время на отчеты о том, что едят дети

Анализ существующих решений

На рынке представлены различные системы автоматизации для кафе, но все они имеют существенные ограничения:

  • Высокая стоимость внедрения и поддержки (от 100,000 рублей)

  • Избыточный функционал

  • Отсутствие гибкости в настройке под специфику конкретной школы

На тот момент я как раз запустила и вывела на рынок систему учёта для офлайн-магазинов в Flowwow и сразу увидела параллели: администратор, меню, покупатели, заказы... Плюс простой интерфейс для родителей.

Опыт создания системы учета давал мне представление, как это может быть устроено, и я загорелась идеей сделать удобный продукт, который решит проблему непрозрачности питания детей. Но идея создания собственного приложения казалась чем-то за гранью возможного.

Решающим моментом стало знакомство с Marblism – платформой, создающей full-stack приложения из текстового описания. Эти два фактора – реальная проблема и инструмент для её решения – дали старт проекту.

Об авторе

Мария Божевольнова — Продакт-менеджер с 10-летним опытом в IT: 7 лет в управлении международными проектами и 3 года в продуктовом менеджменте B2B SaaS-продуктов и мобильных приложений. За последний год успешно запустила B2B ERP систему для управления розничными магазинами в Flowwow. Из 100 привлеченных клиентов 30 стали активными пользователями системы (конверсия ~30%), со средним ежедневным объемом продаж через систему более 1.2 млн рублей.

Исследование и подготовка решения

Прежде чем начать разработку, я неделю изучала работу школьной столовой:

Что измеряла и считала:

  • Наблюдала за работой кафе в разные дни (6 часов)

  • Засекала время обслуживания учеников (50 замеров)

  • Следила за длиной очередей в течение дня

С кем поговорила:

  • Родители учеников разных классов — 4 интервью

  • Сотрудники кафе — 2 интервью

  • Владелица бизнеса — 1 встреча

  • Классные руководители — 2 беседы

Ключевые находки исследования

Проблема

Данные

Влияние

Длительное время обслуживания

30-40 сек на ученика

Очереди до 15 минут в пик

Отсутствие контроля питания

70% родителей не знают, что едят дети

Риск несбалансированного питания

Сложный учет

~30 мин в день на подсчеты

Нагрузка на администратора

Непрозрачность для бизнеса

Нет точных данных о популярных блюдах

Нет понимания рентабельности блюд

Приоритизация по RICE

Функционал

Reach

Impact

Confidence

Effort

Score

Обоснование

Быстрое оформление заказа

150

3

90%

2

202.5

Влияет на всех учеников и персонал ежедневно

Родительский контроль

150

3

80%

2

180

Решает ключевую боль родителей

Аналитика продаж

3

3

80%

1

7.2

Важно для оптимизации бизнеса

Предзаказ еды

20

1

40%

3

2.6

Затрагивает небольшое количество родителей

MVP состав

Must Have (Решает критические проблемы):

  • Быстрый интерфейс оформления заказа (цель: ~20 секунд)

  • Автоматический расчет сумм и баланса

  • Базовый родительский контроль (история заказов)

Should Have (Важные улучшения):

  • Уведомления о низком балансе

  • Возможность добавить скидку

  • Несколько способов оплаты

Could Have (Перспективные функции):

  • Предзаказ еды родителями

  • Пополнение баланса с карты онлайн

  • Интеграция с бухгалтерией

Customer Journey Map

До внедрения системы:

  1. Родитель вносит депозит на имя ребенка

  2. Ребенок стоит в очереди, чтобы взять еду на раздаче

  3. Администратор вручную считает сумму заказанного ребенком, вычитает из депозита и вносит в табличку

  4. Родитель не знает, что купил ребенок

После внедрения:

  1. Родитель вносит депозит на имя ребенка

  2. Ребенок стоит в очереди, чтобы взять еду на раздаче

  3. Администратор оформляет заказ добавляя блюда в корзину в системе учета

  4. Система считает общую сумму и списывает средства с баланса

  5. Родитель видит покупки в реальном времени

Процесс разработки

Для разработки я использовала Marblism - это платформа, которая позволяет генерировать full-stack приложения из промпта.

График разработки

Исследование (1 неделя)
24.09 - 01.10 | Интервью и замеры

Разработка MVP (4 недели)
01.10 - 15.10 | Базовый функционал (2 недели)
15.10 - 28.10 | Доработки: скидки, оплата наличкой/картой для тех, у кого нет депозита (2 недели)

Внедрение в работу столовой (1 неделя)
28.10 | Старт использования администратором

Общий запуск
01.11 | ★ Запуск для родителей

Стек Marblism

Технология

Назначение

Что дает

Typescript

Язык программирования

Типизация и надежность

Remix

React Framework

Серверный рендеринг и SEO

Vite

Build Tool

Быстрая разработка

Ant Design

UI System

Готовые компоненты

Prisma

Database ORM

Удобная работа с БД

PostgreSQL

База данных

Надежность и транзакции

Zenstack

Access Control

Управление доступом и ролями

Работа с Marblism

Работа с Marblism оказалась увлекательным опытом – это как разговор с коллегой, понимающим тебя с полуслова. Вот как проходила разработка.

Интерфейс Marblism. Пример, как я запросила добавить фильтр Вчера. AI добавил фильтр, я сразу вижу изменения в интерфейсе приложения.
Интерфейс Marblism. Пример, как я запросила добавить фильтр Вчера.
AI добавил фильтр, я сразу вижу изменения в интерфейсе приложения.

Промпт для создания приложения

A web app that allows users to browse meal catalogue, add meals and customers to checkout, manage meals, customers, see orders.

Pages:

- Home: catalogue with meals, checkout on the right, customer search by name, 3 payment type buttons: Balance, Cash, Card. If payment type is Balance, its amount is subtracted from customer balance. Each meal in catalogue has a photo, name, price and added to checkout when clicked

- Meals: meals with search by name, meals can be edited, removed, added. Each meal has photo, name, tags, price. User can upload photo for a meal and it will be displayed in catalogue and on the meal page. User can add new tags to the meal or select from existing tags

- Customers: list of customers, can be edited, removed, added. Each customer has name, parent’s contact, class, current balance. User can top-up customer balance

- Orders: orders with search by customer name or date. Each order has date, customer, total amount, purchased items, payment method

- Users: admins

Этот промпт дал мне базовую структуру с основными страницами и базой данных

Итерации и улучшения

Далее каждое улучшение проходило через цикл:

  1. Наблюдение за работой администратора

  2. Быстрое прототипирование решения

  3. Тестирование прототипа

  4. Выпуск финальной версии

  5. Сбор обратной связи и метрик

Пример итерации с половинными порциями:

  • Проблема: 30% детей просили половину порции

  • Решение: Добавили опцию Половина блюда

  • Результат: Время обслуживания таких заказов в среднем сократилось на ~5 секунд

Автоматическое связывание аккаунтов: кейс, который меня удивил

Одной из интересных задач оказалось связывание аккаунтов учеников и их родителей. У нас была база учеников с номерами телефонов родителей, но как автоматически связать эти данные с новыми регистрациями родителей? Ручное сопоставление отняло бы массу времени и потребовало бы бесконечных уточнений.

Я подумала: что, если использовать номер телефона как ключ для автоматического связывания. Я описала эту идею AI простым языком: "Когда родитель сохраняет номер телефона в своем профиле, проверь, есть ли ученик с таким же номером, и если да – свяжи их аккаунты".

Результат меня впечатлил: AI не только понял задачу, но и создал весь необходимый код – от проверки номера до обновления связей в базе данных. А когда я начала тестировать эту функцию, она сработала с первого раза!

Метрики и результаты

Ключевые метрики успеха

Метрика

До

После

Улучшение

Время обслуживания

30 сек

20 сек

-30%

Длина очереди в пик

15 мин

10 мин

-30%

Охват родителей

0%

50%

+50%

Удовлетворенность администратора

N/A

4.8/5

N/A

Качественные результаты

Отзывы пользователей:

«Спасибо вам огромное, я зашла как мама и в шоке от того как это круто, я теперь могу и деньги планировать, и понимать насколько ребенок злой (голодный). Просто мечта! Спасибо!» — Мама ученика 1 класса

«Зарегалась в прогу столовки! СПАСИБО БОЛЬШОЕ, что сделали нашу жизнь лучше!» — Мама ученика 0 класса

«Я очень рада, что теперь вижу, что ест ребенок и благодарна вам каждый день, спасибо! — Мама ученика 2 класса

«Работать стало гораздо быстрее и удобнее!» — Света, администратор

Текущий функционал

Особое внимание я уделила деталям интерфейса, которые делают ежедневную работу с системой удобной и приятной. Я считаю, что именно продуманные мелочи превращают рабочий инструмент в продукт, которым приятно пользоваться.

Каталог

Страница каталога с выбранным учеником. Как только ученик выбран, подгружается информация о его текущем балансе и дневном лимите, если лимит установлен.
Страница каталога с выбранным учеником.
Как только ученик выбран, подгружается информация о его текущем балансе и дневном лимите,
если лимит установлен.

На странице каталога администратор может добавить блюда в корзину — либо по клику на блюдо, либо через поиск. По клику на блюдо оно добавляется в корзину, количество в корзине увеличивается, если кликнуть еще раз. Есть возможность добавить скидку, либо скидка автоматически применится, если выбрать учителя. Есть оплата с баланса либо наличными/картой.

Нотификация, если дневной лимит превышен учеником
Нотификация, если дневной лимит превышен учеником

Блюда

На странице блюд администратор может быстро скрыть блюда, которые сегодня не продаются.
На странице блюд администратор может быстро скрыть блюда, которые сегодня не продаются.

Поиск работает и по названиями и по тэгам. Удаление доступно только у блюд, для которых еще не было продаж.

Клиенты

Список учеников и учителей
Список учеников и учителей

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

Заказы

Список заказов с возможностью искать по имени либо отфильтровать по дате
Список заказов с возможностью искать по имени либо отфильтровать по дате

На странице заказов есть общая сумма продаж для сверки с кассой. По умолчанию страница открывается на фильтре Сегодня. Есть возможность отменить заказ.

Пополнения

Список пополнений балансов с возможностью отредактировать данные
Список пополнений балансов с возможностью отредактировать данные

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

Аналитика

Страница аналитики
Страница аналитики

Страница владельца для быстрого понимания популярности блюд и общей суммы продаж. По умолчанию открывается на сегодня.

Пользователи и настройки

Вспомогательные интерфейсы для просмотра зарегистрированных пользователей в системе и настройка тэгов, логотипа, расписания (для отслеживания продаж по модулям в будущем, так называются четверти в нашей школе)

Пользователи
Пользователи
Настройки, включая редактирование тэгов и их порядка в каталоге
Настройки, включая редактирование тэгов и их порядка в каталоге

Интерфейс родителей

Родитель может зарегистрироваться самостоятельно и указать номер телефона в профиле, либо попросить администратора добавить email родителя в данные ученика.

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

Список покупок ребенка за сегодня
Список покупок ребенка за сегодня

Что я поняла в процессе

  • AI-инструменты отлично подходят для создания прототипа и тестирования гипотез.

  • Даже если вы не программист, можно обсудить архитектуру приложения с AI — он поможет спроектировать функциональность.

    Например, мне нужно было добавить возможность добавить свободную сумму к заказу, даже если не были выбраны блюда. AI предложил добавить поле в модель заказа и учитывать наличие данных в этом поле при отображении информации о заказе.

  • В остальном процесс такой же, как в обычной разработке: перед запуском нужно тщательно протестировать все сценарии использования.

Заключение

Для меня главная ценность этого проекта в том, что мы решили реальную проблему, создав продукт, которым ежедневно пользуются люди. Работа с Marblism доказала, что современные AI-инструменты могут ускорить процесс разработки, позволяя продакт-менеджеру фокусироваться на самом важном — создании ценности для пользователей.

Комментарии (18)


  1. slavius
    14.11.2024 09:31

    Для разработки я использовала Marblism - это платформа, которая позволяет генерировать full-stack приложения из промпта

    Цитату почему-то позволило вставить только в секцию код.

    И вот эту всю систему сгенерировано ИИ?% На какой платформе, языке, базах?

    Т.е. при помощи сервиса с ИИ создали программу и интерфейс. А как наполняли или исользовали имеющиеяся данные по людям и наполнение блюдами? По скринам блюд и картинок много, людей тоже не мало...


    1. Dallumnj
      14.11.2024 09:31

      Что-то мне подсказывает, что в тексте не так много правды)


      1. QuantumBoy
        14.11.2024 09:31

        Своими глазами видел систему и процесс, ибо знаком с автором) Меня, как СТО, это все несколько пугает)

        Новый уровень абстракции работает. И работает достаточно хорошо, чтобы получить MVP.


        1. truemiamibe Автор
          14.11.2024 09:31

          Представляешь, мы в пятницу запустили вторую локацию! я добавила в модель заказов поле Филиал и в модель админов Филиал. В интерфейсе тоже добавила поле Филиал при проведении заказа, в списке заказов фильтр Филиал. Значение предустанавливается, если у админа прописан филиал.

          В обед два администратора вносили продажи из двух локаций одновременно, и все заработало!


          1. QuantumBoy
            14.11.2024 09:31

            Отлично! Ребята правильно подсвечивают, что стоит поинтересоваться кодом - но это мы будем делать уже при масштабировании, за деньги заказчика :)


          1. QuantumBoy
            14.11.2024 09:31

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


    1. truemiamibe Автор
      14.11.2024 09:31

      да, все сгенерировало ии, в тексте перечислен полный стек, основа - ремикс, база данных постгрес, дзенстек+призма для управления моделями

      первоначальные данные по блюдам и людям внесли вручную, сейчас администратор каждый день вносит продажи


  1. Dynasaur
    14.11.2024 09:31

    Само ТЗ на систему управления общепитом только написать - несколько месяцев, а скорее лет. Извините, но с тем ТЗ, что у вас написано для MVP не заработает вообще ничего. Как минимум у вас многопользовательское приложение с несколькими ролями (администратор, кассир, "родитель", ...) для них надо описать ролевую модель и систему авторизации. Далее, интеграция с кассой, платёжными системами. "Возможность добавить скидку" - извините, но скидок море разных, только описать все возможные варианты ценообразования - это нехилая глава. Без этого какая столовая станет работать? Ну как-то не верится, чесногря.


    1. QuantumBoy
      14.11.2024 09:31

      Только корпорейт может позволить себе писать ТЗ несколько месяцев) В условиях стартапа это почти всегда неуместно :)


      1. Dynasaur
        14.11.2024 09:31

        Без ТЗ результат ХЗ. Я имел отношение к одному стартапу в общепите. Он занял двузначную долю нашего рынка и вышел на много стран. Поверьте, там на описание требований было потрачено десятки человеко-лет. Желание быстренько на коленке собрать нечто , чтобы "сэкономить на избыточной функциональности" нелепо и смешно. Если надо предметно пояснить почему, могу в частной беседе.


        1. QuantumBoy
          14.11.2024 09:31

          Да нет, я прекрасно понимаю, о чем вы) Просто говорю, что это не единственный возможный путь)


  1. serafims
    14.11.2024 09:31

    В Петербурге уже давно система с карточками с депозитом, и можно увидеть, что ребенок купил детально и когда. Государственная система. Не супер красивая, но работает. Но вот увидеть, что он реально съел из оплаченного целиком обеда комплексного - нельзя. А это важнее на некотором этапе. Еще ест блюда, которые вроде нельзя учащимся. Они блокируются системой для оплаты с их карты (салаты на майонезе типа).
    Короче этот кейс скорее про обычный софт для кафе, и про школу тут лишь привязка чатиков и отчетов по человеку.


  1. Imangali-Sauyrbay
    14.11.2024 09:31

    Ну и? Где Сурсы автор?

    Можно было бы оценить качество кода. А так одна лишь вода.


  1. MainEditor0
    14.11.2024 09:31

    В удивительное время живём... Очередной крупный подъём уровня абстракции в ЭВМ происходит прямо на наших глазах и уже даёт плоды... В последний раз такое было разве что при изобретении компилятора


    1. MainEditor0
      14.11.2024 09:31

      Они ненавидели Иисуса за то, что он говорил правду...


  1. yukikojo
    14.11.2024 09:31

    «Зарегалась в прогу столовки! СПАСИБО БОЛЬШОЕ, что сделали нашу жизнь лучше!» — Мама ученика 0 класса

    Крепкое ощущение что вся статья рождена нейросетью )


  1. lebedovskiy
    14.11.2024 09:31

    Анализ существующих решений

    Высокая стоимость внедрения и поддержки (от 100,000 рублей)

    Избыточный функционал

    Отсутствие гибкости в настройке под специфику конкретной школы

    Не, ну если не знать и не искать, то да. С учётом того, что это школа- 1С:Школьное питание стоит 18 000. На чтение инструкций и загрузка из экселя тратится 4 дня максимум.

    Как пример "смотрите что могут ИИ" - ну, да, интересно. Но как выбор решения - в перспективе считаю провальным. И да, давно у нас ГОСТЫ по учёту продуктов питания для детей стали специфичными для конкретной школы?


    1. QuantumBoy
      14.11.2024 09:31

      Статья не про РФ :) Поэтому есть разные нюансы :)