Digitalisierung von Vera oder wie wir den Test mit Bravour bestanden haben

21 Juni 2023

Das Projekt bestand aus drei Arbeitspaketen. Als Erstes mussten wir die Sicherheit erhöhen, das System auf den neuesten Stand bringen und einen Penetrationstest bestehen. Danach mussten wir, aufbauend auf dem ersten Schritt, die automatisierte Testabdeckung erhöhen und das Benutzersystem von einem Einzelnutzer pro Schule zu einem Mehrbenutzersystem pro Schule migrieren, bei dem jeder Lehrer sein eigenes Konto erhält. Abschließend folgten die wunderschönen Berichte!

Aber um das Projekt besser zu erklären, müssen wir Ihnen zunächst VERA vorstellen.

VERA (VERgleichsArbeiten in der Schule) ist ein Gemeinschaftsprojekt aller 16 deutschen Bundesländer. Es zielt darauf ab, jährliche Prüfungen in Schulen durchzuführen und auszuwerten, um die Bildung der Schüler zu verbessern.

Für einen einzelnen Testdurchlauf läuft der VERA-Prozess grob wie folgt ab:

  1. Der Test wird von einem zentralen Forschungsinstitut erstellt, indem es Aufgaben erstellt, die in verschiedene Testhefte gruppiert werden.
  2. Spezifische Testhefte werden an die jeweiligen Schulen verteilt
  3. Schüler nehmen an dem Test teil
  4. Die Antwortbögen werden eingesammelt und ausgewertet
  5. Die Schulen erhalten Informationen über ihre Leistungen

Jedes Bundesland ist für die Durchführung des Verfahrens für alle Schulen in seinem Bundesland zuständig. Das Land Bayern beauftragte uns mit der Weiterentwicklung der Webanwendung zur Erfassung und Auswertung der Testergebnisse in ihrem Bundesland. Unsere Aufgabe war es, die Erfassung, Kontrolle und Analyse von Prüfungsdaten zu erleichtern.

Dabei mussten wir nicht bei null anfangen. Es gab bereits eine bestehende, auf Django basierende, Lösung, was erfreulicherweise genau unser Metier war.

Das Backend

Unsere erste Aufgabe bei diesem Projekt bestand darin, die Laufzeitumgebung von Python 2 auf Python 3 sowie alle Python-Abhängigkeiten zu aktualisieren. Da Python 3 nicht abwärtskompatibel zu Python 2 ist, musste der vorhandene Code an die neue Laufzeitumgebung angepasst werden.

Dann mussten wir Django auf den neuesten Stand bringen und haben uns dabei die Freiheit genommen, einige der manuellen Verwaltungsaufgaben zu automatisieren, um den gesamten Arbeitsablauf für das Admin-Team zu vereinfachen. Währenddessen haben wir auch andere Aspekte der Django-Anwendung verbessert. So haben wir beispielsweise die Größe der Vera-Ergebnisdaten um das 12-fache reduziert, Unit-Tests für wichtige Funktionen mit pytest hinzugefügt und die Unterstützung für mehrere Benutzer pro Schule eingeführt, wodurch die Sicherheit der Anwendung insgesamt verbessert wurde.

Das Frontend

vera-laptop.webp

Nach der Überarbeitung des Backends haben wir uns dem Frontend zugewandt und die Dateneingabefunktionalität für die Lehrer als moderne Vue.js-basierte Single-Page-Anwendung neu implementiert.

Unser Hauptaugenmerk bei der Frontend-Anwendung lag auf Benutzerfreundlichkeit, Zuverlässigkeit und Konsistenz. Wir arbeiteten nach dem Motto "Keine Daten gehen verloren", das alle Designentscheidungen leitete. Jede einzelne Antwort, die von jedem einzelnen Schüler gegeben wurde, musste berücksichtigt werden. Dies musste auch dann der Fall sein, wenn die verantwortliche Lehrkraft eine Pause machte, bevor sie auf die Speichertaste drückte, und zurückkam, um ihren Computer abgestürzt vorzufinden. Sie sollten in der Lage sein, auf einem anderen Rechner weiterzumachen, wo sie aufgehört hatten.

Wir haben auch besonderes Augenmerk auf die Datenvalidierung gelegt, und im Falle fehlender oder falscher Daten werden die Lehrer benachrichtigt und mit sofortigen Hinweisen angeleitet, ohne dass die bereits eingegebenen Daten verloren gehen.

Datenanalyse

Sobald alle Daten in das System eingegeben wurden, kann ein Administrator die Eingabefunktion für den Test beenden und die Berechnung der Testbewertung einleiten. Die Berechnung besteht aus zwei Teilen:

  • Eine auf dem Rasch-Modell basierende statistische Analyse zur Bestimmung der Kompetenzniveaus der einzelnen Schüler/innen
  • Klassische statistische Analyse (z.B. Berechnung der Korrektheitsquote) auf verschiedenen Ebenen – Klasse, Schule, Schulart

Die auf dem Rasch-Modell basierende statistische Analyse wird von einem bereits bestehenden externen System durchgeführt. Die Eingabedaten für diese Berechnung werden bei Bedarf von der Django-Anwendung generiert und die Ergebnisse werden in die Django-Anwendung zurückgespielt. Diese Ergebnisse bilden zusammen mit den Ergebnissen der klassischen statistischen Analyse die Grundlage für die Online-VERA-Bewertungsberichte.

Berichte

VERA report dot plot

VERA report bar plot

Wir haben Plotly in der Vue.js-Anwendung verwendet, um die Berichte zu erstellen. Das Django-Backend führt alle notwendigen Berechnungen durch und stellt die Daten dem Frontend über eine API zur Verfügung.

Wie oben erwähnt, wird die klassische statistische Analyse auf verschiedenen Ebenen durchgeführt – Klasse, Schule und Schulart. Betrachten wir zwei Berichte für Klassen in zwei verschiedenen Schulen derselben Art. Sie würden das gleiche Ergebnis auf der Ebene der Schulart enthalten. Die Berechnung könnte also einmal durchgeführt und gespeichert werden, und das Ergebnis könnte für alle entsprechenden Berichte nachgeschlagen werden. Durch diesen Ansatz und die Zwischenspeicherung einiger wiederverwendbarer Werte konnten wir nicht nur die Ressourcennutzung optimieren, sondern auch die Ansichten so beschleunigen, dass sie dem Benutzer ohne spürbare Verzögerung angezeigt werden.

Die neuen Online-Berichte sind den alten PDF-Berichten überlegen, sowohl was die Aktualisierungsgeschwindigkeit als auch die Reaktionsfähigkeit betrifft. Dank des responsiven Designs müssen sie nicht mehr ausgedruckt werden - der erste Schritt in eine nachhaltige, papierlose Zukunft.

Aber Geschwindigkeit und Aussehen sind nicht die einzigen Vorteile der neuen Berichtsstruktur. VERA-Ergebnisse sind sensible Informationen, und wir haben ein robustes Berechtigungsmanagement eingeführt, um sie zu schützen. Und nicht zuletzt ist es möglich, an einem Ort mit einem einzigen Mausklick auf Online-Berichte für historische Daten zuzugreifen.

Zusammenfassung

Das aktuelle Projekt steht kurz vor dem Abschluss, und rückblickend können wir nicht umhin, die großartige Grundlage zu schätzen, die Django für Webanwendungen bietet. Das System läuft schon jahrelang zuverlässig dank dieser und wird es sicherlich auch weiterhin tun. Mit dem schnellen, modernen Frontend und der benutzerfreundlichen Eingabe- und Berichtsfunktionalität hoffen wir, dass die Lehrer das System gerne nutzen und die papierlose Option annehmen werden. Die Verwaltungsangestellten hingegen werden es hoffentlich zu schätzen wissen, dass manuelle Aufgaben durch Automatisierung ersetzt werden, was ihre Zeit spart, geistige Kapazitäten freisetzt und menschliche Fehler verhindert.

Wir sind dem Bayerischen Landesamt für Schule und Berufsbildung dankbar, dass es uns mit einem so wichtigen Projekt betraut hat. Insbesondere möchten wir uns bei dem gesamten Team von „Referat Vergleichsarbeiten“ bedanken, die Zusammenarbeit mit ihnen war sehr effizient und angenehm und wir würden sie jederzeit gerne wiederholen.

Hinweis: In den bereitgestellten Screenshots werden keine realen Daten verwendet.

djangsters GmbH

Vogelsanger Straße 187
50825 Köln