AP0 Quick Wins: Chart.js lokal, Scaffolding weg, Umlaute, FinalProtocol-Titel

- Chart.js von jsDelivr-CDN lokal vendored (static/js/vendor/chart.umd.min.js
  v4.4.7), progress.html darauf umgestellt -> schliesst das einzige externe
  Asset / DSGVO-Datenleck.
- Scaffolding entfernt: DummyController.java, dummy.html, static/hello.txt.
- Umlaute umfassend korrigiert (wort-/morphemgenau, Slugs + Code-Identifier wie
  ZahlungPruefung/GEPRUEFT/Daemon/Boehm bewusst geschont): usv.json,
  devlab/techtacular/bughunter content.json, techtacular.js, zahlensysteme.html,
  style.css-Mojibake. V21-Migration reseedet geseedete DBs aus korrigiertem JSON.
- FinalProtocol: Titel "AP1" entfernt, Hero deckt jetzt AP1 und AP2 ab.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WFxcjtc9HNP4VECT6Ur1tE
This commit is contained in:
AliceDarkest
2026-07-20 23:37:55 +02:00
parent c5009d1718
commit e52cada445
14 changed files with 300 additions and 318 deletions
-46
View File
@@ -1,46 +0,0 @@
<!DOCTYPE html>
<html lang="de" data-theme="dark" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>SysnaptiK Neural – In Arbeit</title>
<link rel="stylesheet" href="/css/theme.css?v=3">
<script src="/js/theme.js?v=4"></script>
<style>
.mf-cardbox { max-width:560px; text-align:center; }
.mf-cardbox h1 { color:var(--heading); font-size:1.5rem; font-weight:800; margin-bottom:.5rem; }
.mf-cardbox .slogan { color:var(--muted); font-size:.95rem; margin-bottom:1.6rem; }
.mf-cardbox .quote { color:var(--accent); font-size:1.05rem; line-height:1.6; font-style:italic;
border-left:3px solid var(--border-accent); background:var(--surface-2); padding:1rem 1.2rem;
border-radius:10px; text-align:left; margin-bottom:1.6rem; }
.mf-cardbox .mf-back { display:inline-block; }
</style>
</head>
<body>
<div class="mf-theme-float"><button class="mf-theme"></button></div>
<div class="mf-center">
<div class="mf-cardbox">
<h1>Bereich in Vorbereitung</h1>
<p class="slogan">Hier entsteht ein weiterer Knoten für dein Lernnetz.</p>
<p class="quote">
"Dieser Bereich wird gerade für dein Lernnetz vorbereitet."
</p>
<a th:href="@{/dashboard}" class="mf-back">⟵ Zurück zum Dashboard</a>
</div>
</div>
<footer class="mf-footer">
<a href="#">Support</a>
<a href="#">Feedback</a>
<a href="/nutzungsbedingungen">Nutzungsbedingungen</a>
<a href="/richtlinien">Richtlinien</a>
<a href="/datenschutz">Datenschutz</a>
<a href="/impressum">Impressum</a>
</footer>
</body>
</html>
+7 -6
View File
@@ -2,7 +2,7 @@
<html lang="de" data-theme="dark">
<head>
<meta charset="UTF-8">
<title>FinalProtocol AP1 - SysnaptiK Neural</title>
<title>FinalProtocol - SysnaptiK Neural</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="/css/style.css">
<link rel="stylesheet" href="/css/theme.css?v=3">
@@ -73,12 +73,13 @@
<main class="finalflux-main">
<section class="finalflux-hero">
<p class="eyebrow">Abschlussprüfung Teil 1</p>
<h2>Einrichten eines IT-gestützten Arbeitsplatzes</h2>
<p class="eyebrow">Abschlussprüfung Teil 1 &amp; Teil 2</p>
<h2>Die gesamte Fachinformatiker-Prüfung im Blick</h2>
<p>
FinalProtocol bündelt AP1-Wissen für IT-Berufe: technische Grundlagen,
Arbeitsplatzanalyse, Netzwerke, Datenschutz, Beschaffung und einfache
Rechen- sowie Entscheidungssituationen.
FinalProtocol bündelt AP1 <strong>und</strong> AP2: Von den Grundlagen
(Einrichten eines IT-gestützten Arbeitsplatzes, Netzwerke, Datenschutz,
Wirtschaft) bis zu den fachrichtungsspezifischen Themen der AP2 –
Systemintegration (FISI) und Anwendungsentwicklung (FIAE).
</p>
</section>
+1 -1
View File
@@ -6,7 +6,7 @@
<title>Fortschritt – SysnaptiK Neural</title>
<link rel="stylesheet" href="/css/theme.css?v=3">
<script src="/js/theme.js?v=4"></script>
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<script src="/js/vendor/chart.umd.min.js?v=4.4.7"></script>
<style>
.mf-progress-summary { display:flex; flex-wrap:wrap; align-items:center; gap:2rem; }
.mf-circular { position:relative; width:180px; height:180px; flex:0 0 auto; }