diff --git a/wiki/Schnellstart.md b/wiki/Schnellstart.md new file mode 100644 index 0000000..8d576fc --- /dev/null +++ b/wiki/Schnellstart.md @@ -0,0 +1,220 @@ +# 🚀 Schnellstart + +Diese Anleitung führt Sie durch die Installation und den ersten Start des Ninja Cross Parkour Systems. + +## 📋 Voraussetzungen + +### System-Anforderungen +- **Node.js** v16 oder höher +- **PostgreSQL** 12 oder höher +- **npm** oder **yarn** +- **Git** (für Installation) + +### Hardware-Anforderungen +- **RFID-Reader** für Zeitmessung +- **RFID-Karten** für Spieler +- **Server** (Linux empfohlen) +- **Netzwerk** für API-Zugriff + +## 🔧 Installation + +### 1. Repository klonen +```bash +git clone +cd ninjaserver +``` + +### 2. Abhängigkeiten installieren +```bash +npm install +``` + +### 3. Umgebungsvariablen konfigurieren +```bash +cp .env.example .env +``` + +Bearbeiten Sie die `.env`-Datei: +```env +# Datenbank +DB_HOST=localhost +DB_PORT=5432 +DB_NAME=ninjaserver +DB_USER=your_username +DB_PASSWORD=your_password + +# Server +PORT=3000 +NODE_ENV=development + +# JWT Secret +JWT_SECRET=your_jwt_secret_here + +# Supabase (optional) +SUPABASE_URL=your_supabase_url +SUPABASE_ANON_KEY=your_supabase_key +``` + +### 4. Datenbank initialisieren +```bash +npm run init-db +``` + +### 5. Standardbenutzer erstellen +```bash +npm run create-user +``` + +## 🚀 Server starten + +### Entwicklungsumgebung +```bash +npm run dev +``` +Server läuft auf: `http://localhost:3000` + +### Produktionsumgebung +```bash +npm start +``` + +## 🔐 Erste Anmeldung + +### Web-Interface +1. Öffnen Sie `http://localhost:3000` +2. Melden Sie sich an mit: + - **Benutzername:** `admin` + - **Passwort:** `admin123` + +### API-Key generieren +```bash +curl -X POST http://localhost:3000/api/v1/web/generate-api-key \ + -H "Content-Type: application/json" \ + -d '{"description": "Mein erster API Key", "standorte": "Test"}' +``` + +## 🎮 Erste Schritte + +### 1. Standort erstellen +```bash +curl -X POST http://localhost:3000/api/v1/private/create-location \ + -H "Authorization: Bearer YOUR_API_KEY" \ + -H "Content-Type: application/json" \ + -d '{"name": "Test-Standort", "latitude": 48.1351, "longitude": 11.5820}' +``` + +### 2. Spieler erstellen +```bash +curl -X POST http://localhost:3000/api/v1/public/players \ + -H "Content-Type: application/json" \ + -d '{"firstname": "Max", "lastname": "Mustermann", "birthdate": "1990-01-01", "rfiduid": "AA:BB:CC:DD"}' +``` + +### 3. Zeit messen +```bash +curl -X POST http://localhost:3000/api/v1/private/create-time \ + -H "Authorization: Bearer YOUR_API_KEY" \ + -H "Content-Type: application/json" \ + -d '{"player_id": "AA:BB:CC:DD", "location_id": "Test-Standort", "recorded_time": "01:23.456"}' +``` + +## 🧪 System testen + +### API-Test ausführen +```bash +# Test-Skript bearbeiten +nano test-api.js + +# API_KEY in der Datei setzen +node test-api.js +``` + +### Web-Interface testen +1. Öffnen Sie `http://localhost:3000` +2. Melden Sie sich an +3. Erstellen Sie einen Standort +4. Fügen Sie einen Spieler hinzu +5. Messen Sie eine Zeit + +## 📊 Monitoring + +### Logs überwachen +```bash +# Server-Logs +tail -f logs/server.log + +# Achievement-Logs +tail -f /var/log/ninjaserver_achievements.log +``` + +### Datenbank-Status prüfen +```sql +-- Verbindung testen +SELECT NOW(); + +-- Tabellen anzeigen +\dt + +-- Spieler zählen +SELECT COUNT(*) FROM players; +``` + +## 🔧 Konfiguration + +### Standort-Schwellenwerte +```bash +curl -X PUT http://localhost:3000/api/v1/private/locations/{id}/threshold \ + -H "Authorization: Bearer YOUR_API_KEY" \ + -H "Content-Type: application/json" \ + -d '{"threshold_seconds": 120}' +``` + +### Achievement-System aktivieren +```bash +# Tägliche Prüfung einrichten +node scripts/setup_cron.js setup + +# Status prüfen +node scripts/setup_cron.js status +``` + +## 🚨 Häufige Probleme + +### Port bereits belegt +```bash +# Port 3000 freigeben +sudo lsof -ti:3000 | xargs kill -9 + +# Oder anderen Port verwenden +PORT=3001 npm start +``` + +### Datenbank-Verbindung fehlgeschlagen +1. PostgreSQL-Service prüfen: `sudo systemctl status postgresql` +2. Datenbank-Credentials in `.env` prüfen +3. Firewall-Einstellungen prüfen + +### API-Key funktioniert nicht +1. API-Key neu generieren +2. Authorization Header prüfen: `Bearer YOUR_API_KEY` +3. Token-Ablaufzeit prüfen + +## 📚 Nächste Schritte + +Nach der erfolgreichen Installation: + +1. 📖 Lesen Sie das [Benutzerhandbuch](Benutzerhandbuch) +2. 🔧 Konsultieren Sie die [Entwicklerhandbuch](Entwicklerhandbuch) +3. 📡 Schauen Sie in die [API Referenz](API-Referenz) +4. 🏆 Entdecken Sie das [Achievement System](Achievement-System) + +## 🆘 Hilfe + +Bei Problemen: +- 📖 [FAQ](FAQ) konsultieren +- 🔍 [Troubleshooting](Troubleshooting) durchgehen +- 📧 Support kontaktieren + +--- + +**Tipp:** Verwenden Sie `npm run dev` für die Entwicklung - der Server startet automatisch neu bei Änderungen! \ No newline at end of file