90 lines
2.1 KiB
Markdown
90 lines
2.1 KiB
Markdown
# MathQuest - Mathe-Lernseite für Kinder
|
|
|
|
Eine einfache und spaßige Mathe-Lernseite mit Quest-Punktesystem für Kinder.
|
|
|
|
## Features
|
|
|
|
- 🎯 Einfache Mathe-Aufgaben (Addition, Subtraktion, Multiplikation)
|
|
- ⭐ Quest-Punktesystem - jede Aufgabe gibt Punkte
|
|
- 📊 Fortschrittsbalken zur Visualisierung der Gesamtpunktzahl
|
|
- 💾 Persistente Speicherung der Punkte (JSON-Datei)
|
|
- 🎨 Kindgerechtes, buntes Design
|
|
|
|
## Installation
|
|
|
|
1. Node.js installieren (falls noch nicht vorhanden)
|
|
|
|
2. Abhängigkeiten installieren:
|
|
```bash
|
|
npm install
|
|
```
|
|
|
|
## Starten
|
|
|
|
```bash
|
|
npm start
|
|
```
|
|
|
|
Die Seite läuft dann auf `http://localhost:3000`
|
|
|
|
## Auf VPS deployen
|
|
|
|
1. Code auf den VPS hochladen
|
|
2. `npm install` ausführen
|
|
3. Mit PM2 oder systemd als Service laufen lassen:
|
|
|
|
### Mit PM2:
|
|
```bash
|
|
npm install -g pm2
|
|
pm2 start server.js --name mathquest
|
|
pm2 save
|
|
pm2 startup
|
|
```
|
|
|
|
### Mit systemd:
|
|
Erstelle eine Service-Datei `/etc/systemd/system/mathquest.service`:
|
|
```ini
|
|
[Unit]
|
|
Description=MathQuest Server
|
|
After=network.target
|
|
|
|
[Service]
|
|
Type=simple
|
|
User=dein-user
|
|
WorkingDirectory=/pfad/zum/mathquest
|
|
ExecStart=/usr/bin/node server.js
|
|
Restart=always
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
```
|
|
|
|
Dann:
|
|
```bash
|
|
sudo systemctl enable mathquest
|
|
sudo systemctl start mathquest
|
|
```
|
|
|
|
4. Nginx als Reverse Proxy konfigurieren (optional)
|
|
|
|
## Architektur
|
|
|
|
- **tasks.json**: Enthält alle Mathe-Aufgaben (Fragen, Antworten, Punkte)
|
|
- Wird beim Prüfen von Antworten aktualisiert
|
|
- Speichert `userAnswer` und `isCorrect` für jede Aufgabe
|
|
- **Backend**: Prüft Antworten und speichert sie direkt in der Task
|
|
- **Frontend**: Lädt Aufgaben, berechnet Gesamtpunktzahl aus korrekt beantworteten Aufgaben
|
|
|
|
## API Endpoints
|
|
|
|
- `GET /api/tasks` - Lädt alle Aufgaben (inkl. gespeicherte Antworten)
|
|
- `POST /api/check-answer` - Prüft eine Antwort (taskId, answer)
|
|
- Speichert `userAnswer` und `isCorrect` in der Task
|
|
- Gibt zurück: `correct`, `correctAnswer`, `points`
|
|
|
|
## Anpassungen
|
|
|
|
- Aufgaben können in `tasks.json` angepasst werden
|
|
- Design kann in `public/style.css` angepasst werden
|
|
- Port kann über Umgebungsvariable `PORT` geändert werden
|