# GoLap Backend API

MySQL-basiertes Backend für die GoLap Lernapp mit Multi-User Support.

## 🚀 Setup

### 1. MySQL Datenbank einrichten
```bash
# MySQL starten
mysql -u root -p

# Datenbank erstellen
CREATE DATABASE GoLap CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

# Datenbank auswählen
USE GoLap;

# Schema importieren
source /pfad/zum/backend/database.sql;
```

### 2. Backend installieren
```bash
cd backend
npm install
```

### 3. Backend starten
```bash
# Entwicklung
npm run dev

# Produktion
npm start
```

## 📡 API Endpoints

### Auth
- `POST /api/auth/register` - Registrierung
- `POST /api/auth/login` - Login

### User
- `GET /api/user/profile` - Benutzerprofil
- `PUT /api/user/profile` - Profil aktualisieren

### Questions
- `GET /api/questions/:beruf` - Fragen abrufen
- `GET /api/categories/:beruf` - Kategorien abrufen

### Statistics
- `POST /api/statistics/update` - Statistiken aktualisieren
- `GET /api/quiz/history` - Quiz-Historie

## 🔧 Konfiguration

In `api.js` die MySQL Verbindung anpassen:
```javascript
const dbConfig = {
  host: 'localhost',
  user: 'dein_mysql_user',
  password: 'dein_passwort',
  database: 'GoLap'
};
```

## 📊 Datenbank Schema

- **users** - Benutzerdaten
- **user_preferences** - Benutzereinstellungen
- **categories** - Fragekategorien
- **questions** - Fragen
- **user_statistics** - Benutzerstatistiken
- **quiz_sessions** - Quiz-Sessions
- **question_answers** - Beantwortete Fragen

## 🛡️ Sicherheit

- JWT Token Authentifizierung
- Passwort Hashing mit bcrypt
- CORS Protection
- Input Validation

## 📱 Frontend Integration

Die React Native App verbindet sich über:
```typescript
import apiService from './src/utils/api';

// Login
await apiService.login(email, password);

// Fragen abrufen
const questions = await apiService.getQuestions('betriebstechnik');

// Statistiken aktualisieren
await apiService.updateStatistics({
  beruf: 'betriebstechnik',
  correct: 8,
  wrong: 2
});
```
