§01
Umumiy ko'rinish
- Bu nima: Restaurant chain (UZ) / Restaurant chain (UZ) franshiza restoranlar tarmog'i uchun ERP/back-office platforma. Foydalanuvchilar/rollar/ruxsatlar, filiallar va terminallar, nomenklatura, invoyslar, OLAP hisobotlar, jadvallar, stop-list'lar, sotuv rejalari va to'lov gateway'larini solishtirishni boshqaradi. Bitta repoda 5 ta mustaqil servis, umumiy tiplar TS path alias'lari orqali ulashiladi.
- Turi / holati / roli: web-app / backend platforma (monorepo) / faol (oxirgi kommit 2026-05-08) / lead — foydalanuvchi (Davr / Davron Yuldashev / Dave93, birlashtirilgan holda) = 939 kommitdan 410 tasi (~44%), eng ko'p kod yozgan muallif. Jamoa: Ilhombek (~208), Shahzod (~122), Bobur (~121).
- Faollik oynasi: 2023-08-05 → 2026-05-08 (~2 yil 9 oy) — portfoliodagi eng uzoq umr ko'rgan loyiha. 939 kommit.
§02
Stek
- Tillar: TypeScript (hamma joyda), Bun + Node.
- Servislar (CLAUDE.md + manifestlarga ko'ra):
- admin/ — Next.js 15 + React 19 dashboard (Bun, port 6762), HeroUI + Radix UI, Eden (backend'ga tiplangan mijoz — backend'ning
Apptipini import qiladi). - backend/ — Bun ustidagi Elysia API, Drizzle ORM + PostgreSQL, Redis (sessiyalar, ioredis + item-store-redis), BullMQ (navbatlar), JWT/bearer, OpenAPI, websocket'lar. 44 ta domen moduli (users, roles, permissions, invoices, report_olap, sales_plans, terminals, nomenclature, stoplist, timesheet, scheduled_reports, …).
- cron/ — Bun + node-cron/@elysiajs/cron: iiko bilan sinxronizatsiya, OLAP backfill, rol biriktirishlari (port 8080).
- duck_api/ — Hono + DuckDB (+ duckdb-async) — analitik data-warehouse sinxronizatsiyasi (Node, tsc-build).
- merchants_api/ — Elysia + Puppeteer: to'lov gateway'laridan hisobotlarni scrape qiladi (Payme, Click, Yandex, Express, iiko-kassa), tRPC.
- Infra/deploy: PM2 (office_api/office_cron/office_duck/office_merchant_api), har bir servis uchun
pm2.config.js.dump.rdb(Redis snapshot). gRPC vositalari (protoc-ts). ⚠️ Lockfile bog'i (bun.lockb + pnpm-lock + yarn.lock + package-lock) — nomuvofiqlik. - Ma'lumotlar: PostgreSQL (Drizzle, sxema
backend/drizzle/schema.ts), Redis, DuckDB (OLAP).
§03
Nima qilindi
Foydalanuvchi platformaning asosiy dasturchisi (~2.7 yil davomida ~44%).
- Backend (Elysia): yagona pattern asosida 44 ta modul (har bir modul uchun Elysia plugin,
controller.ts+dto/, kontekst pluginictx). Domenlar: users/roles/permissions (RBAC), invoyslar va ularning satrlari, OLAP hisobotlar, terminallar/filiallar, nomenklatura (+ org mapping), jadvallar/timesheet, stop-list'lar, sotuv rejalari, scheduled_reports, hanging_orders, internal_transfer va h.k. - Admin (Next.js 15): Eden orqali E2E tiplashga ega dashboard (backend'ning
Apptipi frontend'ga import qilinadi — qo'lda yozilgan DTO'larsiz tip xavfsiz chaqiruvlar). - merchants_api: Puppeteer orqali 5 ta to'lov gateway'idan hisobotlarni avtomatik yig'ish (ekvayring solishtiruvi).
- cron: iiko (POS) bilan integratsiya, OLAP backfill, rollarni avtomatik biriktirish.
- duck_api: DuckDB analitik datamart'i.
- Hajm: 410 ta foydalanuvchi kommiti; 5 ta servis; 44 ta backend moduli; ~2.7 yillik evolyutsiya.
§04
Texnik chellenjlar
CLAUDE.md / manifestlar / struktura bilan tasdiqlangan.
- Servislar chegarasi bo'ylab uchdan uchgacha tip xavfsizligi → admin Elysia backend'ining
Apptipini import qiladi va API'ni Eden orqali chaqiradi; npm workspace'lar o'rniga Next configexperimental.externalDir: true+ path alias'lar (@backend/*,@admin/*). Codegen'siz kuchli "tiplar kontrakt sifatida" patterni. - Modular Elysia arxitekturasi → 44 ta domen yagona umumiy kontekstga ega izolyatsiyalangan pluginlar sifatida; kengaytiriladigan va bir xil. Yetuk backend dizayni.
- Har bir vazifa uchun poliglot saqlash → PostgreSQL (OLTP, Drizzle) + Redis (sessiyalar/kesh/navbatlar) + DuckDB (OLAP datamart, alohida Hono servis). Ongli OLTP/OLAP ajratmasi.
- Navbatlar va fon ishlari → BullMQ (backend) + cron servisi (iiko sinxronizatsiyasi, OLAP backfill) — puxta o'ylangan fon ishlov berish tuzilishi.
- Real biznes integratsiyalari → iiko POS va moliyaviy solishtiruv uchun Puppeteer orqali 5 ta to'lov gateway'ini scrape qilish (Payme/Click/Yandex/Express) — arzimas bo'lmagan, yuqori qiymatli avtomatlashtirish.
- Uzoq evolyutsiya → servislar bo'ylab turli Elysia versiyalari (merchants'da 0.8 vs backend'da 1.4) — jonli monorepodagi odatiy texnik qarz.
§05
AI yordamida ishlab chiqish
- Topilgan sessiyalar: ushbu loyiha uchun lokal Claude Code sessiyalar kaliti ostida 1 ta (1 ta
.jsonl). - AI bilan nima qilingan: batafsil
CLAUDE.md(8.5 KB) mavjud — repo uchun muhandislik qo'llanmasi (modul qo'shish patterni, alias'lar, PM2 nomlari, "testlarni aslida ishga tushirmasdan ular o'tdi deb da'vo qilma"). Katta legacy monoreponi AI yordamida qo'llab-quvvatlash. - AI vorkflow patternlari: murakkab ko'p servisli repositoriyaga AI'ni jalb qilish uchun CLAUDE.md'dan "xarita" sifatida foydalanish — yaxshi amaliyot.
§06
Yutuqlar va metrikalar
- 939 kommit / ~2.7 yil, foydalanuvchi ~44% (410) — asosiy muallif.
- PM2 ostida 5 ta production servis; 44 ta backend moduli.
- Integratsiyalar: iiko POS + 5 ta to'lov gateway (Payme/Click/Yandex/Express/iiko) + OLAP.
- 3 ta ma'lumot ombori (Postgres/Redis/DuckDB), BullMQ navbatlar, websocket'lar, OpenAPI.
- Eden orqali front↔back E2E tip xavfsizligi.