OPC -- Order Production Control¶
Modulare Auftragssteuerung und Produktionsüberwachung für KMU.
OPC ist ein System zur zentralen Verwaltung von Aufträgen, Positionen und Produktionsschritten. Es ersetzt manuelle Prozesse und Excel-Listen durch eine strukturierte, webbasierte Lösung, die direkt mit dem bestehenden ERP-System kommuniziert.
Tech Stack¶
| Komponente | Technologie |
|---|---|
| Backend API | .NET 10, ASP.NET Core |
| Frontend | Blazor, MudBlazor 9 |
| Datenbank | PostgreSQL 16, Entity Framework Core |
| Deployment | Docker Compose, GitHub Actions |
| Monitoring | Prometheus, Health Checks |
Architektur¶
ERP-agnostisches Design¶
Die zentrale Designentscheidung von OPC: Die API kennt kein spezifisches ERP-System. Jedes ERP wird als separates Sync-Service-Projekt angebunden, das ein gemeinsames Interface (IErpSyncOrchestrator) implementiert.
graph LR
A[Bexio Sync] -->|ImportOrderDto| B[OPC API]
C[Anderes ERP] -->|ImportOrderDto| B
B --> D[PostgreSQL]
B --> E[Blazor PWA] Diese Architektur ermöglicht es, neue ERP-Systeme anzubinden, ohne die Kern-API zu verändern. Die Kommunikation erfolgt über generische DTOs (ImportOrderDto, ImportBatchDto), sodass die API keine ERP-spezifische Logik enthält.
Modularer Aufbau¶
- OrderService.API -- Zentrale REST-API, vollständig ERP-agnostisch
- OPC.PWA.Host -- Blazor Progressive Web App für die Benutzeroberfläche
- BexioSyncService -- Beispiel-Implementation für Bexio als ERP-Plugin
- Persistence Layer -- Entity Framework Core mit Fluent API Konfiguration
Kernfunktionen¶
- Auftragsverwaltung -- Import, Anzeige und Verwaltung von Aufträgen aus dem ERP
- Positionsverwaltung -- Detaillierte Positionen mit Stücklisten und Materialzuordnung
- Produktionsüberwachung -- Status-Tracking über den gesamten Produktionsprozess
- Automatischer Sync -- Regelmässiger Abgleich mit dem ERP-System via Hintergrund-Service
- Backup-System -- Automatisierte Datenbank-Backups mit konfigurierbarer Retention
Deployment¶
OPC wird als Docker-Compose-Stack betrieben. GitHub Actions baut die Container-Images, eine private Registry speichert sie, und Watchtower auf dem Ziel-NAS pulled automatisch neue Versionen. Dieses Setup ermöglicht Zero-Downtime-Updates ohne manuelles Eingreifen.