Seiten nach Titel sortiert

Version 1.2 (r691)

+ 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


Version 1.3

Verbesserungen/Features

+ 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

Behobene Fehler

- 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


Version 1.5.x

Version 1.5.4

+ Die E-Mail Adresse der Eltern wird jetzt den Lehrern in der Terminübersicht angezeigt

Version 1.5.3

- 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

Version 1.5.2

+ 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

Version 1.5.1

- 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"

Version 1.5.0

- 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


Angebot

Inhaltsverzeichnis

Angebot

Anhänge:

1 Planung

1.1 Zeitplanung
1.2 Lizenzen (fremde)
1.3 Lizenzen (eigene)

2 Umfang

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

Angebot

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.

1 Planung

1.1 Zeitplanung


Abb. 1: GANTT-Diagramm

1.2 Lizenzen (fremde)

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.

1.3 Lizenzen (eigene)

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.

2 Umfang

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.

2.1 Grundfunktionen

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 Zusatzfunktionen

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.

2.3 Administration

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.

2.4 Datenschutz

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 Design

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


Benutzerhandbuch

Inhaltsverzeichnis

1 Allgemeines

1.1 Registrierung
1.2 Login
1.3 Kinder hinzufügen
1.4 Accountverwaltung
1.5 Passwort vergessen
1.6 Hilfe bei Fragen

2 Terminvereinbarung

2.1 Menü
2.2 Lehrerfilter
2.3 Termin festlegen
2.4 Listen drucken

3 Verwaltung

3.1 Termine manuell eintragen
3.2 Benutzerverwaltung
3.3 Lehrer einlesen
3.4 TANs erstellen

4 Administration

4.1 Schülerverwaltung
4.2 Datum des Elternsprechtags festlegen

1 Allgemeines

Der folgende Screenshot zeigt die Hauptseite der Elternsprechtagssoftware.


Abb. 1: Startseite

1.1 Registrierung

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.

1.2 Login

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

1.3 Kinder hinzufügen

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)

1.4 Accountverwaltung

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.

1.5 Passwort vergessen

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

1.6 Hilfe bei Fragen

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.

2 Terminvereinbarung

2.1 Menü

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

2.2 Lehrerfilter

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.

2.3 Termin festlegen

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

2.4 Terminliste drucken

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.

3 Verwaltung

3.1 Termine manuell eintragen

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.

3.2 Benutzerverwaltung

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.

3.3 Lehrer einlesen

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.

3.4 TANs erstellen

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.

4 Administration

4.1 Schüler verwalten

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.

4.2 Datum des Elternsprechtags festlegen

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.


BlockAppView

createBlockApp.php

<?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>

renderPartial-Form

<?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(); ?>

Changelog

Version 1.5

Version v1.4

Version 1.3

Version 1.2

Version v1.1


Dokumentation

Inhaltsverzeichnis

1 Thematisierung und Projektumfeld

1.1 Thematisierung
1.2 Projektumfeld
1.2.1 Projektteam
1.2.2 Auftraggeber
1.2.3 Softwareumgebung

2 Planung

2.1 Zeitplanung
2.2 Ressourcen
2.3 Kosten

3 Lösungskonzept

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 Realisierung

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 Tests

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 Projektergebnis

6.1 Soll/Ist Vergleich
6.1.1 Zeiten
6.1.2 Software
6.2 Verlauf
6.3 Ergebnis und Fazit
6.4 Ausblick

1 Thematisierung und Projektumfeld

1.1 Thematisierung

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 Projektumfeld

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.

2 Planung

2.1 Zeitplanung

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

2.2 Ressourcen

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.

2.3 Kosten

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

3 Lösungskonzept

3.1 Ziele

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.

3.2 Funktionalitäten

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 Diagramme

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.

3.4 Datenbankmodell


Abb. 6: Datenbankstruktur

Das Datenbankmodell wurde mit MySQL Workbench Version 5.2.47 erstellt.

4 Realisierung

4.1 Gestaltung der grafischen Oberfläche

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

4.2 Umsetzung

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.

4.3 Probleme

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.

5 Tests

5.1 Testkonzepte

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 Testfälle

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.

5.3 Testprotokolle

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 Projektergebnis

6.1 Soll/Ist Vergleich

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.

6.2 Verlauf

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.

6.3 Ergebnis und Fazit

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.

6.4 Ausblick

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.


FAQ

Fragen:

Antworten:

Wie registriere ich mich?

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.

Was mache ich, wenn ich mein Passwort vergessen habe?

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.

Wie kann ich Schüler hinzufügen?

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.

Wie kann ich meine Benutzerdaten ändern?

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.

Wie kann ich einen Termin vereinbaren?

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.

Wie kann ich einen Termin löschen? (Eltern)

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.

Wie kann ich einen Termin löschen? (Lehrer)

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.

Wie kann ich meine Termine drucken?

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.

Wie kann ich die Schule kontaktieren?

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.


Infotext Konfigurations

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.


Installationsanleitung

Voraussetzungen

Folgende Komponenten werden für einen reibungslosen Betrieb der Anwendung benötigt:

Konfiguration

Composer - Ab Version 1.5.2

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.

Zugriffsrechte unter Linux

Anwendungskonfiguration

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.

Sicherung

Log Datei

Die Datei liegt unter app_root/protected/runtime/application.log


Lastenheft

1 Allgemeines

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.

2 Grundaufbau

2.1 Unregistrierte Benutzer

2.1 Rolle der Eltern

2.2 Rolle der Lehrer

2.3 Rolle der Verwaltung

2.4 Rolle der Administratoren

3 Abgrenzungskriterien


Migrationen/Migrations

1.4.x to 1.5

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.

1.4 to 1.4.1

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.

v1.3 to v1.4

In der Datenbank muss in der Tabelle 'configs' der Eintrag "mailsActivated" gelöscht werden.
In table 'configs' the data record 'mailsActivated' must be deleted.


Pflichtenheft

Inhaltsverzeichnis

1 Projektstammdaten

1.1 Titel
1.2 Auftraggeber
1.3 Projektteam
1.4 Datenspeicherung
1.5 Projektumgebung
1.6 Namensgebung

2 Zielbestimmung

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 Qualitätsanforderungen

4.1 Datenschutz
4.2 Usability
4.3 Barrierefreiheit

5 Prototypen

5.1 Anmeldeseite
5.2 Registrierung
5.3 Terminliste
5.4 Lehrersuche
5.5 Termineintragung
5.6 Benutzerverwaltung

6 Diagramme

6.1 UML-Anwendungsfalldiagramm
6.2 Datenbankstruktur

7 Testfälle

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 Zeitpläne und Meilensteine

8.1 Meilensteine
8.2 GANTT-Diagramm
8.3 Deadlines

Projektstammdaten

1.1 Titel

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.

1.2 Auftraggeber

Das Projekt wurde von der Brühlwiesenschule in Hofheim beauftragt, um den Ablauf des Elternsprechtags zu optimieren.

1.3 Projektteam

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.

1.4 Datenspeicherung

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.

1.5 Projektumgebung

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.

1.6 Namensgebung

Im nachfolgendem wird die Liste der Lehrer Zeitplan und die Liste der Eltern Terminliste genannt.

2 Zielbestimmung

2.1 Musskriterien

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.

2.2 Kannkriterien

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.

2.3 Abgrenzungskriterien

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.

3 Produktaufbau und Produktfunktionen

3.1 Produktaufbau

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 Grundfunktionen

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 Funktionen für die einzelnen Benutzer

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.

4 Qualitätsanforderungen

4.1 Datenschutz

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.

4.2 Usability

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.

4.3 Barrierefreiheit

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.

5 Prototypen

5.1 Anmeldeseite


Abb. 1: Anmeldeseite

5.2 Registrierung

Die Registrierungsseite kann von der Anmeldeseite aus erreicht werden und ist ebenfalls für nicht registrierte Benutzer sichtbar.


Abb. 2: Registrierung

5.3 Terminliste

Die Terminliste wird direkt nach dem Login angezeigt, falls bereits Termine vereinbart wurden.


Abb. 3: Terminliste

5.4 Lehrersuche

Die Lehrersuche kann über das Menü aufgerufen werden und ist eine Filterfunktion für Lehrer, um die Termineintragung zu vereinfachen.


Abb. 4: Lehrersuche

5.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. 5: Zeitplan

5.6 Benutzerverwaltung

Die Benutzerverwaltung ist nur für Administratoren sichtbar und kann zum Erstellen und Bearbeiten der Benutzer verwendet werden.


Abb. 6: Benutzerverwaltung

6 Diagramme

6.1 UML-Anwendungsfalldiagramm


Abb. 7: UML-Anwendungsfalldiagramm

6.2 Datenbankstruktur

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

7 Testfälle

Die Testfälle berücksichtigen die Reihenfolge, in der die Schritte bei einem Ablauf des Elternsprechtags erfolgen würden.

7.1 Modultest

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.

7.2 Integrationstest

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 Systemtest als Blackboxtest

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.

8 Zeitpläne und Meilensteine

8.1 Meilensteine

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.

8.2 GANTT-Diagramm

Im folgendem Diagramm sind die Meilensteine mit MS abkürzt.


Abb. 9: GANTT Diagramm

8.3 Deadlines

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

Präsentation

Fehler

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

Ablauf:

Rolle Eltern:

Rolle Lehrer:

Rolle Verwaltung:

Rolle Administrator:


Präsentation


TANS

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


User Manual

Table of contents

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 School administration

3.1 Entering appointments manually
3.2 User management
3.3 Importing teachers
3.4 Creating TANs

4 Software administration

4.1 Managing students
4.2 Scheduling the day of the parent-teacher conference

1 General information for parents

The following screenshot shows the home page of the parent-teacher conference application.


Fig. 1: Home Page

1.1 Registration

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.

1.2 Logging in

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.

1.3 Adding children

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).

1.4 Account management

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.

1.5 Forgot your password?

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

1.6 Help with questions

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”.

2 Scheduling an appointment with a teacher

2.1 Menu

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.

2.2 Filtering teachers

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.

2.3 Scheduling an appointment

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.

2.4 Printing an appointment list

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”.

3 School administration

3.1 Entering appointments manually

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.

3.2 User management

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”.

3.3 Importing teachers

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”.

3.4 Creating TANs

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.

4 Software administration

4.1 Managing students

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”.

4.2 Scheduling the day of the parent-teacher conference

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”.


Version 1.1 (r418)

+ 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


1.4.x

Version 1.4.2

- 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

Version 1.4.1

+ Config Parameter "textheader" wurde entfernt
- Infofelder in der Konfiguration werden wieder angezeigt

Version 1.4.0

+ Update von Foundation 4 auf Foundation 5, damit einhergehend komplettes Redesign
+ Schülerimport über CSV Datei
+ Übersetzung Deutsch->Englisch
+ Config Parameter "mailsActivated" wurde entfernt


Wiki

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

Dokumente

Installationsanleitung

Migrationen

FAQ

Changelog

Pflichtenheft

Benutzerhandbuch

User Manual

Dokumentation

Browsersupport

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


Zugriffsdaten für die Demo Page

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