mirror of
https://github.com/s-frick/effigenix.git
synced 2026-03-28 10:09:35 +01:00
Seed-Daten: BW-260223-01 → P-2026-02-23-001, LW-260222-01 → P-2026-02-22-001, damit die Chargennummern dem BatchNumber-VO-Format entsprechen. ProductionOrderDetailScreen: Rezeptname statt ID anzeigen, Batch-Daten (Soll-/Ist-Menge, Ausschuss, Bemerkungen) bei verknüpfter Charge laden. |
||
|---|---|---|
| .. | ||
| 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).