Replit-fähiges Monorepo (Node/Express + React/Vite) für Auftragsverwaltung, Produktionsplanung, und Abrechnung
- /server: Node 20, TypeScript, Express, Prisma ORM, SQLite
- /client: React + Vite + TypeScript, Tailwind, shadcn/ui, TanStack Query
- Prisma Database: SQLite mit vollständigem Schema (siehe
prisma/schema.prisma)
Beide Server gleichzeitig starten:
./dev.shOder mit npx:
npx concurrently "node server/dev.js" "cd client && npx vite --port 5173 --host 0.0.0.0"Dies startet:
- API Server auf http://localhost:3000
- Client/Vite auf http://localhost:5173
Server (Terminal 1):
node server/dev.js
# Läuft auf Port 3000Client (Terminal 2):
cd client && npx vite --port 5173 --host 0.0.0.0
# Läuft auf Port 5173/
├── prisma/
│ ├── schema.prisma # Vollständiges Datenbankschema
│ ├── migrations/ # Datenbank-Migrationen
│ └── dev.db # SQLite Datenbank (entwicklung)
├── server/
│ ├── index.ts # Express Server (Minimal - nur Health Check)
│ ├── dev.js # Server-Runner mit ts-node
│ └── tsconfig.json # TypeScript-Konfiguration
├── client/
│ └── src/ # React App mit Vite
├── shared/ # Geteilte TypeScript Types
├── Procfile # Replit/Deployment-Konfiguration
└── dev.sh # Development-Start-Script
Die SQLite-Datenbank wurde mit Prisma initialisiert und enthält folgende Models:
- User: Benutzer mit Rollen (ADMIN, DISPO, PRODUKTION, LAGER, ABRECHNUNG)
- WorkCenter: Produktionsbereiche mit Kapazitäten
- Order: Aufträge (JTL oder intern)
- SizeTable: Größentabellen für Aufträge
- PrintAsset: Druckdaten für Aufträge
- TimeSlot: Produktionsplanung (15-Min-Raster, 07:00-18:00)
- JTLOrderPosition: JTL-CSV-Import-Positionen
- InvoiceQueueItem: Abrechnungs-Queue
# Prisma Client generieren
npx prisma generate
# Neue Migration erstellen
npx prisma migrate dev --name beschreibung
# Datenbank-Schema ansehen
npx prisma studioAktuell implementiert:
GET /api/health- Health Check Endpoint
Die Monorepo-Skeleton ist komplett eingerichtet. Nächste Implementierungsphasen:
- Backend API: Vollständige REST-Endpoints für Orders, Slots, JTL-Import, Billing
- Frontend: React-Komponenten für Auftragsverwaltung, Planung, Produktion
- Auth: JWT-basierte Authentifizierung
- Business Logic: JTL-CSV-Import, Slot-Planung, Abrechnungs-Workflow
Das Projekt verwendet ein Procfile für Replit-Deployment:
web: npx concurrently "node server/dev.js" "cd client && npx vite --port 5173 --host 0.0.0.0"
- Server läuft auf Port 3000 (konfigurierbar via
PORTenv var) - Client läuft auf Port 5173
- Beide Prozesse laufen parallel im Development-Modus
- TypeScript-Dateien werden via
ts-nodeausgeführt - Hot-Reload aktiviert für Server und Client