Дровяная
«Дровяная» это мой демо-проект: сайт пиццерии, где заказ можно написать словами, как другу. Фраза «две пепперони большие без лука и колу к семи на Ленина 5» превращается в чек, уходит на кухню и возвращается статусом клиенту: на страницу заказа и в Telegram. Внутри разбор текста, бот, панель кухни и админка с CRM.
drova.lstmind.ruNext.js · Разбор заказа словами · Телеграм-бот · Админка + CRM
Задача
Показать, что заказ в общепите не обязан быть двадцатью тапами по карточкам: человек уже знает, чего хочет, и быстрее всего написать это одной фразой.
Собрать не витрину, а рабочий контур: заказ с сайта и из Telegram, кухня, статусы клиенту, управление меню и база клиентов. Всё то, чем заведение пользуется каждый день.
Что сделано
01Заказ словами
04Меню и размеры
05Колесо вкусов
- Разбор понимает опечатки и текст, набранный в латинской раскладке
- Черновик заказа собирается сразу под строкой: состав, цены, доставка, итог и вопросы, если чего-то не хватает
- Корзина и оформление: доставка или самовывоз, время, комментарий курьеру
- Страница заказа с живым статусом: «принят → готовим → готово → курьер выехал», без перезагрузки
- Кнопка «получать статусы в Telegram»: дальше клиент не держит вкладку открытой
- Повтор прошлого заказа одной кнопкой, с пересчётом по актуальным ценам
- Телеграм-бот: тот же разбор в чате, карточка заказа, подтверждение и уведомления о статусах
- Мини-приложение в Telegram открывает сайт с той же корзиной
- Панель кухни: колонки по статусам, новые заказы прилетают сами, звук на новый заказ, вход по паролю
- Админка: редактор меню (цены по размерам, состав, синонимы для разбора, наличие, порядок, архив)
- Админка: заказы с поиском и фильтрами, ручная смена статуса, настройки заведения (часы, зоны и цена доставки, минимальный заказ)
- CRM: карточки клиентов, сегменты «новые / постоянные / спящие», сумма и средний чек, заметки, выгрузка в CSV
- Сводка: выручка и средний чек за день и неделю, что заказывают, в какие часы приходят заказы
- Карта доставки на Яндексе с зонами и ценой по каждой
- Ограничения на разбор: лимиты по IP и на пользователя Telegram, отсев мусорных фраз до обращения к модели
Как устроено

Разбор устроен в два слоя. Сначала работают правила: они читают числа, размеры, время, адрес и сверяют слова с меню, включая опечатки и раскладку. Сверху подключается GigaChat через function calling. Если модель молчит, тормозит или выдумывает позицию, которой в тексте не было, заказ всё равно соберётся по правилам, а выдуманное отсеется.
На разбор навешаны лимиты: мусорные фразы до модели вообще не доходят, у каждого IP и каждого пользователя Telegram свой счётчик в час и в сутки. Демо открыто всему интернету, и оплачивать чужие развлечения я не собирался.
Кухня и страница заказа обновляются по SSE: сервер сам присылает изменение статуса, клиент ничего не опрашивает. Заказ, оформленный на сайте, появляется на кухне за долю секунды.
Меню лежит в базе, а не в коде: правки в админке сразу меняют витрину, корзину, разбор текста и ответы бота. Синонимы к позициям тоже правятся в админке: «ббк» или «острая с колбасой» начинают пониматься без релиза.
База на SQLite в режиме WAL: для заведения с сотней заказов в день этого хватает с большим запасом, а обслуживать нечего.
Деплой одной командой: сборка, выкладка по SSH в отдельный релиз, переключение симлинка, рестарт, health-check и автоматический откат, если новая версия не поднялась. 250 тестов на разбор текста гоняются до сборки.
Открыть сайтdrova.lstmind.ru открывается и работает прямо сейчас
Внутри
Экраны за паролем и то, что не видно с первого взгляда.




Услуги в этом проекте
- Сайт под ключСобираю с нуля: структура, дизайн, вёрстка, запускот 30 000 ₽
- Интернет-магазинWooCommerce под ключ: каталог, фильтры, оплата, перенос товаровот 60 000 ₽
- Телеграм-бот под задачуЗаявки, заказы и уведомления там, где клиент уже сидитот 25 000 ₽
- Админка, личный кабинет и CRMЗаказы, статусы, клиенты и права под ваш процессот 70 000 ₽
Сайты для этой ниши
Следующий разбор
Нега
Нужен такой же?
Расскажите задачу: назову срок и вилку цены. Если её лучше решить иначе, скажу об этом сразу. Отвечаю в течение часа, ежедневно с 10 до 22 по Москве.



