1
0
Fork 0
mirror of https://github.com/s-frick/effigenix.git synced 2026-03-28 08:29:36 +01:00
effigenix/frontend
Sebastian Frick a77f0ec5df feat(shared): Länderauswahl mit ISO 3166-1 Mapping und CountryPicker
Backend: Country-Record (Shared Kernel), InMemoryCountryRepository mit
~249 Ländern und DACH-Priorisierung, ListCountries-UseCase,
GET /api/countries?q= Endpoint.

Frontend: CountryPicker-Komponente mit Fuzzy-Suche, DACH-Favoriten bei
leerem Query. SupplierCreate-, CustomerCreate- und AddDeliveryAddress-
Screens verwenden jetzt den CountryPicker statt Freitext. Detail-Screens
zeigen den Ländercode in der Adressanzeige.

Closes #71
2026-02-24 09:28:56 +01:00
..
apps/cli feat(shared): Länderauswahl mit ISO 3166-1 Mapping und CountryPicker 2026-02-24 09:28:56 +01:00
packages feat(shared): Länderauswahl mit ISO 3166-1 Mapping und CountryPicker 2026-02-24 09:28:56 +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 feat(tui): TUI für Produktionsauftrag-Freigabe, Bestandsreservierung und Reservierungs-Freigabe 2026-02-24 00:57:40 +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: Sentry-kompatibles Error-Tracking (Bugsink) für Frontend und Backend 2026-02-23 22:40:19 +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