← Ventures — GCStore Constellation

ERP — Level-2 Deep Dive

The ERP is the operational control plane of the venture: one cockpit that runs the business end-to-end — purchasing → inventory → sales → COGS → KPIs → fiscal close — and owns product truth (the catalog of listings, their options/variants, and the media library). It is used by the owner and a small set of role-gated internal users (partner, accountant, auditor). It is also the admin surface for GCStore Core: GCStore Core has no UI of its own, so the ERP is where its catalog, entitlements and fleet offers are administered. The storefront is fed from here; the financials are closed from here.

ERP Level-2 internal architecture

Internal architecture

A FastAPI backend and an Angular admin SPA over a relational store, organised as cooperating domains rather than a monolith of endpoints.

Rejected alternatives worth noting: per-sale money was not split across lines (the views derive it — one source of truth, no rounding drift); listing prices were not stored only per-variant (the base+delta generator makes bulk pricing tractable); the storefront integration is system-to-system, authenticated with a shared key rather than a user token — machine-to-machine contract exchange kept cleanly separate from the ERP's own operator sign-in.

Interfaces

Tech stack

Backend: Python · FastAPI · SQLAlchemy Core (async driver) · Pydantic; Pillow (+ HEIF) for media processing; async HTTP client for the admin proxy and outbox delivery. Frontend: Angular — standalone components, signals, reactive forms, role route-guards. Data: MariaDB, kept as the ERP's own database (separate from the shared app-data plane); view-heavy for the fiscal/ROI layer; append-only history where auditability matters. Deploy: Docker Compose behind the host nginx that owns TLS; background workers in the API process lifecycle.

Status & upcoming features

Production, in daily use for the full control-plane loop. The storefront catalog and sales contracts are live and integrated; the media-into-domain pipeline is live; the fiscal/KPI layer is in use for real close work.