1
0
Fork 0
mirror of https://github.com/s-frick/effigenix.git synced 2026-03-28 08:29:36 +01:00
effigenix/backend
Sebastian Frick 19f1cf16a1 fix(production): Review-Findings aus US-P17 beheben
RescheduleNotAllowed Error-Typ statt InvalidStatusTransition(status, status),
Null-Guard für newDate, Controller-Parameter als Enum statt String (verhindert
500 bei ungültigem Status), partielle Datumsangaben als 400 ablehnen,
ORDER BY in findAll() konsistent mit gefilterten Queries.
2026-02-25 23:01:19 +01:00
..
docs feat(production): Produktion über Auftrag starten (US-P15) 2026-02-25 08:53:17 +01:00
src fix(production): Review-Findings aus US-P17 beheben 2026-02-25 23:01:19 +01:00
.factorypath refactor: restructure repository with separate backend and frontend directories 2026-02-17 22:08:51 +01:00
CLAUDE.md refactor: restructure repository with separate backend and frontend directories 2026-02-17 22:08:51 +01:00
INTEGRATION_TESTS_SUMMARY.md refactor: restructure repository with separate backend and frontend directories 2026-02-17 22:08:51 +01:00
pom.xml feat(loadtest): Gatling-Lasttests mit ~2500 Requests für komprimiertes Jahres-Volumen 2026-02-24 21:53:25 +01:00
README.md fix(frontend): pnpm dev und pnpm build ohne manuelle Vorbereitung 2026-02-18 21:39:32 +01:00
TEST_FILES_INDEX.md refactor: restructure repository with separate backend and frontend directories 2026-02-17 22:08:51 +01:00
TEST_SUMMARY.md refactor: restructure repository with separate backend and frontend directories 2026-02-17 22:08:51 +01:00
TESTING_GUIDE.md refactor: restructure repository with separate backend and frontend directories 2026-02-17 22:08:51 +01:00
TODO.md refactor: restructure repository with separate backend and frontend directories 2026-02-17 22:08:51 +01:00
UNIT_TESTS_README.md refactor: restructure repository with separate backend and frontend directories 2026-02-17 22:08:51 +01:00

Effigenix Backend

Java Spring Boot Backend für das Effigenix ERP-System.

Schnellstart

# 1. PostgreSQL starten (Docker)
docker run --name effigenix-postgres \
  -e POSTGRES_DB=effigenix \
  -e POSTGRES_USER=effigenix \
  -e POSTGRES_PASSWORD=effigenix \
  -p 5432:5432 \
  -d postgres:15

# 2. Bauen & starten
mvn spring-boot:run

Ohne Datenbank (Stub-Modus nur API-Docs):

mvn spring-boot:run
# Warnung im Log: "⚠️  Keine Datenbankverbindung  Stub-Modus aktiv"
# OpenAPI-Spec: http://localhost:8080/api-docs

API-Dokumentation (mit laufender DB):

Build

# Kompilieren + Tests
mvn clean install

# Nur starten (ohne Tests)
mvn spring-boot:run

# Mit Profil
mvn spring-boot:run -Dspring-boot.run.profiles=dev

Architektur

DDD + Clean Architecture. Einweg-Abhängigkeit: domain → application → infrastructure.

de.effigenix/
├── domain/              # Reine Geschäftslogik  keine Framework-Deps
│   ├── usermanagement/
│   └── masterdata/
├── application/         # Use Cases, Commands, DTOs
│   ├── usermanagement/
│   └── masterdata/
├── infrastructure/      # Spring, JPA, REST, Security, Audit
│   ├── config/
│   ├── security/
│   ├── audit/
│   ├── stub/            # Stub-Beans für no-db-Profil
│   ├── usermanagement/
│   └── masterdata/
└── shared/              # Shared Kernel (Result<E,T>, AuthorizationPort, Action)

Liquibase-Migrationen: src/main/resources/db/changelog/

User Management

Vordefinierte Rollen

Rolle Zielgruppe
ADMIN Systemadministrator (alle Rechte)
PRODUCTION_MANAGER Leiter Produktion
PRODUCTION_WORKER Produktionsmitarbeiter
QUALITY_MANAGER Qualitätsbeauftragter
QUALITY_INSPECTOR QM-Mitarbeiter
PROCUREMENT_MANAGER Einkaufsleiter
WAREHOUSE_WORKER Lagermitarbeiter
SALES_MANAGER Verkaufsleiter
SALES_STAFF Verkaufsmitarbeiter

AuthorizationPort

// Typsichere, fachliche Authorization  kein direkter Zugriff auf User/Roles
authPort.assertCan(ProductionAction.RECIPE_WRITE);
authPort.assertCan(SalesAction.ORDER_READ, orderId);

Tests

mvn test                          # Unit Tests
mvn verify                        # + Integration Tests
mvn clean verify jacoco:report    # Test Coverage

Dokumentation