အနှစ်ချုပ်
Quark ERP သည် TypeScript ကို ဦးစားပေးသော plugin-based ERP ဖြစ်ပါသည်။ Base core နှင့် plugin တိုင်းသည် @quan-erp/* package များ၏ ဗားရှင်းလိုင်း တစ်ခုတည်းကို မျှဝေအသုံးပြုပါသည် (လက်ရှိ 1.x) — ထို့ကြောင့် backend DI၊ frontend core API နှင့် platform bridge များ ကိုက်ညီစွာ ဆက်လက် အလုပ်လုပ်ပါသည်။
- Backend plugin များသည် Express အခြေခံ custom framework (@quan-erp/shared-backend-core) ပေါ်တွင် လည်ပတ်ပါသည်
- Frontend plugin များသည် React + Vite app များဖြစ်ပြီး၊ runtime တွင် base core သို့ မှတ်ပုံတင်ပါသည်
- UI codebase တစ်ခုတည်းဖြင့် Web၊ Desktop (Electron) နှင့် Mobile (Capacitor) ကို ပစ်မှတ်ထားပါသည်
- Plugin မှီခိုမှုများနှင့် requiredBasedVersion ကို base 1.x လိုင်းနှင့် ကိုက်ညီအောင် ထားရှိပါ
Backend
Base နှင့် plugin backend များအတွက် server-side stack ဖြစ်ပါသည်။ အောက်ပါ major version များကို quan-erp-node-core/base (backend package.json၊ shared-backend-core နှင့် docker-compose) မှ ယူထားပါသည်။
| နည်းပညာ | အခန်းကဏ္ဍ | ဗားရှင်း | မှတ်ချက် |
|---|---|---|---|
| TypeScript | Language | 5 | All backend services and entities; ESM builds with .js import extensions |
| Quark ERP Framework | Plugin host / DI / HTTP | 1 | Based on Express.js — IPlugin, @Module, controllers, middleware, lifecycle hooks |
| TypeORM | ORM | 0 | Entities, repositories, QueryRunner, synchronize (dev), and migrations (staging/prod) |
| PostgreSQL | Primary database | 17 | Persistent ERP data (often via pgbouncer in compose) |
| Redis | Cache / sessions / jobs | 7 | Caching, sessions, and queue / cron helpers |
Frontend
Base core နှင့် plugin frontend များအတွက် client stack ဖြစ်ပါသည်။ အောက်ပါ major version များကို quan-erp-node-core/base/frontend/package.json မှ ယူထားပါသည်။
| နည်းပညာ | အခန်းကဏ္ဍ | ဗားရှင်း | မှတ်ချက် |
|---|---|---|---|
| React | UI library | 19 | Plugin screens, core chrome, and shared components |
| TypeScript | Language | 5 | All frontend packages; keep types aligned with shared-types / export surfaces |
| Tailwind CSS | Styling | 4 | Utility-first styling; match core / shared-ui patterns |
| TanStack React Query | Server state | 5 | Fetching, caching, and mutations for backend APIs |
| Zustand | Client state | 5 | Lightweight stores for core/plugin UI state |
| Capacitor | Mobile runtime | 7 | Native iOS / Android (@capacitor/core); prefer Platforms helpers from shared-frontend-core |
တင်သွင်းမှုနှင့် ပလက်ဖောင်းများ
Frontend artifact တစ်ခုတည်းကို ပစ်မှတ်အမျိုးမျိုးတွင် ပြေးနိုင်ပါသည်။ Plugin များတွင် native API ကို တိုက်ရိုက် မရေးဘဲ၊ shared-frontend-core မှ Platforms အကူအညီများကို အသုံးပြုပါ။
| ပစ်မှတ် | Runtime | ဗားရှင်း | တင်ပို့ပုံ | မှတ်ချက် |
|---|---|---|---|---|
| Web | Browser + Nginx | — | Base frontend container / static host | Default local compose target on :80 |
| Desktop | Electron | 39 | Desktop app wrapping the web app | Use Platforms.isDesktop() for desktop-only paths |
| Mobile | Capacitor | 7 | Native iOS / Android app | Camera, haptics, filesystem, etc. via shared-frontend-core |
| Server / host | Docker Compose | 1 | Postgres, Redis, backend, frontend | See Deployment for install.sh / compose layout |
Desktop
Electron 39
Mobile
Capacitor 7
Web
Web