From a65b639461e0582d846039f801dd25d6acbcd4c0 Mon Sep 17 00:00:00 2001 From: Schalli Date: Thu, 18 Jun 2026 08:41:17 +0200 Subject: [PATCH] docs: define v1 requirements --- .planning/REQUIREMENTS.md | 137 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 137 insertions(+) create mode 100644 .planning/REQUIREMENTS.md diff --git a/.planning/REQUIREMENTS.md b/.planning/REQUIREMENTS.md new file mode 100644 index 0000000..2858b07 --- /dev/null +++ b/.planning/REQUIREMENTS.md @@ -0,0 +1,137 @@ +# Requirements: Tessera + +**Defined:** 2026-06-18 +**Core Value:** Eine zentrale Plattform, in der beliebige Workflow-Tools als Module lizenziert, aktiviert und genutzt werden koennen — ohne zwischen verschiedenen Anwendungen wechseln zu muessen. + +## v1 Requirements + +Requirements for initial release. Each maps to roadmap phases. + +### Authentication & User Management + +- [ ] **AUTH-01**: Initialer Admin-Account wird beim Setup via Docker-ENV erstellt +- [ ] **AUTH-02**: Admin kann Benutzer manuell anlegen, bearbeiten und loeschen +- [ ] **AUTH-03**: Benutzer kann sich anmelden und abmelden +- [ ] **AUTH-04**: Benutzer-Session bleibt ueber Browser-Refresh bestehen +- [ ] **AUTH-05**: Rollenbasierte Zugriffskontrolle (Admin, User) +- [ ] **AUTH-06**: Benutzer koennen per LDAP/AD importiert werden + +### Multi-Tenancy + +- [ ] **TNNT-01**: Daten sind per PostgreSQL Row-Level Security mandantengetrennt +- [ ] **TNNT-02**: Admin kann Mandanten anlegen und verwalten +- [ ] **TNNT-03**: Jeder Request wird automatisch dem richtigen Mandanten zugeordnet + +### Portal Shell + +- [ ] **PRTAL-01**: Schmale Kopfzeile mit Branding und Benutzer-Menu +- [ ] **PRTAL-02**: Linke Seitenleiste zeigt Kategorien und aktivierte Module +- [ ] **PRTAL-03**: Ausgewaehltes Modul oeffnet sich im Hauptbereich (Mitte) +- [ ] **PRTAL-04**: Responsive Layout fuer verschiedene Bildschirmgroessen +- [ ] **PRTAL-05**: Module koennen in der Seitenleiste durchsucht und gefiltert werden + +### Marketplace + +- [ ] **MRKT-01**: Uebersicht aller verfuegbaren Module mit Beschreibung und Kategorie +- [ ] **MRKT-02**: Admin kann Module pro Mandant aktivieren und deaktivieren +- [ ] **MRKT-03**: Nur aktivierte Module erscheinen in der Seitenleiste des Mandanten +- [ ] **MRKT-04**: Module sind in Kategorien gruppiert + +### Dashboard + +- [ ] **DASH-01**: Konfigurierbares Dashboard als Startseite mit Drag & Drop Grid +- [ ] **DASH-02**: Widgets koennen frei positioniert und in der Groesse geaendert werden +- [ ] **DASH-03**: Uhr-Widget (analog oder digital) +- [ ] **DASH-04**: Suchleiste-Widget (oeffnet Google/Suchmaschine im Browser) +- [ ] **DASH-05**: Kalender-Widget mit Terminvorschau +- [ ] **DASH-06**: Notiz-Widget (Freitext-Kachel) +- [ ] **DASH-07**: Dashboard-Layout wird pro Benutzer gespeichert + +### Kalender-Integration + +- [ ] **CAL-01**: In Einstellungen koennen mehrere Kalenderquellen eingebunden werden (WebDAV, Exchange, ICS-Link) +- [ ] **CAL-02**: Benutzer kann waehlen welche Kalender im Widget angezeigt werden +- [ ] **CAL-03**: Benutzer kann waehlen fuer welche Kalender Terminvorschauen angezeigt werden + +### Module System + +- [ ] **MOD-01**: Versioniertes Modul-SDK mit standardisiertem Interface (@tessera/sdk) +- [ ] **MOD-02**: Module werden per Datenbank-Registry verwaltet +- [ ] **MOD-03**: Module koennen ohne Neustart aktiviert/deaktiviert werden +- [ ] **MOD-04**: Modul-UIs werden per Lazy Loading geladen (kein Bundle-Bloat) + +### Domaincheck (Erstes Modul) + +- [ ] **DCHK-01**: Benutzer kann eine Domain in ein Eingabefeld eingeben +- [ ] **DCHK-02**: System prueft ob die Domain registriert oder frei ist +- [ ] **DCHK-03**: Ergebnis wird klar angezeigt (frei/registriert) + +### UI & Internationalisierung + +- [ ] **UI-01**: Light/Dark Theme umschaltbar pro Benutzer +- [ ] **UI-02**: Zweisprachig: Deutsch und Englisch mit Sprachwahl +- [ ] **UI-03**: i18n-Framework von Anfang an integriert (alle Strings ueber t('key')) + +### Infrastruktur + +- [ ] **INFRA-01**: Komplette Anwendung laeuft als Docker-Compose-Stack +- [ ] **INFRA-02**: PostgreSQL-Datenbank im Container +- [ ] **INFRA-03**: Docker-Netzwerksegmentierung (Frontend/Backend/Data) +- [ ] **INFRA-04**: Automatisierte Gitea-Integration (Commits, Pushes, Merges) + +### Desktop-Client + +- [ ] **DESK-01**: Tauri-basierter Desktop-Wrapper fuer Windows und Linux +- [ ] **DESK-02**: Desktop-App verbindet sich mit dem Web-Backend (kein eigenstaendiger Server) + +## v2 Requirements + +Deferred to future release. Tracked but not in current roadmap. + +### Authentication Erweiterungen + +- **AUTH-V2-01**: SSO/OIDC-Anbindung +- **AUTH-V2-02**: Zwei-Faktor-Authentifizierung (2FA) +- **AUTH-V2-03**: Magic-Link Login + +### Marketplace Erweiterungen + +- **MRKT-V2-01**: Bezahlsystem fuer Module (Lizenzschluessel oder Abo) +- **MRKT-V2-02**: Drittanbieter koennen Module einreichen +- **MRKT-V2-03**: Bewertungen und Reviews fuer Module + +### Erweiterte Features + +- **FEAT-V2-01**: Notification Center (In-App-Benachrichtigungen) +- **FEAT-V2-02**: Per-Tenant Branding (Logo + Akzentfarbe) +- **FEAT-V2-03**: Keyboard Shortcuts und Command Palette +- **FEAT-V2-04**: Admin-Impersonation (als anderer Benutzer agieren) +- **FEAT-V2-05**: Onboarding-Wizard fuer neue Mandanten + +## Out of Scope + +| Feature | Reason | +|---------|--------| +| Mobile App | Web-first, Desktop-Wrapper reicht fuer v1 | +| Real-time Chat | Hohe Komplexitaet, nicht Kern der Plattform | +| Video/Streaming | Storage/Bandwidth, nicht relevant fuer Workflow-Tools | +| Payment/Billing | Lizenzierung erstmal per Admin-Freischaltung | +| Third-Party Module SDK | Erst eigene Module, oeffnung spaeter | +| Microservice-Architektur | Modular Monolith reicht, Extraction spaeter moeglich | + +## Traceability + +Which phases cover which requirements. Updated during roadmap creation. + +| Requirement | Phase | Status | +|-------------|-------|--------| +| (populated by roadmapper) | | | + +**Coverage:** +- v1 requirements: 33 total +- Mapped to phases: 0 +- Unmapped: 33 + +--- +*Requirements defined: 2026-06-18* +*Last updated: 2026-06-18 after initial definition*