Datenschutzerklärung
Information gemäß Art. 13 und 14 Datenschutz-Grundverordnung (DSGVO)
Zum Lernen ist ein Konto nötig. Die Lerninhalte sind seit Version 120 angemeldeten Nutzerinnen und Nutzern vorbehalten; ohne Konto sind nur die Anmeldeseite, das Impressum und diese Seite erreichbar. Dafür braucht es eine E-Mail-Adresse und einen frei gewählten Benutzernamen.
1. Verantwortlicher
[VOLLSTÄNDIGER NAME]
[ADRESSE — Straße, Hausnummer]
[PLZ, ORT], Österreich
E-Mail: [E-MAIL]
2. Welche Daten verarbeitet werden
a) Für dein Benutzerkonto
- E-Mail-Adresse — für die Registrierung, die Anmeldung und das Zurücksetzen des Passworts. Die Adresse wird nicht bestätigt und nie öffentlich gezeigt; du brauchst aber Zugriff darauf, falls du dein Passwort vergisst.
- Benutzername — den wählst du selbst. Er ist der Name, unter dem dich andere in Gruppen und auf der Bestenliste sehen, wenn du diese Funktionen nutzt. Wähle also nichts, was du dort nicht lesen möchtest.
- Passwort — wird ausschließlich als kryptographischer Hash gespeichert, niemals im Klartext.
- Lernfortschritt — XP, Streak (Lernserie), zuletzt aktiver Tag, Streak-Freezes, Wochenziel, zuletzt geöffnete Lektion, gestartete Lernpfade, abgeschlossene Lektionen und Daily Challenges sowie verdiente Badges.
- Gruppen — trittst du einer Gruppe bei, sieht deren Leitung deinen Benutzernamen und deine Kennzahlen (XP, Level, Lernserie, Anzahl der Lektionen). Der Beitritt ist freiwillig, das Austreten jederzeit möglich.
- Aufträge und Abgaben — stellt die Leitung einer Gruppe, in der du bist, einen Auftrag („bis Freitag Modul 3") oder ein Prüfungsblatt, siehst du ihn in der App. Gibst du ihn ab, gehen an die Leitung: dein Anzeigename in dieser Gruppe, wie viele Lektionen du erledigt hast, bei einer Prüfung die erreichten Punkte, die benötigte Zeit und die Prüfnummer des Blattes — sowie der Zeitpunkt der Abgabe. Deine Antworten und dein Code gehen nicht mit; dafür gibt es auf dem Server kein Feld. Das ausgedruckte Blatt entsteht in deinem Browser und bleibt dort. Übertragen wird ausschließlich, wenn du auf „Abgeben" drückst — nichts davon läuft im Hintergrund.
- CodeQuest Lab — die Leitung deiner Gruppe kann eine Programmier- oder Linux-Mission mit Titel und Zeitpunkt zuweisen. Deinen Code, eingegebene Linux-Befehle und den lokalen Abschlussstand verarbeitet das Lab nur in diesem Browser, getrennt nach Konto. Die Linux-Missionen sind Simulationen; ihre Befehle werden nicht auf dem Server ausgeführt. Wenn du nach Abschluss ausdrücklich auf „Abschluss melden“ klickst, speichert der Konto-Server deine Kennung, die Aufgabe und den Zeitpunkt. Nur du und die Leitung dieser Gruppe sehen diese Meldung; andere Mitglieder nicht. Code, Befehle, Testfälle und Testergebnisse werden nicht übertragen. Du kannst deine Meldung löschen, die Leitung kann die Aufgabe mitsamt Meldungen entfernen. Die Meldung ist keine prüfungssichere Leistungsbewertung.
- Code-Duell — trittst du einem Duell in deiner Gruppe bei, sehen alle Mitglieder dieser Gruppe, solange das Duell läuft: deinen Anzeigenamen, deine Punkte, deine Versuche und deine Zeit. Das ist der Sinn einer Anzeigetafel, und deshalb steht vor dem Mitmachen ein Kasten, der genau das aufzählt — du entscheidest mit dem Klick auf „Ich bin dabei". Dein Code und deine Antworten gehen nicht mit, und auch nicht, an welcher Aufgabe du gerade sitzt. Nach dem Duell wird nichts mehr übertragen; die Zeile lässt sich löschen.
- Live-Ansicht im Unterricht — öffnet die Leitung deiner Gruppe während einer Stunde die Live-Ansicht, kannst du zustimmen, dass sie (nicht die Klasse) zwei Zahlen sieht: wie viele Lektionen des Auftrags du erledigt hast und wann sich das zuletzt geändert hat. Der Grundzustand ist aus — ohne dein Häkchen wird nichts übertragen, und du gibst es je Gruppe einzeln. Nicht übertragen werden: dein Code, deine Eingaben, deine Ausgaben, an welcher Lektion du sitzt — und nicht, ob du die App gerade offen hast. Die Stunde endet spätestens nach vier Stunden von selbst; danach nimmt der Server nichts mehr an. Nimmst du dein Häkchen zurück, wird die bereits übertragene Zeile gelöscht.
- Kontoverwaltung und Änderungsverlauf — der Betreiber verwaltet Konten und Freigaben, verwendet eigene Rechtevorlagen und kann Kurskonten nach einer Vorschau einzeln anlegen. Neue Zugangsdaten werden dabei nur für die sichere Weitergabe in seiner Verwaltungssitzung angezeigt beziehungsweise als Datei heruntergeladen; im Konto-Server bleibt der Passwort-Hash. Verwaltungsänderungen an Konten, Freigaben und Urkunden sowie Firmenpausen und -löschungen werden mit Konto-ID, Betreiber-ID, Zeitpunkt, betroffenen Einstellungen und gegebenenfalls einer sachlichen Begründung protokolliert. Das Protokoll enthält keine Passwörter, Anmeldetokens oder Projektquellen. Es dient der Nachvollziehbarkeit der Kontoverwaltung und ist Bestandteil deiner eigenen Kontodatenauskunft. Es wird für 180 Tage aufbewahrt und täglich bereinigt, auch nach einer Kontolöschung; bestehende Sicherungsfristen bleiben davon getrennt. In der Firmenverwaltung sieht der Betreiber Firmenmetadaten und Rollen; diese Ansicht lädt keine privaten Projektquellen.
- Arbeitswelt — nutzt du die individuell freigeschaltete Firmen-Simulation, werden dein fiktiver Firmenname, Auftragsstand, Spieltage, Entscheidungen, Spielgeld-Buchungen und selbst geschriebene Befunde, Maßnahmenpläne, Projektdateien, Versionsstände, Prüfergebnisse, fiktive Kundenanmeldungen (Name, Plätze, Preis), Auswertungen, Zeitersparnisse, Sicherungsstände und simulierte Wartungs- und Krisenereignisse, parallele Kundenaufträge, Spielverträge, Verpflichtungen, Personalentscheidungen, Jobs, Gehaltsverlauf, getrennte Privatbuchungen und Kampagnen-Abschlussberichte unter deinem Konto auf dem Konto-Server gespeichert. Zur technischen Prüfung werden gespeicherte Projektdateien an einen privaten Prüfdienst des Betreibers übertragen und dort mit fiktiven Testdaten ausgeführt. Für den Kundenbetrieb verarbeitet dieser Dienst zusätzlich deine gespeicherten fiktiven Kundenanmeldungen mit den bereitgestellten Projektdateien. Der Prüfdienst speichert die Dateien nicht dauerhaft. Diese Daten werden nicht automatisch mit deiner Klasse geteilt. Du kannst sie exportieren und deine Firma einschließlich Bericht und Buchungen löschen. Nach Entzug der Freigabe bleibt der Stand bis zur Löschung erhalten; eigene Datenauskunft und Löschung bleiben möglich. Gründest du eine gemeinsame Firma oder nimmst eine Einladung an, werden deren Quellen, Berichte und Spielkonto bewusst mit den angenommenen Mitgliedern geteilt. Der Firmeninhaber verwaltet Einladungen über Konto-IDs und Rollen. Jede beteiligte Person braucht ihre eigene Betreiberfreigabe. Mitgliedschaften und bearbeitende Konto-IDs werden zur Rechteprüfung und Nachvollziehbarkeit der gemeinsamen Spielaktionen gespeichert. Die gemeinsame Firma und die persönliche Firma haben getrennte Spielstände. Nach Freigabeentzug kannst du deine Mitgliedschaften exportieren und verlassen; der Inhaber kann die eigene gemeinsame Firma exportieren und löschen. Geteilte Firmenquellen bleiben bei Austritt für die übrigen Mitglieder bestehen. Der Widerruf der Inhaberfreigabe pausiert die gesamte gemeinsame Firma. Es erfolgt keine automatische Weitergabe an Klassen. Firmen und Geschäftskonten sind fiktiv und haben keine Verbindung zu echten Banken. Verwende dafür keine echten Kunden- oder Bankdaten.
- Zugangsanfragen — bittest du um Zugang zu einem gesperrten Lernpfad, wird die Anfrage gespeichert (wer, wofür, deine Begründung) und dem Betreiber per E-Mail gemeldet, damit er entscheiden kann.
b) Technisch bedingt
- IP-Adresse — fällt beim Abruf der Website beim Hosting-Provider sowie bei Aufrufen der Konto-Schnittstelle in den Server-Logs des Konto-Servers technisch an. Sie wird dort außerdem ausgewertet, um die Zahl der Anmeldeversuche und Passwort-Anfragen je Anschluss zu begrenzen — sonst ließen sich Passwörter unbegrenzt durchprobieren.
- Technische Fehlerberichte — derzeit abgeschaltet. Tritt in der App ein Programmfehler auf, bleibt die Meldung in deinem Browser und wird nirgends hin übertragen. Ein externer Analyse- oder Tracking-Dienst kommt ohnehin nicht zum Einsatz.
c) E-Mail-Versand
Der Konto-Server verschickt E-Mails an dich, wenn du dein Passwort zurücksetzt und wenn sich jemand von einem unbekannten Gerät bei deinem Konto anmeldet (Sicherheitshinweis). Der Versand läuft über ein Postfach bei Google (Gmail); dabei erfährt Google deine E-Mail-Adresse und den Zeitpunkt des Versands. Google Ireland Limited ist für Nutzer im EWR der Vertragspartner, die Verarbeitung kann jedoch auch in den USA stattfinden — Google stützt sich dafür auf EU-Standardvertragsklauseln und das EU-US Data Privacy Framework. Inhalte deines Lernfortschritts werden dabei nicht übertragen.
Wenn du an die Support-Adresse schreibst (sie steht im Impressum und unter jeder E-Mail des Konto-Servers), wird deine Nachricht vom Postfach auf den Konto-Server geholt und dort gespeichert — Absender, Betreff, Text, Zeitpunkt und die Namen etwaiger Anhänge. Die Anhänge selbst werden nicht gespeichert, nur ihre Dateinamen. Der Grund für die Kopie ist schlicht, dass die Antwort dort geschrieben wird, wo auch dein Konto steht. Lesen kann sie nur der Betreiber. Eine feste Löschfrist gibt es nicht: Eine Anfrage ist ein Vorgang, und der soll auch in drei Monaten noch nachlesbar sein, wenn du dich wieder meldest. Du kannst die Löschung jederzeit verlangen — eine formlose Nachricht genügt, und sie wird samt der Antworten darauf gelöscht. Im Postfach selbst bleibt deine E-Mail davon unberührt, so wie sie auch in deinem eigenen Postfach bleibt.
d) Übermittlung von Code an Compiler-Dienste (C, C++, C#, Java, Rust, Go, Bash, PHP)
Code in Python, JavaScript, TypeScript, SQL und HTML/CSS läuft vollständig in deinem Browser — er verlässt dein Gerät nicht. Anders bei C, C++, C#, Java, Rust, Go, Bash und PHP: Der Browser kann diese Sprachen nicht selbst ausführen. Der von dir eingegebene Programm-Code wird deshalb zur Kompilierung und Ausführung an externe Dienste übertragen: zuerst an wandbox.org, bei dessen Ausfall an godbolt.org (Compiler Explorer) und zuletzt an ce.judge0.com (Judge0). Bash-Skripte und PHP gehen an wandbox.org und ce.judge0.com – godbolt.org bietet keine Shell an, und für PHP ist dort nicht nachgewiesen, dass es ausgeführt wird. Angefragt wird immer nur so lange, bis ein Dienst antwortet: Ist der erste erreichbar, bekommen die anderen deinen Code nie zu sehen. Dabei werden keine Konto- oder Profildaten mitgesendet — aber der Code selbst und deine IP-Adresse erreichen diese Drittanbieter. Gib deshalb keine persönlichen Daten in solchen Code ein. Diese Übermittlung passiert nur, wenn du aktiv auf „Ausführen“ klickst.
Ausnahme seit Version 149: Startest du CodeQuest lokal
(über „CodeQuest starten“ bzw. codequest-starten.sh) und ist
auf deinem Rechner das passende Werkzeug installiert — gcc,
g++, javac, rustc, go,
dotnet, bash oder php —, dann übersetzt und startet CodeQuest diese Sprachen
auf deinem eigenen Gerät. Dein Code wird dann
an keinen dieser drei Dienste übertragen. Welche
Sprachen das auf deinem Rechner betrifft, zeigt der Starter beim Hochfahren
an („Laeuft lokal: …“). Fehlt der Compiler, oder öffnest du die Seite
im Web statt lokal, gilt weiterhin der Absatz darüber.
Das gilt für Aufgaben in diesen Sprachen und für den Spielplatz (🛝), in dem du frei geschriebenen Code ausprobieren kannst. Der Spielplatz bietet davon seit Version 192 alle acht an (C, C++, Java, C#, Rust, Go, Bash, PHP) — C# und PHP kamen zuletzt dazu. Weil im Spielplatz kein Aufgabentext vorgibt, was man tippt, weist er vor dem Editor noch einmal ausdrücklich darauf hin, sobald du eine dieser acht Sprachen wählst, und nennt dabei die Dienste, die deinen Code wirklich bekommen können (bei Bash und PHP sind das wandbox.org und ce.judge0.com). Die übrigen Spielplatz-Sprachen laufen wie die Aufgaben vollständig im Browser.
e) Freiwillige Rückmeldungen zum Lernstoff
CodeQuest zählt auf deinem Gerät mit, an welchen Aufgaben du hängen bleibst (Versuche, Fehlversuche, angeschaute Lösungen, begonnene und abgeschlossene Lektionen). Diese Zähler stehen in deinem Profil unter „Lern-Statistik“ und liegen ausschließlich in deinem Browser.
Zwei freiwillige Wege führen davon zum Betreiber. Beide sind standardmäßig aus bzw. verlangen einen aktiven Klick:
- Steilstellen teilen (Schalter im Profil, aus als Grundzustand). Überträgt die reinen Zahlen: welche Schritte oft misslingen und welche Lektionen begonnen bzw. abgeschlossen wurden. Gesendet wird, während du lernst — höchstens alle paar Minuten und nur, wenn seither etwas dazugekommen ist; jede Übermittlung ersetzt die vorige, es wächst also keine Liste an. Ohne Konto-Bezug — der Datensatz enthält keine Verbindung zu deinem Benutzerkonto, sondern nur eine Zufallskennung dieses Geräts, die eben diesem Ersetzen dient. Übertragen werden kein Programmcode, keine Texte und keine Zeitpunkte einzelner Aufgaben. Mit übertragen wird die Versionsnummer der App, damit der Betreiber erkennt, welche Geräte noch auf einem alten Stand laufen — dieselbe Zahl für alle, die dieselbe Fassung benutzen, sie unterscheidet niemanden. Der Datensatz selbst trägt allerdings den Zeitpunkt seiner letzten Änderung: Daran ist — ohne Bezug zu deinem Konto — ablesbar, dass dieses Gerät zuletzt zu dieser Zeit gelernt hat. Was genau gesendet würde, kannst du im Profil vor dem Einschalten im Klartext ansehen. Ausschalten löscht die Zufallskennung; bereits übermittelte Zahlen bleiben beim Betreiber, weil sie ihm nicht mehr zuordenbar sind.
- Einen Schritt melden (🚩 im Aufgaben-Player). Überträgt die Lektion, die Schrittnummer, die gewählte Art („zu schwer“, „Angabe unklar“, „da stimmt etwas nicht“) und deinen freiwilligen Text. Diese Meldung ist nicht anonym: Sie hängt an deinem Konto, damit der Betreiber nachfragen kann. Der Player weist vor dem Absenden darauf hin. Du kannst deine eigenen Meldungen zurückziehen — eine Antwort darauf wird dabei mitgelöscht.
- Die Antwort darauf. Der Betreiber kann auf eine solche Meldung zurückschreiben. Die Antwort steht in deinem Profil unter „Antworten auf deine Meldungen" und ist nur für dich sichtbar. Auf ausdrückliche Anweisung des Betreibers geht sie zusätzlich an die E-Mail-Adresse deines Kontos — dieselbe, an die auch ein Passwort-Zurücksetzen ginge. Der Server ermittelt diese Adresse selbst aus deiner Meldung; eine andere lässt sich nicht angeben. Inhalt der Mail sind deine eigene Meldung im Zitat und der Antworttext. Löschen kannst du eine Antwort selbst — im Profil, mit „Antwort löschen". Sie ist danach auch beim Betreiber weg. Eine bereits verschickte E-Mail holt das nicht zurück; sie liegt in deinem Postfach.
Beides dient ausschließlich dazu, zu steile oder unklar formulierte Aufgaben zu erkennen und zu verbessern. Es findet keine Auswertung einzelner Personen statt und keine Weitergabe an Dritte.
Wenn die Kursleitung es vorgibt. Wird CodeQuest in einer Klasse oder Lerngruppe eingesetzt, kann der Betreiber das Teilen der Steilstellen für ein einzelnes Konto einschalten und festsetzen. Dasselbe gilt für die Anzeige auf der Bestenliste. Es ändert sich dadurch nichts daran, was übertragen wird — nur, wer darüber entscheidet.
Beides bleibt in diesem Fall sichtbar: Im Profil steht bei dem betreffenden Schalter, dass die Kursleitung ihn eingeschaltet hat, und er ist dort nicht bedienbar. Ein Häkchen, das von selbst gesetzt ist und nicht dazusagt, wer es gesetzt hat, wäre die unehrlichste Bauweise von allen. Abschalten lässt sich eine Vorgabe nur bei der Kursleitung.
Die Rechtsgrundlage ist dann keine Einwilligung mehr — etwas, das man nicht ablehnen kann, ist keine. Für den Einsatz im Unterricht ist der geordnete Weg die Vereinbarung mit der Schule nach Art. 28 DSGVO (siehe Punkt 9); außerhalb eines solchen Rahmens sollte der Betreiber diese Vorgaben nicht verwenden. Im Normalfall — ohne Vorgabe — bleibt beides das, was oben steht: freiwillig, standardmäßig aus, jederzeit widerrufbar.
3. Zwecke und Rechtsgrundlagen
| Verarbeitung | Zweck | Rechtsgrundlage |
|---|---|---|
| Konto & Synchronisierung (E-Mail, Passwort-Hash, Lernfortschritt) | Bereitstellung des Benutzerkontos, geräteübergreifende Speicherung des Fortschritts | Art. 6 Abs. 1 lit. b DSGVO (Vertrag/Nutzungsverhältnis) |
| Geteilte Steilstellen (Zähler ohne Konto-Bezug) | Erkennen zu steiler oder unklarer Aufgaben, um den Lernstoff zu verbessern | Art. 6 Abs. 1 lit. a DSGVO (Einwilligung, jederzeit widerrufbar). Gibt die Kursleitung das Teilen für ein Konto vor, ist es keine Einwilligung — dann trägt es die Vereinbarung mit der Schule nach Art. 28 DSGVO (siehe oben). |
| Gemeldete Schritte (Lektion, Schritt, Art, Text, Konto) | Bearbeitung der Meldung und Rückfrage beim Melder | Art. 6 Abs. 1 lit. a DSGVO (Einwilligung durch aktives Absenden) |
| Übermittlung von Code an wandbox.org / godbolt.org / ce.judge0.com | Kompilierung und Ausführung von C-, C++-, C#-, Java-, Rust-, Go- und Bash-Code (Aufgaben; im Spielplatz alle außer C#) | Art. 6 Abs. 1 lit. b DSGVO (angeforderte Funktion), hilfsweise lit. f |
| Verwaltungsprotokoll zu Konten, Freigaben, Urkunden und Firmenverwaltung | Nachvollziehbarkeit, Fehlerklärung und Schutz vor unberechtigten Verwaltungsänderungen | Art. 6 Abs. 1 lit. f DSGVO (berechtigtes Interesse an nachvollziehbarer, sicherer Kontoverwaltung) |
| Technische Fehlerberichte | Stabilität und Fehlerbehebung der App | Art. 6 Abs. 1 lit. f DSGVO (berechtigtes Interesse an einer funktionierenden App) |
| Server-Logs (IP-Adressen) bei Hosting und Konto-Server, Begrenzung der Anmeldeversuche je Anschluss | Betriebssicherheit, Missbrauchsabwehr | Art. 6 Abs. 1 lit. f DSGVO |
| E-Mail-Versand über Google (Gmail) | Passwort zurücksetzen, Sicherheitshinweis bei Anmeldung von einem unbekannten Gerät | Art. 6 Abs. 1 lit. b DSGVO (angeforderte Funktion), hilfsweise lit. f |
| Nachrichten an die Support-Adresse (Absender, Betreff, Text, Anhang-Namen) | deine Anfrage beantworten — gespeichert wird nur, was du selbst geschrieben hast | Art. 6 Abs. 1 lit. b DSGVO, hilfsweise lit. f |
| Gruppen und Bestenliste (Benutzername, Kennzahlen) | Anzeige für die Gruppenleitung bzw. auf der Bestenliste — nur, wenn du beitrittst bzw. es einschaltest | Art. 6 Abs. 1 lit. a DSGVO (Einwilligung, jederzeit widerrufbar) |
| Geteilter Lernstand und abgeschlossene Lektionen | Die Gruppenleitung kann Unterrichtsmaterial aus deinen bereits abgeschlossenen Lektionen zusammenstellen, wenn du deinen Lernstand in dieser Gruppe teilst. Sie erhält dafür nur die abgeschlossenen Lektionen, keine Lernzeitpunkte, Antworten, Quelltexte oder Fehlversuche. Ausschalten beendet diesen Abruf; eine verpflichtende Vorgabe und die Ausnahme des Betreibers gelten wie beim bisherigen Modulstand. | Wie beim geteilten Modulstand: Einwilligung bzw. Unterrichtsvorgabe im Schulverhältnis |
| Post in der App (Absender, Empfänger, Gruppe, Anzeigename, Text, Zeitpunkt, ob gelesen) | Nachrichten zwischen dir und deiner Kursleitung, zwischen Mitlernenden, und die Post des Betreibers an dich. Schreiben kann nur, wem der Betreiber „Post in der App" freigeschaltet hat — und nur Leuten aus den eigenen Gruppen: der Leitung immer, den Mitschüler:innen nur, wenn die Leitung die Klassenliste geöffnet hat. Ehrlich dazu, und das ist wichtig: Der Text liegt verschlüsselt in der Datenbank — eine gestohlene Sicherung nützt damit niemandem. Der Schlüssel liegt aber auf demselben Server, weil er dort liegen muss: Sonst könnte dir der Server deine eigene Post nicht zeigen. Wer den Server betreibt, kann also weiterhin mitlesen. Das ist keine Lücke, sondern die Grenze dieser Bauart — eine echte Ende-zu-Ende-Verschlüsselung würde bedeuten, dass eine gemeldete Nachricht niemand mehr ansehen kann, auch nicht zu deiner Hilfe. Das ist kein privater Messenger — schreib hier nichts, was niemand außer dem Empfänger sehen soll. Die Kursleitung kann eine Nachricht auch an alle in ihrer Gruppe schicken; du bekommst sie dann als ganz gewöhnliche Nachricht, und es steht dabei, dass sie an alle ging. Deine Antwort darauf geht nur an sie — die anderen sehen sie nicht. Und: Eine abgeschickte Nachricht bleibt stehen. Sie lässt sich nicht ändern und nicht löschen, auch von dir nicht, denn sonst wäre eine Meldung nichts wert. Wenn dir jemand etwas schreibt, das nicht in Ordnung ist, steht an jeder Nachricht ein Melde-Knopf. An den Betreiber schreiben kannst du, wenn er es für dein Konto freigeschaltet hat — oder wenn du Klassensprecher:in einer Gruppe bist, deren Leitung diesen Weg geöffnet hat. Solche Nachrichten sehen nur du und er, nicht deine Klasse und nicht deine Lehrkraft. | Art. 6 Abs. 1 lit. f DSGVO bzw. Art. 28 im Schulverhältnis; für das Schreiben untereinander zusätzlich die Freigabe durch den Betreiber |
| Klassensprecher-Wahl (dass du abgestimmt hast; getrennt davon, was gewählt wurde) | Eine Gruppe wählt aus ihrer Mitte. Deine Stimme wird ohne dich gespeichert: In der einen Tabelle steht, dass du gewählt hast, in einer anderen, was gewählt wurde — über die App lässt sich beides nicht zusammenführen, auch nicht von der Leitung. Nach dem Auszählen sieht die Gruppe nur die Summe je Kandidat:in. Ehrlich dazu: Wer den Server administriert, kann die Datenbank öffnen; „geheim" heißt hier „nicht über die App einsehbar". | Art. 6 Abs. 1 lit. f DSGVO bzw. Art. 28 im Schulverhältnis. Mitmachen ist freiwillig |
| Die Gruppe sieht einander (Anzeigename, Rolle, Level, XP, Serie, Lektionen — nicht der Modulstand) | Eine Schulklasse, in der man sich ohnehin kennt, soll ihre eigene Rangliste sehen dürfen. Die Leitung der Gruppe schaltet es ein; im Grundzustand ist es aus. Wer die Leitung einer Gruppe ist, sehen die Mitglieder immer — diese Person stellt Aufträge und sieht deinen Modulstand, also sollst du wissen, wer sie ist. | Art. 6 Abs. 1 lit. f DSGVO bzw. Art. 28 im Schulverhältnis — die Entscheidung trifft die Leitung, nicht du |
| Klassensprecher-Wahl (Kandidat:innen, dass du abgestimmt hast, und getrennt davon die Stimme selbst — ohne Verbindung zwischen beidem) | Die Gruppe wählt eine:n Klassensprecher:in. Deine Stimme ist geheim: Gespeichert wird in einer Sammlung, dass du gewählt hast, und in einer anderen, was gewählt wurde — über die App lässt sich beides nicht zusammenführen, auch nicht von der Leitung. Sie sieht nur, wie viele Stimmen jede:r bekommen hat. Ehrlicher Vorbehalt: Wer den Server administriert, kann die Datenbank öffnen; „geheim" heißt hier „über die App nicht einsehbar". | Art. 6 Abs. 1 lit. e/f DSGVO bzw. Art. 28 — eine Klassensprecherwahl gehört zum Schulbetrieb. Abstimmen ist freiwillig; wer nicht abstimmt, hinterlässt keine Zeile |
| Gesperrter Austritt aus einer Gruppe (keine neuen Daten — es ändert sich, wer die Mitgliedschaft beenden darf) | Damit niemand vor einer Frist oder Prüfung austritt und danach wieder beitritt. Die Leitung schaltet es ein; im Grundzustand ist es aus. Dein Konto zu löschen beendet die Mitgliedschaft in jedem Fall, und der Betreiber kann die Sperre für jede Gruppe zurückdrehen. | Art. 6 Abs. 1 lit. e/f DSGVO bzw. Art. 28 — mit der Sperre gehört die Mitgliedschaft zum Unterricht und ist keine freiwillige Einwilligung mehr |
| Sitzplan einer Gruppe (Raumgröße und je besetztem Platz eine Konto-Kennung) | Die Leitung ordnet die Klasse Plätzen im Raum zu — das braucht vor allem eine Vertretung. Sie sieht ihn immer; die übrigen Mitglieder nur, wenn die Leitung ihn ausdrücklich öffnet. Im Grundzustand ist er zu. | Art. 6 Abs. 1 lit. e/f DSGVO bzw. Art. 28 — die Zuordnung trifft die Leitung, nicht du |
| Klassensprecher-Wahl (dass du abgestimmt hast; getrennt davon, was gewählt wurde) | Die Klasse wählt ihre Vertretung. Deine Stimme wird ohne dich gespeichert und deine Teilnahme ohne die Stimme — über die App lässt sich beides nicht zusammenführen, auch nicht von der Leitung. Die sieht nur die Summen je Kandidat:in. „Geheim" heißt hier: über die App nicht einsehbar — wer den Server betreibt, kann die Datenbank öffnen. | Art. 6 Abs. 1 lit. e/f DSGVO bzw. Art. 28 — die Teilnahme ist freiwillig: Wer nicht abstimmt, hinterlässt keine Zeile |
| Abgabe eines Auftrags oder Prüfungsblatts (Anzeigename, Zahlen, Zeitpunkt) | Die Leitung deiner Gruppe soll sehen, wer den Auftrag erledigt hat — übertragen nur auf deinen Klick auf „Abgeben" | Art. 6 Abs. 1 lit. a DSGVO (Einwilligung durch die Abgabe, jederzeit widerrufbar) |
| Code-Duell (Anzeigename, Punkte, Versuche, Zeit — sichtbar für die ganze Gruppe, solange das Duell läuft) | Ein Wettbewerb braucht eine Anzeigetafel; ohne sie gäbe es nichts zu sehen | Art. 6 Abs. 1 lit. a DSGVO (Einwilligung durch „Ich bin dabei", jederzeit widerrufbar) |
| CodeQuest-Lab-Aufgabe und freiwillige Abschlussmeldung (Aufgabe, Konto-Kennung, Zeitpunkt) | Die Gruppenleitung weist eine Mission zu und sieht nur den von dir selbst gemeldeten Abschluss; Quellcode und Testergebnisse bleiben auf deinem Gerät | Art. 6 Abs. 1 lit. a DSGVO (Meldung durch deinen ausdrücklichen Klick, löschbar) |
| Live-Ansicht im Unterricht (Anzeigename, erledigte von gesamten Lektionen, Zeitpunkt der letzten Änderung — sichtbar nur für die Gruppenleitung) | Die Leitung soll während der Stunde sehen, wo jemand feststeckt, um gezielt zu helfen | Art. 6 Abs. 1 lit. a DSGVO (Einwilligung je Gruppe, Grundzustand aus, jederzeit widerrufbar) |
Freiwillige Community
Die Community ist für bestätigte CodeQuest-Konten zugänglich. Ein eigenes freiwilliges Community-Profil enthält nur deine selbst veröffentlichten Angaben wie Pseudonym, Lernziel, Themen, Sprache und Verfügbarkeit. E-Mail-Adresse, privater Lernfortschritt und bestehende Klassen werden daraus nicht veröffentlicht. Beiträge, Antworten und für Mitglieder auffindbare Räume sind für bestätigte Mitglieder sichtbar. Private Räume und ihre Diskussionen benötigen eine Einladung beziehungsweise zugelassene Mitgliedschaft.
Beitrittsanfragen und Einladungen werden bis zur Entscheidung der Beteiligten gespeichert. Meldungen, Blockierungen und begründete Moderationsentscheidungen dienen dem Community-Betrieb. Meldungen können eine Kopie des gemeldeten Beitrags enthalten, die zur Klärung auch nach dessen Entfernung bestehen bleibt. Abgeschlossene Meldungen werden nach 90 Tagen beim täglichen Bereinigungslauf entfernt; bei mehr als 200 fälligen Meldungen erfolgt dies über mehrere Läufe. Offene Meldungen bleiben bis zur Klärung erhalten. Moderatoren sehen Meldungen und können zum Prüfen auf betroffene Inhalte zugreifen. Die Moderationsberechtigung vergibt der Betreiber gesondert.
Unter Community → Meine Community kannst du deine eigenen Vorgänge sehen. Dein Profil und deine Beiträge kannst du zurückziehen; der Kontodatenexport enthält auch deine Community-Daten. Für die Klärung von Moderationsfällen und Auskunft zu darin gespeicherten Kopien wende dich an den Betreiber. Die Community stellt keine automatische Verbindung zu Discord oder YouTube her; externe Links öffnen erst nach deinem Klick.
Optional community
Verified CodeQuest accounts may participate using a voluntary community profile. Only details you publish, such as an alias, learning goals, topics, language and availability, are shared. Email addresses, private learning progress and existing classes are not published. Posts and discoverable spaces are visible to verified members. Private spaces require invitation or approved membership. Reports, blocks and reasoned moderation decisions support community operations; reports can retain a copy of reported content for review after its removal. Moderators can inspect reported content. You can withdraw your profile and posts and export your own community records through the account data export. Contact the operator regarding retained moderation copies. Discord and YouTube are not automatically connected.
4. Empfänger und Auftragsverarbeiter
- Konto-Server beim Betreiber. Konten, Lernfortschritt, Gruppen und Freigaben liegen auf einem Rechner des Betreibers in dessen Wohnung in Österreich — nicht bei einem Cloud-Anbieter. Es gibt dafür keinen externen Datenbank-Hoster. Die bisherige Adresse ist über einen verschlüsselten Tunnel des Dienstes Tailscale erreichbar, der die Verbindung durchleitet, ohne die übertragenen Inhalte lesen zu können (Ende-zu-Ende-Verschlüsselung per HTTPS).
- Cloudflare, Inc. — beim Aufruf von codequest.at und www.codequest.at vermittelt Cloudflare die Website und die Konto-Schnittstelle. HTTPS wird bei Cloudflare entschlüsselt; die Weiterleitung zum Homeserver erfolgt über einen verschlüsselten Cloudflare Tunnel. Cloudflare kann dabei IP-Adressen, angefragte Adressen und Inhalte der Anfragen einschließlich Anmelde- und Kontodaten verarbeiten. Die Datenbank bleibt auf dem Homeserver in Österreich. Die private Firmenzentrale und Kontenverwaltung sind nicht Teil dieses öffentlichen Tunnels. Cloudflare ist ein US-Anbieter; Verarbeitung kann auch außerhalb der EU erfolgen. Weitere Angaben: Datenschutz und Auftragsverarbeitung und Übermittlungsbedingungen.
- Google Ireland Limited (Gmail) — versendet die E-Mails des Konto-Servers, siehe Punkt 2c. Empfängeradresse und Zeitpunkt werden dabei bekannt.
- Website und Konto: Die Lernapp wird jetzt vom eigenen Homeserver über dieselbe HTTPS-Adresse wie die Konto-Schnittstelle ausgeliefert. Für die bisherige Adresse gilt die beschriebene Tailscale-Verbindung; für codequest.at gilt die oben beschriebene Cloudflare-Verarbeitung. Die bisherige GitHub-Adresse bleibt als Einstieg mit Weiterleitung bestehen; dort und beim bewussten Aufruf der alten lokalen Ansicht liefert GitHub, Inc. (GitHub Pages), 88 Colin P. Kelly Jr. Street, San Francisco, CA 94107, USA weiterhin Dateien aus. Dabei fallen IP-Adressen in Server-Logs an. Für diese Übermittlung in die USA bietet GitHub Standardvertragsklauseln an (Details). Daten, die nur im Browser gespeichert sind, wechseln die Adresse nicht automatisch; Kontofortschritte werden nach der Anmeldung vom Kontoserver geladen.
- wandbox.org, godbolt.org und ce.judge0.com — externe Compiler-Dienste, siehe Punkt 2d. Diese Dienste sind eigenständige Anbieter (keine Auftragsverarbeiter des Betreibers); übertragen wird ausschließlich der von dir eingegebene Übungscode samt technisch bedingter IP-Adresse.
Ein Verkauf oder eine sonstige Weitergabe von Daten an Dritte findet nicht statt.
5. Speicherdauer
- Kontodaten und Lernfortschritt: bis zur Löschung des Kontos durch dich (siehe Punkt 7). Ausgenommen ist das begrenzte Verwaltungsprotokoll: 180 Tage mit täglicher Bereinigung.
- Server-Logs: Der Konto-Server hält Zugriffs- und Fehlerprotokolle (einschließlich IP-Adresse) fünf Tage vor und löscht sie danach selbsttätig.
- Sicherungen: Von der Datenbank wird täglich eine Sicherungskopie angelegt; die letzten vierzehn bleiben erhalten. Nach einer Kontolöschung kann es also bis zu vierzehn Tage dauern, bis die Daten auch aus allen Sicherungen verschwunden sind.
- Lokale Daten (localStorage): verbleiben in deinem Browser, bis du sie selbst löschst (in der App oder über die Browser-Einstellungen).
6. Cookies und lokale Speicherung
Unterrichtswerkstatt: Antworten werden lokal je Konto oder als Gast gespeichert. Private Kontospeicherung erfolgt nur beim Klick auf Speichern; Klassenabgaben erst nach ausdrücklicher Bestätigung. Dabei erhält die Kursleitung die Antworten und Selbstprüfungen. Abgaben bleiben versioniert, mit Lehrerfeedback. Es erfolgt keine KI-Auswertung. Lokale und private Serverstände können in der Werkstatt gelöscht werden; bei Kontolöschung werden zugeordnete Werkstattdaten gelöscht. Der Kontodatenexport enthält private Arbeitsstände und Abgaben.
CodeQuest setzt keine Cookies zu Werbe- oder Tracking-Zwecken und bindet keine Werbe- oder Analyse-Dienste ein. Verwendet wird funktionale Speicherung im Browser (localStorage) für deinen Lernfortschritt, deine Einstellungen, den Arbeitsstand deiner Großprojekte, deine Spielplatz-Schnipsel, deinen CodeQuest-Lab-Entwurf und den lokalen Lab-Abschlussstand, außerdem den Code, eigene Tests, Erklärungen, geöffnete Tipps und Prüfergebnisse deiner Projektstrecken und — bei Login — die Sitzungsinformation. Diese Speicherung ist für den Betrieb der App technisch erforderlich; ein Cookie-Banner ist daher nicht notwendig.
Freiwillige Browser-Wiedererkennung (standardmäßig aus): Wenn du sie im Profil mit deinem Passwort und gegebenenfalls App-Code einschaltest, speichert CodeQuest einen geschützten, zufälligen Cookie für höchstens 90 Tage. Der Server speichert nur dessen Hash, die Zuordnung zu deinem Konto, eine allgemeine Browser-/Betriebssystembezeichnung und Nutzungs-/Ablaufzeit. Das verringert wiederholte Anmeldewarnungen bei wechselnder IP. Es ersetzt weder Passwort noch zweiten Faktor und dient keinem Werbetracking. Einzelne Browser kannst du im Profil vergessen; Ausschalten entfernt alle Nachweise. Ein Passwortwechsel macht bisherige Nachweise ungültig. Abgelaufene Nachweise werden täglich bereinigt.
Projektstrecken prüfen deinen Code mit temporären Beispieldateien in der Python-Laufzeit des Browsers. Projektcode und Erklärungen werden dabei nicht an den Konto-Server oder externe Compiler übertragen. Diese Arbeitsstände bleiben pro Konto auf dem jeweiligen Gerät; Sicherungen und Projektpakete lädst du bewusst selbst herunter. Der Rückweg aus einer Grundlagenlektion wird nur für die aktuelle Browsersitzung gespeichert.
Dazu kommt die IndexedDB, und zwar für genau eine Sache: Wenn du im echten Linux auf 💾 Behalten drückst, wird der ganze nachgebaute Rechner eingefroren und in deinem Browser abgelegt, damit du beim nächsten Mal dort weitermachen kannst. Das kann je nach Nutzung einige zehn Megabyte belegen. Diese Daten verlassen dein Gerät nicht — sie gehen weder an den Konto-Server noch sonst irgendwohin. Wegwerfen kannst du sie jederzeit selbst mit 🗑 Vergessen auf der Linux-Seite oder indem du die Websitedaten im Browser löschst.
7. Deine Rechte
Dir stehen nach der DSGVO folgende Rechte zu:
- Auskunft (Art. 15), Berichtigung (Art. 16), Löschung (Art. 17), Einschränkung der Verarbeitung (Art. 18), Datenübertragbarkeit (Art. 20) und Widerspruch gegen Verarbeitungen auf Basis berechtigter Interessen (Art. 21).
- Selbstlöschung direkt in der App: Im Profil findest du den Button „Konto löschen“ — er löscht dein Konto samt allen serverseitig gespeicherten Daten (E-Mail, Lernfortschritt, Badges) sofort und unwiderruflich. Du musst dafür niemanden anschreiben.
- Datenexport: Deinen Lernfortschritt kannst du jederzeit in der App als JSON-Datei exportieren.
Für alle Anliegen erreichst du den Verantwortlichen unter [E-MAIL]. Außerdem hast du das Recht auf Beschwerde bei der österreichischen Datenschutzbehörde (dsb.gv.at, Barichgasse 40–42, 1030 Wien).
8. Pflicht zur Bereitstellung
Für die Nutzung der Lerninhalte ist ein Konto erforderlich; dafür brauchst du eine E-Mail-Adresse, einen Benutzernamen und ein Passwort. Ohne diese Angaben ist keine Anmeldung und damit keine Nutzung möglich — eine gesetzliche oder vertragliche Pflicht zur Bereitstellung besteht aber nicht, du kannst die Nutzung schlicht unterlassen.
Freiwillig sind: die Teilnahme an Gruppen, die Anzeige auf der Bestenliste (standardmäßig aus), das Teilen der Steilstellen (standardmäßig aus) und das Stellen von Zugangsanfragen. Ohne sie funktioniert das Lernen unverändert. Die beiden mittleren kann die Kursleitung für ein Konto vorgeben; dann steht es im Profil bei dem jeweiligen Schalter (Punkt 2 e).
Bestätigung bei der Registrierung. Wer ein Konto anlegt, bestätigt diese Datenschutzerklärung im Formular mit einem Haken. Ohne diesen Haken legt CodeQuest kein Konto an. Dasselbe wird bei bestehenden Konten nachgeholt, sobald sich die Erklärung inhaltlich ändert.
Der Betreiber verlangt dafür derzeit eine Zustimmung — nicht bloß die Bestätigung, den Text gelesen zu haben. Wer nicht zustimmt, kann CodeQuest nicht benutzen; das Konto lässt sich in diesem Fall jederzeit löschen. Zurücknehmen kannst du die Zustimmung jederzeit (Art. 7 Abs. 3 DSGVO), im Profil unter „Deine Einwilligungen". Danach kommst du nicht weiter, bis du erneut zustimmst; dein Lernfortschritt bleibt dabei erhalten und wird nur nicht mehr mit dem Server abgeglichen.
Wozu das dient, wenn das Konto ohnehin auf Art. 6 Abs. 1 lit. b DSGVO läuft (Punkt 3): Der Betreiber verlangt hier mehr als die Rechtsgrundlage fordert, nicht weniger. Die Verarbeitung, ohne die es kein Konto geben kann, bleibt auf lit. b gestützt — sie endet deshalb nicht mit der Rücknahme, sondern mit der Löschung des Kontos. Was mit der Rücknahme endet, ist die Nutzung. Die freiwilligen Funktionen (Bestenliste, Steilstellen, Gruppen) tragen davon unabhängig ihre eigene, einzeln widerrufbare Einwilligung.
Der Betreiber kann diese Vorgabe auf die bloße Kenntnisnahme zurückstellen — dann bestätigst du nur noch, den Text gelesen zu haben, und es ist keine Einwilligung. Welche der beiden Fassungen bei deiner Bestätigung galt, wird mitgespeichert (siehe unten); im Formular steht jeweils, was gerade verlangt wird.
Was dabei gespeichert wird. Anders als die Altersbestätigung wird diese Bestätigung gespeichert: die Fassungsnummer dieser Erklärung, der Zeitpunkt und die Art der Bestätigung (Zustimmung oder Kenntnisnahme), verknüpft mit dem Konto. Jede Bestätigung und jede Rücknahme kommt als eigene Zeile dazu — daraus ergibt sich auch, wie oft ein Konto bestätigt hat. Der Grund ist die Frage, die eine bloße Ja-Spalte nicht beantwortet — nämlich welcher Text vorlag. Diese Erklärung ändert sich; „hat irgendwann irgendetwas bestätigt" ist kein Nachweis, „hat Fassung 1 am 4. September 2026 bestätigt" ist einer. Ändert sich diese Erklärung inhaltlich, steigt die Fassungsnummer. Ob deshalb erneut nachgefragt wird, entscheidet der Betreiber — nicht jede Änderung ist eine, bei der jemand zu Recht sagen würde „das wusste ich nicht". Wird nachgefragt, steht die Schranke beim nächsten Öffnen der App.
Das Einwilligungs-Protokoll. Dasselbe gilt für die freiwilligen Funktionen: Wer die Bestenliste einschaltet, Steilstellen teilt, einer Gruppe beitritt oder eine Rückmeldung sendet, für den entsteht dabei eine Zeile mit Art der Einwilligung, Zeitpunkt und — beim Gruppenbeitritt — der betroffenen Gruppe. Ein Widerruf löscht diese Zeile nicht, sondern ergänzt eine zweite; nur so lässt sich später sagen, ab wann das Nein galt (Art. 7 Abs. 3 DSGVO). Nicht gespeichert werden dabei IP-Adresse und Browserkennung — sie wären zusätzliche personenbezogene Daten, erhoben zu dem Zweck, Datensparsamkeit zu belegen.
Diese Aufzeichnungen sind im Profil unter „Deine Einwilligungen" jederzeit einsehbar und werden mit dem Konto gelöscht. Die Altersbestätigung bleibt davon unberührt: Sie ist weiterhin eine Bedingung und kein Datum, wird im Browser geprüft und nicht gespeichert und nicht übertragen (Punkt 9).
9. Minderjährige
CodeQuest richtet sich ausdrücklich an Schülerinnen und Schüler — der Lernstoff ist am Lehrplan der österreichischen HTL ausgerichtet. Ein Teil der Nutzerinnen und Nutzer ist damit jünger als 18 Jahre, und das gehört hier benannt statt übergangen.
Altersgrenze. Art. 8 DSGVO knüpft die Einwilligung eines Kindes in Dienste der Informationsgesellschaft an ein Mindestalter; für Österreich hat der Gesetzgeber es in § 4 Abs. 4 DSG auf 14 Jahre festgelegt. Wer 14 Jahre oder älter ist, kann ein Konto also selbst anlegen. Wer jünger als 14 Jahre ist, braucht dafür die Zustimmung eines Erziehungsberechtigten — bei der Registrierung ist das zu bestätigen.
Bestätigt wird dabei nur die Aussage „alt genug beziehungsweise Zustimmung liegt vor". Ein Geburtsdatum wird nicht erhoben, und auch die Bestätigung selbst wird nicht gespeichert und nicht übertragen — sie wird im Browser geprüft. Ein zusätzliches personenbezogenes Datum anzulegen, nur um eine Rechtsgrundlage zu dokumentieren, wäre das Gegenteil von Datensparsamkeit.
Nutzung im Unterricht. Wird CodeQuest von einer Schule in einer Klasse eingesetzt, ist der geordnete Weg nicht die Einzeleinwilligung von dreißig Schülerinnen und Schülern, sondern eine Vereinbarung mit der Schule: Die Schule bleibt für die Verarbeitung im Unterricht verantwortlich, der Betreiber von CodeQuest wird Auftragsverarbeiter nach Art. 28 DSGVO. Eine Schule, die das plant, wendet sich bitte vorab an die unter Punkt 1 genannte Adresse; ein Vertragsentwurf und ein Verzeichnis der Verarbeitungstätigkeiten werden bereitgestellt.
Was hier nicht passiert. Diese Zusagen gelten für alle, sind aber gegenüber Minderjährigen der eigentliche Punkt:
- Es gibt keine Werbung und keine Werbe- oder Analyse-Dienste (siehe Punkt 6).
- Es findet kein Profiling und keine automatisierte Entscheidungsfindung statt. Die Lern-Statistik, die auswertet, welche Aufgaben oft scheitern, bleibt vollständig im Browser des Geräts und wird nicht übertragen.
- Daten werden nicht verkauft und nicht zu anderen als den unter Punkt 3 genannten Zwecken weitergegeben.
- Die Bestenliste ist standardmäßig aus und zeigt auch eingeschaltet nie eine E-Mail-Adresse — nur den selbstgewählten Anzeigenamen. Schaltet die Kursleitung sie für ein Konto ein, steht das im Profil dabei (Punkt 2 e); gezeigt wird auch dann nicht mehr als der Anzeigename.
- Beim Anlegen eines Kontos werden keine Angaben zu Schule, Klasse, Geburtsdatum oder Wohnort erhoben. Es sind Benutzername, E-Mail-Adresse und Passwort, sonst nichts.
Für Erziehungsberechtigte. Die Rechte aus Punkt 7 — Auskunft, Berichtigung, Löschung, Datenübertragbarkeit — können für ein Kind auch von den Erziehungsberechtigten geltend gemacht werden. Eine formlose Nachricht an die unter Punkt 1 genannte Adresse genügt. Wird dem Betreiber bekannt, dass ein Konto einer Person unter 14 Jahren ohne Zustimmung der Erziehungsberechtigten angelegt wurde, wird es gelöscht.