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

Pitsa brendi Telegram bot

Restaurant chain (UZ) pitseriyasi (O'zbekiston) uchun ovqat buyurtma qiluvchi produkshn Telegram bot — Restaurant chain (UZ)Bot bilan bir xil kodbaza asosidagi egizak, biroq kattaroq va yangiroq imkoniyatlarga ega.

Holat
qo'llab-quvvatlanadi
Davr
2021-07-31 → 2026-05-18
AI sessiyalar
1
Stek
Tillar
JavaScript
Freymvorklar · Infra
Telegraf 4.15FastifyBulltelegraf-i18n
§01

Umumiy ko'rinish

  • Bu nima: Restaurant chain (UZ) pitseriyalar tarmog'i (choparpizza.uz) uchun ko'p tilli (ru/uz/en) Telegram e-commerce boti. Menyu/savat, yetkazib berish/olib ketish, terminal tanlash, stop-listlar, avtorizatsiya, sharhlar, ommaviy tarqatmalar. Tashqi Laravel API (api.choparpizza.uz uslubidagi) uchun frontend. Restaurant chain (UZ)Bot bilan bir xil repo egasi (ShahzodSalimsakov) va arxitektura.
  • Turi / holati / roli: bot / maintained / contributor (2–3 dasturchi; foydalanuvchida 317 dan 174 ta kommit, ~55%).
  • Faol davri: 2021-07-31 → 2026-05-18, ~5 yil. Tirik: 2025–2026 yillar toza conventional-commits bilan yangi imkoniyatlar to'lqinini ko'rsatadi (ba'zilari — Claude bilan).
§02

Stek

  • Tillar: JavaScript (Node.js, CommonJS). TypeScript faqat devDeps ichida (ishlatilmagan).
  • Freymvorklar/kutubxonalar: Telegraf 4.15 (Restaurant chain (UZ)Bot'ning 4.4'idan yangiroq; Scenes/WizardScene), telegraf-i18n (ru/uz/en), Fastify 3 + fastify-telegraf, Bull 4 + @bull-board, ioredis, luxon, hashids, bwip-js/canvas (shtrix-kodlar), axios.
  • Infra/deploy: PM2, Sentry, @inspector-apm/inspector-nodejs (APM monitoring — Restaurant chain (UZ)Bot'dan yagona sezilarli bog'liqlik farqi), choparpizza.uz / Contabo server. Bun (bun.lockb mavjud) + yarn.lock — package manager migratsiyasi.
  • Ma'lumotlar: MongoDB (sessiyalar + event_systems kolleksiyasi), Redis (Bull + pub/sub).
  • E'tiborga molik tooling: agenda/node-cron/sfn-scheduler (qisman legacy/komment qilingan).
§03

Nima qilindi

Erta tarix — axlat xabarlar ("asd", "dsd", "fix"); 2025 yildan boshlab — toza conventional commitlar (ba'zilari Claude tomonidan generatsiya qilingan).

  • Menyu/savatcontrollers/menu/index.js >2755 satr (Restaurant chain (UZ)Bot'nikidan kattaroq): pagination, savat, modifikatorlar, half-productlar, aksiyalar (threeSaleProducts, 8246873).
  • Terminal bo'yicha stop-listlarf241cf3 fix: Enforce stop-list check on product variants + b0697e4 (bloklanganda answerCbQuery).
  • Rejalashtirilgan tarqatmalarbot.js + util/queue.js: Bull cron joblari, API'ga progress hisoboti, xabarlarni o'chirish; cb9c9f3 feat: endpoint to remove scheduled events from MongoDB, 0dac3ce feat: Emit 'removed' event on job removal.
  • javob bilan send_notify30928f3 refactor: Add support for replying to a message.
  • Biznes yangilanishlari: shaharlar (94653c7 trying to fix cities issue), yopilish vaqti, yetkazib berish matni.
  • Yakuniy refactor (`5880f35`, 2026-05-18): /api/configs/public statik env config bilan almashtirildi (Restaurant chain (UZ)Bot'dagi xuddi shu refactor — ikkala botga umumiy yangilanish).
  • Hajm: ~5 yil davomida 317 ta kommit, 174 tasi foydalanuvchidan. Faollik to'lqinlar bilan; yaqinda AI yordamida qayta jonlantirildi.
§04

Texnik chellenjlar

  • Variant/modifikator darajasidagi stop-list (controllers/menu/index.js, addToCart, kommit f241cf3): avval faqat ota mahsulot ID'si tekshirilardi → sotuvda yo'q pitsa o'lchamlari (40 sm) savatga tushib qolardi. Yechim: GET terminals/get_stock?terminal_id=..., [selectedProdId, rightProduct.id, ...selectedModifiers.map(id)] dan blockedIds tuziladi, stop-list bilan kesishuv tekshiriladi, productIsNotInStock bilan bloklanadi. → Domen mantig'idagi haqiqiy produkshn bag; tekshiruvni barcha mahsulot komponentlariga to'g'ri kengaytirish.
  • Rejalashtirilgan xabarlarni MongoDB'dan o'chirish (bot.js, cb9c9f3): /api/schedule_event/remove_within_mongo endpointi — event_systems bo'ylab jobId bo'yicha kursor, bot.telegram.deleteMessage(chatId, message_id) + hujjatni o'chirish, har bir xabar uchun batafsil logging va try/catch. → Tarqatma holatini boshqarish (bag ham bor: queueJob.id ga o'z scope'idan tashqarida murojaat — potentsial ReferenceError).
  • Redis pub/sub bilan maxsus Bull queue (util/queue.js) — Restaurant chain (UZ)Bot'dagidek: ishlayotgan joblarni jarayonlararo bekor qilish (oiladagi umumiy infra pattern).
  • APM instrumentatsiyasi (@inspector-apm/inspector-nodejs) — botning produkshn unumdorligini monitoring qilish.
§05

AI yordamida ishlab chiqish

  • Topilgan sessiyalar: 1 (lokal Claude Code sessiyalar katalogida, 0f95e959-...jsonl, ~3.2 MB).
  • AI bilan nima qilingan: birinchi promptning namunasi — "commit and push" (minimal qo'lda kiritish); haqiqiy AI o'zgartirishlari Co-Authored-By: Claude Opus 4.7 (1M context) bo'lgan kommitlarda ko'rinadi: variant darajasidagi stop-list (f241cf3), xabarlarni yuborish/o'chirish uchun logging, env-config refactor (5880f35).
  • AI-vorkflow patternlari: katta legacy fayl (menu/index.js, 2.7k+ satr) ichida maqsadli bagfikslar va refactoring uchun Claude Code'dan foydalanish, AI tomonidan generatsiya qilingan toza conventional-commit xabarlari bilan. Rutinani delegatsiya qilish ("commit and push").
  • alfaclean'dan farqli o'laroq — bu yerda AI greenfield arxitektura uchun emas, balki legacy kodda aniq maqsad bilan ishlatilgan.
§06

Yutuqlar va metrikalar

  • Haqiqiy produkshn bot Restaurant chain (UZ) pitseriyalar tarmog'i uchun; 3 til; Laravel API/MongoDB/Redis/Sentry/APM bilan integratsiya.
  • 174 ta foydalanuvchi kommiti ~5 yil davomidagi 317 tadan — uzoq umr ko'rgan mahsulot.
  • menu/index.js >2755 satr — eng katta kontroller; boy domen mantig'i (modifikatorlar, half-productlar, stop-listlar, aksiyalar).
  • Kodda aniq biznes metrikalar yo'q.
§07

Hissa qo'shganlar

git shortlog · barcha branchlar

  1. Dave93202
  2. shahzodsalimsakov96
  3. root10
  4. Boburt8
  5. i76717571
5 hissadorjami 317 ta kommit
Hozirda

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

Bog'lanish