1
0
Fork 0
mirror of https://github.com/s-frick/effigenix.git synced 2026-03-28 13:59:36 +01:00
effigenix/backend/docs/mvp/ddd/00-overview.md
Sebastian Frick c2c48a03e8 refactor: restructure repository with separate backend and frontend directories
- Move Java backend to backend/ directory
- Create frontend/ directory for TypeScript TUI and future WebUI
- Update .gitignore for Node.js and worktrees
- Update README.md with new repository structure
- Copy documentation to backend/
2026-02-17 22:08:51 +01:00

83 lines
2.6 KiB
Markdown

# DDD Domain Model - Effigenix Fleischerei-ERP
**Erstellt:** 2026-02-17
**Technologie:** Java 21+
**Architektur:** Domain-Driven Design + Clean Architecture
## Überblick
Dieses Dokument beschreibt das Domain-Driven Design (DDD) Modell für das Effigenix Fleischerei-ERP System.
## Projektziele
1. **ERP-Grundlagen** für Stammdatenverwaltung, Auftragsabwicklung und Fakturierung
2. **HACCP-Compliance** - Vollständiges QM-System als Kernmehrwert für kleine Betriebe
3. **Rezeptur-Management** - Mehrstufige Rezepturen mit Chargen-Tracking und Rückverfolgbarkeit
4. **Produktionsplanung** - Verkaufstrends-Analyse zur Vermeidung von Überproduktion
5. **Mehrfilialen-Unterstützung** - Zentrale Produktion mit Belieferung mehrerer Filialen
## DDD-Phasen
### Phase 0: Technologie-Auswahl ✅
- **Sprache:** Java 21+
- **Patterns:** Result Types, Sealed Interfaces, Pattern Matching
- **Architektur:** Clean Architecture (Domain → Application → Infrastructure)
### Phase 1: Domain Discovery ✅
- **Subdomain-Klassifizierung:** Core, Supporting, Generic
- **DDD-Investment:** Volles DDD für 7 Core Domains
### Phase 2: Bounded Contexts ✅
- **11 Bounded Contexts** identifiziert
- **Context Map** mit Beziehungen erstellt
- **Ubiquitous Language** für jeden BC definiert
### Phase 3: Tactical Modeling ✅
- **Aggregates** identifiziert für alle Core BCs
- **Entities** und **Value Objects** definiert
- **Invarianten** dokumentiert
### Phase 4: Invarianten (TODO)
- Detaillierte Invarianten-Dokumentation
- Enforcement Points definieren
### Phase 5: Code-Generierung (TODO)
- Java-Code aus Aggregates generieren
- Repository Interfaces
- Use Cases
### Phase 6: Validation (TODO)
- DDD-Rules-Checklist durchgehen
- Clean Architecture Compliance prüfen
## Dokumentationsstruktur
```
docs/mvp/ddd/
├── 00-overview.md (dieses Dokument)
├── 01-domain-classification.md
├── 02-bounded-contexts.md
├── 03-ubiquitous-language.md
├── 04-production-bc.md
├── 05-quality-bc.md
├── 06-labeling-bc.md
├── 07-inventory-bc.md
├── 08-procurement-bc.md
├── 09-filiales-bc.md
└── 10-supporting-bcs.md
```
## Nächste Schritte
1. ✅ Bounded Contexts dokumentieren
2. ✅ Aggregates für Core BCs modellieren
3. ⏳ Invarianten detailliert ausarbeiten
4. ⏳ Java-Code generieren
5. ⏳ Validierung durchführen
## Referenzen
- Feature-Definition: `docs/mvp/2026-02-15-fleischerei-erp-feature-definition.md`
- Abhängigkeitsanalyse: `docs/mvp/2026-02-16-abhangigkeitsanalyse-fleischerei-erp.md`
- Java Style Guide: `.claude/skills/ddd-model/languages/java/style-guide.md`
- DDD Rules: `.claude/skills/ddd-model/rules/ddd-rules.md`