310 likes | 455 Views
Aski Onlinefragebogen. Fachhochschule Zittau/Görlitz Fachbereich Informatik Denny Israel, Daniel Winter Christian Schäfer, Michael Kohlsche Dozent: Lars Rönisch. Aski - Einleitung. Web-Anwendung zur Durchführung einer Befragung Befragung zum Thema Kinder mir Downsyndrom
E N D
AskiOnlinefragebogen Fachhochschule Zittau/Görlitz Fachbereich Informatik Denny Israel, Daniel Winter Christian Schäfer, Michael Kohlsche Dozent: Lars Rönisch
Aski - Einleitung Web-Anwendung zur Durchführung einer Befragung Befragung zum Thema Kinder mir Downsyndrom Erstellt von René Hofmann Umsetzung des Systems mit Grails Web-Framework Basiert auf Sprache Groovy
Aufüllung des Fragebogens Online Durch Passwort zu schützen Auswertung Durch angemeldete Manager (Passwortschutz) Mittels Diagrammen Sonstiges E-Mail-Versandt von Einladungen Einladungen als PDF-Dokument Aski - Anforderungen
Aski - System • Nutzung der von Grails vorgegebenen Projektstruktur • MVC-Pattern • Datenmodell durch Domain-Klassen • Logik durch Controller • Oberfläche durch Grails-Server-Pages (vgl. JSP) • Programmierung in Groovy, Unterstützt durch Java
Aski - Workflow • Umfrageausführung als Web-Flow • Grails Web-Flow System, basiert auf Spring Web Flow • Festlegung Start-, End- und Zwischenstates • Web Flow System kontrolliert Ablauf, ein „Mittenrein“-Springen ist somit unmöglich → sichert Datenkonsistenz • Eingabenkontrolle beim Absenden einer Maske • Speicherung der Ergebnisse am Ende des Flows
Aski - Workflow • States der Umfrageausführung • Start – Begrüßungsseite, evtl. Eingabemöglichkeit für Ticket-Passwort • Zwischenstates - Eingabeseiten für jede Kategorie (1-6) • Ende – Abschlusseite
Aski - Mail • Nutzung der Java-Mail-API • Versandt über SMTP • Daten für SMTP werden in der Konfiguration gespeichert und sind im Admin-Bereich einstellbar • Nutzung für das Versenden von Einladungen • Einladungstext ist ebenfalls in der Konfig. einstellbar • Nutzung auch für Versandt zurückgesetzter Passwörter der Manager
PDF-Erzeugung I • PDF-Erzeugung mit iText • mächtiges Open-Source Framework für Java um PDF- Dateien zu erstellen und zu erweitern • ausgelagert in extra Klasse • PDF erhält kurzen Text, URL und ein Ticket
PDF-Erzeugung II • neues Dokument wir erstellt Document document = new Document(); Ränder werden gesetzt document.setMargins(75, 75, 75, 75); • Paragraphen werden hinzugefügt Paragraph paragraph = new Paragraph(); Font font = new Font(); Schriftgröße, Style font.setSize(14); font.setStyle(Font.BOLD); paragraph.setFont(font); paragraph.add(subject); document.add(paragraph); • Dokument wird geschlossen document.close();
PDF-Erzeugung III • PDF-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
Chart-Erzeugung I • Chart-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
Chart-Erzeugung II • DataSet wird erzeugt DefaultCategoryDataset dataset = new DefaultCategoryDataset(); for(String key : keySet) { double value = values.get(key) / allValues * 100; dataset.addValue(value, key, ""); } DataSet wird gefüllt
Chart-Erzeugung III • Chart 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
Fehlermeldungen I • Fehlermeldungen wichtig für den User • um zu erkennen was er falsch gemacht hat! • und wie er es richtig machen kann! • falsche Fehlermeldungen verwirren nur
Fehlermeldungen II • Standard-Fehlermeldungen von Grails • treffen allgemeine Aussagen über die Fehler • sind ungeeignet für den normalen Nutzer • zu spezifisch • zu viele Informationen
Fehlermeldungen III • Fehlermeldungen angepasst • anlegen eines neuen Verwalters oder Login • Problem: Anpassung der Fehlermeldungen im Workflow
Mockups I • Erste Entwürfe als HTML von allen Team-Mitgliedern
Mockups III • Zusammenfassung aller Ideen
Oberfläche • Standard Grails Layout • Anpassung der Grails Styles mit CSS
Aufbau der GSPs I • Grundlayout für alle GSPs in main.gsp • Definition von immer sichtbaren Bereichen • CSS-Includes, Locale-Auswahl, Kopf- und Fußzeilen • Die eigentlichen Inhalte werden zur Laufzeit mit <g:layoutBody /> eingefügt
Aufbau der GSPs II • Folgender Markup steht im Bodytag eines gewöhnlichen HTML-Grundgerüsts:
Einfühung einer TagLib • Kapselt Markup • Verbessert Lesbarkeit • Steigerung der Wiederverwendbarkeit • Verhinderung von duplicated Code
Einsatz von Ajax I • Problem: • Abhängig von Auswahl eines Listen-Items soll andere Liste gefüllt werden • Klick zum Aktualisieren der zweiten Liste dem Nutzer möglichst ersparen
Einsatz von Ajax II • Lösung: • Einsatz von Ajax • Füllen der 2. Liste bei onChange()-Event • Gute Unterstützung durch Grails einfache Umsetzung • Unstützte JavaScript Bibliotheken: • Prototype • Dojo • Yahoo UI Library (YUI)
Einsatz von Ajax III • Zu implementierende Teile: • In GSP: • In UmfrageController:
Aski - Demo DEMO – Aski 0.9
ENDE VIELEN DANK FÜR IHRE AUFMERKSAMKEIT