# Owlibou Tavern Ein flexibles Management-Tool für Tabletop-RPGs (TTRPG), mit dem du Kampagnen-, Welt- und Spieldaten zentral verwaltest. Im Frontend kannst du Daten aus der Datenbank komfortabel anlegen, bearbeiten, importieren und exportieren – ideal für Spielleitungen, Weltbauer:innen und Orga-Teams. ## Ziele und Nutzen - Einheitliche Verwaltung von TTRPG-Daten wie Charaktere, NSCs, Orte, Items, Quests, Regeln und Sessions. - Datenpflege direkt im Browser mit validierten Formularen und Listenansichten. - Revisionssichere Änderungen sowie Import/Export für Backups, Systemwechsel oder öffentliche Datenpakete. - Erweiterbar und systemagnostisch: nutzbar für verschiedene TTRPG-Systeme und Hausregeln. ## Hauptfunktionen (geplant/initial) - Datenverwaltung - CRUD für zentrale Entitäten (z. B. Charaktere, Orte, Items, Quests, Sessions) - Tagging, Relationen und Referenzen (z. B. Item gehört zu Charakter, Quest findet in Ort statt) - Versionierung/Änderungshistorie (optional) - Import/Export - JSON- und CSV-Importe mit Mapping/Validierung - JSON- und CSV-Exporte (vollständig oder gefiltert) - Vorlagen für gängige Datenstrukturen - Qualität und Sicherheit - Validierungen, Duplikat-Erkennung, Konfliktauflösungen beim Import - Rollen-/Rechtekonzept für Lesende/Schreibende (optional) - UX - Filter, Suche, Sortierung, Paginierung - Bulk-Aktionen (z. B. Massen-Tagging, Sammellöschung mit Undo) ## Architekturüberblick - Frontend - Web-App zur Verwaltung, Visualisierung und zum Import/Export von Daten - Formulare mit Validierung, Listenansichten, Detailseiten - API/Backend - Endpunkte für CRUD, Batch-Operationen, Import/Export und Authentifizierung - Datenvalidierung serverseitig und konfliktarme Merges bei Importen - Datenbank - Relational oder dokumentenorientiert, je nach finalem Design - Migrationskonzept, Seeds und Beispiel-Datasets - Authentifizierung/Autorisierung (optional) - Nutzerkonten, Rollen, API-Tokens Hinweis: Die konkrete Technologieauswahl kann projektabhängig variieren. Dieses README bleibt bewusst technologie-agnostisch. ## Datenmodell (Beispiel-Ideen) - Kern-Entitäten: Character, NPC, Location, Item, Quest, Session, Faction, Rule - Relationen: Character—Item (1:n), Location—Quest (n:m), Session—Participant (n:m) - Metadaten: Tags, Notizen, Quellenangaben, Zeitstempel, Besitzer:in ## Import/Export - Formate - JSON: vollständige Strukturen inkl. Relationen - CSV: tabellarische Views je Entität - Import-Workflow - Vorschau mit Validierungsfehlern und Warnungen - Mapping-Assistent (z. B. Spaltenzuordnung bei CSV) - Konflikt-Strategien: Überschreiben, Zusammenführen, Duplikate überspringen - Export-Workflow - Auswahl von Entitäten/Filtern, optional Anonymisierung bestimmter Felder - Versionierte Exporte als Backup ## Entwicklungs-Setup - Voraussetzungen - Git, eine aktuelle Laufzeitumgebung für Frontend/Backend, Paketmanager, Datenbank-Server - Quickstart (generisch) 1. Repository klonen 2. Umgebungsvariablen konfigurieren (z. B. DB-URL, Ports, Auth-Secret) 3. Abhängigkeiten installieren 4. Datenbank migrieren und Seed-Daten einspielen (optional) 5. Entwicklungsserver starten (Frontend und Backend) - Skripte (Platzhalter) - start-dev: Startet Frontend und Backend im Watch-Modus - migrate: Führt Datenbankmigrationen aus - seed: Spielt Beispiel-/Demo-Daten ein - test: Führt Tests aus - build: Erzeugt produktionsfertige Artefakte Füge konkrete Befehle hinzu, sobald die Technologie-Stacks final sind. ## Deployment (Beispielfluss) - Konfiguration über Umgebungsvariablen/Secrets - Datenbank bereitstellen und Migrationen ausführen - Backend deployen - Frontend als statische App oder über denselben Server ausliefern - Optional: Containerisierung und Orchestrierung ## Qualitätssicherung - Tests: Unit-, Integrations- und E2E-Tests für Import/Export und CRUD - Linting/Formatting und CI-Pipelines - Backups: regelmäßige Exporte und DB-Snapshots ## Roadmap (Entwurf) - M0: Basis-CRUD für zentrale Entitäten, einfache JSON-Exporte - M1: CSV-Importe mit Mapping + Validierung, Filter/Suche im UI - M2: Relationen-Management im UI, Konfliktauflösung beim Import - M3: Rollen/Rechte, Änderungsverlauf, Bulk-Aktionen - M4: Plugins/Erweiterungen für system-spezifische Felder und Regelwerke ## Beitragen - Issues eröffnen: Bugreports, Featurewünsche, Fragen - Pull Requests: Bitte mit kurzer Beschreibung, Repro-Schritten und Tests - Coding Guidelines: Einheitlicher Stil, aussagekräftige Commits ## Lizenz - AGPLv3 ## Kontakt - Projektpflege: bitte Kontaktmethode/Team hinzufügen - Diskussionen/Ideen: Issue-Tracker oder Diskussionsforum verwenden Viel Spaß beim Bauen deiner TTRPG-Welt mit Owlibou Tavern!