# Tessera ## What This Is Tessera ist eine modulare, Docker-basierte Webplattform fuer interne Workflow-Automatisierung und Tool-Integration. Sie bietet ein Portal mit Seitenleiste, konfigurierbarem Dashboard und einem Marketplace fuer lizenzierbare Module. Perspektivisch soll Tessera auch an externe Kunden verkauft werden — Mandantenfaehigkeit ist von Anfang an eingeplant. ## 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. ## Current Milestone: v1.1 Ausschreibungs-Radar **Goal:** Tessera-Modul, das Vergabeportale nach Ausschreibungen durchsucht, nach Kriterien filtert, Treffer im Portal anzeigt und optional per E-Mail versendet. **Target features:** - Zentrale Datenquelle: DÖE OpenData-API (oeffentlichevergabe.de, eForms/OCDS, auth-frei) - Portal-Adapter: 1× AI-AG NetServer (lhs-vpbw, tender24, vergabe.landbw), 1× cosinex (DTVP) - E-Mail-Alert-Ingestion für Unterschwellen-Portale (nutzt bestehende DKV-Inbox-Infrastruktur) - RSS-Quellen: subreport-elvis, service.bund.de - Normalisiertes Ausschreibungs-Schema (OCDS-orientiert) + Dedup über Quellen - Filter-Engine: Stichwörter, Region/PLZ/Bundesland, CPV/Branche, Frist & Auftragswert - Durchsuchbare UI-Trefferliste mit Detailansicht - Optionaler E-Mail-Versand (periodischer Digest + Sofort-Alert), im Webinterface konfigurierbar - Meiden (AGB-Verbot automatisierter Zugriffe): vergabe24, aumass **Key context:** Neues Modul im bestehenden Monorepo, multi-tenant, analog DKV-Fleet- und Cert-Manager-Modul. Feasibility-Research in `.planning/research/ausschreibungs-portale-feasibility.md`. Phasen setzen die v1.0-Nummerierung fort (ab Phase 10). ## Requirements ### Validated (None yet — ship to validate) ### Active - [ ] Modulares Portal mit Kopfzeile und Seitenleiste (Kategorien + Module) - [ ] Benutzerauthentifizierung (initialer Admin, manuelle Benutzerverwaltung, LDAP-Anbindung) - [ ] Mandantenfaehigkeit (Multi-Tenancy) - [ ] Marketplace fuer Module (Lizenzierung, Aktivierung, Kategorisierung) - [ ] Konfigurierbares Dashboard (Drag & Drop, Groessenaenderung, Widgets: Uhr, Suchleiste, Kalender, Notizen) - [ ] Domaincheck-Modul (erstes Beispielmodul: Domain-Verfuegbarkeitspruefung) - [ ] Light/Dark Theme Toggle - [ ] Mehrsprachigkeit (Deutsch + Englisch, i18n) - [ ] Desktop-Client (Electron/Tauri Wrapper fuer Windows/Linux) - [ ] Automatisierte Gitea-Integration (Commits, Pushes, Merges — so wenig manuell wie moeglich) ### Out of Scope - Externe Drittanbieter-Module — erst spaeter, aktuell nur eigene Module (mit Claude) - Bezahlsystem/Payment — Lizenzierung erstmal per Admin-Freischaltung, Bezahlung kommt spaeter - Mobile App — Web-first, Desktop-Wrapper reicht fuer v1 ## Context - Entwicklung erfolgt ausschliesslich mit Claude (Nutzer ist kein Programmierer) - Interne Nutzung als Testphase, spaeterer Verkauf an externe Kunden geplant - Module sind breit gefaechert: E-Mail-Tools, Datenbank-Tools, LDAP-Tools, Konvertierungen etc. - Dashboard ist unabhaengig von Modulen — persoenlicher Startbereich mit frei platzierbaren Widgets - Bestehendes Gitea-Setup vorhanden, soll als Versionskontrolle genutzt werden - Bereits teilweise umgesetztes Dashboard-Konzept vorhanden ## Constraints - **Infrastruktur**: Docker-basiert — alle Komponenten als Container - **Datenbank**: PostgreSQL oder MariaDB (Entscheidung durch Claude) - **Authentifizierung**: Initialer Admin-Account + manuelle Benutzerverwaltung + LDAP - **Versionierung**: Automatisierte Gitea-Integration (minimaler manueller Aufwand) - **Entwicklung**: Alles wird von Claude gebaut — Architektur muss wartbar und verstaendlich sein - **Mandantenfaehigkeit**: Von Anfang an in der Architektur verankert ## Key Decisions | Decision | Rationale | Outcome | |----------|-----------|---------| | Docker als Deployment-Basis | Portabilitaet, einfache Installation, Isolation | — Pending | | PostgreSQL als Datenbank | Robust, mandantenfaehig, hervorragender Docker-Support, JSON-Spalten fuer flexible Modul-Daten | — Pending | | Modularer Marketplace mit Lizenzierung | Kernkonzept: Module erst nach Freischaltung sichtbar und nutzbar | — Pending | | Light/Dark Theme von Anfang an | Benutzerfreundlichkeit, professioneller Eindruck | — Pending | | i18n (DE+EN) von Anfang an | Spaeteres Nachrüsten ist aufwaendiger als fruehe Integration | — Pending | | Desktop-Wrapper (Electron/Tauri) | Installierbarkeit auf Windows/Linux neben Browser-Zugriff | — Pending | ## Evolution This document evolves at phase transitions and milestone boundaries. **After each phase transition** (via `/gsd-transition`): 1. Requirements invalidated? → Move to Out of Scope with reason 2. Requirements validated? → Move to Validated with phase reference 3. New requirements emerged? → Add to Active 4. Decisions to log? → Add to Key Decisions 5. "What This Is" still accurate? → Update if drifted **After each milestone** (via `/gsd-complete-milestone`): 1. Full review of all sections 2. Core Value check — still the right priority? 3. Audit Out of Scope — reasons still valid? 4. Update Context with current state --- *Last updated: 2026-07-17 — milestone v1.1 Ausschreibungs-Radar started*