Назад в архив
IV. Клиентские проекты и логистические платформыдополнительнолидклиент анонимизирован

Food Delivery Telegram Bot — Restaurant chain (UZ)

Restaurant chain (UZ)Bot (пакет chopar_bot v2.0.0) — продакшн Telegram-бот доставки еды для Restaurant chain (UZ)/Restaurant chain (UZ): сцены Telegraf + Elysia API на Bun, MongoDB, Redis-сессии, очереди Bull, i18n (ru/uz/en), генерация штрих-кодов, метрики.

Статус
поддерживается
Период
2021-12-08 → 2025-07-10
AI-сессий
Стек
Языки
TypeScriptJavaScript
Фреймворки · Инфра
TelegrafElysia.jsBunMongoDBRedisBull/BullMQ
§01

Обзор

  • Что это: Telegram-бот для заказа и доставки еды для Restaurant chain (UZ) (и Restaurant chain (UZ) — общий код). Полный диалоговый флоу заказа на сценах Telegraf, REST API на Elysia для внешних триггеров (уведомления/локации/расписание), очереди задач, многоязычный UI.
  • Тип / статус / роль: bot · maintained (последний коммит 2025-07-10) · lead — пользователь основной автор: ~139 из 265 коммитов (Davron Yuldashev 59 + Davron 37 + Davr 34 + Davr@iMac 6 + Dave93 3); со-разработчики — братья Салим (shahaa 78 + Shahzod 10) и другие.
  • Период активности: 2021-12-08 → 2025-07-10 — ~3.5 года, долгоживущий продакшн-бот.
§02

Стек

  • Языки: TypeScript (новый код, src/) + JavaScript (легаси, controllers/) — гибридная кодовая база в процессе миграции на TS.
  • Фреймворки/библиотеки: Bun (рантайм); Telegraf 4 + сцены (telegraf-i18n, @telegraf/session, telegraf-session-redis/-local); Elysia.js (API + Swagger + CORS + Eden); MongoDB (драйвер 4); Redis (ioredis) для сессий; очереди Bull + BullMQ (+ bull-board); Sentry (трейсинг ошибок); prom-client / express-prometheus-middleware (метрики Prometheus); генерация штрих-кодов (bwip-js, canvas, bardcode); планировщики (node-cron, agenda, sfn-scheduler); luxon; winston; cheerio; string-similarity.
  • Инфра/деплой: PM2 (pm2.config.js), webhook-режим в проде, сборка через bun build --target bun. Три lock-файла (bun/yarn/npm).
  • Данные: MongoDB (lesailes_bot), Redis (сессии + очереди), внешний API api.restaurant-chain.uz.
  • Заметный тулинг: скрипты миграции/инспекции Redis-сессий (scripts/*.cjs), эндпоинты health/queue_info.
§03

Что реализовано

139 авторских коммитов за 3.5 года (по диффам/сообщениям):

  • Диалоговый флоу заказа: сцены start, startOrder, menu, myOrders, review, settings, callback (src/scenes/); рефакторинг myOrders на TS (06346a2, −1197 удаление легаси-хелперов; 3ac66ee управление флоу + сброс сессии по /start).
  • Бизнес-логика доставки: расчёт стоимости доставки (d653fcd, f3d5a1b), вес (02eef03), типы оплаты (85824d1), самовывоз (35829c8), фиксы ценообразования (4117fdd).
  • API: reply-to-message (a1cff3d), schedule_event/send_notify/send_location/queue_info/health (Elysia).
  • Зрелость инфраструктуры: переход на Redis-сессии (отдельный README_REDIS_SESSIONS.md + скрипты миграции), очереди Bull, метрики Prometheus, Sentry, i18n на 3 языка.
  • Рефакторинг 2025-07: миграция JS→TS, улучшенная обработка ошибок и импортов (697379a), серверный бинарник вынесен в .gitignore.
  • Масштаб: 265 коммитов; стабильная многолетняя эволюция (v2.0.0).
§04

Технические челленджи

По архитектуре (CLAUDE.md/package.json) и диффам (авторство пользователя — основной коммиттер):

  • Адаптивное хранилище сессий (LocalSession в dev → Redis в проде, fallback на in-memory при падении Redis; скрипты миграции JS→Redis). → Продакшн-управление состоянием диалогов на масштабе.
  • Очереди задач (Bull/BullMQ + bull-board) для отложенных уведомлений/рассылок (schedule_event, send_notify) — отделение бота от фоновой обработки. → Архитектура на очередях.
  • Observability: метрики Prometheus (prom-client) + трейсинг Sentry в Telegram-боте — уровень зрелости, нечастый для ботов.
  • Гибридная миграция JS→TS на живом продакшн-боте без переписывания с нуля (сцены постепенно переезжают в src/scenes/). → Управление техдолгом.
  • i18n на 3 языка через telegraf-i18n с хранением языка в сессии; генерация штрих-кодов для заказов (bwip-js/canvas).
  • Оговорка: по CLAUDE.md «ошибки часто проглатываются», тестов нет — типичный продакшн-бот с техдолгом.
  • Совпадает с известным опытом пользователя: Telegraf Scenes/WizardScene, Bull+Redis, MongoDB, i18n.
§05

AI-разработка

  • Найдено сессий: 0 (директория сессий Claude Code для этого проекта отсутствует; проверено через нормализацию полного пути). Локальные .claude/ + CLAUDE.md (на русском) присутствуют → AI-ассистирование вероятно было, но сессии здесь не записаны.
  • Что делалось с AI: транскриптов нет; CLAUDE.md структурирован под Claude Code.
  • Паттерны AI-воркфлоу: документация структурирована под AI, но прямых сессий в этой директории нет.
§06

Достижения и метрики

  • Продакшн Telegram-бот для крупного бренда доставки (Restaurant chain (UZ)/Restaurant chain (UZ)), v2.0.0, ~3.5 года в эксплуатации.
  • 7 диалоговых сцен, REST API, очереди, метрики, 3 языка, Redis-сессии.
§07

Контрибьюторы

git shortlog · все ветки

  1. Dave93144
  2. shahzodsalimsakov88
  3. root20
  4. Boburt9
  5. i76717573
  6. User1
6 контрибьюторов265 коммитов всего
Сейчас

Открыт к ролям Senior / Staff инженера и избранному фрилансу — продакшн-AI, платформы и full-stack разработка.

Связаться