13
/
6/2012

A BIer - Trink aus, wir gehn!

Ein Blick hinter die Kulissen des Arbeitskreises Abizeitung 2012

Beispielranking Wer kennt sie nicht, die Rankings in der Abizeitung? Fast schon traditionell wählen die Abiturienten ihre Spitzenkandidaten in bestimmten Kategorien. Wer ist die schönste Schülerin, wer schäffelt zuerst seine erste Million und wer wird die erste Mutter / der erste Vater? Welcher Lehrer kann mit dem organisiertesten Auftreten punkten, welche Lehrerin könnte man sich als Trauzeugen bei der eigenen Hochzeit vorstellen, wer hat gar den Beruf verfehlt? Jeweils die drei Meistgewählten eines Rankings werden in der Abizeitung abgedruckt.
Ingesamt hatten wir uns 50 verschiedene Kategorien für Schüler und 30 Kategorien für die Lehrer ausgedacht. Man überlege sich, wie viele Stimmen man bei 90 Schülern mit jeweils Erststimme, Zweitstimme und Drittstimme auszählen müsste. Und wie fehlerträchtig die Auszählung unter Berücksichtigung der unterschiedlichen Stimmgewichte ausfallen kann. Schlappe 21 600 Linien hätten auf den Strichlisten gezogen werden müssen!
Die Lösung: ein einheitliches Formular, das die Wertung in einer Datenbank ablegt, und am besten für jeden Schüler von zu Hause aus zugänglich ist.

Aufbau der Datenbank
Für die Erreichbarkeit über das Internet und den Zugang von Zuhause (sowie meinen Fähigkeiten) bot sich ein System mit SQL-Datenbank an. Über eine Weboberfläche auf Grundlage der Programmiersprache PHP konnte der Benutzer, hier der Schüler, seine Angaben speichern, abrufen und ändern. Dazu erhielt jeder Schüler einen eigenen Login mit Passwort.

Klassendiagramm zur Datenmodellierung

Wie sieht nun die Stimmerfassung aus? (Für die Stimmerfassung beziehe ich mich exemplarisch auf die Lehrer-Rankings. Die Erfassung der Schülerrankings funktionierte analog nach vergleichbarem Prinzip.) Zentrales Element der Datenbank war eine Tabelle schueler mit den Schülernamen, einer Schülernummer als Primärschlüssel und ebenso wichtig der eMail-Adresse. Auf Grundlage der im letzten Jahr gesammelten Kurslisten konnten diese Informationen schnell in die Datenbank importiert werden. Als Gegenstück musste eine ähnliche Tabelle lehrer mit den Namen sowie einer eindeutigen Nummer für unsere Lehrerschaft angelegt werden. Zusätzlich wurde eine weitere Tabelle lehrerrankings mit den Titeln der Rankings erzeugt. Da n Schüler nun m Lehrer wählen, lässt sich die Beziehung nicht in einem zusätzlichen Attribut der bestehenden Tabellen darstellen; es benötigt eine Beziehungstabelle lehrer_voting. Die Zeilen dieser enthielten wiederum eine eindeutige Nummer als Primärschlüssel, die Nummer eines Rankings aus lehrerrankings als Fremdschlüssel, die Schülernummer des wählenden Schülers sowie die Nummern seiner als Erst-, Zweit- und Drittstimme gewählten Lehrern.
Während die Beziehungen hinter den Kulissen also als die Nummern der Fremdschlüssel dargestellt werden, bekommt der Benutzer an der Oberfläche selbstverständlich die Namen der zur Wahl stehenden Kandidaten angezeigt.

Lehrervoting an der Benutzeroberfläche / Tabelle lehrerrankings und Tabelle lehrer_voting in der Datenbankansicht (phpmyadmin)

Die Auswertung erfolgte dann mittels einiger Schleifen mit dem Ergebnis eines zweidimensionalen Arrays arr[Rankings][Kandidat] = Stimmanzahl. Der entsprechende Sortieralgorithmus, der die Kandidaten nach Stimmanzahl absteigend sortiert, ist mit arsort(arr[Rankings]) bereits im PHP-Funktionsumfang vorgesehen.

Vorteile des Datenbanksystems
Neben der ständigen Erreichbarkeit über das Internet (am besten wählt es sich selbstverständlich vor Ort, direkt im Unterricht kann man sich hautnah von den Fähigkeiten und Eigenschaften der Kandidaten überzeugen, und in Zeiten von Smartphones und mobilen Netzwerken ist die unmittelbare Eingabe der Beobachtungen auch kein Problem mehr) punktet das System mit seiner Flexibilität. Während bei der Wahl mithilfe von Strichzetteln alle Kategorien auf einen Streich zu füllen und nach Abgabe des Zettels keine Änderungen mehr möglich sind, war das Portal bis zum Redaktionsschluss permanent geöffnet. Gleichzeitig hilft die Dropdown-Liste dem Wählenden bei der Suche nach bestimmten Personen auf die Sprünge, doppelte Nennungen innerhalb einer Kategorie oder nicht zur Wahl stehende Namen werden gar nicht erst akzeptiert.
Ein weiterer schätzenswerter Vorteil stellt die Möglichkeit dar, auf die Zielperson zugeschnittene E-Mails herauszuschicken. Des Öfteren hatte ich den Eindruck, dass die automatisch generierten Mitteilungen mit personalisierter Anrede und einer präzisen Beschreibung der fehlenden Angaben durchaus Respekt hinterließen, als hätten wir keinen Einsatz gescheut, regelmäßig den Abgabestand aller Abiturienten zu prüfen und abzutippen. (Das heißt bei weitem nicht, dass alle Daten zum vorgegeben Termin vorlagen! Zum ersten Termin waren es weniger als 10%!!)
Zu guter Letzt hat uns der Einsatz der Datenbank so einiges mehr als die Auswertung der Rankings erleichert... (Ich gebe zu, vom folgenden Kunstgriff hatte ich zu Beginn nichts geahnt. Im Nachhinein betrachtet hätte die Erfassung nicht perfekter ablaufen können.)

Aufbau der Schülerprofile
Exemplarisches Schülerprofil Für jeden Abiturieten war eine Doppelseite vorgesehen. Auf der linken Seite sollten unter einer Leiste mit vier selbst ausgewählten Fotos Angaben zu 14 vorgegebenen Feldern erfolgen. In Anlehnung an das Abimotto wurde nach dem Lieblingsbier, der persöhnlichen Einschätzung in 20 Jahren und den letzten Worten vor dem Absch(l)uss gefragt. Am Fuß der linken Seite befindet sich als Gegenstück zur obigen Bilderleiste eine Zeile mit kurzen Kommentaren von Mitschülern sowie einem einheitlichen Profilbild. Die rechte Seite stand vollständig zur Gestaltung durch einen oder mehrere befreundete Schüler zur Verfügung.
Die 14 Eigenschaften (sowie die Kommentare) wurden natürlich in der Datenbank abgelegt.
Bei der Einarbeitung ins Layout InDesign stieß ich dann auf eine Funktion zum XML-Import. Nach etwas Tüftelei gelang es schließlich, die Schülerinformationen (Name, Profilangaben, Kommentare) via XML direkt ins Layout zu übertragen. Es war natürlich ein traumhafter Moment, als alle 90 Schülerseiten mit ein paar Klicks innerhalb von fünf Minuten automatisch in Form geflossen waren.

Layout mit InDesign
Der Trick: (Es mag noch effektivere Vorgehensweisen geben, dennoch hat uns diese erheblichen Aufwand an Kopieren und Textformatierung gespart.) Man erstelle für jeden Bereich einen eigenen Textrahmen auf der Mustervorlage. Ein Textrahmen für den Namen, einen für Profilangaben, einen für Kommentare usw. Die Textrahmen müssen in der Reihenfolge der in der XML-Datei vorliegenden Daten verknüpft werden. Auf die erste richtige Seite trage man beispielhaften Text ein und formatiere diesen mit jeweils eigenen Absatz- bzw. Zeichenformaten. Diese Formate müssen die gleiche Bezeichnung wie die vorgesehenen Elemente in der XML-Struktur haben. Entscheidend ist die Umbrucheigenschaft bei den Absatzformaten: Eine Information mit dem Element <name> soll auf der nächsten geraden Seite beginnen, die Profilangaben im nächsten Textrahmen usw. Nun ist der Zeitpunkt gekommen, an dem der XML-Import aufgerufen werden kann. Man ziehe das Wurzelelement der Struktur in den ersten Textrahmen, weise den Tags den Namen entsprechende Absatz- bzw. Zeichenformate zu. Ein Überhang ist im letzten Textrahmen der ersten Seite entstanden. Man füge eine zweite Seite hinzu, lade den Übersatz und klicke mit gedrückter Shift-Taste in den ersten Rahmen der neuen Seite. Voilà - der automatische Textfluss erledigt den Rest. 90 Schülerseiten auf einen Streich!

XML-Import mit InDesign

<profil xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<name>Klaus Klose</name>
<profilangaben>
<eigenschaft><titel>Geburtstag: </titel><angabe>31.12.1993</angabe></eigenschaft>
<eigenschaft><titel>Seminararbeitsthema: </titel><angabe>Grundlegende Konzepte der Wirtschaftspolitik</angabe></eigenschaft>
<eigenschaft><titel>Lieblingsbier: </titel><angabe>Zirndorfer Landbier</angabe></eigenschaft>
<eigenschaft><titel>In 20 Jahren... </titel><angabe>starte ich eine Rundreise durch die Weiten des Alls</angabe></eigenschaft>
...
</profilangaben>
<kommentare>
<kommentar><text>"Klar hab ich den Strom ausgeschaltet!" </text><verfasser>(53)</verfasser></kommentar>
<kommentar><text>Wir werden das Ding schon schaukeln. </text><verfasser>(2)</verfasser></kommentar>
...
</kommentare>
</profil>

Natürlich kommt man nicht ohnehin, einen überfüllten Textrahmen für Kommentare nachträglich zu vergrößern oder Schrift und Zeilenabstand anzupassen. Schönerweise wirken sich Änderungen an der Mustervorlage auf alle Seiten aus, und mit einem Klick sind die Textrahmen auf allen Seiten korrigiert. Die Bilder mussten ebenfalls manuell in ihre Rahmen gepflegt werden. Bestimmt gäbe es für eine solche Automatisierung gleichermaßen eine Möglichkeit, aber in unserem Fall wäre der Forschungsaufwand hierfür wahrscheinlich größer gewesen als der Aufwand der Handarbeit.

Zur Finalisierung
Der Rest hat wenig mit technischer Raffinesse zu tun, kostet dafür umso mehr Zeit und Nerven. Schüler- und Kursberichte müssen nach dem zeitigen Erhalt(!) korrekturgelesen, Werbeanzeigen gesetzt, weiße Löcher mit auffrischenden Zeichnungen gestopft, Dokumente zusammengeführt und schließlich ein ordentlich aufgeblähtes PDF an die Druckerei ausgehändigt werden.

Nach Erhalt des Musterexemplars kann die Abizeitung unseren Mitschülern angekündigt werden.

Gesamtaufwand
Ich habe keine Ahnung, wie viele Stunden allein ich ingesamt mit dem Projekt Abizeitung verbracht habe. Mindestens doppelt so viele wie die Abiturvorbereitung in Anspruch genommen hat, so viel ist sicher. Eine imposante Erfahrung war es auf jeden Fall, viele Kenntnisse im technischen Bereich und Einsichten in die Planung eines Projekts sind hängen geblieben.
Unter der Schulzeit durchlitt ich hin und wieder schlaflose Nächte voller Ideen oder im Hinblick auf den riesigen Aufwand, der auf mich zukam; heute verbringe ich schlaflose Nächte, weil ich die gedruckte Abizeitung nicht aus der Hand legen kann.

+

Einen Kommentar hinzufügen

Name: 
eMail*: 
Wie viel ist 3 + 1? 
 

*) Die eMail-Adresse wird nicht veröffentlicht.