Download - Aski Onlinefragebogen
![Page 1: Aski Onlinefragebogen](https://reader035.vdokument.com/reader035/viewer/2022062322/56814fc8550346895dbd8601/html5/thumbnails/1.jpg)
Fachhochschule Zittau/GörlitzFachbereich Informatik
Denny Israel, Daniel WinterChristian Schäfer, Michael Kohlsche
Dozent: Lars Rönisch
![Page 2: Aski Onlinefragebogen](https://reader035.vdokument.com/reader035/viewer/2022062322/56814fc8550346895dbd8601/html5/thumbnails/2.jpg)
Aski - EinleitungWeb-Anwendung zur Durchführung einer
BefragungBefragung zum Thema Kinder mir
DownsyndromErstellt von René Hofmann
Umsetzung des Systems mit GrailsWeb-FrameworkBasiert auf Sprache Groovy
![Page 3: Aski Onlinefragebogen](https://reader035.vdokument.com/reader035/viewer/2022062322/56814fc8550346895dbd8601/html5/thumbnails/3.jpg)
Aufüllung des FragebogensOnlineDurch Passwort zu schützen
AuswertungDurch angemeldete Manager (Passwortschutz)Mittels Diagrammen
SonstigesE-Mail-Versandt von EinladungenEinladungen als PDF-Dokument
Aski - Anforderungen
![Page 4: Aski Onlinefragebogen](https://reader035.vdokument.com/reader035/viewer/2022062322/56814fc8550346895dbd8601/html5/thumbnails/4.jpg)
Aski - SystemNutzung der von Grails
vorgegebenen ProjektstrukturMVC-PatternDatenmodell durch
Domain-KlassenLogik durch ControllerOberfläche durch Grails-
Server-Pages (vgl. JSP)Programmierung in Groovy,
Unterstützt durch Java
![Page 5: Aski Onlinefragebogen](https://reader035.vdokument.com/reader035/viewer/2022062322/56814fc8550346895dbd8601/html5/thumbnails/5.jpg)
Aski - WorkflowUmfrageausführung als Web-Flow
Grails Web-Flow System, basiert auf Spring Web FlowFestlegung Start-, End- und ZwischenstatesWeb Flow System kontrolliert Ablauf, ein „Mittenrein“-
Springen ist somit unmöglich → sichert Datenkonsistenz
Eingabenkontrolle beim Absenden einer MaskeSpeicherung der Ergebnisse am Ende des Flows
![Page 6: Aski Onlinefragebogen](https://reader035.vdokument.com/reader035/viewer/2022062322/56814fc8550346895dbd8601/html5/thumbnails/6.jpg)
Aski - WorkflowStates der Umfrageausführung
Start – Begrüßungsseite, evtl. Eingabemöglichkeit für Ticket-Passwort
Zwischenstates - Eingabeseiten für jede Kategorie (1-6)
Ende – Abschlusseite
![Page 7: Aski Onlinefragebogen](https://reader035.vdokument.com/reader035/viewer/2022062322/56814fc8550346895dbd8601/html5/thumbnails/7.jpg)
Aski - MailNutzung der Java-Mail-APIVersandt über SMTPDaten für SMTP werden in der Konfiguration
gespeichert und sind im Admin-Bereich einstellbarNutzung für das Versenden von Einladungen
Einladungstext ist ebenfalls in der Konfig. einstellbarNutzung auch für Versandt zurückgesetzter
Passwörter der Manager
![Page 8: Aski Onlinefragebogen](https://reader035.vdokument.com/reader035/viewer/2022062322/56814fc8550346895dbd8601/html5/thumbnails/8.jpg)
PDF-Erzeugung IPDF-Erzeugung mit iText mächtiges Open-Source Framework für Java
um PDF- Dateien zu erstellen und zu erweitern
ausgelagert in extra KlassePDF erhält kurzen Text, URL und ein Ticket
![Page 9: Aski Onlinefragebogen](https://reader035.vdokument.com/reader035/viewer/2022062322/56814fc8550346895dbd8601/html5/thumbnails/9.jpg)
PDF-Erzeugung IIneues Dokument wir erstellt
Document document = new Document(); Ränder werden gesetztdocument.setMargins(75, 75, 75, 75);
Paragraphen werden hinzugefügtParagraph paragraph = new Paragraph();
Font font = new Font(); Schriftgröße, Stylefont.setSize(14);
font.setStyle(Font.BOLD);
paragraph.setFont(font);
paragraph.add(subject);
document.add(paragraph);
Dokument wird geschlossendocument.close();
![Page 10: Aski Onlinefragebogen](https://reader035.vdokument.com/reader035/viewer/2022062322/56814fc8550346895dbd8601/html5/thumbnails/10.jpg)
PDF-Erzeugung IIIPDF-Datei wird nicht auf die Festplatte
geschrieben als Byte-Array weiter gegeben und verarbeitet
ByteArrayOutputStream output = new ByteArrayOutputStream();
PdfWriter.getInstance(document, output);
...
return output.toByteArray();
übernimmt die Änderungen und füllt Stream
gibt Stream als Byte-Array zurück
![Page 11: Aski Onlinefragebogen](https://reader035.vdokument.com/reader035/viewer/2022062322/56814fc8550346895dbd8601/html5/thumbnails/11.jpg)
PDF-Erzeugung IV
![Page 12: Aski Onlinefragebogen](https://reader035.vdokument.com/reader035/viewer/2022062322/56814fc8550346895dbd8601/html5/thumbnails/12.jpg)
Chart-Erzeugung IChart-Erzeugung mit JFreeChart sehr populäres Open-Source Framework für
Java um Diagramme zu erstellen
für jede Frage kann ein BarChart erzeugt werden
zeigen die Antworten in % an
![Page 13: Aski Onlinefragebogen](https://reader035.vdokument.com/reader035/viewer/2022062322/56814fc8550346895dbd8601/html5/thumbnails/13.jpg)
Chart-Erzeugung II
DataSet wird erzeugtDefaultCategoryDataset dataset = new DefaultCategoryDataset();
for(String key : keySet) {
double value = values.get(key) / allValues * 100;
dataset.addValue(value, key, "");
}
DataSet wird gefüllt
![Page 14: Aski Onlinefragebogen](https://reader035.vdokument.com/reader035/viewer/2022062322/56814fc8550346895dbd8601/html5/thumbnails/14.jpg)
Chart-Erzeugung IIIChart wird erzeugt
CategoryDataset dataset = createDataSet(values);
JFreeChart chart = ChartFactory.createBarChart(
"" +question, // chart title
"", // domain axis label
"%", // range axis label
dataset, // data
PlotOrientation.VERTICAL, // orientation
true, // include legend
true, // tooltips
false // URLs
);
setzen das DataSet
![Page 15: Aski Onlinefragebogen](https://reader035.vdokument.com/reader035/viewer/2022062322/56814fc8550346895dbd8601/html5/thumbnails/15.jpg)
Chart-Erzeugung IV
![Page 16: Aski Onlinefragebogen](https://reader035.vdokument.com/reader035/viewer/2022062322/56814fc8550346895dbd8601/html5/thumbnails/16.jpg)
Fehlermeldungen IFehlermeldungen wichtig für den User um zu erkennen was er falsch gemacht hat! und wie er es richtig machen kann!
falsche Fehlermeldungen verwirren nur
![Page 17: Aski Onlinefragebogen](https://reader035.vdokument.com/reader035/viewer/2022062322/56814fc8550346895dbd8601/html5/thumbnails/17.jpg)
Fehlermeldungen IIStandard-Fehlermeldungen von Grails treffen allgemeine Aussagen über die Fehler
sind ungeeignet für den normalen Nutzer zu spezifisch zu viele Informationen
![Page 18: Aski Onlinefragebogen](https://reader035.vdokument.com/reader035/viewer/2022062322/56814fc8550346895dbd8601/html5/thumbnails/18.jpg)
Fehlermeldungen IIIFehlermeldungen angepasst anlegen eines neuen Verwalters oder Login
Problem: Anpassung der Fehlermeldungen im Workflow
![Page 19: Aski Onlinefragebogen](https://reader035.vdokument.com/reader035/viewer/2022062322/56814fc8550346895dbd8601/html5/thumbnails/19.jpg)
Mockups IErste Entwürfe als HTML von allen Team-
Mitgliedern
![Page 20: Aski Onlinefragebogen](https://reader035.vdokument.com/reader035/viewer/2022062322/56814fc8550346895dbd8601/html5/thumbnails/20.jpg)
Mockups II
![Page 21: Aski Onlinefragebogen](https://reader035.vdokument.com/reader035/viewer/2022062322/56814fc8550346895dbd8601/html5/thumbnails/21.jpg)
Mockups III
Zusammenfassung aller Ideen
![Page 22: Aski Onlinefragebogen](https://reader035.vdokument.com/reader035/viewer/2022062322/56814fc8550346895dbd8601/html5/thumbnails/22.jpg)
OberflächeStandard Grails Layout
Anpassung der Grails Styles mit CSS
![Page 23: Aski Onlinefragebogen](https://reader035.vdokument.com/reader035/viewer/2022062322/56814fc8550346895dbd8601/html5/thumbnails/23.jpg)
AskI Oberfläche
![Page 24: Aski Onlinefragebogen](https://reader035.vdokument.com/reader035/viewer/2022062322/56814fc8550346895dbd8601/html5/thumbnails/24.jpg)
Aufbau der GSPs IGrundlayout für alle GSPs in main.gsp
Definition von immer sichtbaren BereichenCSS-Includes, Locale-Auswahl, Kopf- und
FußzeilenDie eigentlichen Inhalte werden zur Laufzeit
mit <g:layoutBody /> eingefügt
![Page 25: Aski Onlinefragebogen](https://reader035.vdokument.com/reader035/viewer/2022062322/56814fc8550346895dbd8601/html5/thumbnails/25.jpg)
Folgender Markup steht im Bodytag eines gewöhnlichen HTML-Grundgerüsts:
Aufbau der GSPs II
![Page 26: Aski Onlinefragebogen](https://reader035.vdokument.com/reader035/viewer/2022062322/56814fc8550346895dbd8601/html5/thumbnails/26.jpg)
Einfühung einer TagLib
Kapselt MarkupVerbessert LesbarkeitSteigerung der WiederverwendbarkeitVerhinderung von duplicated Code
![Page 27: Aski Onlinefragebogen](https://reader035.vdokument.com/reader035/viewer/2022062322/56814fc8550346895dbd8601/html5/thumbnails/27.jpg)
Einsatz von Ajax IProblem:
Abhängig von Auswahl eines Listen-Items soll andere Liste gefüllt werden
Klick zum Aktualisieren der zweiten Liste dem Nutzer möglichst ersparen
![Page 28: Aski Onlinefragebogen](https://reader035.vdokument.com/reader035/viewer/2022062322/56814fc8550346895dbd8601/html5/thumbnails/28.jpg)
Lösung:
Einsatz von AjaxFüllen der 2. Liste bei onChange()-EventGute Unterstützung durch Grails
einfache UmsetzungUnstützte JavaScript Bibliotheken:
PrototypeDojoYahoo UI Library (YUI)
Einsatz von Ajax II
![Page 29: Aski Onlinefragebogen](https://reader035.vdokument.com/reader035/viewer/2022062322/56814fc8550346895dbd8601/html5/thumbnails/29.jpg)
Zu implementierende Teile:In GSP:
In UmfrageController:
Einsatz von Ajax III
![Page 30: Aski Onlinefragebogen](https://reader035.vdokument.com/reader035/viewer/2022062322/56814fc8550346895dbd8601/html5/thumbnails/30.jpg)
Aski - Demo
DEMO – Aski 0.9
![Page 31: Aski Onlinefragebogen](https://reader035.vdokument.com/reader035/viewer/2022062322/56814fc8550346895dbd8601/html5/thumbnails/31.jpg)
ENDE
VIELEN DANK FÜR IHRE
AUFMERKSAMKEIT