§01
Umumiy ko'rinish
- Bu nima: Call-markaz/CRM operatorlari uchun single-page ilova — kategoriya tanlash, mahsulot qidiruvi, savatchani yig'ish, modifikatorlar, tavsiya etilgan mahsulotlar, umumiy summa. Bitrix24 ustida ishlaydi (
ID,NAME,UF_QUANTITYmaydonlari — Bitrix24 userfield'lari). Ma'lumot tashqi API dan olinadi. - Turi / holati / roli: web-app (ichki asbob) / maintained / solo (45 ta kommitdan 44 tasi — foydalanuvchiniki; 1 tasi — root deploy).
- Faol davri: 2021-10-10 → 2025-12-19. Eski tarix (2021) — legacy; joriy mahsulot esa dekabr (2025) qayta yozuvi
5217b80 Modernize CRM Cart: Next.js 16, TypeScript, shadcn/ui.
§02
Stek
- Tillar: TypeScript (strict).
- Freymvork/kutubxonalar: Next.js 16 (App Router, Turbopack), React 19, TanStack Query v5, @tanstack/react-virtual (ro'yxat virtualizatsiyasi), Zustand v5 (cart/UI store), shadcn/ui (Radix), Tailwind 3, axios, currency.js (pul), latin-to-cyrillic + convert-layout (qidiruv uchun transliteratsiya/tillar layout'i), lucide-react.
- Infra/deploy: PM2 (
ecosystem.config.js, port 8082, nvm node 20, cwd/home/davr/chopar/crm_cart), choparpizza.uz serveri. Bun + yarn (ikkala lockfile). - Ma'lumot: tashqi REST API; backend — Bitrix24 CRM.
- E'tiborga molik tooling: shadcn/ui (components.json).
§03
Nima qilindi
Eski xabarlar keraksiz ("asd", "dsad", "sss"); dekabr qayta yozuvi esa toza kommitlar.
- Next 16 + shadcn/ui'da modernizatsiya (
5217b80) — legacy versiyaning to'liq qayta yozilishi. - Transliteratsiya va layout konvertatsiyasi bilan qidiruv (
3bf9ee1 translit,hooks/use-products.tsga qarang). - Virtualizatsiyalangan mahsulot ro'yxati (
components/products/product-list.tsx). - Modifikatorli savatcha (
5af701a ability to remove modifier,c3c454e stock,6a0d6aa fix of stop text). - Tavsiya etilgan mahsulotlar (
bfc5359 related products). - PM2/deploy tuzatuvi (4 kommit: node v20.19.0 yo'li, cwd, next'ni node orqali ishga tushirish).
- Hajmi: 45 kommit, ~44 tasi foydalanuvchiniki. Faollik qisqa portlashlarda; asosiy portlash — 2025-yil dekabr qayta yozuvi.
§04
Texnik chellenjlar
- Mahsulot ro'yxatini virtualizatsiya qilish (
product-list.tsx,@tanstack/react-virtual):useVirtualizer({ count, estimateSize: () => 44, overscan: 8 })— 520px scroll konteyneri ichida qatorlar absolyut joylashuvi bilan. → katta katalogni lagsiz, samarali render qilish; virtualizatsiyani tushunish. - Transliteratsiya va layout almashinuvi bilan aqlli qidiruv (
hooks/use-products.ts):convert-layout/ru+latin-to-cyrillic—product.NAME.includes(translit(lowerSearch)), shu tariqa operator lotin harflarida yoki noto'g'ri klaviatura layout'ida yozsa ham mahsulotni topadi (RU/UZ kiritish uchun keng tarqalgan muammo). → domen lokali uchun o'ylangan UX. - Savatchani optimistik yangilash (
stores/cart-store.ts, Zustand):optimisticIncrement/Decrement/Remove+isUpdatingbayrog'i — server tasdiqlashidan oldin darhol UI javobi (UF_QUANTITY > 1guard'i bilan decrement). → CRM backend ustida optimistik UI patterni. - Pul hisob-kitoblari
currency.jsorqali (float artefaktlarisiz). - Bitrix24 bilan integratsiya (
UF_*userfield'lari) — UI store'ni CRM sxemasiga moslashtirish.
§05
AI yordamida ishlab chiqish
- Topilgan sessiyalar: aynan shu yo'l uchun 0 ta. Lokalda
.claude/(sozlamalar) bor — loyiha ehtimol Claude Code bilan ishlab chiqilgan, ammo sessiyalar foydalanuvchi profilida saqlanmagan (yoki o'chirilgan / boshqa mashinada). - AI bilan nima qilingan: bilvosita — Next 16/shadcn'da toza kommit xabarlari bilan dekabr qayta yozuvi AI yordamida qilingandek ko'rinadi, ammo to'g'ridan-to'g'ri sessiyalar yo'q.
- Sessiya ma'lumotisiz — AI vorkflow haqida xulosa chiqarib bo'lmaydi.
§06
Yutuqlar va metrikalar
- Solo asbob, zamonaviy stekda qaytadan yozilgan (Next 16 / React 19 / TanStack / Zustand / shadcn).
- Kichik hajmda 3 ta aniq muhandislik texnikasi: virtualizatsiya, transliteratsiyalangan qidiruv, optimistik UI.
- Haqiqiy production'da ishlatiladi (PM2, Restaurant chain (UZ) tarmog'ining Bitrix24 CRM'i).
- Kamtarona miqyos (single-page asbob, ~5 ta komponent guruhi).