Arxivga qaytish
IV. Mijoz loyihalari va logistika platformalariqo'shimchaishtirokchimijoz anonimlashtirilgan

Ovqat yetkazish Telegram bot — singil brend

"Restaurant chain (UZ) / Restaurant chain (UZ)" yetkazib berish tarmog'i (Oʻzbekiston) uchun ishlab chiqarishga chiqarilgan Telegram ovqat buyurtma boti: menyu, savat, yetkazib berish/olib ketish, sodiqlik dasturi, ommaviy xabarlar.

Holat
qo'llab-quvvatlanadi
Davr
2021-12-08 → 2026-05-18
AI sessiyalar
Stek
Tillar
JavaScript
Freymvorklar · Infra
Telegraf 4FastifyBulltelegraf-i18n
§01

Umumiy ko'rinish

  • Bu nima: Restoran tarmogʻi uchun koʻp tilli (ru/uz/en) Telegram e-commerce boti. Foydalanuvchi buyurtma beradi (yetkazib berish yoki olib ketish), filialni tanlaydi, OTP orqali avtorizatsiyadan oʻtadi, oʻz buyurtmalarini koʻradi, keshbek shtrix-kodini oladi va sharh qoldiradi. Bot tashqi Laravel API (api.restaurant-chain.uz) uchun frontend vazifasini bajaradi; katalogni oʻzida saqlamaydi, balki soʻrovlarni proksi qiladi va orkestrlaydi.
  • Turi / holati / roli: bot / maintained / contributor (repozitoriy ShahzodSalimsakovga tegishli; foydalanuvchi 2–3 asosiy dasturchidan biri, kommitlarning ~50%i).
  • Faol davri: birinchi kommit 2021-12-08, oxirgisi 2026-05-18. Uzoq umr koʻrgan ishchi loyiha: oʻzgartirishlar biznes talablariga qarab toʻlqin-toʻlqin keladi (yetkazib berish narxlari, toʻlov turlari, keshbekni yoqish/oʻchirish).
§02

Stek

  • Tillar: JavaScript (Node.js, CommonJS). TypeScript faqat devDependencies ichida — amalda ishlatilmaydi (manba fayllar .js).
  • Freymvorklar/kutubxonalar: Telegraf 4 (Scenes / WizardScene + Composer dialog holatlari mashinasi sifatida), telegraf-i18n (ru/uz/en), Fastify 3 + fastify-telegraf (webhook), Bull 4 + @bull-board (navbatlar va admin UI), ioredis, luxon (sana/vaqt mintaqalari), hashids (tg_id obfuskatsiyasi), bwip-js / barcode (shtrix-kod generatsiyasi), axios, lodash.
  • Infra/deploy: PM2 (pm2.config.js, ilova les_bot), webhook https://newbot.restaurant-chain.uz, Sentry (@sentry/node), Contabo serveri (vmi849112.contaboserver.net / choparpizza.uz). Dev — polling + lokal sessiya.
  • Ma'lumotlar: MongoDB (sessiyalar uchun telegraf-session-mongodb, yuborilgan xabarlarni kuzatish uchun event_systems kolleksiyasi), Redis (Bull broadcast navbati + pub/sub).
  • E'tiborga molik tooling: agenda (planlashtiruvchi, kodda oʻchirilgan), node-cron / sfn-scheduler / cron-converter (qisman kommentga olingan — broadcast planlashtirish ustidagi iteratsiyalar izlari).
§03

Nima qilindi

Foydalanuvchining kommit xabarlari koʻpincha ma'nosiz ("asd", "asdf", "dsds", "sdsd"), shu sababli bosqichlar kommit matni emas, balki diff va koddan tiklandi.

  • Buyurtma oqimi (yetkazib berish/olib ketish)controllers/startOrder: WizardScene bosqichlari manzil → bino → podyezd, API orqali geokodlash, eng yaqin terminalni topish, filial tanlash.
  • Filial ish soatlarini hisoblashstartOrder/index.js (luxon), jumladan tunga oʻtuvchi smenalar va ish kuni/dam olish kuni mantiqini oʻz ichiga oladi.
  • Menyu va savatcontrollers/menu/index.js (~79 KB, botning yadrosi): kategoriyalar paginatsiyasi, savat, OTP avtorizatsiya, minimal buyurtma summasi.
  • Shtrix-kodli keshbekcontrollers/cashback: telefon raqamidan code128 generatsiyasi (bwip-js), chatga PNG yuboriladi.
  • Ommaviy xabarlar (broadcast)bot.js + util/queue.js: takrorlanuvchi cron ishlari bilan Bull navbati, progress Laravel API'ga qaytarib xabar qilinadi, faol ishlarni Redis pub/sub orqali bekor qilish.
  • Biznes yangilanishlari: yetkazib berish narxlari/ogʻirliklari (d653fcd, f3d5a1b, 02eef03), toʻlov turlari (85824d1, 4d1d9f5 removed payment type uzcard, 03fbbb5 turn off payment links), keshbekni yoqish/oʻchirish (1373664 cashback disabled, 232b9b9), tillar/lokallar.
  • Oxirgi bosqich (`b4f848f`, 2026-05-18): toza refaktoring — /api/configs/public runtime fetchi (base64 dekod bilan) env'dan olinadigan statik util/config.js bilan almashtirildi. Bu — inson oʻqiy oladigan tavsif va Co-Authored-By: Claude Opus 4.7 bilan yagona kommit.
  • Hajm: jami 257 kommit, shundan 129tasi foydalanuvchiniki (Davron Yuldashev yul.davron.93@gmail.com, taxalluslari Davron/Davr/Dave93), ~4.5 yil davomida. Muallif-hamkorlar: shahaa (Shahzod Salimsakov, egasi, 89 kommit), root (deploy).
§04

Texnik chellenjlar

  • Jarayonlararo ish bekor qilish bilan maxsus Bull navbati (util/queue.js): ExtendedQueue extends Queue + ExtendedJob, faol ish promise'larini kuzatish, Redis pub/sub (getInternalEventEmitter) orqali bekor qilish — sandbox jarayoni cheklovini aylanib oʻtish uchun Bull GitHub issue'lariga (#1056/#1067) toʻgʻridan-toʻgʻri havola asos qilib keltiriladi. → Taqsimlangan vazifalarni qayta ishlash va navbat qatlamidagi infratuzilma darajasidagi yechimlarni tushunishni koʻrsatadi. Repozitoriydagi eng nozik kod boʻlagi.
  • Backpressure hisoboti bilan broadcast (bot.js sendQueue.process): tg_idlar roʻyxati boʻyicha ketma-ket yetkazib berish, har bir qadamda ish holatini tekshirish (uchma-uchid bekor qilish), har 50 xabarda progressni API'ga POST qilish, removed hodisasida yuborilgan xabarlarni event_systems kolleksiyasi orqali oʻchirish. → Telegram rate-limitlari va broadcast holatini real hayotda boshqarish.
  • Yarim tunni kesib oʻtuvchi filial ish soatlari mantiqi (startOrder/index.js:169–234, luxon): joriy vaqtni ochilish/yopilish bilan solishtirish, close.hour < open.hour boʻlganda kun tuzatish (tunga oʻtuvchi smenalar), ish kunlari/dam olish kunlari uchun alohida tarmoqlar. → Sana/vaqt mintaqalarining (Asia/Tashkent) chegara holatlarini puxta ishlash.
  • OTP avtorizatsiya (menu/index.js): tg_idni hashids bilan kodlash, bearer tokenni yigʻish (base64 OTP_TOKEN + tasodifiy salt → hex), kodni qayta yuborish. → Backend soʻrovlari uchun maxsus imzolash sxemasi.
  • `b4f848f` refaktoringi (util/config.js): parsePositiveInt tarixiy xatti-harakatni saqlab qoladi (NaN boʻlganda fallback 0, aniq kommentariya bilan). → Loyihadagi toza, oʻylab qilingan kodning kamdan-kam uchraydigan namunasi.
§05

AI yordamida ishlab chiqish

  • Topilgan sessiyalar: 0 (bu loyiha uchun lokal Claude Code sessiyalari katalogi yoʻq).
  • AI bilan nima qilingan: bilvosita iz — oxirgi kommit b4f848f Co-Authored-By: Claude Opus 4.7 (1M context) deb belgilangan. Bu — repozitoriydagi yagona toza, hujjatlashtirilgan kommit (config refaktoringi) boʻlib, u qolgan tarixdan keskin farq qiladi va legacy kodni tozalash uchun AI'dan bir martalik foydalanilganiga ishora qiladi.
  • AI-vorkflow patternlari: xulosa chiqarish uchun ma'lumot yetarli emas (bitta ma'lumot nuqtasi).
  • Bu loyiha uchun toʻliq Claude Code sessiyalari mavjud emas.
§06

Yutuqlar va metrikalar

  • Real ishlab chiqarish mahsuloti: faol ovqat yetkazib berish tarmogʻi uchun bot (newbot.restaurant-chain.uz), 3 ta interfeys tili, Laravel API, MongoDB, Redis, Sentry, PM2 bilan integratsiya.
  • 129 foydalanuvchi kommiti ~4.5 yillik texnik xizmat davomida (2021–2026) — prototip emas, uzoq umr koʻrgan mahsulot.
  • Funksionallik: yetkazib berish/olib ketish buyurtmasi, geokodlash, eng yaqin terminalni topish, OTP avtorizatsiya, keshbek shtrix-kodi, sharhlar, progress bilan rejalashtirilgan ommaviy xabarlar.
  • Kodda aniq biznes metrikalari (DAU, buyurtmalar soni) yoʻq.
§07

Hissa qo'shganlar

git shortlog · barcha branchlar

  1. Dave93137
  2. shahzodsalimsakov89
  3. root20
  4. Boburt9
  5. User1
  6. i76717571
6 hissadorjami 257 ta kommit
Hozirda

Senior / Staff muhandis rollari va tanlab olingan frilansga ochiqman — prodakshn AI, platforma va full-stack ishlar.

Bog'lanish