Zum Inhalt

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.