# 🚀 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!