+ Die Datenbank kann jetzt auch nur teilweise gelöscht werden
+ Es wurde eine einfache Statistik eingebaut
+ Es wurden Infotexte auf der Konfigurationsseite eingebaut
+ Erweitern der Konfigurationsmöglichkeiten (Anmeldung sperren, Dynamisches Logo, Kontaktdaten für das Impressum)
+ Beim Löschen von Kindern und Terminen wurde eine Sicherheitsabfrage eingebaut
+ Einbauen eines Gruppenfeatures: Benutzer können eine Gruppe haben, mit der festgelegt ist, bei welchem Elternsprechtagen sie Termine machen können. Die
Gruppe ist von der eingeben TAN abhängig. Eltern können auch weitere TANs nachtragen, falls sie Kinder bei unterschiedlichen Elternsprechtagen haben. Das
Feature kann von Administrator aktiviert und deaktiviert werden.
+ Bei Elternsprechtagen kann ein Titel festgelegt werden
+ Bei Erstellen von Elternsprechtagen gibt es nun Date- und Timepicker
+ Verbesserung der Form um Elternsprechtagen zu bearbeiten
+ Es wurde eine Möglichkeit eingebaut Termine zu blockieren. Wenn der Administrator nichts anderes festlegt, können nur Benutzer mit der Rolle Verwalltung oder
Administrator Termine blockieren
+ Bei den Seiten Eltern-Kind-Verknüpfung und Terminverwaltung wurde ein Filter eingebaut
+ Verbessern der Terminverwaltungsseite
+ Einbauen einer FAQ Seite
+ Verbessern der Fehlerseite
+ Das Konfigurationsskript wurde erweitert, um auch die neuen Features mit einzuschließen
- Es wurde ein Fehler bei den Uhrzeiten behoben
- Den Eltern wird das Datum und die Uhrzeit der letzten möglichen Buchung angezeigt
- Elternsprechtage, die in der Vergangenheit liegen, werden nicht mehr angezeigt
- Bei der Terminbuchung funktionieren die Fehlermeldungen nun wie geplant
+ Update auf Yii 1.1.15
+ PHPMailer Version 5.2.8
+ E-Mail Generierung beim CSV Import generischer gestalter
+ Termine im .ics Format exportieren
+ Lehrer sollen nur den ihn zugewiesenen Gruppen TANs zuweisen können
+ Einfache Zuweisung von Benutzern zu Gruppen
+ Weiterleitung Startseite
+ Erweiterter CSV Datei Import
+ (Sprachen Selektor ins Main Layout einbauen) - noch deaktiviert weil keine Übersetzung integriert ist
+ Konfigurationswerte in der Datenbank speichern
+ Schulwebsitelink einführen über params
+ Stau nach der Registrierung
+ Kombinierte (Druck)Ansicht für regulüre und blockierte Termine abrufbar für Lehrer
+ Vergangene Termine nach n Tagen nicht mehr anzeigen
+ Lehrer bucht Termin f+r Lehrer -> Logeintrag erstellen
+ Eltern Terminbuchung Fehlermeldung deutlicher
+ Eltern wenn keine Kinder angelegt Hinweis
+ Lehrer dürfen Termine für andere Lehrer buchen/blockieren
+ Lehrer mit Gruppen
+ Support für i18n
+ Formular + Action um Kinder zu verändern
- Nur ID Eintragung beim Termin anlegen von Lehrern
- Fehler beim erstellen eines blocked App
- Falsche Validierung der Sperrfrist
- Eltern mit Gruppe sehen keine Lehrer ohne Gruppen
- Infobox öffnet & schließt sich extrem schnell
- Exceptionhandling CSV Export
- Bei Überschreitung der MaxSize beim LehrerImport wird eine Exception geworfen
- Einschreibefrist Termine
- fehlende Icons
- Rolle Lehrer
- Eltern können mit unterschiedlichen Kindern Termine zur selben Zeit haben
- Pseudobenutzer anlegen Exception Index
- Lehrermenü TAN Verwaltung Schreibfehler
- Infotext Terminbuchung Mail versenden
- Terminverwaltung Erziehungsberechtige Sortierung nicht korrekt
- Terminverwaltung nach Datum und Zeit sortieren
+ Die E-Mail Adresse der Eltern wird jetzt den Lehrern in der Terminübersicht angezeigt
- Fehler in der Sortierung von Terminen behoben
+ Einen Raum können jetzt mehrere Lehrer zugeordnet werden
- Fehler behoben, dass Lehrer zum Teil Räume angezeigt wurden, denen sie nicht zugeordnet waren
+ Zu Composer migriert (u.a. PHPMailer und Yii1 Update)
+ Initialisierung von Feature und Unit Tests (Großes Danke an Kore Nordmann!)
+ Termine eines Lehrers lassen sich nun für den ganzen Tag blocken
- Refactoring vom Quelltext an einzelnen Stellen
- Bug in der Generierung von CSV Dateien gefixt (Headers already sent)
- Beim Ausdruck der Lehrerpläne wurden die Räume nicht angezeigt
- IDs sollte nun nirgends mehr direkt für Benutzer sichtbar sein
- PHP Mailer Update
- Yii 1.1.17 Update
- Der ICS Export enthielt einen Fehler in Bezug auf die Zeitzone - es wurde der Flag für UTC als Zeitzone mitgeliefert aber die Zeit nicht entsprechend angepasst
+ Die Auswahl von Elternsprechtagen wurde verbessert
+ Button für weitere Termine auf "Ihre Termine"
- Der Seitenheader wurde in der Mobilen Ansicht zum Teil leicht abgehackt
- Tafel und Schullogo rutschten teilweise aus der Menüleiste
+ Validierung bei der TAN Generierung bei der Eingabe von Schülernamen
- Termine konnten nicht mehr von Eltern gelöscht werden
+ Raumverwaltung
+ TAN Liste kann nun als .csv Datei exportiert werden
+ Mails werden an Eltern versendet wenn sich das Datum eines Elternsprechtages ändert
+ diverse Aufräumarbeiten
Anhänge:
1.1 Zeitplanung
1.2 Lizenzen (fremde)
1.3 Lizenzen (eigene)
2.1 Grundfunktionen
2.1.1 Registrierung und Anmeldung
2.1.2 Termine eintragen und löschen
2.2 Zusatzfunktionen
2.2.1 Termine nachtragen
2.2.2 Zeitpläne drucken
2.3 Administration
2.4 Datenschutz
2.5 Design
2.5.1 Usability
2.5.2 Barrierefreiheit
2.5.3 Prototyp der Hauptseite
ESTA GbR | Rheinstraße 15 | 65795 Hattersheim | USt-IdNr.: DE 100000001
Brühlwiesenschule
Herr Nobert Wild
Gartenstraße 28
65719 Hofheim
Angebot: A130001
Kundennummer: K130001
Datum: 08.02.2013
Das Angebot ist vier Wochen gültig
Stundensatz: 60 €
Position | Anzahl | Einheit | Beschreibung | Netto |
1 | 40 | Stunden | Erstellung des Pflichtenhefts | 2400 |
2 | 8 | Stunden | Erstellung eines Angebots | 480 |
3 | 16 | Stunden | Benutzerhandbuch (mehrsprachig) | 960 |
4 | 8 | Stunden | Erstellen einer Installationsanweisung | 480 |
4 | 32 | Stunden | Erstellung einer Dokumentation | 1920 |
5 | 8 | Stunden | Datenbankmodellierung | 480 |
6 | 16 | Stunden | Benutzerverwaltung | 960 |
7 | 32 | Stunden | Terminverwaltung | 1920 |
8 | 16 | Stunden | Administrationsbereich | 960 |
9 | 8 | Stunden | Datenimport | 480 |
10 | 16 | Stunden | Rechteverwaltung | 960 |
11 | 24 | Stunden | Erstellen von mock ups | 1440 |
12 | 24 | Stunden | Erstellen von Prototypen | 1440 |
13 | 16 | Stunden | Lehrerfiltererstellung | 960 |
14 | 8 | Stunden | Formelementanpassung | 480 |
15 | 32 | Stunden | Integration von Prototypen | 1920 |
16 | 48 | Stunden | Systemtest | 2880 |
2% sKonto bei Zahlung innerhalb von 14 Tagen | 352 | Stunden | Gesamt | |
Gesamt Netto | 21120,00 | |||
19 % Umsatzsteuer | 4012,80 | |||
Gesamt Brutto | 25132,80 |
Vielen Dank für Ihr Interesse an dem Produkt. Für weitere Rückfragen stehen wir Ihnen gerne zur Verfügung.
Im Anhang finden sie eine Auflistung der verwendeten Lizenzen und eine Visualisierung über einen möglichen Projektablauf.
Abb. 1: GANTT-Diagramm
Bei der Erstellung der Software wird darauf geachtet, alle weiteren Kosten so gering wie möglich zu halten. Es werden für die Entwicklung und den Betrieb der Software keine weiteren Lizenzen benötigt. Der Hauptgrund dafür ist das verwendete Yii Framework. Das Framework hat die BSD Lizenz und ist Opensource. Daher kann dieses Framework ohne Bedenken und ohne zusätzliche Kosten verwendet werden.
Des Weiteren wird als Programmiersprache PHP verwendet, die die unter der PHP Lizenz läuft und ebenfalls Opensource ist. Die weiteren verwendeten Sprachen wie HTML und JavaScript sind Lizenzfrei.
Das relationale Datenbankverwaltungssystem MySQL, welche die GPL Lizenz inne hat, ist ebenfalls Opensource. Wir verwenden als freie Storage-Engine für MySQL InnoDB.
Es werden auch mehrere Icons verwendet, die alle zu der CC-BY-SA 3.0 Lizenz gehören. Diese Icons sind also frei nutzbar und es entstehen ebenfalls keine zusätzlichen kosten.
Die Elternsprechtagssoftware wird mit GPL v3 Lizenz lizensiert. Das bedeutet der Endbenutzer kann die Software nutzen, verbreiten und ändern ohne, dass zusätzliche Kosten auf ihn zukommen. Die Software darf für alle Zwecke (auch kommerzielle) benutzt werden.
Die Software besitzt eine Startseite auf welcher man sich anmelden und registrieren kann. Nach dem Anmelden besteht die Möglichkeit die Zeitpläne der Lehrer einzusehen und Termine zu reservieren. Der Lehrer kann diese Liste einsehen und eventuell Termine löschen. Termine können auch manuell eingetragen werden. Die Rechte werden über Rollen verwaltet, die von der Verwaltung zugewiesen werden können. Die Rollen und die Datenbankanbindung wird vom Administrator verwaltet.
Im folgenden Abschnitt werden die Grundfunktionen beschrieben, die die Software benötigt, um ohne Einschränkung zu funktionieren.
2.1.1 Registrierung und Anmeldung
Die Benutzer des Systems sollen die Möglichkeit erhalten, sich mit ihrer E-Mail Adresse zu registrieren. An die eingetragene E-Mail Adresse wird eine E-Mail mit einem Bestätigungslink geschickt, der angeklickt werden muss, um den Account zu aktivieren.
Wenn die Registrierung erfolgreich abgeschlossen wurde und der Account aktiviert ist, können sich die Benutzer auf der Seite anmelden. Nachdem der Benutzer sich erfolgreich angemeldet hat, muss, sofern es sich um einen Account mit der Rolle Eltern handelt, ein Schülername eingegeben werden.
2.1.2 Termine eintragen und löschen
Die Eltern können sich eine Liste der Lehrer anzeigen lassen und sich darüber die Zeitpläne der Lehrer ansehen. Bei den Zeitplänen können sie klar erkennen, welche Termine belegt und welche frei sind. Sollten sie den Wunsch haben, mit diesem Lehrer zu sprechen, können sie einen freien Termin reservieren. Falls der Gesprächswunsch nicht mehr bestehen sollte, kann der Termin im Nachhinein auch wieder gelöscht werden. Termine können nur eingetragen und gelöscht werden, wenn die Bearbeitungsfrist noch nicht verstrichen ist.
2.2.1 Termine nachtragen
Termine sollen auf per Hand nachgetragen werden können, falls es zu Problemen kommen sollte. Das Nachtragen von Terminen können Benutzer mit der Rolle Verwaltung. Das Nachtragen funktioniert ähnlich wie der Weg, den die Eltern normalerweise benutzen. Die Verwaltung kann auch den Zeitplan der Lehrer aufrufen und einen Termin auswählen. Die kann zusätzlich noch den Namen der Person eingeben, die den Termin wahrnimmt.
2.2.2 Zeitpläne drucken
Ein Drucken der Pläne ist an mehreren Stellen möglich. Die erste Möglichkeit gibt es für Eltern, die ihre eigenen reservierten Termine drucken können. Ferner haben die Lehrer die Möglichkeit ihren Zeitplan zu drucken. Die letzte Druckfunktion steht den Benutzer mit der Rolle Verwaltung und Administrator zu. Diese können die Zeitpläne aller Lehrer drucken.
Die Administratoren haben alle Rechte wie die anderen Rollen und noch einige zusätzliche Rechte. Die Administratoren können einen oder mehrere Tage für den Elternsprechtag bestimmen. Außerdem können die Administratoren die Startzeit und die Endzeit der Elternsprechtage bestimmen. Des Weiteren können sie die Gesprächsdauer bestimmen, die die Eltern mit den Lehrern zur Verfügung haben.
Ein sehr wichtiger Punkt ist der Datenschutz der Schüler, Eltern und Lehrer. Deshalb werden die Zeitpläne der Lehrer den Eltern nicht komplett angezeigt, um nicht jedem alle Informationen zugänglich zu machen. Die belegten Termine werden nur als belegt gekennzeichnet und nicht genau angezeigt wer welchen Termin belegt hat.
Außerdem werden die Passwörter in der Datenbank verschlüsselt gespeichert. Dabei werden gesalzene sha512 Hashes verwendet.
Da die Daten maskiert werden, ist eine SQL-Injection nicht möglich. Da alle Ausgaben maskiert werden ist Cross Site Scripting ebenfalls nicht möglich.
2.5.1 Usability
Die Benutzerfreundlichkeit soll auf jeden Fall gewährleistet sein. Dazu trägt vor allem ein schlichtes Design der Seite bei, wobei vor allem auf klare Kontraste geachtet wird. Außerdem wird eine sehr einfache Menüstruktur verwendet.
Beim ersten Login werden die Eltern direkt aufgefordert ein Kind einzugeben und es muss nicht erst im Profil mühselig nachgetragen werden. Des Weiteren werden, falls Termine gemacht wurden, diese direkt im Startbildschirm angezeigt und es muss nicht jeder Lehrer, bei dem Termine gemacht wurden, einzeln überprüft werden.
2.5.2 Barrierefreiheit
Eine weitere Anforderung ist die Barrierefreiheit. Dabei ist es sehr wichtig, dass jeder, auch Menschen mit Behinderungen, die Webseite in vollem Umfang nutzen können. Dabei kann vor allem mit einem einfachen Design, mit möglichst starken Kontrasten darauf geachtet werden, dass auch Menschen mit einen Sehschwäche die Website in vollem Umfang benutzen können.
Ein weiterer Punkt der Barrierefreiheit ist die Verwendung von JavaScript.
JavaScript ist ein Tool, was der Benutzer aktiv installieren muss und die Anforderungen an die Benutzer erhöht. Daher funktioniert die gesamte Webseite auch ohne JavaScript. JavaScript stellt dabei für die Benutzer lediglich einige zusätzliche Funktionen zur Verfügung. Ein Beispiel dafür ist das zusätzlich einblendbare Menü, welches ein besseres Design hat. Da es nicht immer eingeblendet ist, steht der zusätzliche Platz für den Rest der Website zur Verfügung.
Ein weiteres Feature, welches nur mit JavaScript genutzt werden kann, gibt es bei der Termineintragung. Mit aktivierten JavaScript können freie Termine angeklickt werden, worauf die Felder Datum und Uhrzeit automatisch ergänzt werden. Wenn kein JavaScript aktiviert ist müssen diese Felder mit Hilfe von Drop Down Menüs manuell ausgefüllt werden.
2.5.3 Prototyp der Hauptseite
Abb. 2: Hauptseite
1.1 Registrierung
1.2 Login
1.3 Kinder hinzufügen
1.4 Accountverwaltung
1.5 Passwort vergessen
1.6 Hilfe bei Fragen
2.1 Menü
2.2 Lehrerfilter
2.3 Termin festlegen
2.4 Listen drucken
3.1 Termine manuell eintragen
3.2 Benutzerverwaltung
3.3 Lehrer einlesen
3.4 TANs erstellen
4.1 Schülerverwaltung
4.2 Datum des Elternsprechtags festlegen
Der folgende Screenshot zeigt die Hauptseite der Elternsprechtagssoftware.
Abb. 1: Startseite
Der Benutzer kann sich registrieren, indem er auf der Hauptseite auf den Schriftzug „Benötigen Sie einen Zugang? Klicken Sie hier.“ klickt.
Abb. 2: Registrationslink
Auf dieser Seite muss der Benutzer die rot markierten Felder ausfüllen. Bei der Angabe der E-Mail-Adresse ist es wichtig, eine gültige Adresse einzutragen, da über diese ein Aktivierungslink verschickt wird. Das Passwort muss dabei mindestens acht Zeichen umfassen und einmal wiederholt werden. Die TAN erhält der Benutzer von dem Klassenlehrer des Kindes und besteht aus sechs Zahlen.
Nachdem der Benutzer alles eingetragen hat, muss er auf den Button mit der Aufschrift „Registrieren“ klicken.
Abb. 3: Seite: Registrierung
Danach erhält der Benutzer eine E-Mail, die einen Registrierungslink beinhaltet. Wenn diese E-Mail eingetroffen ist, muss der mitgeschickte Link angeklickt werden. Anschließend kann man sich auf der Hauptseite einloggen.
Nach Abschluss der Registrierung kann sich der Benutzer auf der Hauptseite mit Angabe der E-Mail-Adresse und seines Passwortes anmelden. Dabei muss er seine E-Mail-Adresse und das vorher festgelegte Passwort eingeben und auf den „Login“ Button klicken.
Abb. 4: Seite: Login
Beim ersten Login werden Sie aufgefordert, ein oder mehrere Kinder einzugeben. Dazu müssen Sie auf den Button „Schüler hinzufügen“ klicken. Falls beim ersten Login kein Kind eingegeben wurde, muss vorher auf den Menübutton „Ihre Kinder“ geklickt werden.
Abb. 5: Kindereintragung (1)
Danach muss der Vor- und Nachname des Kindes eingegeben und auf „Anlegen“ geklickt werden.
Abb. 6: Seite: Kindereintragung (2)
Der Benutzer kann seinen Account bearbeiten, in dem er das Menü anklickt und den Menüpunkt „Ihr Account” auswählt.
Abb. 7: Menü: Ihr Account
Danach erscheinen die Benutzerdaten des Accounts. Wenn der Benutzer die Daten seinen Accounts ändern möchte, muss er auf den Button „Benutzer bearbeiten“ klicken. Danach erscheint folgende Seite:
Abb. 8: Seite: Accountverwaltung
Anschließend kann der Benutzer seine Daten ändern. Um diese Änderungen zu speichern, muss er auf den Button „Speichern“ klicken.
Falls der Benutzer sein Passwort vergessen hat, kann er auf der Startseite folgenden Link anklicken:
Abb. 9: Passwort vergessen
Daraufhin erscheint eine Seite, bei der die E-Mail-Adresse und der angezeigte Sicherheitscode angegeben werden muss. Wenn beide Felder ausgefüllt wurden, muss der Benutzer auf „Absenden“ klicken.
Abb. 10: Seite: Passwort vergessen
Als Folge erhält der Benutzer eine E-Mail zu der eingetragenen Adresse. In dieser E-Mail ist ein Link enthalten, der angeklickt werden muss, um zu einer Seite weitergeleitet zu werden, auf der ein neues Passwort festgelegt werden kann.
Abb. 11: Passwort ändern
Falls Fragen zu der Elternsprechtags-Software bestehen sollten, kann der Benutzer auf der Startseite den Link „Kontakt“ anklicken. Dieser befindet sich unten rechts.
Abb. 12: Link: Kontakt
Anschließend erscheint folgende Seite:
Abb. 13: Seite: Kontakt
Auf dieser Seite müssen alle Felder ausgefüllt werden, um eine Kontaktanfrage beantworten zu können. Wenn dies geschehen ist, kann der Benutzer auf „Absenden“ klicken.
Um einen Terminen zu machen, müssen Sie auf den Menübutton „Termin festlegen“ klicken. Danach öffnet sich folgendes Menü:
Abb. 14: Menü: Termine vereinbaren
Um einen Lehrer zu finden, gibt es zwei Möglichkeiten. Die erste besteht darin, auf einen Buchstaben zu klicken. Wenn das geschieht, werden alle Lehrer, deren Namen mit dieser Initiale beginnt, angezeigt. Man kann aber auch in dem Feld nach einem Lehrer suchen.
In beiden Fällen wird unter dem Textfeld eine Liste der Lehrer angezeigt, deren Name mit dem eingegeben Buchstaben beginnt.
Abb. 15: Lehrerfilter
Aus dieser Liste kann ein Lehrer durch Anklicken ausgewählt werden.
Nachdem ein Lehrer ausgewählt wurde, wird dessen Zeitplan angezeigt. Bei dem Zeitplan werden die Termine als „BELEGT“ oder „VERFÜGBAR“ angezeigt.
Abb. 16: Zeitplan
Durch Anklicken eines Termins, der als „VERFÜGBAR“ gekennzeichnet ist, werden die grauen Felder des folgenden Screenshots automatisch gefüllt. Sofern mehrere Kinder die Schule besuchen, muss anschließend nur noch ein Kind ausgewählt werden. Falls nur ein Kind eingetragen wurde, ist dieses automatisch ausgewählt.
Abb. 17: Termininformationen
Um die Liste der Termine drucken zu können, wird ein installierter Drucker benötigt. Zum Drucken muss der Benutzer im Menü auf das Feld „Ihre Termine“ klicken, um die entsprechende Seite aufzurufen. Außerdem wird die Seite direkt nach dem Login angezeigt.
Abb. 18: Druckbutton
Wenn der Benutzer auf das Druckicon klickt, erscheint ein weiteres Fenster, bei dem der Drucker auszuwählen ist. Danach muss der Benutzer auf den Button „Drucken“ klicken, um die Terminliste auszudrucken.
Die Verwaltung kann Termine auch manuell nachtragen. Die Seite zum Eintragen ist automatisch beim Login ausgewählt.
Anschließend muss auf den Button „Termin anlegen“ geklickt werden, worauf sich eine neue Seite öffnet.
Abb. 19: Manuelle Termineintragung
Wenn alle erforderlichen Felder gefüllt wurden, muss der Button „Anlegen“ angeklickt werden, um den Termin zu speichern.
Die Benutzerverwaltung stellt mehrere Funktionen zur Verfügung.
Die erste ist die detaillierte Benutzerübersicht, in der alle Informationen eines Benutzers aufgelistet sind. Dazu muss das linke Icon mit der Lupe angeklickt zu werden.
Die zweite Funktion ist das Löschen der Benutzer. Hierzu ist ein Anklicken des rechten Icons mit dem Papierkorb erforderlich. Wenn der Papierkorb angeklickt wird, erscheint noch eine Sicherheitsfrage, bei der das Löschen bestätigt werden muss.
Abb. 20: Icons
Die letzte Funktion ist das Bearbeiten der Benutzer. Dazu muss das Icon mit dem Bleistift in der Mitte angeklickt werden. Danach erscheint folgendes Fenster:
Abb. 21: Seite: Benutzerverwaltung
Auf dieser Seite können alle Daten der Benutzer geändert werden. Nach der Aktualisierung der Daten muss auf den Button „Speichern“ gedrückt werden, damit die Änderung übernommen wird.
Um die Lehrerliste einzulesen, ist in der Benutzerverwaltung der Button „Lehrer importieren“ anzuklicken.
Abb. 22: Lehrerimport
Danach muss der Benutzer auf den Button „Durchsuchen“ klicken, damit sich ein Fenster öffnet, bei dem eine .csv Datei ausgewählt werden muss. Hierfür ist das Ausfüllen der Spalten Nachname, Vorname, E-Mail und Titel zum Einlesen notwendig. Dabei muss auch auf die Reihenfolge der Eingabe geachtet werden. Die Spalte E-Mail ist lediglich optional. Falls diese Spalte nicht in der .csv Datei vorhanden ist, werden die E-Mail Adressen automatisch generiert.
Wenn eine Datei ausgewählt wurde, muss der Benutzer auf den Button „Importieren“ klicken.
Wenn der Lehrer oder die Verwaltung TANs erstellen möchte, muss er im Menü auf „Tanverwaltung“ klicken.
Abb. 23: Menü Terminverwaltung
Danach muss der Benutzer auf den Button: „Tan generieren“ klicken, wonach sich folgendes Fenster öffnet:
Abb. 24: Seite: Tangenerierung
Der Benutzer muss die Anzahl an TANs, die der generieren möchte, eingeben, wobei er mindestens eine TAN generieren muss, maximal aber 100 generieren kann.
Um die Seite Schülerverwaltung aufzurufen, muss man im Menü den Button „Schülerverwaltung“ anklicken.
Abb. 25: Menü Schülerverwaltung
Nach dem Aufrufen der Seite erscheint eine Liste aller Schüler. Die Daten der Schüler können genauso aktualisiert werden wie die Daten der Benutzer. Dieser Vorgang ist in Kapitel 3.2 beschrieben. Um einen neuen Schüler zu einzufügen, muss der Benutzer auf den Button: „Schüler anlegen“ klicken. Danach erscheint folgendes Fenster:
Abb. 26: Seite: Schülerverwaltung
Auf dieser Seite muss der Vor- und Nachname eingetragen werden und auf „Anlegen“ geklickt werden.
Wenn sich ein Administrator einloggt, wird diese Seite direkt angezeigt. Es kann auch auf den Menüpunkt „Elternsprechtagsverwaltung“ geklickt werden. Danach wird zunächst eine Liste der Elternsprechtage angezeigt.
Um einen neuen Elternsprechtag anzulegen, muss der Benutzer auf der Button „Elternsprechtag erstellen“ klicken, worauf folgendes Fenster erscheint:
Abb. 27: Seite: Administration
Auf dieser Seite ist das Ausfüllen die Felder Datum, Anfang, Ende und Dauer eines Termins entsprechend der Angaben rechts der Felder obligatorisch. Zum Schluss muss der Benutzer auf „Anlegen“ klicken.
<?php /** * Appointment blockieren */ /* Copyright (C) 2013 Christian Ehringfeld, David Mock, Matthias Unterbusch * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ /* @var $this AppointmentController */ /* @var $model Appointment */ $this->breadcrumbs=array( 'Appointments'=>array('index'), 'BlockApp', ); $this->menu=array( array('label'=>'Termine verwalten', 'url'=>array('admin')), ); ?> <div class="row"> <div class="twelve columns centered"> <fieldset> <legend>Termin blockieren</legend> <?php echo $this->renderPartial('_LATEXSCHWEINEREIEN', array('model'=>$model)); ?> </fieldset> </div> </div>
<?php $form=$this->beginWidget('CActiveForm', array( 'id'=>'appointment-form', )); $selectContent = ''; $teacherValue = ''; $teacherLabel = ''; if (isset($_GET['teacherId'])) { //Weiterleitung vom user/view; eventuell auch wenn der Lehrer dann im Menü auf Termin blockieren geht? haha -> möglicher intrusion point siehe #177 ;) $userTemp = User::model()->findByPk($_GET['teacherId']); $teacherValue = $_GET['teacherId']; $teacherLabel = $userTemp->title." ".$userTemp->firstname." ".$userTemp->lastname; $this->createMakeAppointmentContent($this->getDatesWithTimes(3),$a_tabs, $selectContent, $teacherValue); } ?> <div class="row collapse"> <div class="two columns"> <span class="prefix">Lehrer</span> </div> <div class="ten columns"> <?php $this->widget('zii.widgets.jui.CJuiAutoComplete',array( 'id' => 'appointment_teacher', 'name'=>'', 'value' => $teacherLabel, 'sourceUrl'=>'index.php?r=user/search&role=2', 'options'=>array( 'minLength'=>'1', ), 'htmlOptions'=>array( 'placeholder' => 'Geben Sie einen Nachnamen ein und wählen Sie einen Eintrag aus', ), )); ?> <?php echo $form->error($model,'user_id'); ?> <input type="hidden" id="appointment_teacher_id" name="Appointment[user_id]" value="<?php echo $teacherValue ?>"> </div> </div> <div class="row collapse"> <div class="two columns"> <span class="prefix">Termin</span> </div> <div class="ten columns styled-select" id="appointment_dateAndTime_select"> <?php echo $selectContent; ?> <?php echo $form->error($model,'dateAndTime_id'); ?> </div> </div> <div class="row collapse"> <div class="two columns"> <span class="prefix">Grund</span> </div> <div class="ten columns"> <?php echo $form->textField($model, 'reason'); ?> <?php echo $form->error($model,'dateAndTime_id'); ?> </div> </div> <div class="row collapse"> <div class="two columns"> <span class="prefix">Dauer</span> </div> <div class="eight columns styled-select" id="appointment_dateAndTime_select"> <?php echo $form->textField($model, 'length'); ?> <?php echo $form->error($model,'dateAndTime_id'); ?> </div> <div class="two columns"> <span class="postfix"><?php echo Yii::app()->params['timeFormat']; ?></span> </div> </div> <br> <?php echo CHtml::submitButton( 'Anlegen', array('class' => 'small button')); ?> <?php $this->endWidget(); ?>
1 Thematisierung und Projektumfeld
1.1 Thematisierung
1.2 Projektumfeld
1.2.1 Projektteam
1.2.2 Auftraggeber
1.2.3 Softwareumgebung
2.1 Zeitplanung
2.2 Ressourcen
2.3 Kosten
3.1 Ziele
3.1.1 Fehlerfreie Software
3.1.2 Barrierefreiheit
3.1.3 Usability
3.1.4 Datenschutz
3.2 Funktionalitäten
3.3 Diagramme
3.3.1 GANTT Diagramm
3.3.2 UML-Anwendungsfalldiagramm
3.3.3 Klassendiagramme
3.4 Datenbankmodell
4.1 Gestaltung der grafischen Oberfläche
4.1.1 Anmeldeseite
4.1.2 Registrierung
4.1.3 Terminliste
4.1.4 Lehrersuche
4.1.5 Termineintragung
4.1.6 Benutzerverwaltung
4.2 Umsetzung
4.3 Probleme
5.1 Testkonzepte
5.2 Testfälle
5.2.1 Rolle Administrator
5.2.2 Rolle Eltern
5.2.3 Rolle Lehrer
5.2.4 Rolle Verwaltung
5.3 Testprotokolle
6.1 Soll/Ist Vergleich
6.1.1 Zeiten
6.1.2 Software
6.2 Verlauf
6.3 Ergebnis und Fazit
6.4 Ausblick
Im Rahmen eines Schulprojekts der Brühlwiesenschule Hofheim sollte eine Elternsprechtagssoftware für Eltern entwickelt werden, um den Ablauf des Elternsprechtags zu optimieren. Es wurde entschieden eine Webseite zu erstellen.
1.2.1 Projektteam
Name | Rolle |
Christian Ehringfeld | Back-End |
David Mock | Front-End |
Matthias Unterbusch | Projektmanager |
1.2.2 Auftraggeber
Der Auftraggeber ist die Brühlwiesenschule in Hofheim. Dabei ist der Ansprech-partner Herr Wild. Der Betreuer des Projekts ist Herr Grüning.
1.2.3 Softwareumgebung
Da die Software als Webapplikation realisiert werden sollte, fiel die Wahl der Sprache auf PHP (Back-End) und HTML (Front-End). Um einige zusätzliche Funktionen auf der Webseite bereitzustellen, kommt außerdem JavaScript zum Einsatz. Ferner wurde ein Apache Webserver benutzt.
Da das Projekt zu umfangreich war, um es in drei Wochen in der Schule zu entwickeln, wurde an dieser Stelle mit einem normalen Arbeitstag von acht Stunden geplant. Bei drei Personen ergab das eine Arbeitszeit von 120 Stunden in der Woche und eine Gesamtarbeitszeit von 360 Stunden. Das Gesamtergebnis der folgenden Tabelle ist etwas geringer, da in der Planung etwas Luft für unvorhergesehene Probleme gelassen wurde. Eine Visualisierung in einem GANTT Diagramm ist in Kapitel 3.3.1 zu finden.
Stunden | Aufgabe | Durchführung von |
40 | Erstellung des Pflichtenhefts | Matthias Unterbusch |
8 | Erstellung eines Angebots | Matthias Unterbusch |
16 | Benutzerhandbuch (mehrsprachig) | Matthias Unterbusch |
8 | Erstellen einer Installationsanweisung | Matthias Unterbusch |
32 | Erstellung einer Dokumentation | Matthias Unterbusch |
8 | Datenbankmodellierung | Christian Ehringfeld |
16 | Benutzerverwaltung | Christian Ehringfeld |
32 | Terminverwaltung | Christian Ehringfeld |
16 | Administrationsbereich | Christian Ehringfeld |
8 | Datenimport | Christian Ehringfeld |
16 | Rechteverwaltung | Christian Ehringfeld |
24 | Erstellen von Mock Ups | David Mock |
24 | Erstellen von Prototypen | David Mock |
16 | Lehrerfiltererstellung | David Mock |
8 | Formelementanpassung | David Mock |
32 | Integration von Prototypen | David Mock |
48 | Systemtest | Alle |
352 | Gesamt |
Als Ressourcen für das Projekt werden nur die Sachmittel benötigt. Diese umfassen einen normalen Bildschirmarbeitsplatz. Dazu gehören Tische, Stühle und PCs, die komplett von der Schule zur Verfügung gestellt wurden. Zudem wurde eine Verbindung mit ins Internet mit Hilfe eines WLAN-Hotspots zur Verfügung gestellt.
Da das Projekt auch einige Arbeitszeit zu Hause erforderte und die PCs der Schule durch eine starke Netzauslastung sehr langsam waren, haben sich die Mitarbeiter darauf verständigt, dass mit privaten Notebooks gearbeitet wird.
Außerdem wurden für Tests ein Webserver und eine Versionsverwaltung verwendet. Dazu wurde das webbasierte Projektmanagementtool Redmine benutzt, welches schon von einem Mitglied des Projektteams konfiguriert wurde.
Pos | Anzahl | Einheit | Beschreibung | Netto |
1 | 40 | Stunden | Erstellung des Pflichtenhefts | 2400 |
2 | 8 | Stunden | Erstellung eines Angebots | 480 |
3 | 16 | Stunden | Benutzerhandbuch (mehrsprachig) | 960 |
4 | 8 | Stunden | Erstellen einer Installationsanweisung | 480 |
4 | 32 | Stunden | Erstellung einer Dokumentation | 1920 |
5 | 8 | Stunden | Datenbankmodellierung | 480 |
6 | 16 | Stunden | Benutzerverwaltung | 960 |
7 | 32 | Stunden | Terminverwaltung | 1920 |
8 | 16 | Stunden | Administrationsbereich | 960 |
9 | 8 | Stunden | Datenimport | 480 |
10 | 16 | Stunden | Rechteverwaltung | 960 |
11 | 24 | Stunden | Erstellen von Mock Ups | 1440 |
12 | 24 | Stunden | Erstellen von Prototypen | 1440 |
13 | 16 | Stunden | Lehrerfiltererstellung | 960 |
14 | 8 | Stunden | Formelementanpassung | 480 |
15 | 32 | Stunden | Integration von Prototypen | 1920 |
16 | 48 | Stunden | Systemtest | 2880 |
Gesamt | 352 | Stunden | ||
2% Skonto bei Zahlung innerhalb von 14 Tagen | ||||
Gesamt Netto | 21120,00 | |||
19 % Umsatzsteuer | 4012,80 | |||
Gesamt Brutto | 25132,80 |
Ziel ist es eine Elternsprechtagssoftware zu entwickeln, um die Handhabung des Elternsprechtags zu vereinfachen. Die Elternsprechtagssoftware soll es ermöglichen online Termine für den Elternsprechtag zu vereinbaren. Dazu wird eine Webseite entworfen, für die lediglich ein Internetzugang nötig ist. Dabei wird berücksichtigt, dass die Zielgruppe in der Regel Berufsfremd ist.
3.1.1 Fehlerfreie Software
Ein Hauptziel ist eine fehlerfreie Software. Da der Elternsprechtag ein offizieller Anlass ist und die Schule nach außen hin repräsentiert, dürfen an diesem Tag natürlich keine Unstimmigkeiten auftauchen, die auf die Elternsprechtagssoftware zurückzuführen sind.
3.1.2 Barrierefreiheit
Ein weiteres Ziel ist die Barrierefreiheit. Dabei ist es sehr wichtig, dass jeder, auch Menschen mit Benachteiligungen, die Webseite in vollem Umfang nutzen können. Dabei kann vor allem mit einem einfachen Design, mit möglichst starken Kontrasten darauf geachtet werden, dass auch Menschen mit einen Sehschwäche die Website in vollem Umfang benutzen können.
Ein weiterer Punkt der Barrierefreiheit ist die Verwendung von JavaScript. JavaScript muss zusätzlich auf jedem System installiert werden und erhöht somit die Anforderungen an die Benutzer. Daher funktioniert die gesamte Webseite auch ohne JavaScript. JavaScript stellt dabei für die Benutzer lediglich einige zusätzliche Funktionen zur Verfügung. Ein Beispiel dafür ist das zusätzlich einblendbare Menü, welches ein besseres Design hat. Da es nicht immer eingeblendet ist, steht der zusätzliche Platz für den Rest der Website zur Verfügung.
Ein weiteres Feature, welches nur mit JavaScript genutzt werden kann, gibt es bei der Termineintragung. Mit aktivierten JavaScript können freie Termine angeklickt werden, worauf die Felder Datum und Uhrzeit automatisch ergänzt werden. Wenn kein JavaScript aktiviert ist müssen diese Felder mit Hilfe von Drop Menüs manuell ausgefüllt werden.
3.1.3 Usability
Die Benutzerfreundlichkeit soll auf jeden Fall gewährleistet sein. Dazu trägt vor allem ein schlichtes Design der Seite bei, wobei vor allem auf klare Kontraste geachtet wurde. Außerdem wird auf eine sehr einfache Menüstruktur geachtet. Beim ersten Login werden die Eltern direkt aufgefordert ein Kind einzugeben und es muss nicht erst im Profil mühselig nachgetragen werden. Des Weiteren werden, falls Termine gemacht wurden, diese direkt im Startbildschirm angezeigt und es muss nicht jeder Lehrer bei dem Termine gemacht wurden, einzeln überprüft werden.
3.1.4 Datenschutz
Ein wichtiger Punkt ist der Datenschutz der Schüler, Eltern und Lehrer. Deshalb werden die Zeitpläne der Lehrer den Eltern nicht komplett angezeigt, um nicht jedem alle Informationen zugänglich zu machen. Die vergebenen Termine werden nur als belegt gekennzeichnet und nicht genau angezeigt wer welchen Termin gebucht hat.
Außerdem werden die Passwörter in der Datenbank verschlüsselt gespeichert. Dabei werden gesalzene sha512 Hashes verwendet.
Da die Daten maskiert werden, ist eine SQL-Injection nicht möglich. Da alle Ausgaben maskiert werden ist Cross Site Scripting ebenfalls nicht möglich.
Die Umsetzung der Software wurde anhand der Muss-, Soll-, und Kannkriterien realisiert. Der erste Schritt war die Modellierung einer Datenbank, um alle anderen Funktionen zu ermöglichen. Danach wurde die Möglichkeit geschaffen sich zu registrieren, um einen internen Bereich zu schaffen. Damit wurde die Grundlage für den Datenschutz geschaffen. Zeitgleich wurde das Design für die Seite fertiggestellt und mit der Erstellung der Prototypen begonnen. Anschließend wurde mit der Rechteverwaltung begonnen, um mehrere Rollen zu realisieren.
Im Anschluss daran wurde das Eintragen von Terminen umgesetzt. Dazu wurde ein Lehrerfilter erstellt, um einen Lehrer auszuwählen. Nachfolgend wurden die Zeitpläne für Lehrer erstellt und das Termineintragen von der Rolle Eltern möglich gemacht. Währenddessen wurden die Prototypen integriert und Formelemente angepasst. Zum Schluss wurde der Datenimport in die Software integriert. Die Accounts der Lehrer können automatisch aus einer .csv Datei erstellt werden.
3.3.1 GANTT Diagramm
Abb. 1: GANTT Diagramm
Das GANTT Diagramm wurde mit der Software GANTT-Projekt Version 2.6 erstellt.
3.3.2 UML-Anwendungsfalldiagramm
Das UML-Diagramm wurde mit der Software ArgoUML Version 0.32.2 erstellt.
Abb. 2: UML-Anwendungsfalldiagramm
3.3.3 Klassendiagramme
Abb. 3: Klassendiagramm (1. Teil)
Abb. 4: Klassendiagramm (2.Teil)
Abb. 5: Klassendiagramm (3.Teil)
Die Klassendiagramme wurden mit der Software Visual Paradigm Version 10.1 erstellt.
Abb. 6: Datenbankstruktur
Das Datenbankmodell wurde mit MySQL Workbench Version 5.2.47 erstellt.
Bei der Gestaltung der grafischen Oberfläche wurde vor allem auf ein einfaches und schlichtes Design geachtet. Die Eltern sollen nicht durch ein zu aufdringliches Design verunsichert werden. Dabei wurde vor allem auf klare Kontraste viel Wert gelegt. Es wurde nur ein schlichtes Logo für die Software entworfen, welches sich eher unauffällig auf der Webseite präsentiert. Da es sich um eine offizielle Schulhomepage handelt, wurde ebenfalls das Logo der Brühlwiesenschule in die Webseite integriert, welches sich ähnlich wie das Logo der Elternsprechtagssoftware im Hintergrund hält.
Um die Benutzerfreundlichkeit weiter zu verbessern, gibt es auf vielen Seiten eine Box, in welcher eine kurze Beschreibung vorhanden ist, welche Aktionen auf dieser Seite möglich sind und wie diese zu handhaben sind. Weiterhin wurde zu jedem Feld eine Beschreibung hinzugefügt, die dem Benutzer angibt, welche Information in dieses Feld hingeschrieben werden muss. Zudem wurden die Seiten nicht mit Funktionen überladen und relativ simpel gehalten.
4.1.1 Anmeldeseite
Abb. 7: Anmeldeseite
4.1.2 Registrierung
Die Registrierungsseite kann von der Anmeldeseite aus erreicht werden und ist ebenfalls für nicht registrierte Benutzer sichtbar.
Abb. 8: Registrierung
4.1.3 Terminliste
Die Terminliste wird direkt nach dem Login angezeigt, falls bereits Termine vereinbart wurden.
Abb. 9: Terminliste
4.1.4 Lehrersuche
Die Lehrersuche kann über das Menü aufgerufen werden und ist eine Filterfunktion für Lehrer, um die Termineintragung zu vereinfachen.
Abb. 10: Lehrersuche
4.1.5 Termineintragung
Es wird der Zeitplan des Lehrers angezeigt und mit einem Klick auf einen verfügbaren Termin erscheint die untere Box, bei die Eltern noch die Möglichkeit haben, ein Kind auszuwählen falls zwei oder mehr ihrer Kinder auf die Schule gehen. Danach können sie einen Termin buchen, der danach als nicht verfügbar angezeigt wird.
Abb. 11: Zeitplan
4.1.6 Benutzerverwaltung
Die Benutzerverwaltung ist nur für Administratoren sichtbar und kann zum Erstellen und Bearbeiten der Benutzer verwendet werden.
Abb. 12: Benutzerverwaltung
Um das Projekt umzusetzen, wurde das Yii Framework benutzt. Das Framework hat die BSD Lizenz und ist Opensource. Daher kann dieses Framework ohne Bedenken verwendet werden.
Des Weiteren wird als Programmiersprache PHP verwendet, die mit der PHP Lizenz lizensiert und ebenfalls Opensource ist. Die weiteren verwendeten Sprachen wie HTML und JavaScript sind Lizenzfrei. Als Entwicklungsumgebung wurde Netbeans verwendet.
Das relationale Datenbankverwaltungssystem MySQL, welche die GPL Lizenz inne hat, ist ebenfalls Opensource. Wir verwenden als freie Storage-Engine für MySQL InnoDB.
Es werden auch mehrere Icons verwendet, die alle zu der CC-BY-SA 3.0 Lizenz gehören. Diese Icons sind also frei nutzbar.
Ein Problem entstand mit der Kodierung in der Datenbank. Zunächst wurde UTF8-General-CI benutzt. Dieser Zeichensatz ist case-insensitive und daher gut für eine Datenbank geeignet. Außerdem ist diese Kodierung schneller, da nicht auf Bitebene verglichen wird. Das führte zu Problemen bei der Auswahl der Lehrer, die mit Umlauten beginnen, von denen zu unterscheiden, die mit dem entsprechendem Vokal beginnen, da UTF8-General-CI Umlaute als normale Vokale behandelt, z.B. Ä wie A. Aus diesem Grund wurde der Zeichensatz UTF8 binär gewählt, bei dem auf Bitebene verglichen wird, und somit Umlaute korrekt verarbeiten kann.
Ein weiteres Problem waren Elternsprechtage mit unterschiedlicher Termindauer. Dabei gab es Probleme mit der korrekten Anzeige. Bei dem ursprünglichen Design wurden beide Tage in einer Tabelle nebeneinander angezeigt, was nur möglich ist, wenn die Termindauer identisch ist. Dazu musste das Design der Termineintragung geändert werden, sodass bis zu drei unterschiedliche Tabellen angezeigt werden.
Während der Programmierung wurden einzelne Teile des Programms immer wieder einem Modultest unterzogen. Dieser wurde von den Entwicklern mit Hilfe des Whiteboxtestverfahrens durchgeführt. Außerdem wurde bei der Zusammenführung des Front-Ends und Back-Ends ein Integrationstest von den Programmierern durchgeführt.
Um die Software so fehlerfrei wie möglich zu gestalten, wurde zum Schluss noch ein Systemtest durchgeführt. Dieser wurde als Blackboxtest durchgeführt und vom Projektmanager durchgeführt.
5.2.1 Rolle Administrator
Als erstes wurde der Administrationsbereich getestet. Das geschieht deshalb, da zunächst ein Elternsprechtag erstellt und eine Lehrerliste eingelesen werden muss, damit die Software wie geplant funktionieren kann.
Als erstes wurde ein neuer Elternsprechtag erstellt. Beim Eintragen des Datums und der Zeiten ist ein sehr spezielles Format erforderlich. Aus diesem Grund werden mehrere falsche Eingaben getätigt, um zu überprüfen, ob ein falsches Datum festgelegt werden kann. Zum Schluss wird ein korrektes Datum eingegeben, um zu testen, ob ein Elternsprechtag korrekt angelegt wird.
Danach wird das Einlesen der Lehrerliste getestet. Dabei wird versucht eine falsche Datei auszuwählen. Anschließend wird eine korrekte Datei eingelesen und geprüft, ob die Lehrerdaten korrekt eingelesen werden.
Da jede höhere Rolle automatisch die Rechte der darunterliegenden hat, mit der Ausnahme, dass Lehrer keine Termine vereinbaren dürfen, werden alle folgenden Tests der Kapitel 5.2.2 – 5.2.4 auch bei der Rolle Administrator durchgeführt.
5.2.2 Rolle Eltern
Bei den Eltern wird zunächst das Eintragen von Kindern überprüft. Da an dieser Stelle keine Überprüfung stattfindet, ob die Kinder in der Datenbank vorhanden sind, können an dieser Stelle keine „falschen“ Eingaben gemacht werden. An dieser Stelle muss nur geprüft werden, wie viele Kinder maximal eingetragen werden können und ob das Löschen der Kinder korrekt funktioniert.
Anschließend wird die Verwaltung des eigenen Accounts getestet. Dazu wird das Menü „Ihr Account“ aufgerufen und getestet, welche Daten verändert werden können. Danach werden mehrere Daten geändert und gespeichert.
Danach wird die Termineintragung getestet. Dabei wird geprüft, ob der Lehrerfilter korrekt funktioniert oder Fehler auftreten. Danach wird ein Lehrer ausgewählt und versucht einen bereits belegten Termin einzutragen. Zum Schluss wird ein freier Termin reserviert und auf die Seite „Ihre Termine“ gewechselt, um zu überprüfen, ob der Termin korrekt eingetragen wurde und testweise ein Termin wieder gelöscht.
5.2.3 Rolle Lehrer
Bei den Lehrern wird ebenfalls die Accountverwaltung des eigenen Accounts. Dabei wird wieder getestet, welche Daten verändert werden können. Dann werden wieder mehrere Daten geändert, gespeichert und geprüft, ob alles korrekt übernommen wurde.
Des Weiteren wird überprüft, ob der Zeitplan des Lehrers korrekt angezeigt wird und ausgedruckt werden kann.
Zum Schluss wird die Tanverwaltung getestet. Als Testeingaben werden dabei 0, eine Zahl über 100 und letztendlich eine Zahl zwischen 1 und 100 eingegeben.
5.2.4 Rolle Verwaltung
Begonnen wird mit der Benutzerverwaltung. Dabei werden die detaillierte Benutzeransicht und das Bearbeiten eines Benutzers getestet. Dazu wird das Ändern der E-Mail Adresse geprüft, da die anderen Daten schon bei den Rollen Eltern und Lehrer genau geprüft wurden. Dann wird überprüft, ob ein Benutzer gelöscht werden kann.
Ferner wird die Termineintragung einem Test unterzogen. Dazu wird versucht ein Termin unter Angabe von inkorrekten Daten anzulegen, um prüfen, wie die Software reagiert. Am Ende werden mehrere Testtermine mit korrekten Eingaben erstellt und überprüft, ob die Termine korrekt übernommen wurden.
Der abschließende Systemtest wurde genutzt, um eventuelle Fehler aus der Software zu entfernen und um die Benutzerfreundlichkeit zu erhöhen. Die Testprotokolle sind im Anhang unter 8.7 vorhanden.
6.1.1 Zeiten
Geplante Stunden | Benötigte Stunden | Aufgabe |
40 | 40 | Erstellung des Pflichtenhefts |
8 | 10 | Erstellung eines Angebots |
16 | 18 | Benutzerhandbuch (mehrsprachig) |
8 | 4 | Erstellen einer Installationsanweisung |
32 | 30 | Erstellung einer Dokumentation |
8 | 8 | Datenbankmodellierung |
16 | 26 | Benutzerverwaltung |
32 | 16 | Terminverwaltung |
16 | 26 | Administrationsbereich |
8 | 4 | Datenimport |
16 | 20 | Rechteverwaltung |
24 | 30 | Erstellen von Mock Ups |
24 | 24 | Erstellen von Prototypen |
16 | 18 | Lehrerfiltererstellung |
8 | 6 | Formelementanpassung |
32 | 30 | Integration von Prototypen |
48 | 46 | Systemtest |
352 | 356 | Gesamt |
6.1.2 Software
Bei der Erstellung der Software wurden alle Musskriterien umgesetzt. Einige Kannkriterien wurden aus Zeitgründen nicht erfüllt. Dazu gehört die Erstellung eines Installationsskripts. Außerdem wurde kein Zähler eingebaut, der die fehlerhaften Logins zählt und eventuell eine kurze Sperre hervorruft.
Während des Projekts wurde relativ schneller klar, dass das größte Problem das Zeitmanagement ist. Das Einarbeiten in das Projekt gestaltete sich langwieriger als gedacht. Dabei kostete die Einarbeitung in das Yii Framework sehr viel Zeit. Aber auch das Erstellen der Mock Ups, die bereits im Pflichtenheft vorhanden sein sollten, was sehr zeitaufwändig. Obwohl der Anfang sich als relativ schwierig erwies, konnte der kleine Rückstand durch einige zusätzliche Arbeitsstunden zu Hause wieder aufgeholt werden. Bei dem weiteren Verlauf konnte die Planung eingehalten werden, sodass die Software wie geplant am 20.03.13 fertiggestellt und mit dem Systemtest begonnen wurde.
Die Elternsprechtagssoftware konnte innerhalb der geplanten drei Wochen fertiggestellt werden. In der Livedemonstration wurde die Software präsentiert, wobei alle im Pflichtenheft festgelegten Musskriterien funktionierten. Die Software ist also wie geplant funktionsfähig. Allerdings konnte innerhalb der drei Wochen noch kein Abnahmetest durchgeführt werden. Der Abnahmetest muss noch von der Brühlwiesenschule zu einem späteren Zeitpunkt ausgeführt werden.
In die Elternsprechtagssoftware sollen noch einige Features eingebaut werden, bevor diese zum ersten Mal verwendet wird. Dazu gehört eine Suche in allen Verwaltungstabellen, vor allem in der Benutzerverwaltung.
Möglich wäre die Erstellung eines Installationsskripts, um die Software automatisch auf einem Server zu installieren. Das Skript soll die Konfiguration übernehmen.
Bei dem Einlesen der Lehrerliste wird im Moment ein Standardpasswort vergeben. Das Passwort kann eventuell zufällig generiert werden und per E-Mail versendet werden.
Das Projektsrepository soll auf Git Hub veröffentlicht werden. Außerdem steht noch ein Abnahmetest aus, bevor die Software live benutzt werden kann.
Sie können sich registrieren, indem Sie auf der Hauptseite den Schriftzug „Benötigen Sie einen Zugang? Klicken Sie hier.“ anklicken. Auf dieser Seite müssen Sie alle Felder ausfüllen. Bei der Angabe der E-Mail-Adresse ist es wichtig, eine gültige Adresse einzutragen, da über diese ein Aktivierungslink verschickt wird. Das Passwort muss dabei mindestens acht Zeichen umfassen und einmal wiederholt werden. Vom Klassenlehrer Ihres Kindes erhalten Sie eine TAN (Kennziffer), die aus sechs Zahlen besteht.
Nachdem Sie alle Felder ausgefüllt haben, müssen Sie auf den Button mit der Aufschrift „Registrieren“ klicken. Danach erhalten Sie eine E-Mail, die einen Registrierungslink beinhaltet. Wenn diese E-Mail eingetroffen ist, müssen Sie den mitgeschickten Link anklicken, um den Account zu aktivieren. Anschließend können Sie sich mit Ihrer E-Mailadresse und dem von Ihnen festgelegten Passwort auf der Hauptseite einloggen.
Wenn Sie Ihr Passwort vergessen haben, müssen Sie auf der Startseite den Schriftzug „Passwort vergessen?“ anklicken. Daraufhin erscheint eine Seite, bei der Sie Ihre E-Mail-Adresse und den angezeigten Sicherheitscode eingeben müssen. Wenn beide Felder ausgefüllt wurden, müssen Sie auf „Absenden“ klicken. Danach erhalten Sie erneut eine E-Mail, die einen Link enthält, den Sie anklicken müssen. Anschließend werden Sie auf eine Seite weitergeleitet, auf der Sie ein neues Passwort festgelegen können. Danach können Sie sich wieder auf der Hauptseite mit Ihrer E-Mailadresse und dem neuen Passwort einloggen.
Klicken Sie den Menübutton „Ihre Kinder“, danach auf den Button „Schüler hinzufügen“. Anschließend müssen Sie den Vor- und Nachnamen Ihres Kindes eingeben und auf „Anlegen“ klicken.
Um Ihre Benutzerdaten zu ändern, klicken Sie zunächst im Menü auf „Ihr Account“ und danach auf den Button „Benutzer bearbeiten“. Anschließend können Sie Ihre Benutzerdaten ändern. Um die Änderungen zu speichern, müssen Sie auf den Button „Speichern“ klicken.
Um einen Terminen auszumachen, müssen Sie auf den Menübutton „Termin festlegen“ klicken. Um sich Lehrer mit einem bestimmten Anfangsbuchstaben anzeigen zu lassen, klicken Sie dann auf diesen Buchstaben. Danach können Sie den Lehrer in der erscheinenden Liste direkt auswählen, indem Sie auf das kleine Weckersymbol klicken. Alternativ können Sie in dem Textfeld die Anfangsbuchstaben des gewünschten Lehrers eingeben und diesen im sich öffnendem Menü anklicken. Wenn Sie einen Lehrer ausgewählt haben, erscheint dessen Zeitplan. In diesem sind die Termine entweder als „VERFÜGBAR“ oder „BELEGT“ gekennzeichnet. Durch das Klicken auf einen Termin, der als „VERFÜGBAR“ gekennzeichnet ist, werden für Sie automatisch das Datum und die Uhrzeit des angeklickten Termins in die untenstehenden Felder eingetragen. Falls mehr als ein Kind die Schule besucht, müssen Sie den Namen des jeweiligen Kindes auswählen. Zum Schluss müssen Sie auf den Button „Bestätigen“ klicken, um den Termin zu reservieren.
Sie können Termine löschen, indem Sie im Menü auf den Button „Ihre Termine“ klicken. Außerdem ist die Seite „Ihre Termine“ auch nach dem Login direkt geöffnet. Ein Termin kann gelöscht werden, indem Sie auf den Button „Termin löschen“ klicken.
Sie können Termine löschen, indem Sie im Menü auf den Button „Ihre Termine“ klicken. Außerdem ist die Seite „Ihre Termine“ auch nach dem Login direkt geöffnet. Ein Termin kann gelöscht werden, indem Sie auf das kleine Mülleimersymbol klicken und die Sicherheitsfrage mit „OK“ bestätigen.
Zum Drucken müssen Sie im Menü auf „Ihre Termine“ klicken, um die entsprechende Seite aufzurufen. Außerdem wird die Seite direkt nach dem Login angezeigt. Wenn Sie auf den Button mit der Aufschrift „Drucken“ klicken, erscheint ein weiteres Fenster, bei dem Sie Drucker auszuwählen müssen. Danach müssen Sie in dem neuen Fenster auf den Button „Drucken“ klicken, um die Terminliste auszudrucken.
Falls Fragen zu der Elternsprechtags-Software bestehen sollten, können Sie auf der Startseite den Link „Kontakt“ anklicken. Danach erscheint eine Seite, bei der Sie die Ihren Namen, Ihre E-Mailadresse und einen Betreff eingeben müssen. Außerdem muss eine Nachricht geschrieben werden, in der Sie Ihr Anliegen darlegen können. Wenn Sie alle Felder ausgefüllt haben, müssen Sie abschließend den Sicherheitscode eingeben und auf „Absenden“ klicken.
Bitte führen Sie auf dieser Seite keine Änderungen durch, wenn Sie sich nicht absolut sicher sind. Die Änderungen haben Auswirkungen auf alle Benutzer im System und können sich negativ auf die Funktionalität der Software auswirken.
Folgende Komponenten werden für einen reibungslosen Betrieb der Anwendung benötigt:
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Europe/Berlin
Zur Installation der Abhängigkeiten von ESTA wird composer benötigt. Composer kann unter https://getcomposer.org/download/ heruntergeladen werden.
Sobald man composer heruntergeladen hat, sollte man in das Verzeichnis von ESTA navigieren. Dort sollte dann
composer install
aufgerufen werden.
Die Daten für den ersten Login:
E-Mail: admin
Passwort: admin
Nachdem ersten Login sollte sofort das Passwort geändert werden und/oder ein neues Administratorkonto angelegt werden und der "admin" Account gesperrt werden. Alle weiteren Einstellungen können in der Konfiguration vorgenommen werden. Diese ist mit dem Menüpunkt "Konfiguration" als Administrator in der Anwendung zu erreichen.
Die Datei liegt unter app_root/protected/runtime/application.log
Die Software soll vor allem sehr Benutzerfreundlich gestaltet werden, da die Mehrzahl der Nutzer keine Informatiker sind. Aus diesem Grund wird vor allem auf ein schlichtes Design und Benutzerfreundlichkeit.
Bitte erstellen Sie ein Backup der Datenbank! Please backup your database!
Importieren Sie /protected/data/1_4-1_4_1datetime.mysql und dann 1_4_1-1_5migration.mysql in die Datenbank.
Import /protected/data/1_4-1_4_1datetime.mysql und 1_4_1-1_5migration.mysql into the database.
Datenbankeintrag "textHeader" in 'configs' löschen oder importieren Sie /protected/data/1_3-1_4delete_specific_configs.mysql in die Datenbank.
Delete 'textHeader' in Databasetable 'configs' or iimport /protected/data/1_3-1_4delete_specific_configs.mysql into the database.
In der Datenbank muss in der Tabelle 'configs' der Eintrag "mailsActivated" gelöscht werden.
In table 'configs' the data record 'mailsActivated' must be deleted.
1.1 Titel
1.2 Auftraggeber
1.3 Projektteam
1.4 Datenspeicherung
1.5 Projektumgebung
1.6 Namensgebung
2.1 Musskriterien
2.2 Kannkriterien
2.3 Abgrenzungskriterien
3 Produktaufbau und Produktfunktionen
3.1 Produktaufbau
3.2 Grundfunktionen
3.2.1 Registrierung und Anmeldung
3.2.2 Termine eintragen und löschen
3.2.3 Zeitpläne ansehen und drucken
3.2.4 Rollenverwaltung
3.3 Funktionen für die einzelnen Benutzer
3.3.1 Funktionen für die Eltern
3.3.2 Funktionen für die Lehrer
3.3.3 Funktionen für die Verwaltung
3.3.4 Funktionen für Administratoren
4.1 Datenschutz
4.2 Usability
4.3 Barrierefreiheit
5.1 Anmeldeseite
5.2 Registrierung
5.3 Terminliste
5.4 Lehrersuche
5.5 Termineintragung
5.6 Benutzerverwaltung
6.1 UML-Anwendungsfalldiagramm
6.2 Datenbankstruktur
7.1 Modultest
7.2 Integrationstest
7.3 Systemtest als Blackboxtest
7.3.1 Festlegen eines Datums für den Elternsprechtag
7.3.2 Testregistrierungen und Eintragen von Kindern
7.3.3 Einfügen von Testterminen
8.1 Meilensteine
8.2 GANTT-Diagramm
8.3 Deadlines
Bei der Namensgebung wurde darauf geachtet, dass sowohl ein leicht zu merkender Name als auch ein gut auszusprechender gewählt wird. Dabei wurde der Name Elternsprechtagsapplikation gewählt, was ESTA abgekürzt werden kann.
Das Projekt wurde von der Brühlwiesenschule in Hofheim beauftragt, um den Ablauf des Elternsprechtags zu optimieren.
Zu dem Projektteam gehören Christian Ehringfeld (Backend), David Mock (Frontend) und Matthias Unterbusch (Projektmanager). Herr Ehringfeld wird sich dabei vor allem mit der Programmierung beschäftigen. Herr Mock mit dem Design der Seite und Herr Unterbusch ist der Projektmanager.
Bei der Elternsprechtagsapplikation werden bei allen Benutzern dieselben Daten gesammelt. Diese Daten beinhalten den Vor- und Nachnamen und die E-Mail Adresse. Alle weiteren Daten, die gespeichert werden, sind softwarespezifische Daten, z.B. die Termine und die Rollen der Benutzer. Die Passwörter werden als gesalzene sha512 Hashes in der Datenbank gespeichert.
Das Projekt wird plattformunabhängig programmiert. Die Elternsprechtagsapplikation kann auf einem Smartphone, Tablett oder PC benutzt werden. Dazu benötigt man lediglich einen installierten Browser. Dabei kann jeder Browser verwendet werden, z.B.: Firefox ab Version 3.5, Internet Explorer ab Version 8, Opera ab Version 10, Google Chrome ab Version 5 oder Safari ab Version 4.
Im nachfolgendem wird die Liste der Lehrer Zeitplan und die Liste der Eltern Terminliste genannt.
Die Software muss eine Registrierung ermöglichen. Die Benutzer sollen sich auf der Hauptseite, nach erfolgreicher Registrierung, anmelden können. Falls ein Benutzer sein Passwort vergessen hat, kann er ein neues festlegen und bekommt per E-Mail einen Link zugeschickt. Wenn es diesen anklickt, wird er auf eine Seite weitergeleitet, auf der er ein neues Passwort festlegen kann. Beim ersten Anmelden muss der Benutzer, wenn es sich um ein Elternteil handelt, ein oder mehrere Kinder eingeben, damit der Lehrer weiß, um welche Schüler es sich handelt.
Um einen Termin einzutragen, können Eltern einen Lehrer aus einer Liste auswählen und den Zeitplan dieses Lehrers einsehen. Anhand des Zeitplans können sie freie Termine identifizieren und sich einen Termin reservieren. Diese Termine können von den Eltern, die den Termin erstellt haben, wieder gelöscht werden.
Die Eltern können die bereits festgelegten Termine ansehen und über einen eingebauten Druckbutton ausdrucken.
Der Benutzer soll eine Möglichkeit bekommen, die Liste der Lehrer zu filtern, sodass die Termineintragung vereinfacht wird. Dabei wird zunächst die gesamte Liste der Lehrer angezeigt. Der Benutzer kann in einem Feld die ersten Buchstaben festlegen, mit dem der Lehrer beginnen soll und die Lehrerliste wird dabei dynamisch aktualisiert.
Die Verwaltung kann auch Benutzer manuell anlegen und bereits bestehenden Accounts eine neue Rolle zuweisen. Außerdem kann sie Termine manuell eintragen.
Des Weiteren muss die Software über mehrere administrative Funktionen verfügen. Der Administrator legt das Datum des Elternsprechtages fest und die Dauer eines einzelnen Gesprächs. Ferner kann der Administrator eine Frist einstellen, in welchem Zeitraum Termine gemacht werden können. Außerdem kann der Administrator die Datenbankanbindung verwalten.
Der Administrator hat die Möglichkeit die Datenbank in den Urzustand zu versetzen, indem er auf einen Resetbutton klickt.
Bei Löschung eines Termins durch einen Lehrer soll zur Information eine E-Mail an die Eltern geschickt werden. Ein weiteres Kannkriterium ist das Einbauen eines Zählers, der die Anzahl der Fehllogins zählt und bei zu vielen fehlerhaften Logins eine kurzzeitige Loginsperre verursacht.
Eine Erstellung von einem Installationsskripts wäre ebenfalls möglich.
In der Elternsprechtagsapplikation soll kein Nachrichtensystem enthalten sein, mit denen sich Lehrer und Eltern untereinander Nachrichten schreiben können oder jeweils untereinander Nachrichten verschickt werden können. Außerdem soll es keinen Raumplan in der Software geben. Lehrer sollen keine Möglichkeit besitzen, Termine zu blockieren.
Außerdem sollen vom System nur E-Mails verschickt werden, wenn der Lehrer einen Termin löscht. Eine weitere Ausnahme ist das Versenden von E-Mails bei der Erstellung eines neuen Accounts.
Die Software besitzt eine Startseite auf welcher man sich anmelden und registrieren kann. Nach dem Anmelden besteht die Möglichkeit die Zeitpläne der Lehrer einzusehen und Termine zu reservieren. Der Lehrer kann diese Liste einsehen und eventuell Termine löschen. Termine können von der Verwaltung auch manuell eingetragen werden. Die Rechte werden über Rollen verwaltet, die von der Verwaltung zugewiesen werden können. Die Rollen und die Datenbankanbindung wird vom Administrator verwaltet.
3.2.1 Registrierung und Anmeldung
Die Benutzer des Systems sollen die Möglichkeit erhalten, sich mit ihrer E-Mail Adresse zu registrieren. An die eingetragene E-Mail Adresse wird eine E-Mail mit einem Bestätigungslink geschickt, der angeklickt werden muss, um den Account zu aktivieren.
Wenn die Registrierung erfolgreich abgeschlossen wurde und der Account aktiviert ist, können sich die Benutzer auf der Seite anmelden. Nachdem der Benutzer sich erfolgreich angemeldet hat, muss, sofern es sich um einen Account mit der Rolle Eltern handelt, ein Schülername eingegeben werden.
3.2.2 Termine eintragen und löschen
Die Eltern können sich eine Liste der Lehrer anzeigen lassen und sich darüber die Zeitpläne der Lehrer ansehen. Bei den Zeitplänen können sie klar erkennen, welche Termine belegt und welche frei sind. Sollten sie den Wunsch haben, mit einem Lehrer zu sprechen, können sie einen freien Termin reservieren. Falls der Gesprächswunsch nicht mehr bestehen sollte, kann der Termin im Nachhinein auch wieder gelöscht werden. Termine können nur eingetragen und gelöscht werden, wenn die Bearbeitungsfrist noch nicht verstrichen ist.
3.2.3 Zeitpläne ansehen und drucken
Es existieren zwei Arten von Zeitplänen. Zum einen die Terminpläne der Eltern und zum anderen die Zeitpläne der Lehrer. Beide sollen über eine Visualisierung und über einen Druckbutton verfügen.
3.2.4 Rollenverwaltung
Die Rollenverwaltung stellt sicher, dass jeder Benutzer die entsprechenden Rechte hat. Dabei ist die niedrigste Rolle die der Eltern und die höchste die der Administratoren. Jede Rolle beinhaltet dabei alle Rechte der darunterliegenden Rolle. Die einzige Ausnahme ist dabei das Eintragen von Terminen. Das kann jeder Benutzer ausgenommen diejenigen, die die Rolle Lehrer inne haben.
3.3.1 Funktionen für die Eltern
Nachdem der Account aktiviert wurde, können sich die Benutzer einloggen. Sie haben standardmäßig die Rolle der Eltern inne. Andere Rollen müssen von der Verwaltung festgelegt werden. Die Eltern können sich die Liste aller Lehrer anzeigen lassen und einen auswählen, um sich dessen Zeitplan anzusehen und eventuell eine Zeit für sich reservieren. Dabei sehen sie bei den bereits vergebenen Terminen nicht wer diese Termine reserviert hat, sondern nur, dass sie vergeben sind. Sie können falls der Gesprächswunsch nicht mehr besteht, ihre eigenen Termine löschen. Außerdem haben sie die Möglichkeit sich ihre eigenen Termine anzeigen und ausdrucken zu lassen. Außerdem können sie Ihre Benutzerdaten verändern, mit Ausnahme des Benutzernamens.
3.3.2 Funktionen für die Lehrer
Die Lehrer können sich ihren Zeitplan vollständig anzeigen lassen und diesen ausdrucken. Außerdem können sie Termine ihres Zeitplans löschen.
3.3.3 Funktionen für die Verwaltung
Die Verwaltung kann die Rollen für die Accounts der Benutzer zuweisen. Außerdem kann die Verwaltung Termine manuell nachtragen. Ferner kann die Verwaltung die Listen für alle Lehrer ausdrucken.
3.3.4 Funktionen für Administratoren
Die Hauptaufgabe für Administratoren ist das Festlegen eines Zeitraums für den Elternsprechtag und das Bestimmen der Gesprächsdauer. Des Weiteren können sie die Datenbankanbindung festlegen. Außerdem kann die maximale Anzahl der möglichen Termine pro Account eingestellt werden.
Ein sehr wichtiger Punkt ist der Datenschutz der Schüler, Eltern und Lehrer. Deshalb werden die Zeitpläne der Lehrer den Eltern nicht komplett angezeigt. Die belegten Termine werden nur als belegt gekennzeichnet und nicht genau angezeigt wer welchen Termin belegt hat.
Die Passwörter werden in der Datenbank verschlüsselt gespeichert. Dabei werden gesalzene sha512 Hashes verwendet.
Da die Daten maskiert werden, ist eine SQL-Injection nicht möglich. Da alle Ausgaben maskiert werden ist Cross Site Scripting ebenfalls nicht möglich.
Die Benutzerfreundlichkeit soll auf gewährleistet sein. Dazu trägt vor allem ein schlichtes Design der Seite bei, wobei vor allem auf klare Kontraste geachtet wird. Außerdem wird eine sehr einfache Menüstruktur verwendet.
Beim ersten Login werden die Eltern direkt aufgefordert ein Kind einzugeben und es muss nicht erst im Profil mühselig nachgetragen werden. Des Weiteren werden, falls Termine gemacht wurden, diese direkt im Startbildschirm angezeigt und es muss nicht jeder Lehrer, bei dem Termine gemacht wurden, einzeln überprüft werden.
Es ist sehr wichtig, dass jeder, auch Menschen mit Benachteiligungen, die Webseite in vollem Umfang nutzen können. Dabei kann vor allem mit einem einfachen Design, mit möglichst starken Kontrasten darauf geachtet werden, dass auch Menschen mit einen Sehschwäche die Website in vollem Umfang benutzen können.
Ein weiterer Punkt der Barrierefreiheit ist die Verwendung von JavaScript.
JavaScript ist ein Tool, was der Benutzer aktiv installieren muss und die Anforderungen an die Benutzer erhöht. Daher funktioniert die gesamte Webseite auch ohne JavaScript. JavaScript stellt dabei für die Benutzer lediglich einige zusätzliche Funktionen zur Verfügung. Ein Beispiel dafür ist das zusätzlich einblendbare Menü, welches ein besseres Design hat. Da es nicht immer eingeblendet ist, steht der zusätzliche Platz für den Rest der Website zur Verfügung.
Ein weiteres Feature, welches nur mit JavaScript genutzt werden kann, gibt es bei der Termineintragung. Mit aktivierten JavaScript können freie Termine angeklickt werden, worauf die Felder Datum und Uhrzeit automatisch ergänzt werden. Wenn kein JavaScript aktiviert ist müssen diese Felder mit Hilfe von Drop Down Menüs manuell ausgefüllt werden.
Abb. 1: Anmeldeseite
Die Registrierungsseite kann von der Anmeldeseite aus erreicht werden und ist ebenfalls für nicht registrierte Benutzer sichtbar.
Abb. 2: Registrierung
Die Terminliste wird direkt nach dem Login angezeigt, falls bereits Termine vereinbart wurden.
Abb. 3: Terminliste
Die Lehrersuche kann über das Menü aufgerufen werden und ist eine Filterfunktion für Lehrer, um die Termineintragung zu vereinfachen.
Abb. 4: Lehrersuche
Es wird der Zeitplan des Lehrers angezeigt und mit einem Klick auf einen verfügbaren Termin erscheint die untere Box, bei die Eltern noch die Möglichkeit haben, ein Kind auszuwählen falls zwei oder mehr ihrer Kinder auf die Schule gehen. Danach können sie einen Termin buchen, der danach als nicht verfügbar angezeigt wird.
Abb. 5: Zeitplan
Die Benutzerverwaltung ist nur für Administratoren sichtbar und kann zum Erstellen und Bearbeiten der Benutzer verwendet werden.
Abb. 6: Benutzerverwaltung
Abb. 7: UML-Anwendungsfalldiagramm
Die Datenbankstruktur gibt eine Auskunft darüber, welche Daten gespeichert werden und wie diese Daten miteinander verknüpft werden. Dabei steht die Verbindung mit einem Doppelstrich (||) und einem Pfeil (>|) für eine 1 zu n Relation. Die Verbindung mit zwei Doppelstrichen (||).
Abb. 8: Datenbankstruktur
Die Testfälle berücksichtigen die Reihenfolge, in der die Schritte bei einem Ablauf des Elternsprechtags erfolgen würden.
Der Modultest wird aufgrund der knappen Zeit während der Programmierung durchgeführt. Den Test führen die Programmierer und der Projektmanager nach jedem Abschluss eines Teilkriteriums durch, was genauer im GANTT Diagramm festgelegt ist.
Der Integrationstest wird von den Programmierern bei der Zusammenführung der Prototypen durchgeführt. Dabei werden alle auftretenden Probleme, die das Zusammenspiel der Komponenten betreffen, behoben.
7.3.1 Festlegen eines Datums für den Elternsprechtag
Als erstes wird ein Zeitraum festgelegt, an dem der Elternsprechtag stattfindet. Dabei werden mehrere Testeingaben gemacht. Zunächst wird ein Tag eingegeben und getestet, ob Fehler auftreten. Danach wird der zweite Tag angegeben und das Resultat überprüft. Dabei wird vor allem Wert darauf gelegt, dass die Zeitpläne für jeden einzelnen Lehrer richtig generiert werden.
7.3.2 Testregistrierungen und Eintragen eines oder mehrerer Kinder
Zunächst wird ein Testaccount erstellt. Dabei werden mehrere falsche Eingaben gemacht, z.B. falscher Name, falsche E-Mail Adresse oder eine unmögliche E-Mail Adresse. Nach mehreren falschen Eingaben wird eine korrekte Eingabe getätigt und getestet, ob der Account wie geplant über E-Mail aktiviert werden kann. Danach loggt sich der Tester in seinen Account ein und testet, ob er direkt zur Eingabe eines Kindes aufgefordert wird.
7.3.3 Einfügen von Testterminen
Der letzte Test ist das Eintragen von Terminen. Dabei wird über das Menü die Seite aufgerufen. Dabei wird versucht, einen bereits belegten Termin auszuwählen und erneut zu reservieren. Danach wird ein verfügbarer Termin angeklickt und ein Termin reserviert. Zum Schluss wird auf die Startseite gewechselt und geprüft, ob der Termin eingetragen wurde.
Der erste Meilenstein ist die Fertigstellung der Benutzerverwaltung. Für die Fertigstellung der Benutzerverwaltung wird eine Woche eingeplant. Der nächste große Meilenstein ist die Fertigstellung der Terminverwaltung. Diese ist Ende der zweiten Woche geplant. Der letzte große Meilenstein vor dem Release ist die Fertigstellung des Seitendesigns. Dieses soll ebenfalls Ende der zweiten Woche fertiggestellt werden.
Der letzte Meilenstein ist die Fertigstellung des Systemtests. Dabei sollen die letzten Fehler in der Software entfernt werden und die Software für die Live Demonstration vorbeireitet werden.
Im folgendem Diagramm sind die Meilensteine mit MS abkürzt.
Abb. 9: GANTT Diagramm
Datum | Aufgabe |
06.03.2013 | Abgabe der ersten Version des Pflichtenhefts |
08.03.2013 | Meilenstein: Fertigstellung der Benutzerverwaltung |
12.03.2013 | Abgabe der finalen Version des Pflichtenhefts |
12.03.2013 | Kick off |
15.03.2013 | Meilenstein: Fertigstellung der Terminverwaltung |
15.03.2013 | Meilenstein: Fertigstellung des Seitendesigns |
22.03.2013 | Abgabe des Projekts (Dokumentation, Manual, Angebot, Elternsprechtagsapplikation) |
22.03.2013 | Live Demo |
29.05.2013 | Präsentation |
Lehrer Termine blockieren Fehler
Eltern wenn keine Kinder angelegt Hinweis
Doppelte Buchung möglich mit unterschiedlichen Kindern
Lehrermenü TAN Verwaltung Schreibfehler
Lehrer dürfen Termine von anderen Termine
Pseudobenutzer anlegen Exception Index
Infotext Kontaktmail an Lehrer bei voller Terminliste
520853
435117
161289
896759
510853
105291
544055
872990
980656
518503
913532
696191
689979
077033
785545
836289
459169
337235
132945
324878
361080
036953
887510
034329
861249
085284
387082
461122
225758
644768
776205
644342
688700
023599
463840
718438
902347
506486
589849
885170
241085
975210
970619
278253
141759
783981
479090
097159
087903
227403
381679
817717
827633
541332
665305
643701
792564
346000
464698
864495
069340
529776
211911
968428
204754
250195
247124
845937
033976
797262
797706
231943
427011
824221
801528
797578
201306
758550
643065
255308
188945
776907
582438
492809
424965
884678
255946
695838
788068
911408
996364
290884
554048
816613
504645
545181
610699
154658
449101
461926
1 General information for parents
1.1 Registration
1.2 Logging in
1.3 Adding children
1.4 Account management
1.5 Forgot your password?
1.6 Help with questions
2 Scheduling an appointment with a teacher
2.1 Menu
2.2 Filtering teachers
2.3 Scheduling an appointment
2.4 Printing an appointment list
3.1 Entering appointments manually
3.2 User management
3.3 Importing teachers
3.4 Creating TANs
4.1 Managing students
4.2 Scheduling the day of the parent-teacher conference
The following screenshot shows the home page of the parent-teacher conference application.
Fig. 1: Home Page
The user can register on the home page by clicking on “Benötigen Sie einen Zugang? Klicken Sie hier.”
Fig. 2: Registration link.
On the next page, the user has to fill in all fields marked in red. When indicating an email address, it is important to enter a valid one since an activation link will be sent via this address. The password has to consist of eight characters and must be repeated once. The TAN is given to the user by the child’s teacher and consists of six digits.
After entering all necessary data, the user has to click on the button marked “Registrieren”.
Fig. 3: Registration page.
He will subsequently receive an email containing a registration link. Upon receipt of this email, the user has to click on the enclosed link, afterwards he may log in via the home page.
Once the registration process is finished, the user can log in on the home page by entering his email address and password and clicking on the “Login” button.
Fig. 4: Log in page.
After the first login procedure, the user is asked to enter one or several children by clicking on the button “Schüler hinzufügen”. If this is done at a later stage, the user then first has to click on the menu button “Ihre Kinder”.
Fig. 5: Adding children (1).
The user subsequently enters the child’s first name and surname and clicks on “Anlegen”.
Fig. 6: Adding children (2).
The user may manage his account by clicking on the menu button and choosing the item “Ihr Account”.
Fig. 7: Menu: „Ihr Account“.
The account’s user data appear. If the user wishes to change them, he has to click on the button marked “Benutzer bearbeiten”, leading him to the following page:
Fig. 8: Account management page.
Here, the user can change his data and save them via the “Speichern” button.
In case the user cannot remember his password, he can click on the following link on the home page:
Fig. 9: Forgot your password? (1)
On the next page, he has to enter his email address and the generated security code and click on “Absenden”.
Fig. 10: Forgot your password? (2)
The user will then receive an email to the indicated address, containing a link to a page where he can define a new password.
Fig. 11: Change Password
If the user has questions concerning the use of the parent-teacher conference software, he can click on the link marked “Kontakt” situated on the bottom right side.
Fig. 12: Link: „Kontakt“.
The following page will appear:
Fig. 13: Contact page.
On this page, the user has to fill in all fields in order to receive an answer to his question. After entering all necessary information, he clicks on “Absenden”.
In order to schedule an appointment, the user has to click on the menu button “Termin festlegen”, giving access to the menu shown below:
Fig. 14: Menu: Scheduling appointments.
There are two possibilities to find a teacher: First, one may click on a letter, thus obtaining a list with all teachers whose surname starts with the selected initial letter. Second, one may search for the teacher’s name via a text box.
In both cases, a list of teachers whose surname starts with the chosen initial letter will be displayed.
Fig. 15: Filtering teachers.
The user can choose a teacher by clicking on his/her name.
After the user has chosen a teacher, the software shows his/her schedule. Appointments are marked “UNAVAILABLE” or “AVAILABLE”.
Fig. 16: Teacher’s schedule.
By clicking on a time slot marked “AVAILABLE”, the grey fields of the following screenshot are filled in automatically. In case several of the user’s children go to the same school, he will subsequently have to select a child, otherwise the child is selected automatically.
Fig. 17: Appointment information.
In order to print out a list of all scheduled appointments, the user needs an installed printer. In the menu, he has to click on the button “Ihre Termine” to access the corresponding page (which is also displayed directly after the login procedure).
Fig. 18: Print button
By clicking on the “Print” icon, the user opens another window where he may choose the printer. The process is finished by clicking on the button marked “Drucken”.
The school administration may add appointments manually, the corresponding page being automatically selected upon logging in. One has then to click on the button “Termin anlegen”, opening a new page.
Fig. 19: Making appointment manual
Once all necessary fields have been filled in, one has to click on “Anlegen” in order to save the appointment.
The user management offers several features.
First, it lists all available user information in a detailed overview, accessible via the magnifying glass icon on the left.
The second feature is the deletion of the user account by using the recycle bin icon on the right. When clicking on the icon, the user has to confirm the deletion by answering a security question.
Fig. 20: Icons.
The last feature allows the user to edit his data via the pencil icon in the middle. By clicking on it, the following window appears:
Fig. 21: User management page.
On this page, the user may change his data. Upon updating the information, changes are submitted by clicking on the button marked “Speichern”.
In order to enter a list of teachers, the user has to click on the button “Lehrer importieren”.
Fig. 22: Importing teachers.
By clicking on the button “Durchsuchen”, the user opens a window where he can select a .csv file. To import data, it is necessary to fill in the columns surname, first name, email address and title while at the same time paying attention to their order. The email column is optional; in case it is missing in the .csv file, the email addresses will be generated automatically.
Once a file is selected, the user has to click on the button “Importieren”.
If the teacher or the administration would like to generate TANs, they have to click on “Tanverwaltung” in the menu.
Fig. 23: Menu: TAN management.
Upon selecting the button “Tan generieren”, the following window appears:
Fig. 24: Page: TAN generation.
The user has to enter the number of TANs he would like to generate; the minimum is set at one, the maximum at 100 TANs.
In order to access the student management page, the administrator has to click on the button marked “Schülerverwaltung”.
Fig. 25: Menu: Student management.
A list of all students appears. Their data may be updated the same way as the user data (described in part 3.2). A new student is created by clicking on the button “Schüler anlegen”, which opens the following window:
Fig. 26: Student management page.
On this page, the user has to enter the student’s first name and surname and then click on “Anlegen”.
If an administrator logs in, this page is immediately displayed. He may also click on the menu button „Elternsprechtagsverwaltung“, showing a list of all existing parent-teacher conferences.
To create a new parent-teacher conference, the user has to click on the button “Elternsprechtag erstellen”, opening the window shown below:
Fig. 27: Page: Administration.
The fields determining the date, start time, end time and duration of an appointment are compulsory and have to be entered in the form shown on the right. After entering the information, the user has to click on “Anlegen”.
+ Feature
- Bugfix
+ Es wurde ein Fehllogincounter eingebaut, der vom Administrator konfiguriert werden kann
+ Benutzerverwaltung: Sortierung nach Status und Rolle eingefügt
+ Erstellung eines Installationsskripts
+ Beim automatischen erstellen der Lehreraccounts kann das Passwort jetzt zufällig generiert werden
+ Die Terminbuchung für Eltern kann jetzt gesperrt werden
+ Attributsuche Benutzerverwaltung
+ Verbergen der ID beim Autocomplete bei der Selektierung
- Es wurde eine Fehlermeldung bei der Termineintragung, wenn keine Kinder in dem Account eingetragen waren, eingefügt
- Elternsprechtagserstellung: Es wurde ein Fehler behoben, der auftrat, wenn keine Zeit eingetragen wurde
- Kinder löschen: Es wurde ein Fehler behoben, bei dem das Löschen von fremden Kindern möglich war, indem man die ID in der Adresszeile eingetragen hat
- Terminanzeige für Eltern: Es wurde ein Fehler behoben, bei die echte ID und keine Nummerierung angezeigt wurde
- Terminbearbeitung: Es wurde ein Berechtigungsproblem behoben, da die Administratoren Termine bearbeiten konnten, die Verwaltung aber nicht
- Datum eines Elternsprechtags lässt sich nun wieder ändern
- Drucklayout wurde repariert
- Beim Erstellen eines Termins wurde zum Teil eine Exception geworfen
- Druckansicht um Zeitpläne zu drucken war defekt
- Umlautfehler in E-Mails behoben
+ Testmails können nun auf der Konfigurationsseite gesendet werden um die SMTP Einstellungen zu testen
+ Es wurden Infofelder in der Konfiguration für die Terminblockierung hinzugefügt
+ Es gibt nun eine Funktion, damit alle Lehrerpläne angezeigt und gedruckt werden können.
+ PHPMailer Update
+ Spalte "username" wurde in der Datenbank entfernt, da sie redundante Informationen enthielt (waren in Spalte "email" bereits enthalten
+ Anzeige für geblockte Termine wurde in der Adminansicht verschönert
+ Config Parameter "textheader" wurde entfernt
- Infofelder in der Konfiguration werden wieder angezeigt
+ Update von Foundation 4 auf Foundation 5, damit einhergehend komplettes Redesign
+ Schülerimport über CSV Datei
+ Übersetzung Deutsch->Englisch
+ Config Parameter "mailsActivated" wurde entfernt
Repository Mirror: https://github.com/Professi/esta
Siehe einleitend:
http://www.elternsprechtagsanwendung.de
Um Zugriff auf das Repository zu erhalten oder um Tickets zu erstellen, muss man sich hier im Redmine registrieren.
Eine Demo der stabilen Version ist unter
http://synlos.net/esta
zu finden.
Testdaten:
Zugriffsdaten DemoPage
Mindestens | Empfohlen |
Mozilla Firefox: 3.6 | Mozilla Firefox: >= 41 |
Microsoft Internet Explorer: 9 | Microsoft Internet Explorer: 10/11 |
Google Chrome/Chromium: 5 | Google Chrome/Chromium: >= 46 |
Apple Safari: 4 | Apple Safari: 9 |
Opera: 12.1 | Opera: 31 |
Für weitere Browser: http://foundation.zurb.com/docs/compatibility.html
Das Passwort ist bei jedem Account "passwort"
Verwalteraccount:
verwaltung@synlos.net
Lehrer:
max@synlos.net
heinz@synlos.net
peter@synlos.net
Eltern:
max2@synlos.net
olaf@synlos.net
falk@synlos.net
Liste mit Tans:
TANS