Arxivga qaytish
IV. Mijoz loyihalari va logistika platformalarivitrinalidermijoz anonimlashtirilgan

Restoran tarmog'i ERP — 5 servisli monorepo

Restaurant chain (UZ) / Restaurant chain (UZ) restoranlar tarmog'i uchun ko'p servisli monorepo: uchdan uchgacha (end-to-end) tip xavfsizligiga ega 5 ta servis (admin, backend, cron, duck_api, merchants_api). Foydalanuvchi asosiy muallif (~2.7 yil davomida kommitlarning ~44%).

Holat
faol
Davr
2023-08-05 → 2026-05-08
AI sessiyalar
1
Stek
Tillar
TypeScript
Freymvorklar · Infra
ElysiaBunNext.js 15React 19Drizzle ORMHonoDuckDBBullMQRedis
§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 App tipini 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 plugini ctx). 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 App tipi 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 App tipini import qiladi va API'ni Eden orqali chaqiradi; npm workspace'lar o'rniga Next config experimental.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.
§07

Hissa qo'shganlar

git shortlog · barcha branchlar

  1. Dave93410
  2. i7671757231
  3. Boburt129
  4. shahzodsalimsakov122
  5. root51
5 hissadorjami 943 ta kommit
Hozirda

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

Bog'lanish