A full-stack Manufacturing Operations Management system (MOM) built to manage product data, production planning and execution, inventory, traceability, and quality for discrete manufacturing environments. Designed and developed as a single-tenant, event-sourced platform deployed on-premise via Docker.
Note: This is a production system actively used by manufacturing companies in high compliance sectors such as electronics, medical devices, defence and aerospace. Some configuration files and credentials have been excluded from this repository.
┌──────────────┐ ┌───────────────┐
│ Main Webapp │ │ Warehouse App │
│ Vue 3 / SPA │ │ Vue 3 / Mobile│
└──────┬───────┘ └──────┬────────┘
│ │
└────────┬───────────┘
│
┌────────▼────────┐
│ Traefik │
│ Reverse Proxy │
└────────┬────────┘
│
┌────────▼────────┐
│ FastAPI (API) │
│ Event-Sourced │
└───┬─────┬────┬──┘
│ │ │
┌─────────┘ │ └─────────┐
│ │ │
┌──────▼──────┐ ┌──────▼──────┐ ┌────▼─────┐
│ ArangoDB │ │ Kafka │ │ Prefect │
│ Multi-Model│ │ Streaming │ │ Workflows│
└─────────────┘ └─────────────┘ └──────────┘
- Event Sourcing — Factory activities are modeled through immutable events, from which state is derived, enabling full auditability and traceability (critical for manufacturing compliance). Every mutation is modeled as an
Eventwith a transactionalapply()method. - Multi-Model Database — ArangoDB provides document storage and graph traversal in a single engine, used for everything from inventory hierarchies to production genealogy.
- Async Workflows — Long-running operations (e.g. bulk inventory adjustments across 500+ records) are offloaded to Prefect, keeping the API responsive. The workflow engine is also used to add custom plugins to integrate the platform with ERPs and other business systems.
- Real-time Communication — Kafka for inter-service event streaming, WebSockets and SSE for live UI updates.
| Layer | Technologies |
|---|---|
| Backend API | Python 3.11, FastAPI, Pydantic v2, Gunicorn/Uvicorn |
| Database | ArangoDB 3.11 (documents + graphs) |
| Messaging | Apache Kafka (KRaft mode) |
| Workflows | Prefect 3 |
| Frontend | Vue 3, Quasar 2, Pinia, Vite, vue-i18n |
| Infrastructure | Docker, Docker Swarm, Traefik v2 |
| CI/CD | GitLab CI (tag-triggered builds) |
| Deployment | Ansible (single-node provisioning) |
| Other | WeasyPrint/ReportLab (PDF), openpyxl (Excel), httpx, CodeMirror 6 |
- Work order lifecycle management with status-driven queue ordering
- Operator job assignment and phase tracking
- Serial number management with BOM-linked genealogy
- Batch and step execution tracking
- Interactive work instructions backed by rich media (images, video, documents)
- Warehouse position hierarchy with product-based and position-based counting
- Count session lifecycle (planned → started → completed → async application)
- Bulk import/export (XLSX/CSV) with conflict detection and resolution
- Async count application via Prefect for large-scale adjustments
- Component linking and serial genealogy
- Production event audit trail (powered by event sourcing)
- No code development of data gathering forms
- Task and Issue tracking with custom types, assignments, entity linking
- Dedicated messaging threads for work orders, issues, serials, tasks
- Drag and Drop Report/Label template design
- Auto filling of forms from UI context
- PDF generation and download
- ZPL integration (industrial label printing language)
├── backend/
│ ├── api/ # FastAPI application (endpoints, models, events, managers)
│ ├── workflow/ # Prefect flows (inventory, production, cleanup)
│ ├── commons/ # Shared logic across backend services
│ └── reports/ # Reporting service
├── webapps/
│ ├── main/ # Primary SPA (Vue 3 + Quasar + Vite)
│ └── warehouse/ # Mobile-first warehouse app (Vue 3 + Quasar + Vite)
├── deploy/
│ ├── compose/ # Service configuration / Docker Compose files (dev, prod, TLS config, etc.)
│ └── config/ # Environment configs, Traefik, Prometheus
├── db/ # Migrations, queries, backup scripts
├── testing/ # Robot Framework suites
├── km/ # Living documentation (architecture, domain logic)
└── cli/ # CLI tools (data generation, utilities)
- Automated Testing framework
- User oriented/UI documentation
- Cloud readiness