Schild Spider

Beta

Automatische Schülerdaten-Synchronisation — von SchILD NRW in beliebige Zielsysteme.Automated student data synchronization — from SchILD NRW to any target system.

Screenshot: Hauptfenster von Schild Spider mit aktivem Diff

1. Was ist Schild Spider?1. What is Schild Spider?

Schild Spider ist ein Open-Source-Desktop-Tool für Windows, das Schülerdaten aus SchILD NRW liest und automatisch mit einem oder mehreren Zielsystemen abgleicht. Es erkennt neue Schüler, Datenänderungen (Namens- oder Klassenwechsel), Abgänge und Foto-Updates — und überträgt die Änderungen per Knopfdruck.Schild Spider is an open-source Windows desktop tool that reads student data from SchILD NRW and automatically synchronizes it with one or more target systems. It detects new students, data changes (name or class changes), departures and photo updates — and applies the changes with a single click.

Das Tool läuft vollständig lokal auf dem Schulrechner — es werden keine Schülerdaten an Dritte übertragen. Die Kommunikation erfolgt ausschließlich mit den konfigurierten Zielsystemen über deren offizielle APIs.The tool runs entirely locally on the school computer — no student data is transmitted to third parties. Communication takes place exclusively with configured target systems via their official APIs.

KernmerkmaleKey Features

  • Plugin-Architektur:Plugin architecture: Beliebig viele Zielsysteme über Plugins anbindbar. Neue Plugins werden in der Oberfläche verwaltet und beim Build via hiddenimport automatisch in die .exe kompiliert.Any number of target systems can be connected via plugins. New plugins are managed in the UI and automatically compiled into the .exe via hiddenimport during the build.
  • Dry-Run-Prinzip:Dry-run principle: Änderungen werden erst berechnet und in einer Vorschau angezeigt, bevor sie angewendet werden. Kein versehentliches Überschreiben.Changes are first calculated and shown in a preview before being applied. No accidental overwrites.
  • Failsafe-Mechanismus:Failsafe mechanism: Wenn >15% der Datensätze auf einen Schlag deaktiviert werden sollen (z. B. durch eine fehlerhafte Export-Datei), blockiert das System und fragt nach Bestätigung.If >15% of records would be deactivated at once (e.g. due to a faulty export file), the system blocks and asks for confirmation.
  • Keine Installation nötig:No installation needed: Schild Spider wird als einzelne .exe-Datei ausgeliefert. Einfach herunterladen und starten — keine Abhängigkeiten, kein Setup.Schild Spider is delivered as a single .exe file. Just download and run — no dependencies, no setup.
  • Erststart-Assistent:Setup wizard: Beim ersten Start führt ein Assistent durch die Grundkonfiguration: Schulname, Datenquelle und gewünschte Zielsysteme auswählen.On first launch, a wizard guides through basic configuration: select school name, data source and desired target systems.
  • Automatische Updates:Automatic updates: Bei neuen Versionen wird die Konfigurationsdatei automatisch migriert — bestehende Einstellungen bleiben erhalten.When new versions are released, the configuration file is automatically migrated — existing settings are preserved.

2. Funktionsweise2. How it Works

Dreistufiger Workflow: Berechnen → Prüfen → Anwenden.Three-stage workflow: Calculate → Review → Apply.

Ablauf im ÜberblickProcess Overview

Daten aus Quelle ladenLoad source data Manifest vom Zielsystem holenFetch manifest from target Diff berechnenCompute diff Vorschau anzeigenShow preview Aktions-Logik ausführen (inkl. Rückschreiben in DB)Execute action logic (incl. write-back to DB)

Phase 1 — Änderungen berechnenPhase 1 — Calculate changes

Per Klick auf „Änderungen berechnen” für ein bestimmtes Zielsystem liest der konfigurierte Adapter die Schülerdaten aus der Datenquelle (z. B. via CSV-Export oder SchILD DB). Gleichzeitig holt das Plugin den aktuellen Bestand aus seinem Zielsystem (das sogenannte Manifest). Die Core-Engine vergleicht beide Datenbestände anhand der internen SchILD-ID und eines Daten-Hash (SHA-256 über relevante Felder wie Name, Klasse und E-Mail).Clicking "Calculate changes" for a specific target system triggers the configured adapter to read student data from the data source (e.g. via CSV export or SchILD DB). Simultaneously, the plugin fetches the current inventory from its target system (the so-called manifest). The core engine compares both data sets using the internal SchILD ID and a data hash (SHA-256 over relevant fields like name, class and email).

Phase 2 — VorschauPhase 2 — Preview

Die Ergebnisse werden in einer aufklappbaren Baumansicht dargestellt:Results are displayed in an expandable tree view:

  • 🟢 Neue Einträge (in der Datenquelle aber nicht im Zielsystem)New students (in data source but not in target system)
  • 🟡 Geänderte Daten (Name, Klasse, E-Mail unterscheiden sich)Changed data (name, class, email differ)
  • 🔴 Abgemeldete Einträge (im Zielsystem aber nicht mehr in der Datenquelle)Departed students (in target system but no longer in data source)
  • 📸 Foto-Updates (neues oder geändertes Foto)Photo updates (new or changed photo)
  • 👥 Gruppenänderungen oder Kurse (abhängig von Adapter und Plugin)Group or course changes (depending on adapter and plugin)

Phase 3 — Anwenden & RückschreibenPhase 3 — Apply & Write-Back

Erst nach expliziter Bestätigung werden die Änderungen an das Zielsystem übertragen. Ein Live-Log zeigt den Fortschritt in Echtzeit. Bei Plugins, die E-Mail-Adressen generieren (z. B. M365), können diese nach dem Erstellen optional zurück in die SchILD-DB geschrieben werden. Bei Fehlern (z. B. API nicht erreichbar) werden diese klar im Log angezeigt.Only after explicit confirmation are changes transmitted to the target system. A live log shows progress in real time. For plugins that generate email addresses (e.g. M365), these can optionally be written back into the SchILD DB after creation. Errors (e.g. API unreachable) are clearly displayed in the log.

Failsafe:Failsafe: Wenn mehr als 15% der Einträge im Zielsystem auf einen Schlag deaktiviert werden sollen, blockiert Schild Spider die Aktion und zeigt eine Warnung. Das schützt vor versehentlichem Massenlöschen durch fehlerhafte oder unvollständige Datenquellen.If more than 15% of records in the target system would be deactivated at once, Schild Spider blocks the action and shows a warning. This protects against accidental mass deletion from faulty or incomplete data sources.

3. Datenquellen (Adapter)3. Data Sources (Adapters)

Wie Schülerdaten aus SchILD gelesen werden.How student data is read from SchILD.

Adapter sind austauschbare Module, die Schülerdaten aus einer bestimmten Quelle lesen und in ein einheitliches Format übersetzen. Pro Konfiguration ist genau ein Adapter aktiv.Adapters are interchangeable modules that read student data from a specific source and translate it into a unified format. Exactly one adapter is active per configuration.

AdapterAdapter QuelleSource Status BeschreibungDescription
SchILD CSV CSV-Datei + BilderordnerCSV file + photo folder Stable Liest den Standard-SchILD-Export (;-getrennt, UTF-8 oder ISO-8859-1). Fotos werden über die SchILD-ID aus einem lokalen Ordner zugeordnet.Reads standard SchILD export (;-delimited, UTF-8 or ISO-8859-1). Photos are matched from a local folder by SchILD ID.
SchILD DB MariaDB / MySQL Beta Direkter Zugriff auf die SchILD-Datenbank — inkl. Kurse und Fächer. Kein CSV-Export nötig.Direct access to the SchILD database — incl. courses and subjects. No CSV export needed.

SchILD-Version:SchILD version: Schild Spider ist derzeit mit SchILD 2-Datenbanken getestet. Unterstützung für SchILD 3-Datenbanken ist ab Version 0.5 geplant.Schild Spider is currently tested with SchILD 2 databases. Support for SchILD 3 databases is planned from version 0.5.

Adapter-Funktionsumfang:Adapter feature scope: Die Adapter stellen je nach Anbindungsmethode unterschiedliche Datenmengen bereit: Während der CSV-Export nur Stammdaten (Name, Klasse, E-Mail) liefert, kann der SchILD DB-Adapter auf wesentlich detailliertere Strukturen wie Lehrkräfte, Kurse und Fächer zurückgreifen. Die Core-Engine verarbeitet die jeweils verfügbaren Daten für die Plugins.Adapters provide different amounts of data depending on the connection method: While the CSV export only provides basic master data (name, class, email), the SchILD DB adapter can access much more detailed structures plugins.

Screenshot: Einstellungs-Dialog

4. Zielsysteme (Plugins)4. Target Systems (Plugins)

Wohin die Daten synchronisiert werden.Where data is synchronized to.

Jedes Plugin verbindet Schild Spider mit einem Zielsystem. Ein Klick bei einem Zielsystem synchronisiert dieses basierend auf den zur Verfügung stehenden Adapterdaten. Je nach Plugin sind unterschiedliche Aktionen und Abgleiche möglich – von Fotos über Benutzerkonten bis hin zu vollständigen E-Learning-Kursen.Each plugin connects Schild Spider to a target system. Clicking on a target system synchronizes it based on the available adapter data. Depending on the plugin, different actions and comparisons are possible – from photos to user accounts to complete e-learning courses.

Hagen-ID Stable

Synchronisiert Schülerdaten und Fotos mit dem digitalen Schülerausweis-System über die REST-API. Neue Schüler werden angelegt, Datenänderungen übertragen und Abgänge deaktiviert. Unterstützt Gruppen für Schüler und Lehrer.Synchronizes student data and photos with the digital student ID system via REST API. New students are created, data changes transmitted and departures deactivated. Supports groups for students and teachers.

Microsoft 365 Stable

Vollständige M365-Kontenverwaltung über die Microsoft Graph API: Accounts anlegen, Lizenzen zuweisen, Startpasswörter setzen und Konten deaktivieren. Automatische Erstellung von Klassengruppen für Schüler (SuS) und Lehrer (KuK) mit konfigurierbaren Namensvorlagen. E-Mail-Adressen und Anzeigenamen werden nach frei wählbaren Templates generiert.Full M365 account management via Microsoft Graph API: create accounts, assign licenses, set startup passwords and deactivate accounts. Automatic creation of class groups for students and teachers with configurable name templates. Email addresses and display names are generated from customizable templates.

WebUntis GeplantPlanned

Schülerdaten mit dem Stundenplan- und Vertretungssystem synchronisieren. Klassenwechsel und Neuzugänge automatisch übernehmen.Synchronize student data with the timetable and substitution system. Automatically handle class changes and new enrollments.

Moodle Beta

Anlage und Verwaltung von Moodle-Benutzerkonten und Kursen über die Moodle-REST-API. Kurse werden nach konfigurierbaren Vorlagen aus Klasse, Fach und Lehrkraft erstellt. Unterstützt Kurs-Templates, automatische Einschreibung mit Rollenzuordnung und lokales SSO via OIDC.Creation and management of Moodle user accounts and courses via Moodle REST API. Courses are created from configurable templates based on class, subject and teacher. Supports course templates, automatic enrollment with role assignment and local SSO via OIDC.

Eigene Plugins:Custom plugins: Schild Spider ist bewusst erweiterbar. Ein neues Plugin erfordert nur eine Python-Datei, die von PluginBase erbt und die Standard-Methoden implementiert. Damit es in der Oberfläche wählbar wird, muss es beim Build-Prozess (via pyinstaller hiddenimport) mit eingebunden werden.Schild Spider is designed to be extensible. A new plugin requires just a Python file that inherits from PluginBase and implements the standard methods. For it to be selectable in the UI, it must be included during the build process (via pyinstaller hiddenimport).

5. Sicherheit & Datenschutz5. Security & Privacy

GDPRLokale Verarbeitung, keine Cloud, keine Drittanbieter.Local processing, no cloud, no third parties.

Lokale DatenverarbeitungLocal Data Processing

Schild Spider wird als eigenständige Windows-Anwendung auf dem Schulrechner ausgeführt. Schülerdaten werden ausschließlich lokal verarbeitet — sie verlassen den Rechner nur in Richtung der konfigurierten Zielsysteme (z. B. Hagen-ID API). Es gibt keinen zentralen Server, keine Cloud-Anbindung und keine Telemetrie.Schild Spider runs as a standalone Windows application on the school computer. Student data is processed exclusively locally — it only leaves the computer toward configured target systems (e.g. Hagen-ID API). There is no central server, no cloud connection, and no telemetry.

Keine persistente DatenspeicherungNo Persistent Data Storage

Schild Spider speichert keine Schülerdaten dauerhaft. Die Konfigurationsdatei (settings.json) enthält ausschließlich Verbindungsdaten (API-URLs, Keys) und Einstellungen — keine personenbezogenen Schülerdaten. Die CSV-Daten werden nur während der Laufzeit im Arbeitsspeicher gehalten und nach dem Beenden der Anwendung verworfen.Schild Spider does not permanently store any student data. The configuration file (settings.json) contains only connection data (API URLs, keys) and settings — no personal student data. CSV data is only held in memory during runtime and discarded when the application closes.

ZugangsdatenCredentials

API-Keys und Zugangsdaten werden in der lokalen settings.json gespeichert. Diese Datei sollte nicht in Versionskontrollsysteme eingecheckt werden. Die .exe-Datei selbst enthält keine Zugangsdaten.API keys and credentials are stored in the local settings.json. This file should not be checked into version control systems. The .exe file itself contains no credentials.

Open Source & TransparenzOpen Source & Transparency

Der vollständige Quellcode ist auf GitHub einsehbar und steht unter der GPL v3. Schulen und Schulträger können den Code jederzeit durch eigene IT-Abteilungen oder externe Gutachter prüfen lassen.The complete source code is available on GitHub under the GPL v3 license. Schools and school authorities can have the code reviewed at any time by their own IT departments or external auditors.

Rechtsgrundlage:Legal basis: Schild Spider verarbeitet Daten ausschließlich lokal im Auftrag der Schule. Die Weitergabe an Zielsysteme erfolgt auf Basis der jeweiligen Rechtsgrundlage des Zielsystems (z. B. Einwilligung für den digitalen Schülerausweis, Aufgabenerfüllung für M365-Konten).Schild Spider processes data exclusively locally on behalf of the school. Data transmission to target systems is based on the respective legal basis of the target system (e.g. consent for digital student ID, task fulfillment for M365 accounts).

6. Einrichtung & Betrieb6. Setup & Operations

In 5 Minuten einsatzbereit.Ready in 5 minutes.

VoraussetzungenRequirements

  • Windows 10 oder neuerWindows 10 or newer
  • Zugang zur Schulverwaltungssoftware SchILD NRW (für den CSV-Export)Access to school management software SchILD NRW (for CSV export)
  • Netzwerkzugang zu den Zielsystemen (API-Endpunkte)Network access to target systems (API endpoints)

EinrichtungSetup

1. .exe herunterladenDownload .exe 2. Starten & Assistent durchlaufenLaunch & complete wizard 3. API-Keys eintragenEnter API keys 4. Verbindung testenTest connection 5. SynchronisierenSynchronize

Laufender BetriebOngoing Operations

Mit der komfortablen DB-Anbindung genügt ein einfacher Klick auf „Änderungen berechnen”, um die aktuellen Daten direkt aus SchILD zu laden und zu vergleichen. Falls die Infrastruktur dies nicht zulässt, kann das Sekretariat alternativ auch weiterhin klassisch eine CSV-Datei exportieren. Nach Prüfung der Echtzeit-Vorschau werden dann alle Änderungen übertragen. Der gesamte Vorgang dauert nur wenige Minuten.With the convenient DB connection, a simple click on "Calculate changes" is all it takes to load and diff current data directly from SchILD. If the infrastructure does not permit this, the administration can alternatively still export a classic CSV file. After reviewing the real-time preview, all changes are transmitted. The entire process takes just a few minutes.

Technische DetailsTechnical Details

EigenschaftProperty WertValue
TechnologieTechnology Python 3.12 + PySide6 (Qt)
PaketierungPackaging PyInstaller (Single-File .exe)
Build GitHub Actions (Windows Runner)
LizenzLicense GPL v3
KonfigurationConfiguration Versionierte settings.json mit Auto-MigrationVersioned settings.json with auto-migration
Code Quality Automatische Prüfung via ruff (Linting + Formatierung)Automated checks via ruff (linting + formatting)

7. Kontakt & Quellcode7. Contact & Source Code

Sie möchten Schild Spider an Ihrer Schule einsetzen, ein eigenes Plugin entwickeln oder haben Fragen? Nehmen Sie gerne Kontakt auf:Would you like to use Schild Spider at your school, develop a custom plugin, or have questions? Please get in touch:

Download & ReleasesDownload & Releases

Die aktuelle Version steht als Windows-.exe auf der GitHub-Releases-Seite zum Download bereit. Neue Versionen werden automatisch per CI/CD gebaut.The current version is available as a Windows .exe on the GitHub releases page. New versions are automatically built via CI/CD.

Eigenes Plugin entwickelnDevelop Custom Plugin

Die Plugin-Architektur ist offen dokumentiert. Eine Python-Datei mit wenigen Methoden reicht aus, um ein neues Zielsystem anzubinden. Erfordert nur den Quellcode und einen neuen Tag-Push.The plugin architecture is openly documented. A Python file with a few methods is sufficient to connect a new target system. Requires only the source code and a new tag push.

QuellcodeSource Code

Schild Spider ist Open Source (GPL v3). Der vollständige Quellcode ist auf GitHub einsehbar und kann von Ihrer IT-Abteilung geprüft werden.Schild Spider is open source (GPL v3). The complete source code is available on GitHub and can be reviewed by your IT department.

Kontakt aufnehmen Get in touch Quellcode auf GitHub Source on GitHub