# Fragebogen Erstellung



## Matze9999 (17. Jan 2011)

Hallo,
Ich hab die Aufgabe bekommen für ein Intranet einen Fragebogen basierend, auf einer XML- Datei, zu generieren. Hierbei gibt es verschiedene Fragetypen, wie Singlechoice Multiplechoice und Freetextaufgaben.
Nachdem der Fragebogen generiert wurde. Soll der Benutzer natürlich die Möglichkeit haben, den Fragebogen auszufüllen und schließlich seine Antworten abzuschicken. Identifiziert wird der Benutzer anhand seines Namens den er zu Beginn des Fragebogens eingeben soll/muss. Schließlich soll der Fragebogen ausgewertet werden, d.h. es muss überprüft werden, ob die Antworten des Benutzers mit der Musterlösung übereinstimmt ( natürlich müssen die Freetextaufagben manuell ausgwertet werden).

Programmiersprache des Projekts soll Java sein (sonst hätte ich vermutlich auch nicht in diesem Forum gepostet  )

Meine Vorstellungen zu dieser Aufagebe waren:

- die XML- Datei und mein Programm liegen auf einem Server
- der Benutzer ruft per Browser den Fragebogen auf
- der Fragebogen wird bei Aufruf erstellt

soweit alles klar oder? Gibt es die Möglichkeit den Fragebogen schon vor Aufruf erstellt zu haben? Denke so wie oben beschrieben sollte der beste Weg sein ?!

Nun beginnt mein eigentliches Problem, ich weiß nämlich nicht wirklich, wie ich die Fragen vernünftig dargestellt bekomme, schließlich sind die Fragen ja alle unterschiedlich aufgebaut (unterschiedlichde Zeichenlänge der Fragen, d.h. eventuell Zeilenumbrüche, unterschieldiche Fragetypen, also auch unterschiedliche Anzahl von Antwortmöglichkeiten, also benötigen einige Fragen mehr "Platz" als andere, bei Freetextfragen gibt es überhaupt keine Antwortmöglichkeiten, sondern nur eine TextArea).
Sollte man die Fragen alle auf eine Seite packen, oder sagen wir mal 5 Fragen pro Seite darstellen und dann auf die nächste Seite verweisen, was meint ihr?

Als nächstes geht es dann um die Auswertung, wobei ich mir noch unschlüssig bin, wie ich dies angehen soll. 
Es gibt denke ich zwei Möglichkeiten:
	1. Die Antworten in eine Datenbank schreiben.
	2. Die Antworten in eine XML-Datei zurückschreiben, nur wie würde dies genau realisiert werden? Ich meine erstellt man dann für jeden Benutzer eine XML-Datei auf dem Server, mit seinen Antworten, die dann ausgwertet werden?

Welche Möglichkeit würdet ihr wählen und funktioniert das so wie ich es mir vorstelle? Wo seht ihr bei der gesamten Aufageb Schwierigkeiten bzw. Fehler in meiner Planung.

Vielen Dank schonmal für Eure Antworten

mfg


----------



## Noctarius (17. Jan 2011)

Matze9999 hat gesagt.:


> Hallo,
> Ich hab die Aufgabe bekommen für ein Intranet einen Fragebogen basierend, auf einer XML- Datei, zu generieren. Hierbei gibt es verschiedene Fragetypen, wie Singlechoice Multiplechoice und Freetextaufgaben.
> Nachdem der Fragebogen generiert wurde. Soll der Benutzer natürlich die Möglichkeit haben, den Fragebogen auszufüllen und schließlich seine Antworten abzuschicken. Identifiziert wird der Benutzer anhand seines Namens den er zu Beginn des Fragebogens eingeben soll/muss. Schließlich soll der Fragebogen ausgewertet werden, d.h. es muss überprüft werden, ob die Antworten des Benutzers mit der Musterlösung übereinstimmt ( natürlich müssen die Freetextaufagben manuell ausgwertet werden).



Kommt mir bekannt vor, klingt nach der Anwendung die wir hier ind er Firma produzieren 



Matze9999 hat gesagt.:


> Meine Vorstellungen zu dieser Aufagebe waren:
> 
> - die XML- Datei und mein Programm liegen auf einem Server
> - der Benutzer ruft per Browser den Fragebogen auf
> ...



Was meinst du mit "vor dem Aufruf"? Du kannst beim Serverstart die Tests / Fragebögen vorrendern und cachen (das machen wir).



Matze9999 hat gesagt.:


> Nun beginnt mein eigentliches Problem, ich weiß nämlich nicht wirklich, wie ich die Fragen vernünftig dargestellt bekomme, schließlich sind die Fragen ja alle unterschiedlich aufgebaut (unterschiedlichde Zeichenlänge der Fragen, d.h. eventuell Zeilenumbrüche, unterschieldiche Fragetypen, also auch unterschiedliche Anzahl von Antwortmöglichkeiten, also benötigen einige Fragen mehr "Platz" als andere, bei Freetextfragen gibt es überhaupt keine Antwortmöglichkeiten, sondern nur eine TextArea).
> Sollte man die Fragen alle auf eine Seite packen, oder sagen wir mal 5 Fragen pro Seite darstellen und dann auf die nächste Seite verweisen, was meint ihr?



Wir haben einen festen Satz Datenstrukturen (unterschiedliche Fragentypen / -aufbauten) welche in einem speziellen XML Dialekt "zusammengeklickt" (Eclise-Editor) werden können. Zusätzlich kann man ein XSLT (pro Kunde) und ein Stylesheet angeben.



Matze9999 hat gesagt.:


> Als nächstes geht es dann um die Auswertung, wobei ich mir noch unschlüssig bin, wie ich dies angehen soll.
> Es gibt denke ich zwei Möglichkeiten:
> 1. Die Antworten in eine Datenbank schreiben.
> 2. Die Antworten in eine XML-Datei zurückschreiben, nur wie würde dies genau realisiert werden? Ich meine erstellt man dann für jeden Benutzer eine XML-Datei auf dem Server, mit seinen Antworten, die dann ausgwertet werden?



Bei uns werden die Daten mehrfach gespeichert (aus Sicherheitsgründen, da es um Einstellungstests geht). Wir speichern eine Gesamtabgabe in einer XML Struktur und die einzelnen Antworten in einzelnen Datensätzen in ander Antworttabelle (auch die XML Daten liegen in der DB, andere Tabelle). Je nach Verwendungszweck kann man sich nun die einzelnen Antworten holen oder die gesamte Struktur.

Die Auswertung basiert auf einen SolutionCalculation Interface mit Implementierungen je nach Fragentyp.


----------

