docs/ANLEITUNG.md: 20 Abschnitte, 27 Bildschirmfotos, getrennt fuer Ausbilder und Azubi, dazu "Wenn etwas nicht geht". Die Bilder entstehen automatisiert ueber npm run screenshots - was dort steht, ist gemessen und nicht gemalt. scripts/pruefungen/abnahme.mjs (npm run abnahme) laeuft gegen eine frische, leere Datenbank in einem Wegwerfverzeichnis: aufsetzen, Konten anlegen, arbeiten, abnehmen, sichern, beschaedigen, zurueckspielen. Eine Sicherung, die nie zurueckgespielt wurde, ist keine Sicherung. 33 von 33 Pruefungen erfuellt, Protokoll in docs/ABNAHME.md. Dabei drei echte Fehler gefunden, alle in Wegen, die nie ausgefuehrt worden waren: - Die Sicherungsskripte liefen nicht in Git Bash, obwohl das in ihrem Kopf stand: tar deutet den Doppelpunkt in "C:\..." als Rechnernamen. Beide wechseln jetzt erst ins Verzeichnis und uebergeben einen blossen Dateinamen. - Auf einer frischen Datenbank gibt es noch kein Wochenblatt; der Weg jedes neuen Azubis war nie durchlaufen worden. - Der Abnahmelauf selbst liess unter Windows seinen Server ueberleben (kill() beendet nur die cmd.exe) und prueft deshalb jetzt vorher, ob der Port frei ist - sonst haette er gegen fremde Daten geprueft. Fassung 1.0.0: package.json stand noch auf 0.1.0, waehrend das Aenderungsprotokoll bei 0.9.0 war. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
60 lines
1.7 KiB
JSON
60 lines
1.7 KiB
JSON
{
|
||
"name": "lernbar",
|
||
"version": "1.0.0",
|
||
"private": true,
|
||
"description": "Lern-Bar – betriebliche Ausbildung Fachinformatiker Systemintegration",
|
||
"engines": {
|
||
"node": ">=22"
|
||
},
|
||
"scripts": {
|
||
"dev": "next dev",
|
||
"build": "next build",
|
||
"start": "next start",
|
||
"lint": "eslint .",
|
||
"typecheck": "tsc --noEmit",
|
||
"test": "vitest run",
|
||
"test:watch": "vitest",
|
||
"e2e": "playwright test",
|
||
"inhalte:pruefen": "tsx scripts/inhalte-pruefen.ts",
|
||
"konto:anlegen": "tsx scripts/konto-anlegen.ts",
|
||
"backup": "bash scripts/im-container/sicherung.sh",
|
||
"restore": "bash scripts/im-container/wiederherstellen.sh",
|
||
"screenshots": "tsx scripts/screenshots.ts",
|
||
"symbole": "tsx scripts/symbole.ts",
|
||
"abnahme": "node scripts/pruefungen/abnahme.mjs"
|
||
},
|
||
"dependencies": {
|
||
"@node-rs/argon2": "^2.0.2",
|
||
"better-sqlite3": "^12.11.1",
|
||
"drizzle-orm": "^0.45.2",
|
||
"markdown-it": "^14.1.0",
|
||
"next": "^15.5.4",
|
||
"pdfkit": "^0.17.1",
|
||
"react": "^19.1.0",
|
||
"react-dom": "^19.1.0",
|
||
"server-only": "^0.0.1",
|
||
"yaml": "^2.8.0",
|
||
"zod": "^3.25.76"
|
||
},
|
||
"devDependencies": {
|
||
"@eslint/eslintrc": "^3.3.7",
|
||
"@playwright/test": "^1.55.0",
|
||
"@types/better-sqlite3": "^7.6.13",
|
||
"@types/markdown-it": "^14.1.2",
|
||
"@types/node": "^22.15.0",
|
||
"@types/pdfkit": "^0.14.0",
|
||
"@types/react": "^19.1.0",
|
||
"@types/react-dom": "^19.1.0",
|
||
"eslint": "^9.34.0",
|
||
"eslint-config-next": "^15.5.4",
|
||
"tsx": "^4.20.0",
|
||
"typescript": "^5.9.2",
|
||
"vitest": "^3.2.4"
|
||
},
|
||
"allowScripts": {
|
||
"better-sqlite3@12.11.1": true,
|
||
"esbuild@0.28.2": true,
|
||
"unrs-resolver@1.12.2": true
|
||
}
|
||
}
|