Software Architekturen Assignment 2 – Footbook Use Cases

In diesem Beitrag möchte ich kurz die implementierten Use Cases beschreiben. Es konnten aus Zeitgründen und aufgrund von einigen technischen Hindernissen nicht alle geforderten Use Cases umgesetzt werden. Apache Tapestry ist außerordentlich leistungsstark und einfach zu erlernen. Allerdings, wenn es darum geht, bestimmte speziellen Anforderungen (Ajax-Notification) umzusetzen war es mir leider nicht möglich, in der kurzen Zeit das Framemork genau zu erforschen.

Use Cases

1. Authentifizieren eines Benutzers

Beim ersten anmelden eines Benutzers werden in der Datenbank einige Dummy-User in der Datenbank angelegt. Ein Beispielbenutzer ist root mit dem Passwort secret.

image

Sofern der der User erfolgreich authentifiziert wurde, wird dieser auf die Startseite weitergeleitet, auf der er alle öffentlichen Nachrichten, die er oder andere User, die in seiner Freunde-Liste vorhanden sind, gepostet haben.

image

Sofern der Benutzer nicht erfolgreich authentifiziert wurde, erscheint eine Warnmeldung, dass der eingegebene Benutzername oder Passwort falsch sind.

image

2. Suchen und Hinzufügen von Usern in die Freunde-Liste des angemeldeten Benutzer

Der authentifizierte Benutzer muss auf die Such-Seite wechseln, und kann dort nach allen registrierten Benutzern im System suchen. Dazu muss er den User-Radio-Button wählen und kann entweder ein Suchkriterium (z.B.: beliebiger Buchstabe, etc.), bzw. ohne Suchkriterium nach allen Benutzern suchen. Mittels Clear-Button können die angezeigten Daten und das Suchkriterium gelöscht werden.

image  image

Nachdem z.B.: der Benutzer User11 gesucht und gefunden wurde, kann dieser, sofern er noch nicht in der Freunde-Liste aufgenommen wurde, zu dieser hinzugefügt werden. Hierzu muss der Link Add as Friend geklickt werden. Wurde der Benutzer erfolgreich hinzugefügt, wechselt der Link zu einem Friend-Label.

image

Nun kann auf die Friends-Seite gewechselt werden, um alle bereits hinzugefügten Freunde betrachten zu können. Der neu hinzugefügte Freund sollte auf der zweiten Seite der Freunde-Liste erscheinen.

image  image

Natürlich wurde der angemeldete Benutzer auch in die Freunde-Liste des neu hinzugefügten Benutzers aufgenommen.

image

3. Blockieren eines Benutzers

Der zu blockierende Benutzer muss in der Freunde-Liste des angemeldeten Benutzers existieren. Mann kann Benutzer auf zwei Arten blockieren: Über die Suche kann nach dem Benutzer gesucht werden und sofern dieser ein Freund des angemeldeten Benutzers ist, kann auf den Block User Link geklickt werden. Dadurch wird der Link durch ein Blocked-Label ausgetauscht. Ebenfalls wechselt der Friend Label zu einem Ad as Friend Link.

image image

Wie sicherlich schon aufgefallen ist, handelt es sich bei der Nachricht: No search result. um einen Bug.

Sofern der User blockiert wurde, ist er ab diesem Zeitpunkt in der Liste der Blocked User zu finden. Dazu muss der gleichnamige Link geklickt werden um auf diese Seite zu wechseln.

image

Wenn ein User blockiert wurde, verschwindet natürlich der angemeldete Benutzer auch aus der Freunde-Liste des blockierenden Benutzers.

image 

Natürlich verschwinden daher auch alle öffentlichen Nachrichten des jeweiligen Benutzers auf der Startseite des jeweils anderen Benutzers.

image

Die zweite Art einen Benutzer zu blockieren ist, indem man auf die Profile-Seite des zu blockierenden Benutzers wechselt und dort den Block User Link betätigt.

image

Man kann auf die Profile-Seite des zu blockierenden Benutzers über die Freunde-Liste oder über die Suche gelangen. Dazu klickt man einfach auf den gewünschten Benutzer. Wenn man den Block User Link geklickt hat, wechselt die Applikation automatisch auf die Friends-Seite.

4. Öffentliche Nachrichten hinzufügen

Hierzu muss der angemeldete Benutzer auf der Startseite einen beliebigen Text auf in das Textfeld eingeben und auf den Share-Button klicken. Danach wir die Nachricht auf der Startseite angezeigt.

image

Diese Nachricht kann von allen Freunden des angemeldeten Benutzers ebenfalls auf deren Startseite betrachtet werden. Ich habe den root Benutzer zur Freunde-Liste des User11 hinzugefügt. Melde ich mich jetzt nun als root an, kann ich die von User11 hinzugefügte Nachricht ebenfalls sehen. Die Nachrichten werden nach dem Zeitpunkt des Hinzufügens sortiert angezeigt. Ebenso kann der User11 die Nachricht des root Benutzers nun auf seiner Startseite sehen.

image image image

5. Kommentieren einer öffentlichen Nachricht

Wenn ein angemeldeter Benutzer eine öffentliche Nachricht kommentieren möchte, muss er den Comments Link der zugehörigen Nachricht klicken. Dabei wird auf eine Seite gewechselt die alle Kommentare dieser Nachricht anzeigt. Auf dieser Seite wird die Nachricht selbst und der Autor der Nachricht noch einmal angezeigt.

image

Dieser Workflow war ein Workaround. Ursprünglich wollte ich die Nachricht mit allen ihren Kommentaren auf der Startseite anzeigen. Auch die Möglichkeit des Kommentierens sollte auf der Startseite möglich sein. Da es mir aber nicht möglich war, mehrere Apache Tapestry Form Komponenten auf der Startseite mittels einer Tapestry For Komponente zu implementieren, habe ich mich für die jetzige Variante entschieden.

Um ein Kommentar hinzufügen zu können, muss der angemeldete Benutzer einen beliebigen Text in das entsprechende Textfeld eingeben und danach den Comment-Button klicken. Die Funktionalität des Delete Comment Button wurde nicht implementiert und endet daher nach Betätigung in einer Exception.

image

Natürlich können Kommentare von allen Freunden des Benutzers gelesen werden. Selbstverständlich können selbst Kommentare der Freunde hinzugefügt werden. Kommentare werden wieder in der entsprechenden Reihenfolge angezeigt.

image

6. Suche nach öffentlichen Nachrichten

Den angemeldete Benutzer kann nach allen öffentlichen Nachrichten suchen. Dazu muss er auf die Search-Seite wechseln und die Option Posts wählen. Wenn nun der Search-Butten ohne Suchkriterium geklickt wird, werden alle öffentlichen Nachrichten die der Benutzer selbst bzw. die Freunde des Benutzers erstellen haben, angezeigt.

image

Je nachdem ob es sich um ein Kommentar zu einem Post bzw. um einen Post selbst handelt, gibt es die entsprechende Möglichkeit entweder den Post der kommentiert wurde bzw. die Kommentare zu dem Post anzuzeigen.

Nicht umgesetzte Use Cases

  • Ajax-Request für Notifikationen
  • Private Nachrichten
  • Passwort wurde nicht verschlüsselt

In der jetzigen Version ist es zwar möglich private Nachrichten zu senden, jedoch ist diese Funktionalität nicht in der abgegebenen Version implementiert. Bezüglich des Ajax-Requests war es mir leider überhaupt nicht möglich, eine entsprechende Komponente bzw. Funktionalität zu finden die diesen Use Case ermöglicht hätte. Ich habe zwar einige Test-Beispiele in der Tapestry Version entdeckt allerdings haben diese den geforderten Use Case nur teilweise abgedeckt. Natürlich hat im Endeffekt die Zeitknappheit auch eine tragende Rolle gespielt.

Trotzdem denke ich, dass die Anwendung ganz brauchbar umgesetzt wurde. Hätte ich noch ein paar Tage mehr gehabt, wäre es sicherlich möglich gewesen, zumindest die privaten Nachrichten umzusetzen. Wie immer ist mir jedoch die Zeit zu knapp geworden.

Über sageniuz

https://about.me/ClausPolanka
Dieser Beitrag wurde unter University veröffentlicht. Setze ein Lesezeichen auf den Permalink.

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s