1
0
Fork 0
mirror of https://github.com/s-frick/effigenix.git synced 2026-03-28 15:29:34 +01:00
effigenix/frontend
Sebastian Frick ef50eb8279 feat(frontend): Tauri Apps, Shared UI Library und Nix Flake
- packages/ui: Shared React Component Library (Button, Card, Badge, Input)
  mit Tailwind v4 @theme Design Tokens (oklch)
- apps/web: ERP Web-UI (Vite + React + Tailwind v4, API-Proxy :8080)
- apps/scanner: Tauri v2 Mobile App mit Barcode-Scanner Plugin
  (cfg(mobile) für Desktop-Kompatibilität)
- flake.nix: Nix Flake mit rust-overlay, Tauri System-Deps (GTK,
  WebKitGTK, libsoup, OpenSSL), ersetzt shell.nix
- justfile: Dev-Befehle für alle Projekte (backend, cli, web, scanner)
- frontend/CLAUDE.md: Agent Guide mit Base UI Docs Referenz
2026-03-20 13:59:03 +01:00
..
apps feat(frontend): Tauri Apps, Shared UI Library und Nix Flake 2026-03-20 13:59:03 +01:00
packages feat(frontend): Tauri Apps, Shared UI Library und Nix Flake 2026-03-20 13:59:03 +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
CLAUDE.md feat(frontend): Tauri Apps, Shared UI Library und Nix Flake 2026-03-20 13:59:03 +01:00
openapi.json feat(production): Batch bei Produktionsstart automatisch erstellen (#73) 2026-02-26 12:32:04 +01:00
package.json feat(frontend): Tauri Apps, Shared UI Library und Nix Flake 2026-03-20 13:59:03 +01:00
pnpm-lock.yaml feat(frontend): Tauri Apps, Shared UI Library und Nix Flake 2026-03-20 13:59:03 +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