Die fachlichen Inhalte liegen als Dateien unter content/ und werden beim Start eingelesen, geprueft und in den Speicher geladen. - Inhaltslader mit Zod-Schemata und Querverweispruefung - Fehlermeldungen nennen Datei und Zeile, gesammelt statt beim ersten Fehler geworfen; die Anwendung startet bei Fehlern nicht - npm run inhalte:pruefen prueft ohne Start - Handout-Ansicht mit festem Aufbau, Uebersicht nach Themenbloecken - Volltextsuche mit Gewichtung und Trefferausschnitt - Gelesen-Markierung je Handout - Glossar mit Suche und automatischer Verlinkung in den Handouts - Beispielinhalte: 4 Wochen, 12 Handouts, 24 Merkkarten, 4 Aufgaben, 4 Checklisten, 2 Lernzielkontrollen, 24 Glossareintraege - rahmenplan.yaml aus FIAusbV 2020 und KMK-Rahmenlehrplan, mit Fundstellen - gray-matter entfernt, YAML-Kopf wird selbst herausgeloest - npm run screenshots nimmt die Bilder fuer die Anleitung auf - 39 neue Tests, insgesamt 68 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
58 lines
1.6 KiB
JSON
58 lines
1.6 KiB
JSON
{
|
||
"name": "lernbar",
|
||
"version": "0.1.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"
|
||
},
|
||
"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
|
||
}
|
||
}
|