Ein umfassendes ERP-System für Großhandel, hier als Kundenprojekt für einen Landhandel, das speziell auf die Anforderungen der Landwirtschaftsbranche zugeschnitten ist.
- Frontend-Server läuft jetzt stabil auf Port 3010 (oder alternativem Port, falls belegt)
- Backend-Server läuft auf Port 8000
- Verbesserte Babel- und ESBuild-Konfiguration für React/JSX
- Optimierte PowerShell-Skripte für Windows-Kompatibilität
- Behobene Port-Konflikte und Dependency-Probleme
Das ERP-System besteht aus mehreren Komponenten:
- Frontend: React-basierte Single-Page-Application
- Backend: FastAPI-basierte Microservices
- Finance-Service: Eigenständiger Microservice für Finanzen und Buchhaltung
- Observer-Service: Überwachungsdienst für Systemperformance
# PowerShell-Skript für einfachen Start
.\scripts\start_frontend.ps1oder manuell:
cd frontend
npm run devDas Frontend ist dann unter http://localhost:3010 verfügbar (oder einem alternativen Port).
.\start_finance_311.ps1Der Finance-Service ist dann unter http://localhost:8007 verfügbar.
.\start_beleg_service_311.ps1Der Beleg-Service ist dann unter http://localhost:8005 verfügbar.
# PowerShell-Skript für einfachen Start
.\scripts\start_backend.ps1oder manuell:
cd backend
uvicorn main:app --reloadDas Backend ist dann unter http://localhost:8000 verfügbar.
Das Projekt ist in mehrere Hauptkomponenten aufgeteilt:
AI_driven_ERP/
├── frontend/ # React-Frontend (Vite)
│ ├── src/ # Quellcode
│ ├── public/ # Statische Dateien
│ ├── package.json # Frontend-Abhängigkeiten
│ └── vite.config.js # Vite-Konfiguration
├── backend/ # FastAPI-Backend
│ ├── app/ # Backend-Anwendung
│ ├── tests/ # Tests
│ └── requirements.txt # Python-Abhängigkeiten
├── database/ # Datenbankdateien
├── scripts/ # Hilfsskripte
│ ├── start_frontend.ps1 # Frontend-Starter (PowerShell)
│ ├── van-frontend-validator.ps1 # VAN-Modus Validator
│ └── start_backend.ps1 # Backend-Starter (PowerShell)
└── memory-bank/ # Projektwissen und Dokumentation
├── tasks.md # Aktuelle Aufgaben
├── systemPatterns.md # Architekturmuster
└── activeContext.md # Aktiver Entwicklungskontext
WICHTIG: Vor dem Start der Frontend-Entwicklung sollte immer der VAN-Modus (Validation and Navigation) ausgeführt werden, um eine korrekte Entwicklungsumgebung sicherzustellen:
# VAN-Modus Frontend-Validator ausführen
./scripts/van-frontend-validator.ps1Der VAN-Modus Validator prüft:
- Korrekte Verzeichnisstruktur
- Vorhandensein aller benötigten Konfigurationsdateien
- JSX-Konfiguration in vite.config.js
- Installierte Abhängigkeiten
- PowerShell-Kompatibilität
- Portverfügbarkeit
Bei Problemen korrigiert der Validator automatisch viele typische Fehler oder gibt spezifische Anweisungen zur Behebung.
- Node.js (v18 oder höher)
- npm (v7 oder höher)
- PowerShell 5.1 oder höher (für Windows)
-
Frontend-Abhängigkeiten installieren:
cd frontend npm install
-
Frontend-Entwicklungsserver starten:
# Option 1: PowerShell-Skript verwenden (EMPFOHLEN) ./scripts/start_frontend.ps1 # Option 2: Direkter Befehl im frontend-Verzeichnis cd frontend npm start
Die Anwendung wird unter http://localhost:5173 verfügbar sein (oder einem alternativen Port, falls 5173 bereits belegt ist).
Bei der Entwicklung unter Windows mit PowerShell sind folgende Besonderheiten zu beachten:
-
Kein
&&für Befehlsverkettung# FALSCH: cd frontend && npm start # RICHTIG: cd frontend npm start # ODER als einzeilige Alternative mit Semikolon: cd frontend; npm start
-
Pfade mit Leerzeichen benötigen Anführungszeichen
cd "C:\Mein Pfad\mit Leerzeichen\frontend" -
Umgebungsvariablen setzen (temporär)
$env:PORT=5000 npm start # Oder in einer Zeile: $env:PORT=5000; npm start
- Problem: Das Skript kann nicht gefunden werden
- Lösung:
- Sicherstellen, dass man im
frontend/-Verzeichnis ist:cd frontend - Überprüfen, ob
package.jsondie notwendigen Skripte enthält - VAN-Modus-Validator ausführen:
../scripts/van-frontend-validator.ps1
- Sicherstellen, dass man im
- Problem: "The JSX syntax extension is not currently enabled"
- Lösung:
vite.config.jsüberprüfen und sicherstellen, dass die esbuild-Konfiguration korrekt ist:esbuild: { loader: { '.js': 'jsx', '.ts': 'tsx' }, jsxFactory: 'React.createElement', jsxFragment: 'React.Fragment' }
- PowerShell-Skript
./scripts/start_frontend.ps1verwenden, das dies automatisch korrigiert
- Problem: "Cannot find module 'typescript'"
- Lösung:
- TypeScript installieren:
npm install typescript --save-dev - PowerShell-Skript
./scripts/start_frontend.ps1verwenden, das dies automatisch erkennt und korrigiert
- TypeScript installieren:
- Problem: Der Standardport ist bereits belegt
- Lösung:
- Anderen Port angeben:
npm start -- --port 5000 - Oder das PowerShell-Skript
./scripts/start_frontend.ps1verwenden, das automatisch einen freien Port findet
- Anderen Port angeben:
- Problem:
&&für Befehlsverkettung führt zu Fehlern - Lösung:
- Befehle nacheinander ausführen:
cd frontend npm start
- Oder mit Semikolon trennen:
cd frontend; npm start - Oder das PowerShell-Skript
./scripts/start_frontend.ps1verwenden
- Befehle nacheinander ausführen:
- Python 3.10 oder höher
- FastAPI
- PostgreSQL (optional, für Produktionsumgebung)
-
Python-Abhängigkeiten installieren:
cd backend pip install -r requirements.txt -
Backend-Server starten:
# Option 1: PowerShell-Skript verwenden ./scripts/start_backend.ps1 # Option 2: Direkter Befehl cd backend uvicorn app.main:app --reload
Die API wird unter http://localhost:8000 verfügbar sein. Die API-Dokumentation ist unter http://localhost:8000/docs erreichbar.
Wenn alle anderen Methoden fehlschlagen, kann das Frontend mit einem einfachen HTTP-Server gestartet werden:
# Wechsle ins Frontend-Verzeichnis
cd frontend
# Starte einen einfachen HTTP-Server
npx http-server -p 8080 .Um zu prüfen, welche Ports bereits belegt sind:
# Zeige alle offenen TCP-Verbindungen an
Get-NetTCPConnection -State Listen | Sort-Object -Property LocalPort | Format-Table LocalPort, OwningProcess, State
# Prozess-ID zu Name auflösen
Get-Process -Id <PID>Bei hartnäckigen Problemen mit Konfigurationsdateien:
# Führe VAN-Modus-Validator mit -reset Parameter aus
./scripts/van-frontend-validator.ps1 -resetDie Projektdokumentation wird in der memory-bank/ verwaltet und enthält:
- tasks.md: Aktuelle Aufgaben und Fortschritte
- systemPatterns.md: Architekturmuster und Designentscheidungen
- activeContext.md: Aktiver Entwicklungskontext und wichtige Hinweise
- archive/archive-frontend-startup-problem.md: Dokumentation zu den Frontend-Startproblemen und deren Lösung
Anweisungen zum Deployment finden Sie in der deployment.md im Projektverzeichnis.
Das ERP-System verfügt über ein flexibles Theme-System, das verschiedene Darstellungsmodi und Designvarianten unterstützt:
Um die Theme-Demo zu starten und alle verfügbaren Designs zu testen:
# Option 1: npm-Skript verwenden
npm run theme-demo
# Option 2: PowerShell-Skript direkt ausführen
./start_theme_demo.ps1Das Theme-System unterstützt folgende Modi:
- Hell (Standard): Helles Design für normale Verwendung
- Dunkel: Augenfreundliches dunkles Design
- Hoher Kontrast: Barrierefreies Design mit verstärktem Kontrast
Zusätzlich sind verschiedene Designvarianten verfügbar:
- Default: Standarddesign
- Modern: Modernes, flaches Design
- Classic: Klassisches, strukturiertes Design
- Odoo: An Odoo-ERP angelehnte Designvariante
Der integrierte KI-Assistent ermöglicht die Anpassung des Designs durch natürlichsprachliche Befehle wie:
- "Wechsle zum dunklen Modus"
- "Ändere die Akzentfarbe zu Blau"
- "Erhöhe den Kontrast"
Die Theme-Einstellungen sind über die ThemeSettings-Komponente zugänglich und erlauben die manuelle Anpassung von:
- Farbschema
- Schriftarten
- Abstände und Radien
- Animationen und Übergänge
Eine detaillierte Dokumentation des Theme-Moduls finden Sie in der Datei frontend/README_THEME.md.
Dieses Projekt ist urheberrechtlich geschützt und nur für die interne Verwendung bei Folkerts Landhandel bestimmt.
Das System bietet ein flexibles Theme-System, das verschiedene Erscheinungsbilder unterstützt:
- Theme-Modi: Hell, Dunkel und Hoher Kontrast für Barrierefreiheit
- Theme-Varianten: Default, Odoo-Stil, Modern und Classic
- Anpassbare Parameter: Schriftgröße, Abstände, Farbschemata und mehr
- Natürlichsprachliche Steuerung: Änderung des Themes durch einfache Befehle
Demo starten:
npm run theme-demo- Flexibles Theme-System mit verschiedenen Modi (Hell, Dunkel, Hoher Kontrast)
- Verschiedene Theme-Varianten (Default, Modern, Classic, Odoo)
- Natürlichsprachliche Steuerung über LLM-Interface
- Umfassende Barrierefreiheitsfunktionen
- Erweitertes Datenmodell für umfassende Artikel-Stammdaten
- KI-Unterstützung für Stammdatenpflege:
- Automatische Klassifikation von Artikeln
- Preisempfehlungen basierend auf Marktdaten
- Generierung von Produktbeschreibungen und SEO-Texten
- Anomalieerkennung in Artikeldaten
- Mehrseitiger Editor für verschiedene Stammdatenbereiche
- Integration mit bestehenden Artikeldaten
Ein modernes, KI-gesteuertes ERP-System mit asynchroner Aufgabenverarbeitung durch Redis und Celery.
- FastAPI Server: RESTful API für Geschäftsprozesse und Datenoperationen
- Redis & Celery: Asynchrone Aufgabenverarbeitung für rechenintensive Operationen
- SQLAlchemy: ORM für Datenbankoperationen
- Prometheus: Monitoring und Metriken
- React: UI-Framework für das Frontend
- Material-UI: Komponenten-Bibliothek für ein modernes Design
- TypeScript: Statisch typisiertes JavaScript für robusteren Code
Die Integration von Redis und Celery ermöglicht die asynchrone Verarbeitung von rechenintensiven Aufgaben im ERP-System. Die Implementierung umfasst:
- Redis als Message Broker und Result Backend für Celery
- Celery für die asynchrone Verarbeitung von Tasks
- Flower für das Monitoring von Celery-Tasks
- API-Endpunkte zur Interaktion mit Celery-Tasks
- PowerShell-Skripte zum Starten aller Komponenten
- Redis (Port 6379): Message Broker und Result Backend
- Celery Worker: Verarbeitet Tasks aus verschiedenen Queues (default, reports, imports, exports, optimization)
- Flower (Port 5555): Monitoring-Web-Interface für Celery
- Demo-Server (Port 8003): Einfacher Server mit Celery-Integration
- Redis für Windows von https://github.com/microsoftarchive/redis/releases herunterladen
- Dateien in das Verzeichnis
redisim Projektverzeichnis extrahieren - Redis mit
redis\redis-server.exestarten
python scripts/python_deps_install.py.\scripts\start_system_improved.ps1Nach dem Start des Servers kann die Swagger-Dokumentation unter http://localhost:8003/docs aufgerufen werden.
- Robuste Fehlerbehandlung für Tasks implementieren
- Erweiterung um weitere Task-Typen (Import/Export, Optimierung)
- Persistente Redis-Konfiguration für Produktionsumgebungen
- Implementierung von Sicherheitsfeatures
- Docker-Compose-Setup für die Entwicklungsumgebung
Zur Steuerung der GENXAIS-Framework-Zyklen steht eine einfache Streamlit-basierte UI zur Verf\u00fcgung. Die Anwendung l\u00e4sst sich mit folgendem Skript starten:
./scripts/start_stream_ui.shUnter Windows kann das analoge PowerShell-Skript genutzt werden:
./scripts/start_stream_ui.ps1Nach dem Start ist das Interface \u00fcblicherweise unter http://localhost:8501 erreichbar.