MSP: Vision Document HUE "google-Calendar"

Aus THM-Wiki
Wechseln zu: Navigation, Suche

Das folgende Dokument beschreibt in Form eines Vision Documents die Hausübung des Kurses Methoden des Softwareentwicklungsprozesses. Diese Hausübung wurde selbständig ausgewählt und in diesem Dokument beschrieben. Die Bewertung und Bearbeitung findet als Einzelnachweis statt.

Introduction

Bei einer Umfrage, an der alle Benutzer der Kollaborationsplattform eStudy teilnehmen konnten, hat sich herauskristalisiert, dass die Benutzer die Synchronisation verschiedener Kalender-Versionen wünschen. Hierzu zählten unter anderem der iCalendar oder der Google-Calendar. Das Portal eStudy besitzt für die Portal-Mitglieder ein eigenes Kalender-Modul. Hier ist es möglich Termine mit einer Gruppe/eCom oder einem Kurs abzusprechen. Diese Termine werden portalweit angezeigt.

Dennoch werden von den Benutzern auch weiterhin die Kalender von Google oder anderen Anbietern verwendet. Um alle Termine übersichtlich erhalten zu können, müsste man dementsprechend mehrere Programme oder Browsertabs öffnen, um einen freien Termin bei einer Terminabsprache zu finden

Dies wird oftmals jedoch nicht gemacht, sodass das Kalendermodul des Portals eStudy dahin gehend erweitert werden soll, sich mit dem Google-Kalender zu synchronisieren.

Business Needs/Requirements

  • Für die Erweiterung des Kalender-Moduls der Kollaborationsplattform eStudy wird das Zend-Framework [1] verwendet.
  • Weiterhin ist ein Account bei Google notwendig, um den Google-Kalender verwenden zu können.
  • Um die Verbindung zum Google-Kalender herzustellen, wird die Google-Kalender-API verwendet.

Product/Solution Overview

Anhand eines weiteren Buttons, der im eStudy Kalender-Modul eingearbeitet werden muss, soll es dem Benutzer möglich sein, alle Termine mit dem Google-Kalender abzugleichen und in diesem einzutragen. Zusätzlich soll die Möglichkeit geschaffen werden auch einzelne Termine zu synchronisieren.

  • Es soll folgende Funktionalität geschaffen werden:
    • Ein Benutzer soll Termine in den eStudy-Kalender importieren können,
    • Ein Benutzer soll Termine aus dem eStudy-Kalender in den Google-Kalender exportieren können.

Major Features (Optional)

Wie in Product/Solution beschrieben.

Scope/Limitations

  • Der Benutzer muss dafür Sorge tragen, einen Google-Account zu besitzen, damit Termine mit dem Google-Kalender synchronisieren zu können.
  • Um die Funktionalität des Google-Kalenders verwenden zu können, benötigt der Benutzer einen Internet Anschluss, sowie einen Computer, der Zugriff auf das Internet hat. Auch hierfür ist der Benutzer selbst verantwortlich.

Other Needs

Absprache mit Herrn Volkmer, der gleichzeitig am Kalender-Modul arbeitet und die Funktionalität der Synchronisation mit dem iCalendar schaffen wird[3]. Hier ist besonders wegen der Oberfläche Absprache zu halten, damit die Oberfläche des Kalenders durch zusätzliche Buttons nicht überladen wirkt.

HÜ Abgabe

Das entstandene Feature im Rahmen der MSP Hausübung mit einem Umfang von 20 Stunden soll in diesem Abschnitt noch einmal beschrieben werden, damit sich die Benutzer einen Überblick verschaffen können, wie dieses Feature funktioniert und an welcher Stelle innerhalb eStudy's die Änderungen auftreten.

Allgemeines

Nach einer ersten intensiven Code-Analyse wurde klar, dass die als Vision festgehaltenen Features nicht gar so einfach umgesetzt werden können, wie zunächst geplant. Diese Code-Analyse ebanspruchte bereits fast 2 Stunden. Teilweise wurden in einer Klassendatei bereits vor Beginn der eigentlichen Klasse Ausgaben angewiesen, die sich bei jeder Verwendung dieser Klasse bemerkbar machten. Da es sich hierbei um die Klasse, welche die Daten aus der Datenbank entnehmen sollte, handelte, weder Tests noch klare Trennungen zwischen Ausgabe und Datenbankabfrage vorhanden waren, habe ich mich entschlossen, eine eigene Implementierung einer solchen Klasse zu schreiben. Im Folgenden wurde nun eine schlanke Klasse zu Gewinnung der benötigten Daten implementiert.

Bilder und Beschreibung

  • Bild 1: Das erste Bild zeigt das eStudy-Foyer nach Login eines Benutzers. Für dieses Feature ist es egal, welcher Benutzer sich einloggt und welcher Benutzerrolle er angehört. Von Administrator bis Student, jeder kann dieses Feature benutzen. Vorraussetzungen sind einen Google-Kalender Account sowie einen eStudy Account.
  • Bild 2: Bild zwei zeigt die normale eStudy Kalender-Ansicht. Hier sieht man bereits erste Änderungen. Es sind zwei Links hinzugekommen. Einer für einen iCal Export, der andere für den Google-Kalender. Drückt man diesen Google-Link, wird durch einen Slide-Up/Slide-Down Effekt die Möglichkeit zur Eingabe der Google-Kalender-Account Daten angezeigt.
  • Bild 3: Hier sieht man, dass eine Fehlermeldung angezeigt wird, wenn falsche Zugangsdaten eingegeben werden.
  • Bild 4: Nachdem man erfolgreich die Google-Account Zugangsdaten eingegeben hat, werden die Google Termine im Kalender sowie in der Nächster Termin Box angezeigt, wenn es sich bei dem Google Termin um den nächsten termin handeln sollte.
  • Bild 5: Hier ist zu sehen, wie ein Google Termin im Kalender angezeigt wird. Er hat einen Zusatz, nämlcih Google Termin. Klickt man auf den Link des Termins, oder den Link in der Nächster Termin Box, so wird ein Detail-Window geöffnet mit den Termindaten - genau wie bei einem eStudy Termin.
  • Bild 6: Natürlich werden Google Termine auch im im Foyer angezeigt. Das Detail-Window erscheint bei einem Klick auf Lesen.

Die Zugangsdaten für den Google-Account werden, wenn man diese eingibt in der Session gespeichert. Das bedeutet, dass man jedesmal, wenn man sich neu einloggt und seine Google Termine einsehen möchte, diese Zugangsdaten erneut eingeben muss.

Weitere Entwicklungsmöglichkeiten

  • Möglichkeit 1: Wie bereits geschrieben, werden due Google-Account Zugangsdaten bisher nur in der Session gespeichert. Hier könnte man die Möglichkeit anbieten, diese Zugangsdaten im Profil eines Users einzugeben und diese dann in der Datenbank speichern.
  • Möglichkeit 2: Bisher werden Google Termine nur angezeigt, wenn man seine Account Zugangsdaten eingegeben hat. Man könnte hier einen Button zum Speicherm einfügen. Drückt man diesen Button wird jeweils der einzelne Termin, auf dessen Button man gedrückt hat in der Datenbank gespeichert.
  • Möglichkeit 3: Alle Google Termine in der eStudy Datenbank speichern. Dieses Feature war im Rahmen der MSP Hausübung leider ebenfalls nicht möglich. Man könnte einen Button anbieten, um alle Google-Termine in der eStudy Datenbank zu speichern. Hier braucht man jedoch dann weitere Funktionen, die überprüfen, ob ein termin bereits in die Datenbank gespeichert wurde und man muss beachten, dass ein solcher Termin innerhalb von eStudy dann verändert werden könnte, aber auch innerhalb des Google-Kalenders.
  • Möglichkeit 4: Man könnte die Links durch Buttons/Icons ersetzen. Diese Option habe ich in meiner Implementierung beabsichtigter Weise nicht einegfügt. Ein Google-Icon sieht zu sehr nach Werbung für Google aus, bzw. als wenn eStudy durch Google gesponsort werden würde.
  • Möglichkeit 5: Refactoring der bestehenden Klassen und Dateistruktur (innerhalb des Refactoringkurses).

Links

[1] http://framework.zend.com/docs/overview

[2] http://framework.zend.com/manual/en/zend.gdata.calendar.html

[3] http://wiki.mni.fh-giessen.de/index.php/MSP:_Vision_Document_H%C3%9C_%22iCalendar%22

--Henry-SHe 11:04, 3. Nov. 2008 (UTC)