Files
Lars Behrends 6abdffe22a readme
2025-12-28 02:18:18 +01:00

82 lines
3.6 KiB
Markdown

# Obsidian | RP Plattform
**Obsidian** ist ein modernes, webbasiertes Dashboard für Minecraft Roleplay-Server. Es dient als "Immersive Interface" für Spieler und Admins, um Charakterdaten, Inventare, Städte, Organisationen und wirtschaftliche Aktivitäten außerhalb des Spiels darzustellen.
Das Projekt zielt darauf ab, die Lücke zwischen In-Game-Geschehen und Web-Präsenz zu schließen, ohne ein komplexes Backend (PHP/Python/Node) zwingend vorauszusetzen.
---
## ✨ Features
### 👤 Bürger & Charakterakten
* **Visuelles Inventar**: Darstellung von Items, Rüstung und NBT-Daten in einem Grid-Layout.
* **Story-Engine**: Markdown-Rendering für Charakter-Hintergrundgeschichten.
* **Identity Linking**: (Mockup) Discord-Login zur Verknüpfung von Spielern mit ihren RP-Charakteren.
### 🏙️ Geopolitik & Organisationen
* **Städte-Profile**: Banner, Statistiken (Steuern, Verteidigung), Bewohnerlisten und politische Strukturen.
* **Wirtschaftssystem**: Spielergeführte Unternehmen mit integrierten Produkt- und Dienstleistungskatalogen.
* **Hierarchie**: Darstellung von Gilden, Firmen und Fraktionen.
### 🛠️ Technische Tools (Simuliert)
* **Datapack Generator**: Erstellt automatisch `.mcfunction`-Dateien für den Minecraft-Server, um Daten sicher via "Item-Umbenennung" (Non-OP Input) zu erfassen.
* **SQL-Konsole**: Eine simulierte Datenbank-Oberfläche, um SQL-Queries auf den lokalen Datensätzen auszuführen (für Immersion und Admin-Feeling).
* **Telemetry Dashboard**: Echtzeit-ähnliche Statistiken über Server-Aktivitäten.
---
## 🚀 Installation & Start
Da dieses Projekt auf modernen Web-Standards (ES Modules & React 19 via CDN) basiert, ist **kein Build-Prozess** (kein `npm run build`) zwingend erforderlich, um die Demo zu starten.
### Voraussetzungen
* Ein moderner Browser (Chrome, Firefox, Edge).
* Ein lokaler Webserver (z.B. VS Code "Live Server", Python `http.server` oder `npx serve`).
### Starten
1. Repository klonen oder herunterladen.
2. Öffne den Ordner im Terminal.
3. Starte einen statischen Server. Beispiel mit Python:
```bash
python3 -m http.server 8000
```
4. Öffne `http://localhost:8000` im Browser.
---
## ⚙️ Architektur & Datenfluss (Konzept)
Obsidian ist als "Serverless"-Viewer konzipiert. In einer echten Produktionsumgebung funktioniert der Datenfluss wie folgt:
1. **Minecraft Server**: Ein Datapack (siehe Generator im Tool) exportiert Inventare und Spielerdaten in JSON-Formate in den Server-Log oder via Plugin.
2. **Sync-Script**: Ein einfaches Shell/Batch-Skript lädt diese JSON-Dateien per FTP auf den Webserver hoch.
3. **Frontend**: Obsidian liest die statischen JSON-Dateien (`fetch('/api/players.json')`) und stellt sie dar.
*Aktueller Status:* In dieser Demo-Version werden alle Daten aus `constants.ts` und `MockDatabaseService.ts` geladen, um die Funktionalität ohne echten Server zu demonstrieren.
---
## 🎨 Tech Stack
* **Framework**: React 19 (via ESM Imports)
* **Styling**: Tailwind CSS (CDN Runtime für Demo / Buildless Setup)
* **Icons**: Custom SVG Set (Lucide-Style)
* **Type Safety**: TypeScript (JSDoc/Interfaces im Code)
---
## 📸 Projektstruktur
* `index.html`: Entry Point & Import Maps.
* `App.tsx`: Haupt-Routing und Layout-Logik.
* `pages/`: Einzelne Ansichten (Dashboard, Profile, SQL-Manager).
* `components/`: Wiederverwendbare UI-Elemente (InventoryGrid, Layout).
* `services/`: Simulierte Backend-Logik (Database, Auth).
* `constants.ts`: Mock-Daten für Spieler, Städte und Items.
---
## 📄 Lizenz
Entwickelt als Konzeptstudie für immersive RP-Communities. Frei verwendbar.