mirror of
https://github.com/s-frick/effigenix.git
synced 2026-03-28 12:29:36 +01:00
- Neue Screens: Kategorien, Lieferanten, Artikel, Kunden (jeweils Liste, Detail, Anlegen + Detailaktionen wie Bewertung, Zertifikate, Verkaufseinheiten, Lieferadressen, Präferenzen) - API-Client: Resources für alle 4 Stammdaten-Aggregate implementiert (categories, suppliers, articles, customers) mit Mapping von verschachtelten Domain-VOs auf flache DTOs - Lieferant, Artikel, Kategorie: echte HTTP-Calls gegen Backend (/api/suppliers, /api/articles, /api/categories, /api/customers) - 204-No-Content-Endpoints (removeSalesUnit, removeSupplier, removeCertificate, removeDeliveryAddress, removeFrameContract) lösen Re-Fetch des Aggregats aus - MasterdataMenu, Navigation-Erweiterung, App.tsx-Routing |
||
|---|---|---|
| .. | ||
| src | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
| vitest.config.ts | ||
Effigenix ERP – Terminal UI
Interaktive TUI für das Effigenix ERP-Backend. Gebaut mit Ink (React für Terminal).
Voraussetzungen
- Node.js 20+, pnpm 9+
- Backend läuft auf
http://localhost:8080
Starten
# Im frontend/-Verzeichnis
pnpm install
pnpm --filter @effigenix/cli dev
Bedienung
Navigation: ↑↓ bewegen, Enter auswählen/bestätigen, Escape/Backspace zurück.
Login
Benutzername und Passwort eingeben, Tab zum Feldwechsel, Enter auf dem letzten Feld.
Die Session wird in ~/.effigenix/config.json gespeichert und beim nächsten Start wiederhergestellt.
Hauptmenü
| Eintrag | Funktion |
|---|---|
| Benutzerverwaltung | Liste, Anlage, Details, Passwort |
| Rollenverwaltung | Liste, Details |
| Logout | Session beenden |
Benutzerverwaltung
- Liste:
↑↓navigieren,Enter→ Detailansicht - Anlegen: Formular mit Tab-Navigation; Felder werden per Zod validiert (Inline-Fehler)
- Detailansicht → Aktionen:
Sperren/Entsperren– Bestätigungsdialog (J/N)Rolle zuweisen/entfernen– interaktive Auswahlliste der verfügbaren RollenPasswort ändern– eigener Screen mit Passwort-Bestätigung
- Erfolgreiche Aktionen zeigen eine grüne Box (auto-dismiss nach 3 s)
Rollenverwaltung
Liste aller Rollen mit Berechtigungen; Readonly-Ansicht.
Entwicklung
pnpm --filter @effigenix/cli typecheck # TypeScript-Check
pnpm --filter @effigenix/cli test # vitest (15 Tests)
pnpm --filter @effigenix/cli build # tsup → dist/
Struktur
src/
├── components/
│ ├── auth/ # LoginScreen
│ ├── layout/ # MainLayout, Header, StatusBar
│ ├── roles/ # RoleListScreen, RoleDetailScreen, RoleSelectList
│ ├── shared/ # ErrorDisplay, SuccessDisplay, ConfirmDialog, FormInput, LoadingSpinner
│ └── users/ # UserListScreen, UserDetailScreen, UserCreateScreen, ChangePasswordScreen
├── hooks/ # useUsers, useRoles, useTerminalSize
├── state/ # auth-context, navigation-context
└── utils/ # api-client, token-storage
Token-Speicherung
~/.effigenix/config.json (chmod 600). Enthält Access-Token, Refresh-Token und Ablaufzeit.
Token-Refresh erfolgt proaktiv (< 5 min bis Ablauf) und reaktiv (bei 401).