Rechtstexte, FinalFlux-Überarbeitung, neue Login-Optik, Konto-Löschung-Fix, BTTF-Farbrelaunch

- Rechtsseiten: Impressum-Platzhalter + echte Nutzungsbedingungen/AGB,
  Datenschutz (DSGVO) und Richtlinien; LegalController/ImpressumController,
  Footer app-weit verlinkt, Seiten als permitAll freigegeben.
- FinalFlux: 28 Themen / ~742 Fragen überarbeitet (plausible Distraktoren statt
  Dummy-Antworten, echte Erklärungen) + echte Lehrtexte je Seite;
  Netzwerktopologien mit Inline-SVG-Diagrammen (Stern/Bus/Ring/Mesh/Baum).
- Login/Registrierung als kombiniertes Dual-Panel (Slide-Overlay + Neon-Hover-
  Button), ausgelagert nach auth.css; Register-Duplikat -> /?registerError.
- Konto löschen repariert: @Transactional + Löschen von Spielständen,
  Achievements und Profilbild-Datei (DSGVO Art. 17). Impressum-Zurück-Link
  login-abhängig.
- App-weiter Farb-Relaunch auf "Back to the Future"-Palette: Feuer-Amber primär
  + Flux-Blau sekundär, warmer Glow; Dark/Light bleiben. Spiele-Feedback ohne
  Grün: richtig = Blau + Haken, falsch = Rot + Kreuz (neue Tokens
  --success/--danger/--secondary). Legacy-Cyan in style.css auf Variablen.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
AliceDarkest
2026-06-29 19:08:05 +02:00
parent fc98e5aad1
commit 34b050503d
94 changed files with 6712 additions and 4220 deletions
@@ -61,10 +61,10 @@
<footer class="mf-footer">
<a href="#">Support</a>
<a href="#">Feedback</a>
<a href="#">Nutzungsbedingungen</a>
<a href="#">Richtlinien</a>
<a href="#">Datenschutz</a>
<a href="#">Impressum</a>
<a href="/nutzungsbedingungen">Nutzungsbedingungen</a>
<a href="/richtlinien">Richtlinien</a>
<a href="/datenschutz">Datenschutz</a>
<a href="/impressum">Impressum</a>
</footer>
</body>
@@ -57,10 +57,10 @@
<footer class="mf-footer">
<a href="#">Support</a>
<a href="#">Feedback</a>
<a href="#">Nutzungsbedingungen</a>
<a href="#">Richtlinien</a>
<a href="#">Datenschutz</a>
<a href="#">Impressum</a>
<a href="/nutzungsbedingungen">Nutzungsbedingungen</a>
<a href="/richtlinien">Richtlinien</a>
<a href="/datenschutz">Datenschutz</a>
<a href="/impressum">Impressum</a>
</footer>
</div>
@@ -125,10 +125,10 @@
<footer class="mf-footer">
<a href="#">Support</a>
<a href="#">Feedback</a>
<a href="#">Nutzungsbedingungen</a>
<a href="#">Richtlinien</a>
<a href="#">Datenschutz</a>
<a href="#">Impressum</a>
<a href="/nutzungsbedingungen">Nutzungsbedingungen</a>
<a href="/richtlinien">Richtlinien</a>
<a href="/datenschutz">Datenschutz</a>
<a href="/impressum">Impressum</a>
</footer>
</body>
@@ -129,10 +129,10 @@
<footer class="mf-footer">
<a href="#">Support</a>
<a href="#">Feedback</a>
<a href="#">Nutzungsbedingungen</a>
<a href="#">Richtlinien</a>
<a href="#">Datenschutz</a>
<a href="#">Impressum</a>
<a href="/nutzungsbedingungen">Nutzungsbedingungen</a>
<a href="/richtlinien">Richtlinien</a>
<a href="/datenschutz">Datenschutz</a>
<a href="/impressum">Impressum</a>
</footer>
</body>
@@ -86,10 +86,10 @@
<footer class="mf-footer">
<a href="#">Support</a>
<a href="#">Feedback</a>
<a href="#">Nutzungsbedingungen</a>
<a href="#">Richtlinien</a>
<a href="#">Datenschutz</a>
<a href="#">Impressum</a>
<a href="/nutzungsbedingungen">Nutzungsbedingungen</a>
<a href="/richtlinien">Richtlinien</a>
<a href="/datenschutz">Datenschutz</a>
<a href="/impressum">Impressum</a>
</footer>
</body>
@@ -57,10 +57,10 @@
<footer class="mf-footer">
<a href="#">Support</a>
<a href="#">Feedback</a>
<a href="#">Nutzungsbedingungen</a>
<a href="#">Richtlinien</a>
<a href="#">Datenschutz</a>
<a href="#">Impressum</a>
<a href="/nutzungsbedingungen">Nutzungsbedingungen</a>
<a href="/richtlinien">Richtlinien</a>
<a href="/datenschutz">Datenschutz</a>
<a href="/impressum">Impressum</a>
</footer>
</body>
@@ -60,10 +60,10 @@
<footer class="mf-footer">
<a href="#">Support</a>
<a href="#">Feedback</a>
<a href="#">Nutzungsbedingungen</a>
<a href="#">Richtlinien</a>
<a href="#">Datenschutz</a>
<a href="#">Impressum</a>
<a href="/nutzungsbedingungen">Nutzungsbedingungen</a>
<a href="/richtlinien">Richtlinien</a>
<a href="/datenschutz">Datenschutz</a>
<a href="/impressum">Impressum</a>
</footer>
</body>
+4 -4
View File
@@ -165,10 +165,10 @@
<footer class="mf-footer">
<a href="#">Support</a>
<a href="#">Feedback</a>
<a href="#">Nutzungsbedingungen</a>
<a href="#">Richtlinien</a>
<a href="#">Datenschutz</a>
<a href="#">Impressum</a>
<a href="/nutzungsbedingungen">Nutzungsbedingungen</a>
<a href="/richtlinien">Richtlinien</a>
<a href="/datenschutz">Datenschutz</a>
<a href="/impressum">Impressum</a>
</footer>
<script th:inline="none">
+4 -4
View File
@@ -38,10 +38,10 @@
<footer class="mf-footer">
<a href="#">Support</a>
<a href="#">Feedback</a>
<a href="#">Nutzungsbedingungen</a>
<a href="#">Richtlinien</a>
<a href="#">Datenschutz</a>
<a href="#">Impressum</a>
<a href="/nutzungsbedingungen">Nutzungsbedingungen</a>
<a href="/richtlinien">Richtlinien</a>
<a href="/datenschutz">Datenschutz</a>
<a href="/impressum">Impressum</a>
</footer>
</body>
+4 -4
View File
@@ -105,10 +105,10 @@
<footer class="mf-footer">
<a href="#">Support</a>
<a href="#">Feedback</a>
<a href="#">Nutzungsbedingungen</a>
<a href="#">Richtlinien</a>
<a href="#">Datenschutz</a>
<a href="#">Impressum</a>
<a href="/nutzungsbedingungen">Nutzungsbedingungen</a>
<a href="/richtlinien">Richtlinien</a>
<a href="/datenschutz">Datenschutz</a>
<a href="/impressum">Impressum</a>
</footer>
</body>
@@ -0,0 +1,60 @@
<!DOCTYPE html>
<html lang="de" data-theme="dark" xmlns:th="http://www.thymeleaf.org"
xmlns:sec="http://www.thymeleaf.org/extras/spring-security">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Mindflux – Impressum</title>
<link rel="stylesheet" href="/css/theme.css">
<script src="/js/theme.js"></script>
<style>
.mf-cardbox { max-width:620px; text-align:center; }
.mf-doc { font-size:3rem; margin-bottom:.6rem; filter:drop-shadow(0 0 14px var(--glow-s)); }
.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 .notice { color:var(--accent); font-size:1.05rem; line-height:1.6;
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 .meta { color:var(--muted); font-size:.85rem; line-height:1.6; 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">
<div class="mf-doc">📄</div>
<h1>Impressum</h1>
<p class="slogan">Rechtliche Angaben – Platzhalter</p>
<p class="notice">
Mindflux befindet sich aktuell <strong>in aktiver Entwicklung</strong> und ist
<strong>nicht für die öffentliche Nutzung</strong> bestimmt. Die hier dargestellten
Inhalte sind ein Platzhalter und dienen ausschließlich internen Test- und
Entwicklungszwecken.
</p>
<p class="meta">
Ein vollständiges Impressum gemäß den gesetzlichen Anforderungen wird vor einer
öffentlichen Veröffentlichung ergänzt.<br>
© 2026 Sysnaptik – Alle Rechte vorbehalten.
</p>
<a th:href="@{/dashboard}" class="mf-back" sec:authorize="isAuthenticated()">⟵ Zurück zum Dashboard</a>
<a th:href="@{/}" class="mf-back" sec:authorize="!isAuthenticated()">⟵ Zurück</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>
+116 -67
View File
@@ -6,85 +6,134 @@
<title>Mindflux – Deine Zukunft beginnt hier</title>
<link rel="stylesheet" href="/css/theme.css">
<script src="/js/theme.js"></script>
<style>
.mf-auth { width:100%; max-width:880px; display:grid; grid-template-columns:1.1fr 1fr; gap:1.4rem; align-items:stretch; }
.mf-auth .info { background:var(--surface); border:1px solid var(--border); border-radius:18px; padding:2rem; box-shadow:var(--g-soft); }
.mf-auth .info h2 { color:var(--heading); font-size:1.25rem; font-weight:800; margin-bottom:.7rem; }
.mf-auth .info p { color:var(--muted); font-size:.92rem; line-height:1.6; margin-bottom:.8rem; }
.mf-authlogo { display:flex; flex-direction:column; align-items:center; gap:.5rem; margin-bottom:1.4rem; text-align:center; }
.mf-authlogo .mark { width:64px; height:64px; background:var(--accent);
-webkit-mask:url("/img/mindflux-emblem.png") center/contain no-repeat; mask:url("/img/mindflux-emblem.png") center/contain no-repeat;
filter:drop-shadow(0 0 12px var(--glow-s)); }
.mf-authlogo b { color:var(--accent); font-weight:800; letter-spacing:.16em; font-size:1.2rem; text-shadow:0 0 14px var(--glow-s); }
.mf-authlogo span { color:var(--muted); font-size:.62rem; letter-spacing:.24em; }
.login-box h2 { color:var(--heading); font-size:1.15rem; font-weight:800; margin-bottom:1.1rem; text-align:center; }
.login-box .alt { color:var(--muted); font-size:.85rem; text-align:center; margin:1.1rem 0 .6rem; }
.login-box .mf-btn { width:100%; }
.mf-foot { margin-top:1.6rem; color:var(--muted); font-size:.78rem; text-align:center; line-height:2; }
.mf-foot a { color:var(--muted); text-decoration:none; }
.mf-foot a:hover { color:var(--accent); }
@media (max-width:760px){ .mf-auth { grid-template-columns:1fr; } }
</style>
<link rel="stylesheet" href="/css/auth.css">
</head>
<body>
<div class="mf-theme-float"><button class="mf-theme"></button></div>
<div class="mf-center">
<div>
<div class="mf-auth">
<!-- Infotext -->
<div class="info">
<p class="mf-eyebrow" style="margin-bottom:.6rem">Willkommen bei Mindflux</p>
<h2>Worum geht's bei Mindflux?</h2>
<p>
Mindflux ist deine moderne Lernplattform zur gezielten Prüfungsvorbereitung in der IT-Ausbildung.
Trainiere Fragen, baue dein Wissen auf – und das mit Stil.
Unterstützt von Zeitreise-Ästhetik, Technik-Liebe und einer ordentlichen Portion Motivation.
</p>
<p>
Registriere dich kostenlos, erstelle Quizfragen, lerne systematisch – und bring dein Wissen auf 88 Meilen pro Stunde 🚀
</p>
<div class="auth-stage">
<div class="auth-container" id="authContainer">
<!-- ===== Sign In ===== -->
<div class="form-box login">
<div class="inner">
<div class="auth-head">
<span class="mark"></span>
<b>MINDFLUX</b>
<h2>Willkommen zurück</h2>
<span class="sub">Melde dich an, um weiterzulernen.</span>
</div>
<div th:if="${param.error}" class="mf-alert err">Benutzername oder Passwort sind falsch.</div>
<div th:if="${param.logout}" class="mf-alert ok">Du hast dich erfolgreich abgemeldet.</div>
<div th:if="${param.registerSuccess}" class="mf-alert ok">Registrierung erfolgreich! Du kannst dich jetzt einloggen.</div>
<form th:action="@{/login}" method="post">
<div class="mf-field">
<label class="mf-label" for="login-username">Benutzername</label>
<input id="login-username" class="mf-input" type="text" name="username" placeholder="Benutzername" required th:value="${param.username}">
</div>
<!-- Login/Registrierung -->
<div class="mf-cardbox login-box">
<div class="mf-authlogo">
<span class="mark"></span>
<b>MINDFLUX</b>
<span>DEIN FLUXKOMPENSATOR FÜRS GEHIRN</span>
</div>
<h2>Login</h2>
<form th:action="@{/login}" method="post">
<div class="mf-field">
<label class="mf-label" for="username">Benutzername</label>
<input id="username" class="mf-input" type="text" name="username" placeholder="Benutzername" required />
</div>
<div class="mf-field">
<label class="mf-label" for="password">Passwort</label>
<input id="password" class="mf-input" type="password" name="password" placeholder="Passwort" required />
</div>
<button class="mf-btn" type="submit">Einloggen</button>
</form>
<p class="alt">Noch keinen Account?</p>
<form th:action="@{/register}" method="get">
<button class="mf-btn outline" type="submit">Registrieren</button>
</form>
<div class="mf-field">
<label class="mf-label" for="login-password">Passwort</label>
<input id="login-password" class="mf-input" type="password" name="password" placeholder="Passwort" required>
</div>
<button class="neon-btn" type="submit"><span class="lock">🔒</span> Login</button>
</form>
<p class="mobile-switch">Noch keinen Account? <a data-goto="signup">Jetzt registrieren</a></p>
</div>
</div>
<!-- ===== Sign Up ===== -->
<div class="form-box signup">
<div class="inner">
<div class="auth-head">
<span class="mark"></span>
<b>MINDFLUX</b>
<h2>Account erstellen</h2>
<span class="sub">Kostenlos – und in 30 Sekunden startklar.</span>
</div>
<div th:if="${param.registerError}" class="mf-alert err">Benutzername bereits vergeben.</div>
<form th:action="@{/register}" method="post">
<div class="mf-field">
<label class="mf-label" for="reg-username">Benutzername</label>
<input id="reg-username" class="mf-input" type="text" name="username" placeholder="Benutzername" required>
</div>
<div class="mf-field">
<label class="mf-label" for="reg-email">E-Mail</label>
<input id="reg-email" class="mf-input" type="email" name="email" placeholder="E-Mail" required>
</div>
<div class="mf-field">
<label class="mf-label" for="reg-password">Passwort</label>
<input id="reg-password" class="mf-input" type="password" name="password" placeholder="Passwort" required>
</div>
<button class="neon-btn" type="submit"><span class="lock">🚀</span> Account erstellen</button>
</form>
<p class="mobile-switch">Schon dabei? <a data-goto="login">Zum Login</a></p>
</div>
</div>
<!-- ===== Overlay ===== -->
<div class="overlay-container">
<div class="overlay">
<!-- sichtbar im Signup-Modus -> zurück zum Login -->
<div class="overlay-panel overlay-left">
<span class="o-emblem"></span>
<h3>Schon dabei?</h3>
<p>Melde dich an und mach bei 88 Meilen pro Stunde weiter. 🚀</p>
<button type="button" class="ghost-btn" id="toLogin">Zum Login</button>
</div>
<!-- sichtbar im Login-Modus -> zum Signup -->
<div class="overlay-panel overlay-right">
<span class="o-emblem"></span>
<h3>Neu bei Mindflux?</h3>
<p>Erstelle deinen kostenlosen Account und schalte die volle Lernplattform frei.</p>
<button type="button" class="ghost-btn" id="toSignup">Account erstellen</button>
</div>
</div>
</div>
<footer class="mf-footer">
<a href="#">Support</a>
<a href="#">Feedback</a>
<a href="#">Nutzungsbedingungen</a>
<a href="#">Richtlinien</a>
<a href="#">Datenschutz</a>
<a href="#">Impressum</a>
</footer>
</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>
</div>
</div>
<script>
(function () {
var c = document.getElementById('authContainer');
var toSignup = document.getElementById('toSignup');
var toLogin = document.getElementById('toLogin');
if (toSignup) toSignup.addEventListener('click', function () { c.classList.add('active'); });
if (toLogin) toLogin.addEventListener('click', function () { c.classList.remove('active'); });
document.querySelectorAll('[data-goto="signup"]').forEach(function (el) {
el.addEventListener('click', function (e) { e.preventDefault(); c.classList.add('active'); });
});
document.querySelectorAll('[data-goto="login"]').forEach(function (el) {
el.addEventListener('click', function (e) { e.preventDefault(); c.classList.remove('active'); });
});
// Bei Registrierungsfehler direkt das Signup-Panel öffnen
if (new URLSearchParams(window.location.search).has('registerError')) {
c.classList.add('active');
}
})();
</script>
</body>
</html>
+4 -4
View File
@@ -34,10 +34,10 @@
<footer class="mf-footer">
<a href="#">Support</a>
<a href="#">Feedback</a>
<a href="#">Nutzungsbedingungen</a>
<a href="#">Richtlinien</a>
<a href="#">Datenschutz</a>
<a href="#">Impressum</a>
<a href="/nutzungsbedingungen">Nutzungsbedingungen</a>
<a href="/richtlinien">Richtlinien</a>
<a href="/datenschutz">Datenschutz</a>
<a href="/impressum">Impressum</a>
</footer>
</body>
@@ -0,0 +1,135 @@
<!DOCTYPE html>
<html lang="de" data-theme="dark" xmlns:th="http://www.thymeleaf.org"
xmlns:sec="http://www.thymeleaf.org/extras/spring-security">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Mindflux – Datenschutzerklärung</title>
<link rel="stylesheet" href="/css/theme.css">
<script src="/js/theme.js"></script>
<style>
.mf-legal { max-width:860px; }
.mf-legal h1 { color:var(--heading); font-size:1.7rem; font-weight:800; margin:.2rem 0 .3rem; }
.mf-legal .stand { color:var(--muted); font-size:.85rem; margin-bottom:1.4rem; }
.mf-legal h2 { color:var(--heading); font-size:1.12rem; font-weight:700; margin:2rem 0 .6rem; }
.mf-legal p, .mf-legal li { color:var(--text); line-height:1.75; font-size:.97rem; }
.mf-legal ul { margin:.4rem 0 .4rem 1.2rem; }
.mf-legal li { margin-bottom:.35rem; }
.mf-legal .dev-note { color:var(--accent); line-height:1.65; border-left:3px solid var(--border-accent);
background:var(--surface-2); padding:.9rem 1.1rem; border-radius:10px; margin-bottom:1.6rem; font-size:.95rem; }
.mf-legal a.inline { color:var(--accent); }
.mf-legal table { width:100%; border-collapse:collapse; margin:.6rem 0 .4rem; font-size:.92rem; }
.mf-legal th, .mf-legal td { text-align:left; padding:.55rem .7rem; border-bottom:1px solid var(--border); color:var(--text); vertical-align:top; }
.mf-legal th { color:var(--heading); font-weight:700; }
</style>
</head>
<body>
<div class="mf-theme-float"><button class="mf-theme"></button></div>
<div class="mf-container mf-legal">
<div class="mf-page-head">
<a th:href="@{/dashboard}" class="mf-back" sec:authorize="isAuthenticated()">⟵ Zurück zum Dashboard</a>
<a th:href="@{/}" class="mf-back" sec:authorize="!isAuthenticated()">⟵ Zurück</a>
</div>
<h1>Datenschutzerklärung</h1>
<p class="stand">Stand: Juni 2026</p>
<div class="dev-note">
Hinweis: Mindflux befindet sich in aktiver Entwicklung und ist derzeit nicht für die öffentliche
Nutzung bestimmt. Die Verarbeitung erfolgt im Rahmen einer geschlossenen Test-/Entwicklungsphase.
</div>
<h2>1. Verantwortlicher</h2>
<p>
Verantwortlicher im Sinne der Datenschutz-Grundverordnung (DSGVO) ist Sysnaptik. Die vollständigen
Kontaktangaben finden sich im <a class="inline" th:href="@{/impressum}">Impressum</a>.
</p>
<h2>2. Überblick</h2>
<p>
Diese Erklärung informiert darüber, welche personenbezogenen Daten bei der Nutzung von Mindflux
verarbeitet werden, zu welchen Zwecken und auf welcher Rechtsgrundlage dies geschieht und welche
Rechte den betroffenen Personen zustehen. Wir verarbeiten nur die Daten, die für den Betrieb des
Dienstes erforderlich sind.
</p>
<h2>3. Welche Daten wir verarbeiten</h2>
<table>
<tr><th>Datenkategorie</th><th>Konkrete Daten</th></tr>
<tr><td>Kontodaten</td><td>Benutzername, E-Mail-Adresse, Passwort (ausschließlich als BCrypt-Hash gespeichert), Benutzerrolle</td></tr>
<tr><td>Profil</td><td>Optional hochgeladenes Profilbild (serverseitig auf max. 400 px skaliert, als JPEG gespeichert)</td></tr>
<tr><td>Nutzungs-/Lerndaten</td><td>Spielstände (Spiel, Deck, Punktzahl, Züge, Dauer, Zeitpunkt) sowie erreichte Erfolge/Achievements</td></tr>
<tr><td>Technische Daten</td><td>Sitzungs-Cookie zur Anmeldung, CSRF-Token; serverseitige Protokolldaten (z. B. IP-Adresse, Zeitpunkt, abgerufene Ressource) im Rahmen des technischen Betriebs</td></tr>
</table>
<h2>4. Zwecke und Rechtsgrundlagen</h2>
<ul>
<li><strong>Bereitstellung des Dienstes und Kontoverwaltung</strong> (Registrierung, Anmeldung, Lernfunktionen, Spielstände, Achievements) – Art. 6 Abs. 1 lit. b DSGVO (Vertrag/Nutzungsverhältnis).</li>
<li><strong>Technischer Betrieb, Sicherheit und Stabilität</strong> (Protokolldaten, Schutz vor Missbrauch) – Art. 6 Abs. 1 lit. f DSGVO (berechtigtes Interesse).</li>
<li><strong>Profilbild</strong> – auf Grundlage der freiwilligen Bereitstellung durch die Nutzer:in.</li>
</ul>
<h2>5. Cookies</h2>
<p>
Mindflux verwendet ausschließlich technisch notwendige Cookies: ein Sitzungs-Cookie für die
Anmeldung sowie einen Token zum Schutz vor Cross-Site-Request-Forgery (CSRF). Diese Cookies sind
für den Betrieb erforderlich; es findet kein Tracking und keine werbliche Auswertung statt.
</p>
<h2>6. Speicherdauer</h2>
<p>
Kontobezogene Daten werden gespeichert, solange das Nutzerkonto besteht. Nach Löschung des Kontos
werden die zugehörigen personenbezogenen Daten gelöscht, soweit keine gesetzlichen
Aufbewahrungspflichten entgegenstehen. Das Sitzungs-Cookie verliert mit dem Ende der Sitzung bzw.
der Abmeldung seine Gültigkeit. Da sich der Dienst in der Entwicklung befindet, können Daten zudem
im Rahmen von Tests zurückgesetzt werden.
</p>
<h2>7. Empfänger und Hosting</h2>
<p>
Die Daten werden auf einer vom Anbieter betriebenen Server-Infrastruktur verarbeitet und nicht zu
werblichen Zwecken an Dritte weitergegeben. Eine Übermittlung erfolgt nur, soweit dies für den
Betrieb technisch erforderlich oder gesetzlich vorgeschrieben ist. Eine Datenübermittlung in
Drittländer außerhalb der EU/des EWR findet nicht statt.
</p>
<h2>8. Datensicherheit</h2>
<p>
Passwörter werden ausschließlich als kryptografischer BCrypt-Hash gespeichert und nicht im Klartext
verarbeitet. Die Übertragung erfolgt im produktiven Betrieb verschlüsselt über TLS (HTTPS). Wir
treffen geeignete technische und organisatorische Maßnahmen, um die Daten vor unbefugtem Zugriff,
Verlust oder Missbrauch zu schützen.
</p>
<h2>9. Ihre Rechte</h2>
<p>Als betroffene Person haben Sie nach der DSGVO insbesondere folgende Rechte:</p>
<ul>
<li>Auskunft über die verarbeiteten Daten (Art. 15 DSGVO);</li>
<li>Berichtigung unrichtiger Daten (Art. 16 DSGVO);</li>
<li>Löschung (Art. 17 DSGVO) und Einschränkung der Verarbeitung (Art. 18 DSGVO);</li>
<li>Datenübertragbarkeit (Art. 20 DSGVO);</li>
<li>Widerspruch gegen eine Verarbeitung auf Grundlage berechtigter Interessen (Art. 21 DSGVO);</li>
<li>Beschwerde bei einer Datenschutz-Aufsichtsbehörde (Art. 77 DSGVO).</li>
</ul>
<p>Zur Ausübung dieser Rechte genügt eine Mitteilung an die im Impressum genannten Kontaktdaten.</p>
<h2>10. Änderungen dieser Erklärung</h2>
<p>
Wir passen diese Datenschutzerklärung an, wenn Änderungen am Dienst oder der Rechtslage dies
erfordern. Es gilt jeweils die hier veröffentlichte Fassung.
</p>
</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>
@@ -0,0 +1,151 @@
<!DOCTYPE html>
<html lang="de" data-theme="dark" xmlns:th="http://www.thymeleaf.org"
xmlns:sec="http://www.thymeleaf.org/extras/spring-security">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Mindflux – Nutzungsbedingungen (AGB)</title>
<link rel="stylesheet" href="/css/theme.css">
<script src="/js/theme.js"></script>
<style>
.mf-legal { max-width:860px; }
.mf-legal h1 { color:var(--heading); font-size:1.7rem; font-weight:800; margin:.2rem 0 .3rem; }
.mf-legal .stand { color:var(--muted); font-size:.85rem; margin-bottom:1.4rem; }
.mf-legal h2 { color:var(--heading); font-size:1.12rem; font-weight:700; margin:2rem 0 .6rem; }
.mf-legal p, .mf-legal li { color:var(--text); line-height:1.75; font-size:.97rem; }
.mf-legal ul { margin:.4rem 0 .4rem 1.2rem; }
.mf-legal li { margin-bottom:.35rem; }
.mf-legal .dev-note { color:var(--accent); line-height:1.65; border-left:3px solid var(--border-accent);
background:var(--surface-2); padding:.9rem 1.1rem; border-radius:10px; margin-bottom:1.6rem; font-size:.95rem; }
.mf-legal a.inline { color:var(--accent); }
</style>
</head>
<body>
<div class="mf-theme-float"><button class="mf-theme"></button></div>
<div class="mf-container mf-legal">
<div class="mf-page-head">
<a th:href="@{/dashboard}" class="mf-back" sec:authorize="isAuthenticated()">⟵ Zurück zum Dashboard</a>
<a th:href="@{/}" class="mf-back" sec:authorize="!isAuthenticated()">⟵ Zurück</a>
</div>
<h1>Allgemeine Nutzungsbedingungen (AGB)</h1>
<p class="stand">Stand: Juni 2026</p>
<div class="dev-note">
Hinweis: Mindflux befindet sich in aktiver Entwicklung und ist derzeit nicht für die
öffentliche Nutzung bestimmt. Der Dienst wird im Rahmen einer geschlossenen Test-/
Entwicklungsphase bereitgestellt. Es besteht kein Anspruch auf Verfügbarkeit, Funktions­umfang
oder Erhalt von Daten.
</div>
<h2>1. Geltungsbereich</h2>
<p>
Diese Nutzungsbedingungen regeln die Nutzung der Lernplattform „Mindflux" (nachfolgend „Dienst")
einschließlich aller darüber bereitgestellten Funktionen, Inhalte und Lernspiele. Mit der
Registrierung eines Nutzerkontos sowie mit jeder Nutzung des Dienstes erkennt die nutzende Person
(nachfolgend „Nutzer:in") diese Bedingungen in ihrer jeweils gültigen Fassung an.
</p>
<h2>2. Anbieter</h2>
<p>
Anbieter und Betreiber des Dienstes ist Sysnaptik (nachfolgend „Anbieter"). Die vollständigen
Anbieterangaben finden sich im <a class="inline" th:href="@{/impressum}">Impressum</a>.
</p>
<h2>3. Beschreibung des Dienstes</h2>
<p>
Mindflux ist eine Lernplattform zur Prüfungsvorbereitung. Der Dienst stellt insbesondere
interaktive Lerninhalte, Quiz- und Memory-artige Lernspiele (u. a. „MindMatch" und „TechTacular"),
Fortschritts­übersichten sowie ein Erfolgs-/Achievement-System bereit. Der konkrete Funktions­umfang
kann sich jederzeit ändern, erweitert oder eingeschränkt werden.
</p>
<h2>4. Registrierung und Nutzerkonto</h2>
<ul>
<li>Die Nutzung wesentlicher Funktionen setzt ein Nutzerkonto voraus.</li>
<li>Bei der Registrierung sind wahrheitsgemäße Angaben zu machen. Pro Person ist grundsätzlich ein Konto vorgesehen.</li>
<li>Zugangsdaten, insbesondere das Passwort, sind geheim zu halten und vor dem Zugriff Dritter zu schützen.</li>
<li>Bei Verdacht auf Missbrauch des Kontos ist der Anbieter unverzüglich zu informieren.</li>
</ul>
<h2>5. Pflichten der Nutzer:innen</h2>
<p>Nutzer:innen verpflichten sich, den Dienst nicht missbräuchlich zu verwenden. Insbesondere ist es untersagt,</p>
<ul>
<li>rechtswidrige, beleidigende, diskriminierende oder anderweitig anstößige Inhalte (z. B. als Profilbild oder Benutzername) bereitzustellen;</li>
<li>die technische Infrastruktur zu stören, zu überlasten oder Sicherheitsmechanismen zu umgehen;</li>
<li>sich unbefugten Zugriff auf fremde Konten oder nicht für die Nutzer:in bestimmte Daten zu verschaffen;</li>
<li>Spielergebnisse, Punktestände oder Fortschritte auf andere Weise als durch die vorgesehene Nutzung zu manipulieren.</li>
</ul>
<p>Ergänzend gelten die <a class="inline" th:href="@{/richtlinien}">Community-Richtlinien</a>.</p>
<h2>6. Verfügbarkeit und Entwicklungsstatus</h2>
<p>
Der Dienst wird im aktuellen Entwicklungsstadium „wie besehen" und ohne Zusicherung einer
bestimmten Verfügbarkeit bereitgestellt. Wartungs­arbeiten, Weiterentwicklungen oder technische
Störungen können jederzeit zu Unterbrechungen oder zum Verlust gespeicherter Daten führen. Ein
Anspruch auf ununterbrochene Nutzbarkeit besteht nicht.
</p>
<h2>7. Rechte an Inhalten</h2>
<p>
Sämtliche vom Anbieter bereitgestellten Inhalte, Texte, Grafiken, Lerninhalte und Software sind
urheberrechtlich geschützt und verbleiben beim Anbieter bzw. den jeweiligen Rechteinhabern. Für
von Nutzer:innen hochgeladene Inhalte (insbesondere Profilbilder) räumt die Nutzer:in dem Anbieter
das einfache, für den Betrieb des Dienstes erforderliche Nutzungsrecht ein. Die Nutzer:in
versichert, über die erforderlichen Rechte an den hochgeladenen Inhalten zu verfügen.
</p>
<h2>8. Nutzungslizenz</h2>
<p>
Der Anbieter räumt der Nutzer:in ein einfaches, nicht übertragbares und widerrufliches Recht zur
bestimmungsgemäßen Nutzung des Dienstes zu eigenen Lernzwecken ein. Eine darüber hinausgehende
Nutzung, insbesondere die gewerbliche Verwertung oder Vervielfältigung von Inhalten, bedarf der
vorherigen schriftlichen Zustimmung des Anbieters.
</p>
<h2>9. Sperrung und Beendigung</h2>
<p>
Nutzer:innen können ihr Konto jederzeit beenden. Der Anbieter ist berechtigt, Konten bei Verstößen
gegen diese Bedingungen oder die Richtlinien vorübergehend zu sperren oder dauerhaft zu löschen.
Da sich der Dienst in Entwicklung befindet, kann der Betrieb zudem jederzeit ganz oder teilweise
eingestellt werden.
</p>
<h2>10. Haftung</h2>
<p>
Der Anbieter haftet uneingeschränkt bei Vorsatz und grober Fahrlässigkeit sowie bei der Verletzung
von Leben, Körper oder Gesundheit. Bei leicht fahrlässiger Verletzung wesentlicher Vertragspflichten
ist die Haftung auf den vertragstypischen, vorhersehbaren Schaden begrenzt. Im Übrigen ist die
Haftung – soweit gesetzlich zulässig – ausgeschlossen. Insbesondere wird keine Gewähr für die
Richtigkeit, Vollständigkeit oder Aktualität der bereitgestellten Lerninhalte oder für einen
bestimmten Lern- oder Prüfungserfolg übernommen.
</p>
<h2>11. Änderungen dieser Bedingungen</h2>
<p>
Der Anbieter kann diese Nutzungsbedingungen anpassen, soweit dies zur Anpassung an geänderte
rechtliche oder technische Rahmenbedingungen erforderlich ist. Über wesentliche Änderungen werden
Nutzer:innen in geeigneter Weise informiert. Die fortgesetzte Nutzung nach Inkrafttreten gilt als
Zustimmung.
</p>
<h2>12. Schlussbestimmungen</h2>
<p>
Es gilt das Recht der Bundesrepublik Deutschland. Sollte eine Bestimmung dieser Bedingungen
unwirksam sein oder werden, bleibt die Wirksamkeit der übrigen Bestimmungen unberührt.
</p>
</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>
@@ -0,0 +1,117 @@
<!DOCTYPE html>
<html lang="de" data-theme="dark" xmlns:th="http://www.thymeleaf.org"
xmlns:sec="http://www.thymeleaf.org/extras/spring-security">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Mindflux – Richtlinien</title>
<link rel="stylesheet" href="/css/theme.css">
<script src="/js/theme.js"></script>
<style>
.mf-legal { max-width:860px; }
.mf-legal h1 { color:var(--heading); font-size:1.7rem; font-weight:800; margin:.2rem 0 .3rem; }
.mf-legal .stand { color:var(--muted); font-size:.85rem; margin-bottom:1.4rem; }
.mf-legal h2 { color:var(--heading); font-size:1.12rem; font-weight:700; margin:2rem 0 .6rem; }
.mf-legal p, .mf-legal li { color:var(--text); line-height:1.75; font-size:.97rem; }
.mf-legal ul { margin:.4rem 0 .4rem 1.2rem; }
.mf-legal li { margin-bottom:.35rem; }
.mf-legal .dev-note { color:var(--accent); line-height:1.65; border-left:3px solid var(--border-accent);
background:var(--surface-2); padding:.9rem 1.1rem; border-radius:10px; margin-bottom:1.6rem; font-size:.95rem; }
.mf-legal a.inline { color:var(--accent); }
</style>
</head>
<body>
<div class="mf-theme-float"><button class="mf-theme"></button></div>
<div class="mf-container mf-legal">
<div class="mf-page-head">
<a th:href="@{/dashboard}" class="mf-back" sec:authorize="isAuthenticated()">⟵ Zurück zum Dashboard</a>
<a th:href="@{/}" class="mf-back" sec:authorize="!isAuthenticated()">⟵ Zurück</a>
</div>
<h1>Community- &amp; Nutzungsrichtlinien</h1>
<p class="stand">Stand: Juni 2026</p>
<div class="dev-note">
Hinweis: Mindflux befindet sich in aktiver Entwicklung und ist derzeit nicht für die öffentliche
Nutzung bestimmt. Diese Richtlinien gelten bereits in der Test-/Entwicklungsphase.
</div>
<h2>1. Zweck dieser Richtlinien</h2>
<p>
Mindflux ist eine Lernplattform zur Prüfungsvorbereitung. Damit der Dienst für alle ein
sicherer, fairer und konzentrierter Lernort bleibt, gelten die folgenden Regeln ergänzend zu den
<a class="inline" th:href="@{/nutzungsbedingungen}">Nutzungsbedingungen</a>. Sie sind für alle
Nutzer:innen verbindlich.
</p>
<h2>2. Respektvoller Umgang</h2>
<p>Wir erwarten einen respektvollen und sachlichen Umgang miteinander. Nicht geduldet werden:</p>
<ul>
<li>Beleidigungen, Belästigung, Mobbing oder Bedrohungen;</li>
<li>diskriminierende, hetzerische, gewaltverherrlichende oder extremistische Inhalte;</li>
<li>jugendgefährdende, pornografische oder anderweitig rechtswidrige Inhalte.</li>
</ul>
<h2>3. Benutzernamen und Profilbilder</h2>
<p>
Benutzernamen und hochgeladene Profilbilder müssen frei von beleidigenden, irreführenden oder
rechtsverletzenden Inhalten sein. Es dürfen nur Bilder hochgeladen werden, an denen die nötigen
Rechte bestehen. Die Nachahmung anderer Personen oder offizieller Stellen ist untersagt.
</p>
<h2>4. Faires Lernen und Spielen</h2>
<p>
Die Lernspiele (u. a. „MindMatch" und „TechTacular") und das Achievement-System sind Teil des
Lernkonzepts. Untersagt ist jede Manipulation von Spielständen, Punktzahlen oder Fortschritten,
etwa durch automatisierte Tools, das Umgehen der Spiellogik oder das Ausnutzen technischer Fehler.
Wer einen Fehler („Bug") entdeckt, wird gebeten, diesen zu melden statt ihn auszunutzen.
</p>
<h2>5. Account-Sicherheit</h2>
<ul>
<li>Zugangsdaten sind vertraulich zu behandeln und nicht weiterzugeben.</li>
<li>Ein Konto darf nicht im Namen einer anderen Person erstellt oder genutzt werden.</li>
<li>Verschaffen Sie sich keinen unbefugten Zugriff auf fremde Konten oder Bereiche des Dienstes.</li>
</ul>
<h2>6. Schutz der Plattform</h2>
<p>
Handlungen, die die Stabilität, Sicherheit oder Integrität des Dienstes gefährden, sind untersagt.
Dazu zählen insbesondere Überlastungsversuche, das Umgehen von Sicherheitsmechanismen sowie das
automatisierte Auslesen von Inhalten ohne Zustimmung des Anbieters.
</p>
<h2>7. Meldung von Verstößen</h2>
<p>
Verstöße gegen diese Richtlinien sowie Sicherheits- oder Datenschutzprobleme können über die im
<a class="inline" th:href="@{/impressum}">Impressum</a> genannten Kontaktwege gemeldet werden. Wir
gehen Hinweisen nach Möglichkeit zeitnah nach.
</p>
<h2>8. Folgen bei Verstößen</h2>
<p>
Bei Verstößen gegen diese Richtlinien können wir Inhalte entfernen, Funktionen einschränken und
Konten vorübergehend sperren oder dauerhaft löschen. Maßgeblich sind dabei Schwere und
Wiederholung des Verstoßes. Weitergehende rechtliche Schritte bleiben vorbehalten.
</p>
<h2>9. Feedback in der Entwicklungsphase</h2>
<p>
Da sich Mindflux in der Entwicklung befindet, sind Hinweise, Verbesserungsvorschläge und
Fehlermeldungen ausdrücklich willkommen und helfen, den Dienst weiterzuentwickeln.
</p>
</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>
+4 -4
View File
@@ -85,10 +85,10 @@
<footer class="mf-footer">
<a href="#">Support</a>
<a href="#">Feedback</a>
<a href="#">Nutzungsbedingungen</a>
<a href="#">Richtlinien</a>
<a href="#">Datenschutz</a>
<a href="#">Impressum</a>
<a href="/nutzungsbedingungen">Nutzungsbedingungen</a>
<a href="/richtlinien">Richtlinien</a>
<a href="/datenschutz">Datenschutz</a>
<a href="/impressum">Impressum</a>
</footer>
</div>
+4 -4
View File
@@ -144,10 +144,10 @@
<footer class="mf-footer">
<a href="#">Support</a>
<a href="#">Feedback</a>
<a href="#">Nutzungsbedingungen</a>
<a href="#">Richtlinien</a>
<a href="#">Datenschutz</a>
<a href="#">Impressum</a>
<a href="/nutzungsbedingungen">Nutzungsbedingungen</a>
<a href="/richtlinien">Richtlinien</a>
<a href="/datenschutz">Datenschutz</a>
<a href="/impressum">Impressum</a>
</footer>
</body>
+4 -4
View File
@@ -69,10 +69,10 @@
<footer class="mf-footer">
<a href="#">Support</a>
<a href="#">Feedback</a>
<a href="#">Nutzungsbedingungen</a>
<a href="#">Richtlinien</a>
<a href="#">Datenschutz</a>
<a href="#">Impressum</a>
<a href="/nutzungsbedingungen">Nutzungsbedingungen</a>
<a href="/richtlinien">Richtlinien</a>
<a href="/datenschutz">Datenschutz</a>
<a href="/impressum">Impressum</a>
</footer>
</body>
+4 -4
View File
@@ -91,10 +91,10 @@
<footer class="mf-footer">
<a href="#">Support</a>
<a href="#">Feedback</a>
<a href="#">Nutzungsbedingungen</a>
<a href="#">Richtlinien</a>
<a href="#">Datenschutz</a>
<a href="#">Impressum</a>
<a href="/nutzungsbedingungen">Nutzungsbedingungen</a>
<a href="/richtlinien">Richtlinien</a>
<a href="/datenschutz">Datenschutz</a>
<a href="/impressum">Impressum</a>
</footer>
</body>
+4 -4
View File
@@ -39,10 +39,10 @@
<footer class="mf-footer">
<a href="#">Support</a>
<a href="#">Feedback</a>
<a href="#">Nutzungsbedingungen</a>
<a href="#">Richtlinien</a>
<a href="#">Datenschutz</a>
<a href="#">Impressum</a>
<a href="/nutzungsbedingungen">Nutzungsbedingungen</a>
<a href="/richtlinien">Richtlinien</a>
<a href="/datenschutz">Datenschutz</a>
<a href="/impressum">Impressum</a>
</footer>
</body>
+4 -4
View File
@@ -63,10 +63,10 @@
<footer class="mf-footer">
<a href="#">Support</a>
<a href="#">Feedback</a>
<a href="#">Nutzungsbedingungen</a>
<a href="#">Richtlinien</a>
<a href="#">Datenschutz</a>
<a href="#">Impressum</a>
<a href="/nutzungsbedingungen">Nutzungsbedingungen</a>
<a href="/richtlinien">Richtlinien</a>
<a href="/datenschutz">Datenschutz</a>
<a href="/impressum">Impressum</a>
</footer>
</body>
@@ -36,10 +36,10 @@
<footer class="mf-footer">
<a href="#">Support</a>
<a href="#">Feedback</a>
<a href="#">Nutzungsbedingungen</a>
<a href="#">Richtlinien</a>
<a href="#">Datenschutz</a>
<a href="#">Impressum</a>
<a href="/nutzungsbedingungen">Nutzungsbedingungen</a>
<a href="/richtlinien">Richtlinien</a>
<a href="/datenschutz">Datenschutz</a>
<a href="/impressum">Impressum</a>
</footer>
</body>