Jaloliddin Musayev
Loyihalarga qaytish
Faol ishlanmoqda2025 — 2026ERP va moliya

Multi-tenant ERP platformasi

Bitta kod bazasidan ko'p kompaniyaga xizmat qiluvchi ERP: sotuv, debitorlik, invoice va ombor tizimiga ishonchli uzatish.

584
manba fayl
23
DB migratsiya
4
kirish darajasi
2
tenant rejimi

Muammo

Har bir kompaniya uchun alohida tizim qurish ham qimmat, ham qo'llab-quvvatlab bo'lmaydigan ish. Ammo hammani bitta umumiy bazaga qo'yish — bir kompaniya boshqasining ma'lumotini ko'rib qolishi xavfini tug'diradi. Bunga qo'shimcha: debitorlik Excel'da yuritilardi, kim qancha qarzdor va qaysi hisob-faktura qachon to'langani bo'yicha yagona haqiqat manbai yo'q edi.

Yechim

Tenant konteksti JWT ichida olib yuriladi, kompaniya esa `shared` yoki `dedicated` rejimda ishlashi mumkin — domen qatlamini qayta yozmasdan. Kirish huquqi ikki o'lchovli: rol nima qila olishini, data-scope esa qaysi ma'lumotni ko'rishini belgilaydi — bir xil endpoint filial boshlig'iga va savdo agentiga turli natija qaytaradi. Debitorlik to'liq modellashtirilgan: hisob-faktura hayot sikli, to'lovni fakturalarga taqsimlash, muddat bo'yicha aging va mijoz akt-sverkasi.

Asosiy imkoniyatlar

  • Multi-tenant: kompaniya `shared` yoki `dedicated` bazada ishlashi mumkin, tanlov domen kodiga ta'sir qilmaydi
  • To'rt darajali data-scope: butun ma'lumot / o'z filiali / o'z bo'limi / faqat o'z yozuvlari
  • Sotuv buyurtmasining to'liq hayot sikli — qoralamadan bajarilishgacha
  • Debitorlik: invoice qoralama → chiqarilgan → to'langan, to'lov taqsimoti va muddat bo'yicha aging hisoboti
  • Mijoz akt-sverkasi: xronologik faktura va to'lov qatorlari, taqsimot izohlari bilan
  • Outbox pattern: buyurtma ombor tizimiga navbat orqali uzatiladi, `FOR UPDATE SKIP LOCKED` bilan parallel worker'lar bir-biriga xalaqit bermaydi
  • Crash recovery: yarim qolgan vazifalar belgilangan vaqtdan keyin avtomatik qayta navbatga qo'yiladi
  • 23 ta Alembic migratsiyasi — sxema tarixi to'liq versiyalangan va qaytarilishi mumkin
  • Next.js admin panel va dala savdosi uchun Flutter mobil ilovasi

Arxitektura

So'rov JWT'dan tenant va kirish doirasini oladi, domen xizmatlari shu kontekst ichida ishlaydi. Tashqi tizimga chiqadigan har bir hodisa avval bazadagi navbat jadvaliga yoziladi — shuning uchun tarmoq uzilsa ham buyurtma yo'qolmaydi.

Klientlar

Next.js admin panelFlutter mobile app

API va kirish nazorati

ALL_DATA / OWN_BRANCH / OWN_DEPARTMENT / OWN_RECORDS

FastAPIJWT tenant contextRBACData scope

Domen modullari

Sales ordersInvoices & ARPaymentsCatalog & clients

Integratsiya

SKIP LOCKED, retry, stale job recovery

Outbox tableIntegration workerWMS adapter

Ma'lumot

PostgreSQLAlembic (23 revisions)

Texnologiyalar

Backend

Python 3.12FastAPISQLAlchemy 2.xPostgreSQLAlembicPydantic v2JWT / bcryptpytest

Veb

Next.jsReact 19TypeScriptTanStack QueryTanStack TableZustandRadix UI

Mobil

FlutterDartDioSecure storage

Infratuzilma

Outbox workerAlembic migrationsCron / long-running worker

Mening rolim

Backend arxitekturasi va to'liq domen qatlami, RBAC va data-scope modeli, integratsiya worker'i, admin panel, Flutter mobil ilovasi.

Mijoz nomlari, domenlar va server manzillari maxfiylik sababli oshkor qilinmagan.