-
Notifications
You must be signed in to change notification settings - Fork 0
Übung 2 | Kurzbeschreibung
Im Rahmen der 2. Übung möchten wir einen Prototypen für unser konzipiertes CSDR-System erstellen, der die zentralen Use-Cases rund um das Erstellen von Spendenangeboten veranschaulicht. Dabei werden wir uns auf den Use Case "Angebot für eine Sachspende erstellen" konzentrieren und diesen im Sinne eines vertikalen Prototyps durch alle Schichten hindurch implementieren (siehe A.1).
Weiters möchten wir mit Hilfe eines repräsentativen Prototyps die aus Sicht des Hilfsbedürftigen dazu passenden Use-Cases, "Angebotene Spenden auflisten" und "Interesse an einem Spendenangebot bekunden" unter Vewendung eines horizontalen Prototyps implementieren. Hier werden wir den Fokus auf das User Interface und den Client legen (siehe A.2).
Für die Implementierung durch alle vertikalen Schichten (Client/Server/Betrieb) haben wir uns für den Use-Case “Angebot für eine Sachspende erstellen” entschieden (siehe hierfür die entsprechende Passage im Konzept aus UE1). Besonderer Fokus soll hierbei auf der clientseitigen Umsetzung liegen.
Da im Katastrophenfall die verfügbare Bandbreite meist beschränkt sein wird, ist es unserer Ansicht nach essenziell für ein CSDR möglichst viel an Bandbreite zu sparen. Wir möchten dies durch den Einsatz von Technologien wie HTTP Kompression (gzip/deflate), JS/CSS Kompression (automatisiert durch Build-Tools wie Grunt/Gulp bzw CSS-Präprozessoren) und Layered Images respektive Sprites erreichen. Diese Techniken möchten wir bereits im Prototyp einsetzen.
Um die Eingabe von Spenden-Angeboten zu ermöglichen, soll unser Prototyp ein Eingabeformular inkl. client- und serverseitiger Validierung implementieren. Vor dem Versand zum Server soll der Benutzer eine Übersicht über die eingegebenen Daten erhalten, damit er eventuelle Korrekturen vornehmen kann (siehe entsprechende Wireframes).
Es werden somit drei HTML-Templates benötigt:
- Eingabe der Daten (Titel, Beschreibung, Foto, Stückzahl, Kategorie, etc.)
- Übersicht über die eingegebenen Daten
- Gestelltes Spenden-Angebot anzeigen (inkl. Meldung der erfolgreichen Speicherung des Spenden-Angebots)
Die Use-Cases zur Verwaltung der Daten, die für bestimmte Dropdown-Felder benötigt werden (z.B. Kategorien) sind nicht Teil der Implementierung des Prototyps und werden statisch entsprechend abgelegt.
Die mobile Version soll in Funktionsweise und Umfang der Desktop-Version entsprechen, jedoch für mobile Clients angepasst sein (Stichwort Responsive Design über CSS / Media Queries). Wenn möglich möchten wir zusätzliche Funktionen einbauen, die speziell für mobile Clients interessant sein könnten, wie z.B. Standort-Tracking für das Vorbefüllen der Adressfelder, oder das Schießen eines neuen Fotos für das Spenden-Angebot.
Die Applikation soll für den zentralen Use Case mit dem Backend kommunizieren, dass die Daten entgegennimmt (über HTTP POST), validiert und in weiterer Folge speichert (z.B. in einem DBMS). Da wir den Einsatz eines MVC-Frameworks planen, werden wir diese Funktionalität innerhalb einer Controller-Klasse implementieren die Modell-Klassen verwendet und Views für das Rendering des UIs aufruft.
Folgende Funktionalitäten im Hinblick auf den Betrieb der Applikation möchten wir im Zuge der Übung betrachten:
-
Autom. Deployment bzw. Updates: Auf Basis der Versionsführung im VCS Git soll eine Möglichkeit geschaffen werden, die letzte stabile Version bei Bedarf automatisch an einen Server zu deployen.
-
Development-/Production-/Test-Umgebung Das Produktiv-System soll möglichst gut in einer Vagrant-VM (http://www.vagrantup.com) abgebildet werden, die dann an alle Team-Mitglieder zur lokalen Entwicklung verteilt werden soll.
Die horizontale (auf ein bis zwei Schichten beschränkte) Implementierung von Use-Cases soll jene Anwendungsfälle beinhalten, die mit dem Schwerpunkt-Use-Case "Angebot für eine Sachspende erstellen" in Zusammenhang stehen. Dabei soll die clientseitige Umsetzung forciert werden, und nur dort wo nötig andere Schichten implementiert werden.
Folgende Use-Cases sollen hier betrachtet werden:
-
"Login für hilfsbedürftige Personen": Login-Maske mit Benutzername, Passwort, ev. Login-System im Backend für einen statisch definierten Benutzer.
-
"Durchsuchen von Sachspenden": Listenansicht der verfügbaren Sachspenden (wie in den Wireframe skizziert), rudimentäre Filterfunktion nach vorhandenen Kategorien (basierend auf Frontend-Technologien wie JS und CSS).
-
"Interesse an einem Spendenangebot bekunden": Button "Brauch' ich" mit Meldung dass Interesse am Spenden-Angebot bekundet wurde.
- Serverseitig: Java-basierendes MVC-Framework (Play (http://www.playframework.com) oder JSF)
- Clientseitig: jQuery + jQuery UI
- DBMS: File-basierte DB (SQLite, HSQLDB) per JDBC Treiber
Arbeitsversion: https://docs.google.com/document/d/1Dn-6xTbegtAmXBS88LEFgQ1vdDFgEe0JV7LosF2j6cU/edit?usp=sharing