1 / 31

Aski Onlinefragebogen

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

lilike
Télécharger la présentation

Aski Onlinefragebogen

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. AskiOnlinefragebogen Fachhochschule Zittau/Görlitz Fachbereich Informatik Denny Israel, Daniel Winter Christian Schäfer, Michael Kohlsche Dozent: Lars Rönisch

  2. 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

  3. 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

  4. 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

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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();

  10. 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

  11. PDF-Erzeugung IV

  12. 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

  13. 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

  14. 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

  15. Chart-Erzeugung IV

  16. 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

  17. Fehlermeldungen II • Standard-Fehlermeldungen von Grails • treffen allgemeine Aussagen über die Fehler • sind ungeeignet für den normalen Nutzer • zu spezifisch • zu viele Informationen

  18. Fehlermeldungen III • Fehlermeldungen angepasst • anlegen eines neuen Verwalters oder Login • Problem: Anpassung der Fehlermeldungen im Workflow

  19. Mockups I • Erste Entwürfe als HTML von allen Team-Mitgliedern

  20. Mockups II

  21. Mockups III • Zusammenfassung aller Ideen

  22. Oberfläche • Standard Grails Layout • Anpassung der Grails Styles mit CSS

  23. AskI Oberfläche

  24. 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

  25. Aufbau der GSPs II • Folgender Markup steht im Bodytag eines gewöhnlichen HTML-Grundgerüsts:

  26. Einfühung einer TagLib • Kapselt Markup • Verbessert Lesbarkeit • Steigerung der Wiederverwendbarkeit • Verhinderung von duplicated Code

  27. 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

  28. 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)

  29. Einsatz von Ajax III • Zu implementierende Teile: • In GSP: • In UmfrageController:

  30. Aski - Demo DEMO – Aski 0.9

  31. ENDE VIELEN DANK FÜR IHRE AUFMERKSAMKEIT

More Related