\chapter{Projekt}
Es muss vorher mit Herrn Röthig abgesprochen werden, welches Projekt gewählt wird.

Folgende Projekte stehen zur Verfügung:

\begin{enumerate}
    \item \textbf{Stammbäume und Familientafel} -- Datenerfassung, Speicherung und Darstellung

        Aufgabe ist es, Personendaten, wie sie für Stammbäume und Familientafeln verwendet werden, eingeben, speichern und in geeigneter Form darstellen zu können. Zur Eingabe wie zur Ausgabe der Daten ist ein gängiger (moderner) Web-Browser (Firefox, Chrome) vorzusehen, die Datenhaltung erfolgt auf dem Webserver in einer einfachen (strukturierten) Textdatei. Alternativ kann bei Interesse zur Datenspeicherung auch eine \acf{RDB} zum Einsatz kommen.

        Zu verwendende Techniken:
        \begin{itemize}[noitemsep]
            \item Datenhaltungsformat: \acs{XML}/\acs{XML}-ähnlich, alternativ \acs{RDB}
            \item Datentransferformat: \acs{XML}
            \item Definition des Datenformats: \acs{DTD}
            \item Wartung per \acs{XSLT} in das Ausgabeformat
            \item Ausgabeformat: XHTML und/oder \acs{SVG}
        \end{itemize}

        Eingabe der Daten: \acs{HTML}-Formulare, JavaScript, einfache serverseitige Auswertung und Abspeicherung in beliebiger webserver-fähiger Programmiersprache (PHP, Perl, bash, \ldots). Ausgabe der Daten/Transfomation in darstellbare Form: mittels \acs{XSLT} nach \acs{HTML} und/oder (alternativ) \acs{SVG}.

        Die Arbeit ist gruppenweise für geeignete Teilaufgaben zu bearbeiten. Für einzelne Teilaufgaben können auch Alternativlösungen von mehreren Gruppen erarbeitet werden, die dann austauschbar in das Gesamtprojekt integrierbar sein sollten.

        Teilaufgaben wären beispielsweise die Definition der Datenstruktur, die clientseitige Eingabekomponente, die Dateneingabe und -haltung auf dem Server, die Ausgabe im Webbrowser. Letztere sollte idealerweise in verschiedenen Formen und parametrisierbar erfolgen können, beispielsweise die Ahnentafel von X oder alle Nachkommen von Y.

        Es sollte mindestens eine komplette Lösung am Ende als Ergebnis zustande kommen.

    \item \textbf{Terminverwaltung/Kalender}

        Vergleichbare Bearbeitung, insbesondere unter Nutzung der gleichen Techniken wie für die Aufgabenstellung Stammbaum - \acs{XML}, \acs{XSLT}, \acs{HTML}, \acs{CSS}, evtl. JavaScript, \acs{SVG}

    \item \textbf{Interaktive Kartenanwendung}

        Aufgabe ist, aus als Geokoordinaten vorliegenden Kartendaten (Ländergrenzen, Straßen, Flüsse, Küsten, \ldots) eine graphische Darstellung im Web zu erstellen. Die Ausgangsdaten können aus OpenStreetMap oder anderen frei zugänglichen Datenquellen gewonnen werden, die Zieldarstellung ist in der Sprache \acs{SVG} zu realisieren. Mindestens eine interaktive Komponente muss enthalten sein, beispielsweise die Angabe von Kenndaten (Name, Lage, Einwohnerzahl, Bedeutung), wenn man auf ein Land klickt.

        \textit{Einige Teilprobleme}:
        \begin{itemize}[noitemsep]
            \item Eigene konkrete und genau Zielaufgabenstellung selbst erstellen (!)
            \item Sichtung und Auswahl der geeigneten Datenquelle(n)
            \item Reduzierung des Umfangs der Geokoordinaten auf eine im Web (für eine \acs{SVG}-Datei) praktikable Größe unter Verringerung der Auflösung
            \item Definition eines geeigneten \acs{XML}-basierten Datenformats zur Speicherung der relevanten Daten
            \item Transformation der \acs{XML}-Ausgangsdaten mit Hilfe von \acs{XSLT} in eine \acs{SVG}-Datei
            \item interaktive Veränderung der \acs{SVG}-Datei mit JavaScript
            \item Anforderung nachzuladender Teile vom Server und Einbau in die bestehende \acs{SVG}-Datei (\acs{AJAX})
            \item serverbasierte dynamische Generierung der nachgeladenen Komponenten (optional)
        \end{itemize}

        \begin{Achtung}
            Diese dritte Aufgabenstellung ist relativ unscharf formuliert, was bedeutet, dass das Potential für eigene Kreativität recht gross ist, aber dieses muss auch vorhanden sein und genutzt werden, damit eine \enquote{nette} Anwendung am Ende dabei herauskommt!
        \end{Achtung}

    \item \textbf{Begriffswolken}

        Aufgabe ist es, Begriffe und Zusammenhänge zwischen Begriffen mittels \acs{XML} modellieren zu können. Insbesondere ist eine graphische Darstellung von Begriffswolken am Ende das Ziel. Orientieren kann man sich an Mindmaps und Cognitive Maps sowie ggf. Tag Clouds, wobei keine Beschränkung auf beispielsweise strenge Hierarchien erfolgen soll sowie unbedingt (im Gegensatz zu Tag Clouds) die Beziehungen zwischen Begriffen modelliert und graphisch dargestellt werden müssen.

        Zu verwendende Techniken:
        \begin{itemize}[noitemsep]
            \item \acs{XML} (zur Modellierung der Datenstruktur)
            \item \acs{XSLT} (zur Transformation der Daten in das Ausgabeformat)
            \item \acs{SVG} (als Ausgabeformat)
            \item weitere Techniken nach Bedarf und Kenntnis
        \end{itemize}

        \begin{Achtung}
            Achtung: Auch diese vierte Aufgabenstellung ist relativ unscharf formuliert, was bedeutet, dass das Potential für eigene Kreativität recht gross ist, aber dieses muss auch vorhanden sein und genutzt werden, damit eine \enquote{nette} Anwendung am Ende dabei herauskommt!
        \end{Achtung}

\end{enumerate}

\textbf{Für alle Aufgabenstellungen gilt:}

Die Techniken \acs{XML} (als Datenhaltungsformat oder mindestens als Transferformat im Falle des Einsatzes einer anderen Datenbanktechnik), \acs{XSLT} (zur Transformation der Daten) sowie \acs{SVG} und/oder XHTML (als Ausgabeformat) müssen verwendet werden.

Erforderlich ist am Ende ein (einfach installierbares) Archiv (tar, ggf. gzipped, oder zip) mit allen Quellen und ggf. ausführbaren Dateien sowie eine kurze Installationsanleitung, ggf. mit genauer Nennung der Voraussetzungen zur Installation. Außerdem benötige ich für jedes Projekt die Namen der Mitwirkenden bzw. Mitgewirkt Habenden.

Die Bewertung (20\% Anteil an der Gesamtnote) umfasst mehrere Kategorien, die sich hauptsächlich aus den drei Bereichen Projektidee, technische Umsetzung und Erfüllung der Anforderungen ergeben.
