diff --git a/README.md b/README.md new file mode 100644 index 0000000..a4fa65a --- /dev/null +++ b/README.md @@ -0,0 +1,99 @@ +# HartOMat + +HartOMat ist eine CAD-, Medien- und Render-Automatisierungsplattform für technische Produktbilder. Das System kombiniert STEP/CAD-Import, Materialzuordnung, Produkt- und Asset-Verwaltung, Pricing/Output-Typen, Blender-Render-Templates und einen node-basierten Workflow-Editor, ohne den bestehenden Legacy-Produktionspfad zu brechen. + +Eine ausführlichere Projektübersicht mit Screenshots gibt es in [docs/PROJECT_OVERVIEW.md](docs/PROJECT_OVERVIEW.md). + +## 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 + +## 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` + +### Nützliche Betriebsbefehle + +```bash +./scripts/restart.sh +./scripts/restart.sh --build +./scripts/restart.sh backend +./scripts/stop.sh +docker compose logs -f +``` + +## 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. + +## 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) + +## 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) + +## 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 +``` diff --git a/docs/PROJECT_OVERVIEW.md b/docs/PROJECT_OVERVIEW.md new file mode 100644 index 0000000..5d92389 --- /dev/null +++ b/docs/PROJECT_OVERVIEW.md @@ -0,0 +1,108 @@ +# HartOMat Project Overview + +## Überblick + +HartOMat ist eine Produktionsplattform für technische Visualisierung. Die Anwendung verbindet CAD-Import, Datenaufbereitung, Material-Mapping, Produkt- und Asset-Verwaltung sowie eine Blender-basierte Render-Pipeline in einer gemeinsamen Oberfläche. Parallel dazu wird die Render-Orchestrierung von einem Legacy-Workflow auf ein node-basiertes Produktionsmodell migriert, ohne dass der bisherige Produktionsweg ausfallen darf. + +## Was das System heute abdeckt + +- STEP/CAD-Import mit nachgelagerter Aufbereitung +- Produkt-, Medien-, Order- und Admin-Oberflächen +- Render Templates für definierte Licht- und Kamera-Setups +- Output Types als steuerbare Produktionsprofile +- Graph-basierter Workflow-Editor mit Legacy-Kompatibilität +- Worker-basierte Renderausführung mit Docker, Celery und Blender + +## Laufende Architekturidee + +Das Zielbild ist eine modulare Produktionskette, in der einzelne Prozessschritte als wiederverwendbare Backend-Module im Workflow-Editor verfügbar sind. Dazu gehören insbesondere: + +- CAD-Import und Dateiauflösung +- Geometrie- und GLB-Aufbereitung +- Materialzuordnung und Auto-Population +- Template-Auflösung +- Blender-Rendering +- Ergebnis-Persistierung und Benachrichtigung + +Der Legacy-Weg bleibt dabei als Sicherheitsnetz parallel aktiv. + +Weiterführende Architektur- und Migrationsdokumente: + +- [WORKFLOW_MIGRATION_PLAN.md](workflows/WORKFLOW_MIGRATION_PLAN.md) +- [NODE_BASED_PRODUCTION_ARCHITECTURE.md](workflows/NODE_BASED_PRODUCTION_ARCHITECTURE.md) +- [WORKFLOW_IMPLEMENTATION_BACKLOG.md](workflows/WORKFLOW_IMPLEMENTATION_BACKLOG.md) + +## HowTo + +### 1. Umgebung starten + +Alle Kommandos werden vom Repo-Root aus ausgeführt. + +```bash +cp .env.example .env +./scripts/start.sh +``` + +Danach sind standardmäßig erreichbar: + +- Frontend: `http://localhost:5173` +- Backend API: `http://localhost:8888/docs` +- MinIO Console: `http://localhost:9001` + +### 2. Mit lokalem Admin anmelden + +Der Backend-Startprozess führt Migrationen und Seeds aus. Für lokale Entwicklungsumgebungen ist standardmäßig ein Admin-Benutzer vorhanden: + +- E-Mail: `admin@hartomat.com` +- Passwort: `Admin1234!` + +### 3. Zentrale Bereiche im UI + +- `/` zeigt Dashboard, KPIs und den operativen Einstieg +- `/products` und einzelne Produktseiten bündeln Medien, Vorschauen und Produktdaten +- `/admin` verwaltet Output Types, Render Templates, Asset Libraries und Systemeinstellungen +- `/workflows` ist die Arbeitsfläche für Legacy-kompatible Graph-Workflows + +### 4. Stack steuern + +```bash +./scripts/restart.sh +./scripts/restart.sh --build +./scripts/restart.sh backend +./scripts/stop.sh +docker compose ps +docker compose logs -f +``` + +## Screenshots + +### Dashboard + +![HartOMat Dashboard](assets/screenshots/dashboard.png) + +Das Dashboard ist der operative Einstieg in Produkte, Aufträge, KPIs und offene Prozessschritte. + +### Workflow Editor + +![HartOMat Workflow Editor](assets/screenshots/workflow-editor.png) + +Der Workflow-Editor ist die Zieloberfläche für die modulare Produktionskette. Hier werden Legacy-Bridge-Nodes und graph-native Nodes zusammengeführt. + +### Product Detail + +![HartOMat Product Detail](assets/screenshots/product-detail.png) + +Auf der Produktdetailseite laufen Geometrie, Medien, Materialzuordnung, Vorschau und Folgeaktionen zusammen. + +### Admin + +![HartOMat Admin](assets/screenshots/admin.png) + +Die Admin-Oberfläche bündelt die Konfiguration von Render Templates, Output Types, Asset Libraries und Systemparametern. + +## Betriebsnotizen + +- Docker Compose nutzt den Stack-Namen `hartomat`. +- Der Backend-Container führt beim Start Migrationen und Seeds aus. +- GPU-Rendering ist auf den Blender-Worker ausgelegt und erwartet funktionierende Host-/Docker-GPU-Weitergabe. +- Für tiefergehende Workflow- und Paritätsarbeit liegen zusätzliche Dokumente unter [`docs/workflows/`](workflows/). diff --git a/docs/assets/screenshots/admin.png b/docs/assets/screenshots/admin.png new file mode 100644 index 0000000..e6b1ed7 Binary files /dev/null and b/docs/assets/screenshots/admin.png differ diff --git a/docs/assets/screenshots/dashboard.png b/docs/assets/screenshots/dashboard.png new file mode 100644 index 0000000..d67c77f Binary files /dev/null and b/docs/assets/screenshots/dashboard.png differ diff --git a/docs/assets/screenshots/product-detail.png b/docs/assets/screenshots/product-detail.png new file mode 100644 index 0000000..6b5a4f3 Binary files /dev/null and b/docs/assets/screenshots/product-detail.png differ diff --git a/docs/assets/screenshots/workflow-editor.png b/docs/assets/screenshots/workflow-editor.png new file mode 100644 index 0000000..ab10319 Binary files /dev/null and b/docs/assets/screenshots/workflow-editor.png differ