# Projekt-How-to

Die vollständige zwölfseitige Projektdokumentation wird aus
`docs/howto.html` erzeugt und liegt unter
`public/kernel-panic-projektarbeit.pdf`. Sie ist das zentrale Abgabedokument
und enthält zusätzlich Screenshots, Architektur, Projektstruktur,
Qualitätssicherung, Scoreboard, Sicherheitsmodell, Schatzsuche, Deployment,
Lizenz und Quellen.

**Live-Spiel:** <https://andrestiebitz.de/kernel-panic/>

**Projekt herunterladen:** <https://andrestiebitz.de/kernel-panic/kernel-panic-lpic-projekt.zip>

**Quellcode:** <https://codeberg.org/andremadstop/lpic-kernel-panic>

## Idee

„Kernel Panic“ ist eine interaktive Projektarbeit für den Linux-Kurs. Zehn
Kapitel enthalten jeweils zehn Fragen zu Boot, Paketen, Textwerkzeugen,
Prozessen, Speicher, Rechten, Shell-Skripten, Netzwerk, Benutzern und sicherem
Systembetrieb. Der Kurslauf wählt drei Fragen pro Kapitel; der Lernmodus enthält
alle 100.

## Didaktisches Modell

Jede Frage hat vier Teile:

1. **Signal** — eine Ausgabe oder Fehlermeldung lesen.
2. **Werkzeug** — einen passenden Befehl auswählen, eingeben oder zusammensetzen.
3. **Entscheidung** — die sichere nächste Aktion begründen.
4. **Risiko** — erkennen, welche schnelle Aktion Schaden verursachen könnte.

## Fehler als Lernschritt

Ein Fehler bleibt nicht ohne Folgen, vernichtet aber keinen Fortschritt:

1. Eine falsche Antwort kostet 10 XP und zwei Prozentpunkte Integrität. Der
   Abzug steht sichtbar in der Fehlermeldung.
2. Die Meldung zeigt zusätzlich die exakte Lösung — der Fehler wird damit sofort
   zur Erklärung.
3. Nach dreieinhalb Sekunden geht es automatisch zur nächsten Frage. Ein
   „Weiter“-Knopf ist immer vorhanden und überspringt die Wartezeit.
4. Die verpasste Frage bleibt offen und wird am Ende des Kapitels erneut
   vorgelegt. Ein Kapitel ist erst abgeschlossen, wenn alle Fragen gelöst sind.
5. Drei Fehler in einem Kapitel setzen auf den Kapitelanfang zurück. Gelöste
   Fragen und gesammelte XP bleiben erhalten.

Wer die Systemeinstellung für reduzierte Bewegung nutzt, sieht statt der
Animation einen ruhigen Hinweistext.

## Lernübersicht zum Mitnehmen

Am Ende eines Laufs gibt die Abschlussseite einen persönlichen Spickzettel
heraus — als Markdown-Datei zum Herunterladen und als Druckansicht. Er listet
zuerst die Fragen, die einen zweiten Versuch oder einen Hinweis gebraucht
haben, jeweils mit Lösung und dem Schema Signal → Werkzeug → Entscheidung →
Risiko, danach die Bilanz pro Kapitel. Der Spickzettel entsteht vollständig im
Browser, ohne Serveranfrage und ohne persönliche Daten.

## Technik

- Next.js und React
- CSS/SVG für die gesamte Spielgrafik
- `localStorage` für lokalen Fortschritt
- stabile Zufallsauswahl mit 30 oder 100 Fragen
- Kapitel-Auswertung nach Fehlern und verwendeten Hinweisen
- Kapitel-Erfolgsmomente und Abschlussanimation
- Punktabzug, Lösungsanzeige und Kapitel-Reset nach drei Fehlern
- Lern-Spickzettel als Markdown-Download und Druckansicht
- optionales gemeinsames Scoreboard mit privater SQLite-Datenbank
- getrennte öffentliche Fake-SQLite als Easter-Egg-Schatzsuche
- keine Anmeldung, Analyse oder echte Shell
- automatisierte Logik-, Browser- und Mobiltests

## Lokal starten

```bash
npm install
npm run dev
```

Im Browser `http://localhost:3000/kernel-panic/` öffnen.

## Prüfen

```bash
npm audit
npm run check
npx playwright test
```

## Präsentation

1. Startseite und Projektidee zeigen.
2. Kurslauf und Lernmodus erklären.
3. Eine Auswahl-, Terminal- und Sequenzfrage spielen.
4. Absichtlich falsch antworten: Abzug, Lösung und automatischer Wechsel.
5. Am Systemplan zeigen, wie die Module wachsen.
6. Kapitel-Erfolg und „Hall of Tux“ zeigen.
7. Den Lern-Spickzettel herunterladen oder als Druckansicht öffnen.
8. Kurz erklären, dass keine echten Befehle ausgeführt werden.
9. Die Schatzsuche andeuten, ohne die Lösung zu verraten.
10. Kapitelbericht und öffentliche URL teilen.

Der Kurslauf dauert ungefähr 30 Minuten. Der Lernmodus ist ein vollständiger
Themencheck und kann über mehrere Sitzungen fortgesetzt werden.

## Lizenz

Quellcode und eigene Projekttexte stehen unter der MIT-Lizenz. Sie dürfen
genutzt, geändert und weitergegeben werden, wenn Copyright- und Lizenzhinweis
erhalten bleiben. Kursoriginale und Prüfungsbilder gehören nicht zum Projekt.
