1
0
Fork 0
mirror of https://github.com/s-frick/effigenix.git synced 2026-03-28 10:09:35 +01:00
effigenix/frontend
Sebastian Frick fbed3f899f fix(masterdata): MASTERDATA-Permissions und JSON-Serialisierung der REST-Responses
MASTERDATA_READ/WRITE fehlten im Permission-Enum und in den Rollen-Seed-Daten,
dadurch bekam der Admin bei allen Stammdaten-Schreiboperationen Access Denied.

Die Masterdata-Controller gaben Domain-Objekte direkt als JSON zurück, die von
Jackson nicht serialisiert werden konnten (method-style Accessors statt JavaBean-
Getter). Response-DTOs als Records eingeführt, die Domain-Objekte in flache
JSON-Strukturen mappen. Frontend-Mapping-Layer entfernt, da Backend-Responses
jetzt 1:1 die erwarteten Feldnamen liefern.
2026-02-18 22:22:19 +01:00
..
apps/cli feat(cli): Stammdaten-TUI mit Master Data API-Anbindung 2026-02-18 13:35:20 +01:00
packages fix(masterdata): MASTERDATA-Permissions und JSON-Serialisierung der REST-Responses 2026-02-18 22:22:19 +01:00
.eslintrc.js feat: initialize frontend monorepo with pnpm workspace and types package 2026-02-17 22:13:18 +01:00
.gitignore feat(frontend): TypeScript-Monorepo mit Terminal-UI für Effigenix ERP 2026-02-18 12:28:16 +01:00
.gitkeep feat: initialize frontend monorepo with pnpm workspace and types package 2026-02-17 22:13:18 +01:00
.prettierrc feat: initialize frontend monorepo with pnpm workspace and types package 2026-02-17 22:13:18 +01:00
openapi.json fix(masterdata): MASTERDATA-Permissions und JSON-Serialisierung der REST-Responses 2026-02-18 22:22:19 +01:00
package.json feat: initialize frontend monorepo with pnpm workspace and types package 2026-02-17 22:13:18 +01:00
pnpm-lock.yaml feat(frontend): TypeScript-Monorepo mit Terminal-UI für Effigenix ERP 2026-02-18 12:28:16 +01:00
pnpm-workspace.yaml feat: initialize frontend monorepo with pnpm workspace and types package 2026-02-17 22:13:18 +01:00
README.md fix(frontend): pnpm dev und pnpm build ohne manuelle Vorbereitung 2026-02-18 21:39:32 +01:00
tsconfig.base.json feat: initialize frontend monorepo with pnpm workspace and types package 2026-02-17 22:13:18 +01:00

Effigenix Frontend

TypeScript-Monorepo mit Terminal UI (TUI) und geteilten Packages für das Effigenix ERP.

Schnellstart

pnpm install
pnpm dev      # startet direkt, kein separater Build-Schritt nötig

Das Backend muss unter http://localhost:8080 erreichbar sein.

Build

pnpm build    # baut alle Packages nach dist/

Weitere Scripts

pnpm test           # Tests aller Packages
pnpm run typecheck  # TypeScript-Check aller Packages
pnpm run lint       # ESLint
pnpm run format     # Prettier

Struktur

frontend/
├── apps/
│   └── cli/              # Terminal UI (Ink/React)
│
└── packages/
    ├── api-client/       # HTTP-Client für die Backend-API
    ├── types/            # TypeScript-Typen (aus openapi.json generiert)
    ├── validation/       # Zod-Schemas
    └── config/           # Shared Configuration

Packages: Internal-Packages-Pattern

Die packages/-Libraries zeigen in main/exports auf ihre TypeScript-Quellen (./src/index.ts). tsx lädt sie daher direkt kein Build-Schritt vor pnpm dev nötig.

pnpm build erzeugt wie gewohnt dist/ via tsup; für ein npm publish greift publishConfig.

OpenAPI-Typen aktualisieren

Die openapi.json ist eingecheckt und wird beim Build direkt verwendet. Wenn sich die Backend-API ändert:

# Backend lokal starten, dann:
cd packages/types
pnpm run generate:spec    # holt openapi.json vom laufenden Backend
pnpm run generate:types   # generiert src/generated/api.ts daraus
# Ergebnis committen

Monorepo-Befehle

# Dependency in einem Package installieren
pnpm add axios --filter @effigenix/api-client

# Script in einem Package ausführen
pnpm run --filter @effigenix/cli dev

# Script in allen Packages ausführen
pnpm run --recursive build

Tech Stack

Tool Zweck
TypeScript Typsichere Entwicklung
React + Ink Terminal UI
pnpm Workspaces Monorepo-Verwaltung
tsup Zero-config TS-Bundler
Zod Runtime-Validierung
Axios HTTP-Client
vitest Unit Tests