Initial project setup: Obsidian vault, PostgreSQL schema, project structure
- Set up Obsidian vault with wiki structure (Characters, Episodes, Items, Locations, Lore) - Created PostgreSQL schema with all necessary tables (characters, items, locations, episodes, relationships) - Added git config and .gitignore - Created project documentation (README, CLAUDE.md) - Added environment example file - Prepared Docker Compose for PostgreSQL Ready for Phase 1 implementation. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
+26
@@ -0,0 +1,26 @@
|
|||||||
|
node_modules/
|
||||||
|
.next/
|
||||||
|
dist/
|
||||||
|
build/
|
||||||
|
*.log
|
||||||
|
.env.local
|
||||||
|
.env.*.local
|
||||||
|
.DS_Store
|
||||||
|
.vscode/
|
||||||
|
.idea/
|
||||||
|
*.swp
|
||||||
|
*.swo
|
||||||
|
.env
|
||||||
|
.env.example
|
||||||
|
postgres_data/
|
||||||
|
.cache/
|
||||||
|
|
||||||
|
# Obsidian
|
||||||
|
.obsidian/cache/
|
||||||
|
.obsidian/workspace.json
|
||||||
|
.obsidian/app.json
|
||||||
|
|
||||||
|
# IDE
|
||||||
|
.vscode/
|
||||||
|
.idea/
|
||||||
|
*.sublime-workspace
|
||||||
@@ -0,0 +1,152 @@
|
|||||||
|
# EinsamerWolfDH - SDSO Fan-Wiki
|
||||||
|
|
||||||
|
**Projekt:** Detailliertes Fan-Wiki für Seven Deadly Sins: Origin mit interaktiver Map und Ressourcen-Tracker
|
||||||
|
|
||||||
|
**Status:** 🚀 Phase 1 - Foundation
|
||||||
|
|
||||||
|
## 🎯 Vision
|
||||||
|
|
||||||
|
Ein umfassendes Fan-Wiki für SDSO mit:
|
||||||
|
- 📘 Obsidian-Vault für Forschung & Notizen
|
||||||
|
- 💾 PostgreSQL Datenbank mit allen Inhalten
|
||||||
|
- 🌐 React/Next.js Website mit:
|
||||||
|
- Detailliertes Fan-Wiki
|
||||||
|
- Interaktive Map der SDSO-Welt
|
||||||
|
- Ressourcen-Tracker (Was braucht man für Charakter/Waffe/Rüstung?)
|
||||||
|
- Character-Profile & Item-Details
|
||||||
|
- Beziehungsnetzwerk-Visualisierung
|
||||||
|
- Search & Filter
|
||||||
|
|
||||||
|
## 📁 Projektstruktur
|
||||||
|
|
||||||
|
```
|
||||||
|
EinsamerWolfDH/
|
||||||
|
├── docs/obsidian-vault/ # Obsidian-Vault für Forschung
|
||||||
|
├── frontend/ # Next.js React App (später)
|
||||||
|
├── backend/ # Node.js API (später)
|
||||||
|
├── database/ # PostgreSQL Schema & Seeds
|
||||||
|
└── docker-compose.yml # PostgreSQL Container
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🔧 Tech Stack
|
||||||
|
|
||||||
|
- **Frontend:** Next.js 14 + React 18 + TypeScript + Tailwind CSS
|
||||||
|
- **Map:** Leaflet + React-Leaflet
|
||||||
|
- **Database:** PostgreSQL (Docker)
|
||||||
|
- **API:** Next.js API Routes oder Express.js
|
||||||
|
- **Hosting:** Vercel (Frontend) + Eigener Server (Backend/DB)
|
||||||
|
- **Notes:** Obsidian
|
||||||
|
|
||||||
|
## 📋 Implementierungs-Roadmap
|
||||||
|
|
||||||
|
### ✅ Phase 1: Foundation (AKTUELL)
|
||||||
|
- [x] Project Setup (Git, Verzeichnisse)
|
||||||
|
- [x] Obsidian-Vault Struktur
|
||||||
|
- [x] PostgreSQL Schema
|
||||||
|
- [x] .gitignore & README
|
||||||
|
- [ ] Obsidian in Betrieb nehmen
|
||||||
|
- [ ] PostgreSQL starten (docker-compose up)
|
||||||
|
- [ ] Next.js Projekt initialisieren
|
||||||
|
|
||||||
|
### ⬜ Phase 2: Core Wiki
|
||||||
|
- [ ] Basic Layout & Navigation
|
||||||
|
- [ ] Character-Seiten Template
|
||||||
|
- [ ] Item-Details Template
|
||||||
|
- [ ] Episode-Seiten Template
|
||||||
|
- [ ] Lore-Seiten
|
||||||
|
- [ ] First 10-15 Characters in DB
|
||||||
|
|
||||||
|
### ⬜ Phase 3: Search & Filter
|
||||||
|
- [ ] Global Search (Volltextsuche)
|
||||||
|
- [ ] Character Filter
|
||||||
|
- [ ] Item Filter
|
||||||
|
- [ ] Episode Filter
|
||||||
|
|
||||||
|
### ⬜ Phase 4: Map
|
||||||
|
- [ ] Leaflet Map initialisieren
|
||||||
|
- [ ] Locations als Markers
|
||||||
|
- [ ] Popup mit Location-Details
|
||||||
|
- [ ] Map Styling (SDSO-Theme)
|
||||||
|
|
||||||
|
### ⬜ Phase 5: Ressourcen-Tracker
|
||||||
|
- [ ] Character-Build System
|
||||||
|
- [ ] Item-Requirements visualisieren
|
||||||
|
- [ ] Resource-Tree
|
||||||
|
- [ ] Tracker UI (localStorage für Progress)
|
||||||
|
|
||||||
|
### ⬜ Phase 6: Beziehungsnetzwerk
|
||||||
|
- [ ] Relationship Graph Datenstruktur
|
||||||
|
- [ ] Graph Visualisierung (D3.js oder react-force-graph)
|
||||||
|
- [ ] Interaktive Knoten
|
||||||
|
|
||||||
|
### ⬜ Phase 7: Polish & Deployment
|
||||||
|
- [ ] Dark Mode
|
||||||
|
- [ ] Mobile Responsiveness
|
||||||
|
- [ ] Performance Optimization
|
||||||
|
- [ ] Deployment auf Vercel + Server
|
||||||
|
|
||||||
|
## 🚀 Nächste Schritte
|
||||||
|
|
||||||
|
1. **Obsidian öffnen:** `vault` → `/Users/baka/EinsamerWolfDH/docs/obsidian-vault`
|
||||||
|
2. **PostgreSQL starten:** `docker-compose up -d postgres`
|
||||||
|
3. **Next.js Frontend erstellen:** `npx create-next-app@latest frontend --typescript --tailwind`
|
||||||
|
4. **Erste Daten sammeln:** SDSO-Characters, Episodes, Items recherchieren
|
||||||
|
5. **Database seeds:** Daten in PostgreSQL importieren
|
||||||
|
|
||||||
|
## 🔐 Secrets & Environment
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# .env.local (Git-ignored)
|
||||||
|
DATABASE_URL=postgresql://sdso_user:sdso_password@localhost:5432/sdso_wiki
|
||||||
|
NEXT_PUBLIC_API_URL=http://localhost:3000/api
|
||||||
|
```
|
||||||
|
|
||||||
|
## 📚 Obsidian-Workflow
|
||||||
|
|
||||||
|
1. Neue Note im passenden Ordner erstellen (Character, Item, Episode, etc.)
|
||||||
|
2. Template als Basis nutzen
|
||||||
|
3. Mit `[[Name]]` zu anderen Notes verlinken
|
||||||
|
4. Tags hinzufügen (#charakter, #waffe, etc.)
|
||||||
|
5. Exportieren → In Datenbank importieren
|
||||||
|
|
||||||
|
## 💡 Important Notes
|
||||||
|
|
||||||
|
- **Fan-Wiki Disclaimer:** Alle Inhalte zu SDSO sind Fan-Geschafftes Material
|
||||||
|
- **Datensquellen:** Anime, Manga, Fan-Wikis, offizielle Datenbanken
|
||||||
|
- **Update-Workflow:** Obsidian → Markdown-Export → DB-Import
|
||||||
|
- **Hosting:** Eigener Server für Backend/DB, Vercel für Frontend
|
||||||
|
|
||||||
|
## 🛠️ Hilfreiche Befehle
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# PostgreSQL starten
|
||||||
|
docker-compose up -d postgres
|
||||||
|
|
||||||
|
# PostgreSQL Logs
|
||||||
|
docker-compose logs -f postgres
|
||||||
|
|
||||||
|
# In PostgreSQL connecten
|
||||||
|
psql postgresql://sdso_user:sdso_password@localhost:5432/sdso_wiki
|
||||||
|
|
||||||
|
# Next.js Dev Server
|
||||||
|
cd frontend && npm run dev
|
||||||
|
|
||||||
|
# Git Workflow
|
||||||
|
git add .
|
||||||
|
git commit -m "Feature description"
|
||||||
|
git push origin main
|
||||||
|
```
|
||||||
|
|
||||||
|
## 📖 Ressourcen
|
||||||
|
|
||||||
|
- SDSO Anime: [Quelle]
|
||||||
|
- SDSO Manga: [Quelle]
|
||||||
|
- SDSO Wiki: [Fan-Wiki Links]
|
||||||
|
- Leaflet Docs: https://leafletjs.com/
|
||||||
|
- Next.js Docs: https://nextjs.org/docs
|
||||||
|
- PostgreSQL Docs: https://www.postgresql.org/docs/
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Gestartet:** 2026-08-16
|
||||||
|
**Entwickler:** EinsamerWolfDH
|
||||||
@@ -0,0 +1,92 @@
|
|||||||
|
# EinsamerWolfDH - SDSO Fan-Wiki
|
||||||
|
|
||||||
|
Ein detailliertes Fan-Wiki für **Seven Deadly Sins: Origin** mit interaktiver Map, Ressourcen-Tracker und umfangreicher Lore-Datenbank.
|
||||||
|
|
||||||
|
## 📁 Projektstruktur
|
||||||
|
|
||||||
|
```
|
||||||
|
EinsamerWolfDH/
|
||||||
|
├── docs/
|
||||||
|
│ └── obsidian-vault/ # Obsidian-Vault für Forschung & Notizen
|
||||||
|
├── backend/
|
||||||
|
│ ├── src/
|
||||||
|
│ │ ├── api/
|
||||||
|
│ │ ├── db/
|
||||||
|
│ │ └── services/
|
||||||
|
│ └── package.json
|
||||||
|
├── frontend/
|
||||||
|
│ ├── app/
|
||||||
|
│ ├── components/
|
||||||
|
│ └── package.json
|
||||||
|
├── database/
|
||||||
|
│ ├── schema.sql # PostgreSQL Schema
|
||||||
|
│ └── seed-data/
|
||||||
|
└── docker-compose.yml # PostgreSQL Docker
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🚀 Quick Start
|
||||||
|
|
||||||
|
### Phase 1: Setup
|
||||||
|
```bash
|
||||||
|
cd /Users/baka/EinsamerWolfDH
|
||||||
|
|
||||||
|
# Next.js Frontend
|
||||||
|
npx create-next-app@latest frontend --typescript --tailwind
|
||||||
|
|
||||||
|
# Backend (optional, später)
|
||||||
|
npm init -y backend
|
||||||
|
```
|
||||||
|
|
||||||
|
### Phase 2: Obsidian-Vault
|
||||||
|
Obsidian öffnen → "Open vault" → `/Users/baka/EinsamerWolfDH/docs/obsidian-vault`
|
||||||
|
|
||||||
|
### Phase 3: PostgreSQL
|
||||||
|
```bash
|
||||||
|
docker-compose up -d postgres
|
||||||
|
```
|
||||||
|
|
||||||
|
## 📋 Features (Roadmap)
|
||||||
|
|
||||||
|
- [x] Projekt-Struktur
|
||||||
|
- [x] Git-Setup
|
||||||
|
- [ ] Obsidian-Vault
|
||||||
|
- [ ] Next.js Frontend
|
||||||
|
- [ ] PostgreSQL DB
|
||||||
|
- [ ] Character Wiki
|
||||||
|
- [ ] Interactive Map
|
||||||
|
- [ ] Ressourcen-Tracker
|
||||||
|
- [ ] Search & Filter
|
||||||
|
- [ ] Relationship Network
|
||||||
|
|
||||||
|
## 📚 Wiki-Kategorien
|
||||||
|
|
||||||
|
- **Characters** - Alle SDSO Charaktere mit Profilen
|
||||||
|
- **Items** - Waffen, Rüstungen, Ressourcen
|
||||||
|
- **Episodes** - Story-Arcs und Kapitel
|
||||||
|
- **Locations** - Karte der SDSO-Welt
|
||||||
|
- **Lore** - Welten-Hintergrund & Lore
|
||||||
|
|
||||||
|
## 🛠️ Tech Stack
|
||||||
|
|
||||||
|
- **Frontend:** Next.js 14 + React 18 + TypeScript
|
||||||
|
- **Styling:** Tailwind CSS
|
||||||
|
- **Database:** PostgreSQL
|
||||||
|
- **Map:** Leaflet + React-Leaflet
|
||||||
|
- **Hosting:** Vercel (Frontend) + Eigener Server (Backend)
|
||||||
|
- **Notes:** Obsidian
|
||||||
|
|
||||||
|
## 📝 Development
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd frontend
|
||||||
|
npm run dev # Start dev server (localhost:3000)
|
||||||
|
npm run build # Production build
|
||||||
|
```
|
||||||
|
|
||||||
|
## 📖 Lizenz & Disclaimer
|
||||||
|
|
||||||
|
Dieses Projekt ist ein Fan-Wiki. Seven Deadly Sins Origin gehört seinen ursprünglichen Schöpfern.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Erstellt von: EinsamerWolfDH
|
||||||
@@ -0,0 +1,200 @@
|
|||||||
|
-- SDSO Wiki PostgreSQL Schema
|
||||||
|
|
||||||
|
-- Characters Table
|
||||||
|
CREATE TABLE characters (
|
||||||
|
id SERIAL PRIMARY KEY,
|
||||||
|
name VARCHAR(255) NOT NULL UNIQUE,
|
||||||
|
title VARCHAR(255),
|
||||||
|
race VARCHAR(100),
|
||||||
|
faction VARCHAR(100),
|
||||||
|
status VARCHAR(100),
|
||||||
|
description TEXT,
|
||||||
|
appearance TEXT,
|
||||||
|
first_appearance VARCHAR(100),
|
||||||
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||||
|
);
|
||||||
|
|
||||||
|
-- Character Stats
|
||||||
|
CREATE TABLE character_stats (
|
||||||
|
id SERIAL PRIMARY KEY,
|
||||||
|
character_id INT NOT NULL REFERENCES characters(id) ON DELETE CASCADE,
|
||||||
|
hp INT,
|
||||||
|
mp INT,
|
||||||
|
strength INT,
|
||||||
|
endurance INT,
|
||||||
|
magic INT,
|
||||||
|
speed INT,
|
||||||
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||||
|
);
|
||||||
|
|
||||||
|
-- Items Table
|
||||||
|
CREATE TABLE items (
|
||||||
|
id SERIAL PRIMARY KEY,
|
||||||
|
name VARCHAR(255) NOT NULL UNIQUE,
|
||||||
|
item_type VARCHAR(50) NOT NULL, -- weapon, armor, accessory, material
|
||||||
|
rarity VARCHAR(50),
|
||||||
|
description TEXT,
|
||||||
|
origin TEXT,
|
||||||
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||||
|
);
|
||||||
|
|
||||||
|
-- Item Stats
|
||||||
|
CREATE TABLE item_stats (
|
||||||
|
id SERIAL PRIMARY KEY,
|
||||||
|
item_id INT NOT NULL REFERENCES items(id) ON DELETE CASCADE,
|
||||||
|
attack INT,
|
||||||
|
defense INT,
|
||||||
|
magic_bonus INT,
|
||||||
|
special_effect TEXT,
|
||||||
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||||
|
);
|
||||||
|
|
||||||
|
-- Character Equipment
|
||||||
|
CREATE TABLE character_equipment (
|
||||||
|
id SERIAL PRIMARY KEY,
|
||||||
|
character_id INT NOT NULL REFERENCES characters(id) ON DELETE CASCADE,
|
||||||
|
item_id INT NOT NULL REFERENCES items(id) ON DELETE CASCADE,
|
||||||
|
slot_type VARCHAR(50), -- weapon, armor, accessory
|
||||||
|
equipped_from VARCHAR(100),
|
||||||
|
equipped_until VARCHAR(100),
|
||||||
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||||
|
);
|
||||||
|
|
||||||
|
-- Resources Table
|
||||||
|
CREATE TABLE resources (
|
||||||
|
id SERIAL PRIMARY KEY,
|
||||||
|
name VARCHAR(255) NOT NULL UNIQUE,
|
||||||
|
resource_type VARCHAR(100), -- material, crafting_ingredient, etc
|
||||||
|
description TEXT,
|
||||||
|
rarity VARCHAR(50),
|
||||||
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||||
|
);
|
||||||
|
|
||||||
|
-- Item Requirements (Crafting/Obtaining)
|
||||||
|
CREATE TABLE item_requirements (
|
||||||
|
id SERIAL PRIMARY KEY,
|
||||||
|
item_id INT NOT NULL REFERENCES items(id) ON DELETE CASCADE,
|
||||||
|
resource_id INT NOT NULL REFERENCES resources(id) ON DELETE CASCADE,
|
||||||
|
quantity INT NOT NULL,
|
||||||
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
UNIQUE(item_id, resource_id)
|
||||||
|
);
|
||||||
|
|
||||||
|
-- Episodes Table
|
||||||
|
CREATE TABLE episodes (
|
||||||
|
id SERIAL PRIMARY KEY,
|
||||||
|
season INT NOT NULL,
|
||||||
|
episode_number INT NOT NULL,
|
||||||
|
title VARCHAR(255) NOT NULL,
|
||||||
|
air_date DATE,
|
||||||
|
manga_chapter VARCHAR(100),
|
||||||
|
summary TEXT,
|
||||||
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
UNIQUE(season, episode_number)
|
||||||
|
);
|
||||||
|
|
||||||
|
-- Locations Table
|
||||||
|
CREATE TABLE locations (
|
||||||
|
id SERIAL PRIMARY KEY,
|
||||||
|
name VARCHAR(255) NOT NULL UNIQUE,
|
||||||
|
region VARCHAR(100),
|
||||||
|
location_type VARCHAR(100), -- city, castle, dungeon, nature, etc
|
||||||
|
lat FLOAT, -- For interactive map
|
||||||
|
lng FLOAT,
|
||||||
|
size VARCHAR(100),
|
||||||
|
population VARCHAR(100),
|
||||||
|
description TEXT,
|
||||||
|
geography TEXT,
|
||||||
|
accessible_from VARCHAR(100),
|
||||||
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||||
|
);
|
||||||
|
|
||||||
|
-- Character Relationships
|
||||||
|
CREATE TABLE relationships (
|
||||||
|
id SERIAL PRIMARY KEY,
|
||||||
|
character_a_id INT NOT NULL REFERENCES characters(id) ON DELETE CASCADE,
|
||||||
|
character_b_id INT NOT NULL REFERENCES characters(id) ON DELETE CASCADE,
|
||||||
|
relationship_type VARCHAR(100), -- ally, enemy, family, romance, etc
|
||||||
|
description TEXT,
|
||||||
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
UNIQUE(character_a_id, character_b_id)
|
||||||
|
);
|
||||||
|
|
||||||
|
-- Episode Characters (Many-to-Many)
|
||||||
|
CREATE TABLE episode_characters (
|
||||||
|
id SERIAL PRIMARY KEY,
|
||||||
|
episode_id INT NOT NULL REFERENCES episodes(id) ON DELETE CASCADE,
|
||||||
|
character_id INT NOT NULL REFERENCES characters(id) ON DELETE CASCADE,
|
||||||
|
role VARCHAR(100), -- main, supporting, cameo
|
||||||
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
UNIQUE(episode_id, character_id)
|
||||||
|
);
|
||||||
|
|
||||||
|
-- Episode Locations (Many-to-Many)
|
||||||
|
CREATE TABLE episode_locations (
|
||||||
|
id SERIAL PRIMARY KEY,
|
||||||
|
episode_id INT NOT NULL REFERENCES episodes(id) ON DELETE CASCADE,
|
||||||
|
location_id INT NOT NULL REFERENCES locations(id) ON DELETE CASCADE,
|
||||||
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
UNIQUE(episode_id, location_id)
|
||||||
|
);
|
||||||
|
|
||||||
|
-- Episode Items (Many-to-Many)
|
||||||
|
CREATE TABLE episode_items (
|
||||||
|
id SERIAL PRIMARY KEY,
|
||||||
|
episode_id INT NOT NULL REFERENCES episodes(id) ON DELETE CASCADE,
|
||||||
|
item_id INT NOT NULL REFERENCES items(id) ON DELETE CASCADE,
|
||||||
|
significance VARCHAR(100), -- introduced, featured, used, etc
|
||||||
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
UNIQUE(episode_id, item_id)
|
||||||
|
);
|
||||||
|
|
||||||
|
-- Story Arcs
|
||||||
|
CREATE TABLE story_arcs (
|
||||||
|
id SERIAL PRIMARY KEY,
|
||||||
|
name VARCHAR(255) NOT NULL UNIQUE,
|
||||||
|
description TEXT,
|
||||||
|
start_episode INT,
|
||||||
|
end_episode INT,
|
||||||
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||||
|
);
|
||||||
|
|
||||||
|
-- Story Arc Episodes (Many-to-Many)
|
||||||
|
CREATE TABLE story_arc_episodes (
|
||||||
|
id SERIAL PRIMARY KEY,
|
||||||
|
arc_id INT NOT NULL REFERENCES story_arcs(id) ON DELETE CASCADE,
|
||||||
|
episode_id INT NOT NULL REFERENCES episodes(id) ON DELETE CASCADE,
|
||||||
|
arc_order INT,
|
||||||
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||||
|
);
|
||||||
|
|
||||||
|
-- Lore/World Building
|
||||||
|
CREATE TABLE lore (
|
||||||
|
id SERIAL PRIMARY KEY,
|
||||||
|
title VARCHAR(255) NOT NULL UNIQUE,
|
||||||
|
category VARCHAR(100), -- faction, magic_system, history, etc
|
||||||
|
content TEXT,
|
||||||
|
related_characters TEXT, -- JSON array of character IDs
|
||||||
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||||
|
);
|
||||||
|
|
||||||
|
-- Create Indexes for Performance
|
||||||
|
CREATE INDEX idx_characters_faction ON characters(faction);
|
||||||
|
CREATE INDEX idx_items_type ON items(item_type);
|
||||||
|
CREATE INDEX idx_episodes_season ON episodes(season);
|
||||||
|
CREATE INDEX idx_locations_region ON locations(region);
|
||||||
|
CREATE INDEX idx_relationships_character ON relationships(character_a_id, character_b_id);
|
||||||
|
CREATE INDEX idx_episode_characters_episode ON episode_characters(episode_id);
|
||||||
|
CREATE INDEX idx_episode_characters_character ON episode_characters(character_id);
|
||||||
|
CREATE INDEX idx_item_requirements_item ON item_requirements(item_id);
|
||||||
|
CREATE INDEX idx_item_requirements_resource ON item_requirements(resource_id);
|
||||||
|
|
||||||
|
-- Enable Full Text Search (optional)
|
||||||
|
ALTER TABLE characters ADD COLUMN search_vector TSVECTOR;
|
||||||
|
ALTER TABLE items ADD COLUMN search_vector TSVECTOR;
|
||||||
|
ALTER TABLE locations ADD COLUMN search_vector TSVECTOR;
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
version: '3.8'
|
||||||
|
|
||||||
|
services:
|
||||||
|
postgres:
|
||||||
|
image: postgres:15-alpine
|
||||||
|
container_name: sdso-postgres
|
||||||
|
environment:
|
||||||
|
POSTGRES_DB: sdso_wiki
|
||||||
|
POSTGRES_USER: sdso_user
|
||||||
|
POSTGRES_PASSWORD: sdso_password
|
||||||
|
ports:
|
||||||
|
- "5432:5432"
|
||||||
|
volumes:
|
||||||
|
- postgres_data:/var/lib/postgresql/data
|
||||||
|
- ./database/schema.sql:/docker-entrypoint-initdb.d/01-schema.sql
|
||||||
|
- ./database/seed-data:/docker-entrypoint-initdb.d/seed-data
|
||||||
|
networks:
|
||||||
|
- sdso-network
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD-SHELL", "pg_isready -U sdso_user"]
|
||||||
|
interval: 10s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 5
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
postgres_data:
|
||||||
|
|
||||||
|
networks:
|
||||||
|
sdso-network:
|
||||||
|
driver: bridge
|
||||||
+5
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"alwaysUpdateLinks": true,
|
||||||
|
"newFileLocation": "folder",
|
||||||
|
"newFileFolderPath": "root"
|
||||||
|
}
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
# SDSO Wiki - Obsidian Vault
|
||||||
|
|
||||||
|
Willkommen zum Obsidian-Vault für das **Seven Deadly Sins: Origin Fan-Wiki**!
|
||||||
|
|
||||||
|
## 📂 Ordnerstruktur
|
||||||
|
|
||||||
|
- **Characters/** - Character-Profile mit Stats, Abilities, Equipment
|
||||||
|
- **Episodes/** - Episode-Guides und Story-Zusammenfassungen
|
||||||
|
- **Locations/** - Orte, NPCs, Items in der SDSO-Welt
|
||||||
|
- **Items/** - Waffen, Rüstungen, Ressourcen, Crafting
|
||||||
|
- **Lore/** - Welten-Hintergrund, Geschichte, Fraktionen
|
||||||
|
- **Relationships/** - Character-Beziehungen und Netzwerk
|
||||||
|
- **Story Arcs/** - Größere Story-Zusammenhänge
|
||||||
|
- **Resources/** - Forschungsmaterialien, Links, Notizen
|
||||||
|
- **Templates/** - Markdown-Templates für neue Inhalte
|
||||||
|
|
||||||
|
## 🎯 Wie man anfängt
|
||||||
|
|
||||||
|
1. Öffne eine neue Note in einem der Ordner
|
||||||
|
2. Nutze die Templates als Basis
|
||||||
|
3. Links mit `[[Character Name]]` erstellen
|
||||||
|
4. Tags nutzen für Kategorisierung (#charakter, #waffe, #episode)
|
||||||
|
|
||||||
|
## 📝 Naming Convention
|
||||||
|
|
||||||
|
- Character-Notes: `Meliodas.md`
|
||||||
|
- Episode-Notes: `01 - The Beginning.md`
|
||||||
|
- Location-Notes: `Britannia - Capital.md`
|
||||||
|
- Item-Notes: `Dragon Handle (Waffe).md`
|
||||||
|
|
||||||
|
## 🔗 Wikilinks
|
||||||
|
|
||||||
|
Nutze doppelte Klammern für interne Links:
|
||||||
|
```markdown
|
||||||
|
[[Meliodas]] ist der Anführer der [[Seven Deadly Sins]]
|
||||||
|
Die Waffe [[Dragon Handle]] gehört [[Meliodas]]
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🏷️ Tags
|
||||||
|
|
||||||
|
Nutze Tags für Filterung:
|
||||||
|
```markdown
|
||||||
|
#charakter #protagonist #demon
|
||||||
|
#waffe #sword #legendary
|
||||||
|
#episode #season1 #arc1
|
||||||
|
```
|
||||||
|
|
||||||
|
## 📚 Checkliste für Neue Inhalte
|
||||||
|
|
||||||
|
- [ ] Titel und Kategorie definiert
|
||||||
|
- [ ] Basisdaten ausgefüllt
|
||||||
|
- [ ] Links zu verwandten Notizen
|
||||||
|
- [ ] Tags hinzugefügt
|
||||||
|
- [ ] Formatierung überprüft
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Viel Spaß beim Sammeln der SDSO-Lore! 🎮
|
||||||
@@ -0,0 +1,69 @@
|
|||||||
|
---
|
||||||
|
type: character
|
||||||
|
tags: [charakter]
|
||||||
|
created: {{date}}
|
||||||
|
updated: {{date}}
|
||||||
|
---
|
||||||
|
|
||||||
|
# {{CHARACTER_NAME}}
|
||||||
|
|
||||||
|
## Basis-Info
|
||||||
|
- **Titel:**
|
||||||
|
- **Rasse:**
|
||||||
|
- **Fraktion:**
|
||||||
|
- **Status:**
|
||||||
|
- **Erstes Auftreten:** Episode/Kapitel
|
||||||
|
|
||||||
|
## Beschreibung
|
||||||
|
*Kurze Zusammenfassung der Charakterisierung*
|
||||||
|
|
||||||
|
## Aussehen
|
||||||
|
*Physische Beschreibung*
|
||||||
|
|
||||||
|
## Stats
|
||||||
|
| Stat | Wert |
|
||||||
|
|------|------|
|
||||||
|
| HP | - |
|
||||||
|
| MP | - |
|
||||||
|
| Kraft | - |
|
||||||
|
| Ausdauer | - |
|
||||||
|
| Magie | - |
|
||||||
|
| Geschwindigkeit | - |
|
||||||
|
|
||||||
|
## Fähigkeiten & Kräfte
|
||||||
|
### Fähigkeit 1
|
||||||
|
- **Name:**
|
||||||
|
- **Typ:**
|
||||||
|
- **Beschreibung:**
|
||||||
|
|
||||||
|
### Fähigkeit 2
|
||||||
|
- **Name:**
|
||||||
|
- **Typ:**
|
||||||
|
- **Beschreibung:**
|
||||||
|
|
||||||
|
## Equipment
|
||||||
|
- **Waffe:** [[]]
|
||||||
|
- **Rüstung:** [[]]
|
||||||
|
- **Accessoires:** [[]]
|
||||||
|
|
||||||
|
## Ressourcen für Equipment
|
||||||
|
*Was braucht man um diese Ausrüstung zu erhalten?*
|
||||||
|
|
||||||
|
## Beziehungen
|
||||||
|
- [[Character Name]] - Beziehungstyp
|
||||||
|
- [[Character Name]] - Beziehungstyp
|
||||||
|
|
||||||
|
## Story-Relevanz
|
||||||
|
*Welche Story-Arcs/Episodes sind wichtig für diesen Character?*
|
||||||
|
|
||||||
|
## Notizen
|
||||||
|
*Zusätzliche Infos, Theorien, Anmerkungen*
|
||||||
|
|
||||||
|
## Quellen
|
||||||
|
- Anime Episode:
|
||||||
|
- Manga Kapitel:
|
||||||
|
- Datenbank:
|
||||||
|
- Fan-Wiki:
|
||||||
|
|
||||||
|
---
|
||||||
|
Tags: #charakter #name
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
---
|
||||||
|
type: episode
|
||||||
|
season: 1
|
||||||
|
episode_number: 1
|
||||||
|
tags: [episode, story]
|
||||||
|
created: {{date}}
|
||||||
|
updated: {{date}}
|
||||||
|
---
|
||||||
|
|
||||||
|
# Season X, Episode Y - {{TITLE}}
|
||||||
|
|
||||||
|
## Episode-Info
|
||||||
|
- **Nummer:**
|
||||||
|
- **Titel:**
|
||||||
|
- **Luftdatum:**
|
||||||
|
- **Manga-Kapitel:**
|
||||||
|
|
||||||
|
## Zusammenfassung
|
||||||
|
*Kurze Zusammenfassung der Episode*
|
||||||
|
|
||||||
|
## Hauptereignisse
|
||||||
|
- Ereignis 1
|
||||||
|
- Ereignis 2
|
||||||
|
- Ereignis 3
|
||||||
|
|
||||||
|
## Featured Characters
|
||||||
|
- [[Character Name]]
|
||||||
|
- [[Character Name]]
|
||||||
|
|
||||||
|
## Featured Locations
|
||||||
|
- [[Location Name]]
|
||||||
|
- [[Location Name]]
|
||||||
|
|
||||||
|
## Items Eingeführt
|
||||||
|
- [[Item Name]]
|
||||||
|
- [[Item Name]]
|
||||||
|
|
||||||
|
## Story-Relevanz
|
||||||
|
*Wie wichtig ist diese Episode für die Gesamtstory?*
|
||||||
|
|
||||||
|
## Notizen & Theorien
|
||||||
|
*Interessante Punkte, versteckte Details, Fan-Theorien*
|
||||||
|
|
||||||
|
## Verbindungen
|
||||||
|
- **Vorherige Episode:** [[]]
|
||||||
|
- **Nächste Episode:** [[]]
|
||||||
|
- **Story-Arc:** [[]]
|
||||||
|
|
||||||
|
---
|
||||||
|
Tags: #episode #season1 #story
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
---
|
||||||
|
type: item
|
||||||
|
item_type: [weapon, armor, accessory, material]
|
||||||
|
tags: [item]
|
||||||
|
created: {{date}}
|
||||||
|
updated: {{date}}
|
||||||
|
---
|
||||||
|
|
||||||
|
# {{ITEM_NAME}}
|
||||||
|
|
||||||
|
## Basis-Info
|
||||||
|
- **Typ:** Waffe / Rüstung / Accessoire / Material
|
||||||
|
- **Seltenheit:**
|
||||||
|
- **Besitzer:** [[Character Name]]
|
||||||
|
- **Erstes Auftreten:** Episode/Kapitel
|
||||||
|
|
||||||
|
## Beschreibung
|
||||||
|
*Detaillierte Beschreibung des Items*
|
||||||
|
|
||||||
|
## Stats
|
||||||
|
| Eigenschaft | Wert |
|
||||||
|
|-------------|------|
|
||||||
|
| Angriff | - |
|
||||||
|
| Verteidigung | - |
|
||||||
|
| Magie-Bonus | - |
|
||||||
|
| Spezial-Effekt | - |
|
||||||
|
|
||||||
|
## Herkunft & Geschichte
|
||||||
|
*Wie wurde das Item hergestellt? Wer hat es gemacht?*
|
||||||
|
|
||||||
|
## Benötigte Ressourcen (Crafting)
|
||||||
|
*Was braucht man um dieses Item herzustellen/zu erhalten?*
|
||||||
|
|
||||||
|
| Ressource | Menge |
|
||||||
|
|-----------|-------|
|
||||||
|
| [[Resource Name]] | XX |
|
||||||
|
| [[Resource Name]] | XX |
|
||||||
|
|
||||||
|
## Träger/Besitzer
|
||||||
|
- [[Character Name]] - Zeitraum
|
||||||
|
- [[Character Name]] - Zeitraum
|
||||||
|
|
||||||
|
## Speciale Fähigkeiten
|
||||||
|
*Gibt es besondere Kräfte oder Effekte?*
|
||||||
|
|
||||||
|
## Story-Rolle
|
||||||
|
*Wie wichtig ist dieses Item für die Story?*
|
||||||
|
|
||||||
|
## Verwandte Items
|
||||||
|
- [[Item Name]]
|
||||||
|
- [[Item Name]]
|
||||||
|
|
||||||
|
## Quellen
|
||||||
|
- Anime Episode:
|
||||||
|
- Manga Kapitel:
|
||||||
|
|
||||||
|
---
|
||||||
|
Tags: #item #weapon #armor
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
---
|
||||||
|
type: location
|
||||||
|
tags: [location, world]
|
||||||
|
created: {{date}}
|
||||||
|
updated: {{date}}
|
||||||
|
---
|
||||||
|
|
||||||
|
# {{LOCATION_NAME}}
|
||||||
|
|
||||||
|
## Basis-Info
|
||||||
|
- **Region:**
|
||||||
|
- **Typ:** Stadt / Burg / Dungeon / Natur
|
||||||
|
- **Koordinaten:** [X, Y] (für Map)
|
||||||
|
- **Größe:**
|
||||||
|
- **Bevölkerung:**
|
||||||
|
|
||||||
|
## Beschreibung
|
||||||
|
*Detaillierte Beschreibung des Ortes*
|
||||||
|
|
||||||
|
## Geographie
|
||||||
|
*Klima, Terrain, Besonderheiten*
|
||||||
|
|
||||||
|
## NPCs & Bewohner
|
||||||
|
- [[Character Name]]
|
||||||
|
- [[Character Name]]
|
||||||
|
|
||||||
|
## Items zu finden
|
||||||
|
- [[Item Name]]
|
||||||
|
- [[Item Name]]
|
||||||
|
|
||||||
|
## Zugänglich seit
|
||||||
|
Episode/Kapitel:
|
||||||
|
|
||||||
|
## Story-Bedeutung
|
||||||
|
*Warum ist dieser Ort wichtig?*
|
||||||
|
|
||||||
|
## Verbindungen
|
||||||
|
**Benachbarte Orte:**
|
||||||
|
- [[Location Name]]
|
||||||
|
- [[Location Name]]
|
||||||
|
|
||||||
|
**Zu erreichende Orte:**
|
||||||
|
- [[Location Name]]
|
||||||
|
|
||||||
|
## Notizen
|
||||||
|
*Interessante Details, versteckte Dinge*
|
||||||
|
|
||||||
|
---
|
||||||
|
Tags: #location #world
|
||||||
Reference in New Issue
Block a user