1
0
Fork 0
mirror of https://github.com/s-frick/effigenix.git synced 2026-03-28 13:59:36 +01:00

docs(cli): remove implementation plan, add TUI user+dev guide

This commit is contained in:
Sebastian Frick 2026-02-18 12:26:16 +01:00
parent bbe9e87c33
commit 169f492b76
2 changed files with 77 additions and 386 deletions

View file

@ -0,0 +1,77 @@
# Effigenix ERP Terminal UI
Interaktive TUI für das Effigenix ERP-Backend. Gebaut mit [Ink](https://github.com/vadimdemedes/ink) (React für Terminal).
## Voraussetzungen
- Node.js 20+, pnpm 9+
- Backend läuft auf `http://localhost:8080`
## Starten
```bash
# 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 Rollen
- `Passwort ä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
```bash
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).