Cluster ERP, Python ile yazılmış modüler bir kurumsal kaynak planlama sistemidir. Bu sayfa kapsamı kodun tanımladığı biçimiyle anlatır: sunucu, ona ulaşmanın üç yolu ve her biri tek satırla 28 arka uç modülü. Parçaların birlikte nasıl çalıştığını anlatmaz; bunun için mimariye genel bakış sayfasına bakın.
Kısaca¶
- Paketin adı
cluster-erp'dir, kendini "Modular Enterprise Resource Planning System" olarak tanımlar ve tescilli (proprietary) bir lisans bildirir (pyproject.toml:5-10,LICENSE). - Sunucu,
create_appfabrikasının kurduğu bir FastAPI uygulamasıdır (src/cluster_erp/server/app.py:1287). - İş özellikleri
src/cluster_erp/modules/altındaki 28 modülde bulunur. Her biriModuleBasesınıfından türer (src/cluster_erp/core/module_base.py:14). - Üç istemci vardır:
webapp/içindeki web uygulaması, PySide6 masaüstü istemcisi ve HTTP API'nin kendisi (src/cluster_erp/server/app.py:1633-1644,pyproject.toml:86-88). - Proje kuralları tüm ülkeleri ve birçok dili hedefler.
Nasıl çalışır¶
Sunucu süreci python -m cluster_erp.server.main ile başlar; bu komut uvicorn'u create_app fabrikasıyla çalıştırır (src/cluster_erp/server/main.py:39-41). Açılışta modül kaydı etkin her modülü yükler; her modül kendi rotalarını, EventBus işleyicilerini ve ekran metadata'sını ekler (src/cluster_erp/core/module_registry.py:32-56). Ayrıntılar sunucu açılışı ve uygulama fabrikası ve modül yaşam döngüsü sayfalarındadır.
Üç istemci¶
| İstemci | Nedir | Giriş noktası | Kaynak |
|---|---|---|---|
| Web uygulaması | Aynı sunucunun /app yolunda sunduğu vanilla JavaScript tek sayfa uygulaması |
webapp/index.html |
src/cluster_erp/server/app.py:1633-1644 |
| Masaüstü istemci | desktop ekiyle kurulan PySide6 uygulaması |
cluster-erp-desktop betiği, cluster_erp.desktop.main:main |
pyproject.toml:68-73, pyproject.toml:88 |
| HTTP API | /api/v1/ altında, modül başına bir önekli JSON rotaları |
ModuleBase.api_prefix |
src/cluster_erp/core/module_base.py:36-38 |
İki istemci de ekranlarını GET /api/v1/_meta ile sunulan modül metadata'sından çizer (src/cluster_erp/server/app.py:1518-1556). İstemciler web uygulaması bölümünde ve masaüstü bölümünde belgelenir.
28 arka uç modülü¶
Tablo src/cluster_erp/modules/ altındaki her klasörü listeler (ls ile sayılan 28 klasör, __pycache__ hariç). Açıklama sütunu modülün kendi description özelliğinden alınmıştır ve kodun İngilizce metnidir. enabled_modules ayarının varsayılan değeri aynı 28 adı listeler (src/cluster_erp/config/settings.py:535-564).
| Modül | Koddaki açıklama | Kaynak |
|---|---|---|
analytics |
Analytics: semantic layer, safe query generation, correctness gates | src/cluster_erp/modules/analytics/module.py:39 |
app_store |
App catalogue, entitlements and installs | src/cluster_erp/modules/app_store/module.py:36 |
auth |
Authentication, authorization (RBAC + ABAC), and approval chains | src/cluster_erp/modules/auth/module.py:26 |
bom |
Bill of Materials, multi-level product structure management | src/cluster_erp/modules/bom/module.py:30 |
calendars |
Working-time templates, calendars, and exceptions | src/cluster_erp/modules/calendars/module.py:27 |
costing |
Cost analysis, labor/overhead rates, CBS, margin calculation | src/cluster_erp/modules/costing/module.py:26 |
crm |
Customer and RFQ management with state machine and inbox | src/cluster_erp/modules/crm/module.py:29 |
currencies |
Currency management and exchange rate tracking | src/cluster_erp/modules/currencies/module.py:29 |
design_engineering |
Design lifecycle, versioning, and engineering change notes (ECN) | src/cluster_erp/modules/design_engineering/module.py:26 |
documents |
Document management with versioning and approval workflows | src/cluster_erp/modules/documents/module.py:29 |
fleet |
Fleet management: vehicles, machines, custom tracking | src/cluster_erp/modules/fleet/module.py:150 |
intranet |
Intranet: news, policies, directory, leave, requests, delivery | src/cluster_erp/modules/intranet/module.py:45 |
inventory |
Inventory management: warehouses, stock levels, batch and serial tracking | src/cluster_erp/modules/inventory/module.py:27 |
logs |
Activity and error logging | src/cluster_erp/modules/logs/module.py:26 |
mail |
Connect external mail accounts (Gmail/Outlook/IMAP) and read/compose mail | src/cluster_erp/modules/mail/module.py:29 |
nesting |
Sheet-metal nesting optimization: layout planning and material utilization | src/cluster_erp/modules/nesting/module.py:26 |
owned_organisations |
Manage owned organisations, departments, and employees | src/cluster_erp/modules/owned_organisations/module.py:29 |
parties |
Manage all parties: individuals, organisations, addresses, and communication channels | src/cluster_erp/modules/parties/module.py:33-35 |
privacy |
Data-subject requests: access, rectification, erasure, objection | src/cluster_erp/modules/privacy/module.py:36 |
procurement |
Purchase requests, purchase orders, critical materials, MRP, substitution groups | src/cluster_erp/modules/procurement/module.py:29 |
production |
Production management: work centers, routings, production orders | src/cluster_erp/modules/production/module.py:29 |
products_and_services |
Material master: products, services, categories, and units | src/cluster_erp/modules/products_and_services/module.py:29 |
projects |
Project management, kick-off, schedules, actions, and fixtures | src/cluster_erp/modules/projects/module.py:29 |
purchasing_quotations |
Supplier quotation register: standalone and RFQ-linked quotations, comparison, award, price history | src/cluster_erp/modules/purchasing_quotations/module.py:30-33 |
quotations |
Quotation management with feasibility, costing, and approval workflow | src/cluster_erp/modules/quotations/module.py:29 |
records |
Record lifecycle: deactivation reasons and reactivation | src/cluster_erp/modules/records/module.py:34 |
sales_orders |
Sales orders: PO check and frozen PO revisions, units, shipments, proof of delivery, export documents | src/cluster_erp/modules/sales_orders/module.py:29-32 |
subscriptions |
Recurring subscription plans and customer subscriptions | src/cluster_erp/modules/subscriptions/module.py:26 |
Tablodaki bazı açıklamalar hafifçe düzenlenmiştir: noktalama tireleri virgülle değiştirilmiş, "&" yerine "and" yazılmış ve sales_orders metninden "(assets)" ile "with packages, transport" sözcükleri çıkarılmıştır. Her modülün modüller bölümünde kendi sayfası vardır.
Neden böyle kurulmuştur¶
Projenin yazılı mühendislik kuralları hedefi belirtir: ürün tüm ülkeleri hedefler. Dil, para birimi, tarih biçimi, adres yapısı ve vergi sistemi ülkeden bağımsız çalışmalıdır. Yeni bir dil, kod değişikliği gerektirmeyen yeni bir JSON dosyasıdır. Ülkeler, adres seviyeleri ve para birimleri gibi referans veriler kodda değil veritabanında tutulur.
Kod bu hedefin bazı kısımlarını yansıtır:
- Web uygulaması dil listesini
webapp/i18n/languages.jsondosyasından okur; dosyatrveendillerini listeler. - Para birimleri, ISO 4217 kümesinden tohumlanan
core_currenciessatırlarıdır (src/cluster_erp/core/currencies.py:57-89,src/cluster_erp/core/currencies.py:1811-1852). - Ülkeler, açılışta
partiesmodülünün tohumladığıparties_countriessatırlarıdır (src/cluster_erp/modules/parties/settings/models.py:12-13,src/cluster_erp/modules/parties/module.py:41-42).
Ayrıntılar için referans veriler ve çekirdek i18n sayfasına bakın.
Kurallar ve sınırlar¶
Projenin yazılı mühendislik kuralları bağlayıcı kuralları listeler: tahmin yok, sabit değer gömme yok, modüller arası doğrudan çağrı yok, parada Decimal, fiziksel silme yok, zorunlu ürün, model ve versiyon kırılımı ve metadata güdümlü web uygulaması. Platform bölümü her kuralı uygulayan kodu gösterir; kararlar bölümü kuralları kayda geçirir.
Diğer parçalarla etkileşim¶
Sunucu, istemciler ve modüller üç yerde buluşur: HTTP API, metadata belgesi ve EventBus. Mimariye genel bakış bunu tek bir şemayla gösterir.
Sınırlar ve açık noktalar¶
- FastAPI uygulaması
0.1.0sürümünü bildirir (src/cluster_erp/server/app.py:1296-1298);pyproject.toml:7de aynısını bildirir. Git geçmişindev0.1.37gibi sürüm etiketleri vardır. İki sürüm numarasının ilişkisi koddan belirlenemedi. - Bir kurulumun hangi ülkelere hizmet verdiği çalışma zamanı verisidir. Koddan belirlenemedi.
Tanıtılan terimler¶
| Terim | Kod tanımlayıcısı | Tanım | Türkçe terim | Kaynak |
|---|---|---|---|---|
| module | ModuleBase |
src/cluster_erp/modules/ altında kendi rotalarına, olaylarına ve metadata'sına sahip arka uç paketi. |
modül | src/cluster_erp/core/module_base.py:14 |
| web app | webapp/ |
Sunucunun /app yolunda sunduğu, webapp/ içindeki tarayıcı istemcisi. |
web uygulaması | src/cluster_erp/server/app.py:1633-1644 |
İlgili sayfalar¶
92f8051 numaralı commit ile 2026-11-13 tarihinde doğrulandı.