Three-layer data platform: Python ingests messy sources, Spring serves governed APIs, Angular + eCharts gives operators drill-down — not one-off BI exports.
POS and finance exports land in staging via nightly Python jobs. Spring exposes versioned REST aggregates. Chart configs stored as data — new metrics without template rewrites.
| Layer | Role | Separate because |
|---|---|---|
| Python | Ingest, cleanse, heavy SQL | Fast iteration on source file chaos |
| Spring | Auth, APIs, business rules | Typed contracts; cacheable aggregates |
| Angular | Operator UI | Reusable eCharts across business units |
source_batch_idGerman buyer programme. Client identity available under NDA.