# HartOMat HartOMat ist eine CAD-, Medien- und Render-Automatisierungsplattform für technische Produktvisualisierung. Das System verbindet STEP/CAD-Import, Materialzuordnung, Produkt- und Asset-Verwaltung, Render-Templates, Output-Typen und einen node-basierten Workflow-Editor in einer gemeinsamen Produktionsoberfläche, ohne den bestehenden Legacy-Pfad zu verlieren. Eine ausführlichere Projektübersicht mit Screenshots gibt es in [docs/PROJECT_OVERVIEW.md](docs/PROJECT_OVERVIEW.md). ## Kurzüberblick | Bereich | Zweck | | --- | --- | | CAD Intake | STEP-Dateien importieren, aufbereiten und in produktionsfähige Assets überführen | | Product Ops | Produkte, Medien, Orders, Asset Libraries und Pricing zentral verwalten | | Rendering | Blender-Templates, GPU-Worker und definierte Output Types für reproduzierbare Bilder | | Workflows | Legacy-sichere und graph-native Produktionsketten parallel betreiben | ## Kernfunktionen - Import von CAD- und Mediendaten mit nachgelagerter Material- und Metadatenverarbeitung - Verwaltung von Produkten, Medien, Asset Libraries, Output Types, Pricing Tiers und Orders - Blender-basierte Render-Pipeline mit Template-Unterstützung und GPU-Rendering - Legacy-kompatible Produktionspfade parallel zu graph-basierten Workflows - Workflow-Editor unter `/workflows` mit backend-definierten Nodes und Settings-Schemas ## Architektur - Frontend: React, TypeScript, Vite - Backend: FastAPI, SQLAlchemy, Alembic, Celery - Infrastruktur: PostgreSQL, Redis, MinIO, Docker Compose - Rendering: Blender Worker mit GPU-Support ## Screenshots ![Dashboard](docs/assets/screenshots/dashboard.png) ![Workflow Editor](docs/assets/screenshots/workflow-editor.png) ![Product Detail](docs/assets/screenshots/product-detail.png) ![Admin](docs/assets/screenshots/admin.png) ## Quick Start ### Voraussetzungen - Docker und Docker Compose - Optional für GPU-Rendering: NVIDIA-Treiber und funktionierende Docker-GPU-Weitergabe ### Lokaler Start 1. Konfiguration anlegen: ```bash cp .env.example .env ``` 2. Stack starten: ```bash ./scripts/start.sh ``` 3. Oberflächen öffnen: - Frontend: `http://localhost:5173` - Backend API / Swagger: `http://localhost:8888/docs` - MinIO Console: `http://localhost:9001` ### Standard-Login für lokale Seeds Beim Container-Start werden Migrationen, Templates und ein Admin-Benutzer gesät. Für eine lokale Standardinstallation ist aktuell typischerweise verfügbar: - E-Mail: `admin@hartomat.com` - Passwort: `Admin1234!` Das ist nur für lokale Entwicklung gedacht und sollte für jede nicht-lokale Umgebung sofort ersetzt werden. ### Nützliche Kommandos ```bash ./scripts/restart.sh ./scripts/restart.sh --build ./scripts/restart.sh backend ./scripts/stop.sh docker compose logs -f ``` ## Workflow-System HartOMat führt zwei Welten parallel: - den bestehenden Legacy-Produktionspfad für sichere Rückwärtskompatibilität - den neuen node-basierten Graph-Workflow für modulare, editorfähige Produktionsketten Die laufende Migrations- und Architekturarbeit ist hier dokumentiert: - [docs/workflows/WORKFLOW_MIGRATION_PLAN.md](docs/workflows/WORKFLOW_MIGRATION_PLAN.md) - [docs/workflows/NODE_BASED_PRODUCTION_ARCHITECTURE.md](docs/workflows/NODE_BASED_PRODUCTION_ARCHITECTURE.md) - [docs/workflows/WORKFLOW_IMPLEMENTATION_BACKLOG.md](docs/workflows/WORKFLOW_IMPLEMENTATION_BACKLOG.md) ## Typischer Ablauf 1. CAD- oder Mediendaten importieren. 2. Produkt- und Materialdaten prüfen oder anreichern. 3. Output Type und Render Template wählen. 4. Legacy- oder Graph-Workflow ausführen. 5. Ergebnis im Produkt, Auftrag oder Medienbereich prüfen. ## Projektstruktur ```text backend/ FastAPI-App, Domänenlogik, Migrationen, Worker frontend/ React/Vite-Frontend render-worker/ Blender- und Render-spezifische Laufzeit scripts/ Start-, Restart-, Vergleichs- und QA-Skripte docs/ Architektur-, Migrations- und Projektdokumentation ```