In der Planungsphase wurden folgende Punkte festgelegt:
\begin{itemize}\itemsep0ex
	\item Nutzung des Content Management System (CMS) Typo3
	\item Authentifizierung über Active Directory (AD) mithilfe des 
	Lightweight Directory Access Protocol (LDAP)
	\item Aufteilung der Seite in Header, Menü, Key Visual, Seitenleiste Links und Rechts und Center-Content als Hauptelement
	\item Mehrsprachigkeit (vorerst Deutsch und Englisch mit der Option weitere Sprache hinzuzufügen)
	\item beinhaltete Elemente sind News, Termine, Who is Who, Telefonverzeichnis, \\ Projekte, Linksammlung und Welcome
\end{itemize} 

Für die Umsetzung wurden folgende Programmier- und Skriptsprachen festgelegt:
\begin{itemize}\itemsep0ex
	\item Typoscript für Typo3-Template
	\item XHTML 1.1 für die Darstellung im Browser
	\item CSS 2.1 für das Layout der Website 
	\item PHP für Abfragen von Daten und Zusammenstellen von Seiteninhalten 
	\item Javascript für dynamische Inhaltsänderungen mit der Maßgabe, dass die Funktionalität erhalten bleibt, wenn Javascript im Browser nicht vorhanden oder abgeschaltet ist.
	\item XML für die sprachspezifischen Texte und Fehlermeldungen (Einzubinden über PHP und entsprechenden Parser)
\end{itemize}

Das Webportal für die Browser Microsoft Internet Explorer ab Version 7 und Mozilla Firefox ab Version 10 (ESR - Extended Support Release) und das Betriebssystem Microsoft Windows ab Version XP zu programmieren. Kleinere Abweichungen im Layout sind zulässig.

Für das Layout sind die Firmenfarben und Logos zu verwenden, um das Corporate Design zu wahren. Eine Orientierung gibt hier die öffentlichen Webpräsenz des Unternehmens. 

Die Daten für die jeweiligen Elemente sind dem Active Directory zu entnehmen und in \\ einer MySQL-Datenbank zu hinterlegen. Alle Abfragen mit Ausnahme der Projekte sind über die MySQL-Datenbank zu erfolgen. Entsprechend ist die Synchronisierung zwischen Active Direcotry und MySQL-Datenbank sicherzustellen.

Der Server, auf dem die Website eingestellt ist, ist mit dem Betriebssystem Microsoft Windows Server 2008 RC2 Standard ausgestattet. Darauf sind der Web-Server Apache in der Version 2.2, PHP in der Version 5.4.7 und MySQL in der Version 5.5.25a. Für die Verwaltung der MySQL-Datenbank ist phpMyAdmin in der Version 3.5.1 einzurichten. 

Des Weiteren sind für die Anfragen über die Adresse \emph{go} und \emph{webspace} Rewrites einzurichten, die auf die Adresse \emph{webspace.jena-optronik.de} umschreiben.

Zur Wahl der Sprache ist eine Menü in der oberen rechten Ecke zu integrieren. Dieses Menü muss für weitere Sprachen leicht erweiterbar sein.

Für die Umsetzung ist eine techn. Dokumentation im \glqq Admin-Wiki\grqq \ der Firma zu erstellen.



\subsection{News}
Die News sollen über Neuigkeiten in den Abteilungen des Unternehmens informieren. Eine Nachricht besteht dabei aus folgenden Elementen:
\begin{itemize}\itemsep0ex
	\item Bild zur Nachricht (JPEG; max. 490x245 Pixel; max. 100 kB)
	\item Kurztext (Zusammenfassung der Nachricht)
	\item Nachrichtentext
	\item Gültigkeitszeitraum
	\item Verfasser der Nachricht (Referenziert über den Anmeldenamen im Active Directory)
\end{itemize}
Für die News sind folgende Seiten zu erstellen:
\begin{itemize}\itemsep0ex
	\item Übersichtseite (zeigt eine Liste aller Nachrichten)
	\item Seite zum Hinzufügen, Bearbeiten und Löschen einer Nachricht
	\item Artikelseite (vollständige Darstellung einer bestimmten Nachricht)
	\item Element für die linke Seitenleiste zur Übersicht der fünf aktuellsten Nachrichten 
\end{itemize}

Die News sollen von jedem Mitarbeiter erstellt werden dürfen. Nur der Verfasser einer Nachricht darf diese bearbeiten oder löschen. Dazu sind entsprechende Mechanismen zu integrieren für die Authentifizierung des Mitarbeiters.	



\subsection{Termine}
Die Termine informieren über Ereignisse, welche zu einem bestimmten Zeitpunkt stattfinden. Für die Termine gelten die gleichen Vorgaben, wie für die News.



\subsection{Who is Who}
Das \glqq Who is Who\grqq \ dient als Informationsquelle über die Mitarbeiter der Jena-Optronik GmbH. Es beinhaltet folgende Informationen zu einem Mitarbeiter:
\begin{itemize}\itemsep0ex
	\item Bild des Mitarbeiters (JPEG; 130x245 Pixel; 100 kB)
	\item Vor- und Zuname
	\item Tätigkeit und Tätigkeitsfelder
	\item Abteilung
	\item Rufnummern für Telefon, Handy und Fax
	\item E-Mail-Adresse
	\item Personalnummer, Firmeneintrittsdatum und Raumnummer des Büros
	\item Ausbildung, verwendete Tools und Experte in ...
	\item Geburtsdatum
\end{itemize} 

Die Daten eines bestimmten Mitarbeiters dürfen nur von diesem geändert werden. Dazu ist auch hier eine entsprechende Authentifizierung vorzusehen. Die Felder Vor- und Zuname sind Pflichtfelder und müssen angegeben werden. Alle Anderen Felder sind freiwillige Angaben. Eine Ausnahme stellt die E-Mail-Adresse dar. Diese darf vom Mitarbeiter nicht geändert werden.

\newpage

Für das \glqq Who is Who\grqq \ sind folgende Seiten vorzusehen:
\begin{itemize}\itemsep0ex
	\item Informationsseite (zeigt Informationen zu einem bestimmten Mitarbeiter an)
	\item Seite zum Bearbeiten der persönlichen Who is Who - Daten
	\item Suchfunktion (zum Auffinden eines oder einiger bestimmter Mitarbeiter mit bestimmten Eigenschaften)
\end{itemize} 



\subsection{Telefonverzeichnis}
Das Telefonverzeichnis stellt eine Untermenge der Who is Who - Daten dar. Es soll eine Liste angezeigt werden, welche folgende Informationen enthält:
\begin{itemize}\itemsep0ex
	\item Vor- und Zuname des Mitarbeiters bzw. Raumnummer 
	\item Telefonnummer
	\item Abteilung des Mitarbeiter
\end{itemize}
Der Liste ist zu entnehmen, dass hier nicht nur Telefonnummern der Mitarbeiter in die \\ Liste aufzunehmen sind, sondern auch Rufnummern bestimmter Räume (z.B. Konferenzräume, welche keiner bestimmten Person zuzuordnen sind).

Das Telefonverzeichnis hat weiterhin eine Suchfunktion zu enthalten, bei der das Suchkriterium gewählt und ein Suchbegriff eingegeben werden kann. Die Sortierung der Spaltenelemente der Liste ist je nach eingestelltem Suchkriterium zu wählen. Dazu zeigt die erste Spalte immer das Feld, welches als Suchkriterium eingestellt wurde, an. Eine Sortierung erfolgt alphabetisch aufsteigend.



\subsection{Projekte}
Das Element Projekte ist ähnlich wie das Element Telefonverzeichnis eine Suchfunktion zu den Projekten der Firma. Zunächst ist nach dem Projektnamen zu suchen und eine Liste mit Projektnamen, welche mit der gleichen Buchstabenkombination wie der Suchbegriff beginnen, anzuzeigen. Über diese Liste kann dann ein bestimmtes Projekt ausgewählt werden, zu dem Informationen über Anzahl der Mitglieder, eine Beschreibung zum Projekt und eine Liste der Mitglieder angezeigt wird. Die Liste der Mitglieder zeigt den Anmeldenamen und Vor- bzw. Zuname, wenn es sich um einen Mitarbeiter der Firma handelt. 

\newpage

Bei Mitglieder, die nicht im Who is Who gelistet sind, ist lediglich der, im Active Directory, hinterlegte Anmeldename anzuzeigen. 

Die Daten zu den Projekten werden diesmal nicht über die MySQL-Datenbank gepuffert, sondern sind dem Active Directory direkt zu entnehmen. 



\subsection{Linksammlung}
Die Linksammlung ist, wie der Name bereits vermuten lässt, eine Sammlung von Links zu \\ anderen Webseiten. Dazu ist in der MySQL-Datenbank eine Tabelle mit folgenden Infor-mationen zu erstellen:
\begin{itemize}\itemsep0px
	\item Identifikationsnummer des Links
	\item Link-Adresse
	\item Link-text Deutsch
	\item Link-text Englisch
	\item Tooltip Deutsch
	\item Tooltip Englisch
\end{itemize}
Die Links sind in der rechten Seitenleiste anzuzeigen und beim klick auf einen der Links ist im Browser ein neuer \glqq Tab\grqq \ zu öffnen, in der die aufgerufene Seite angezeigt wird. 



\subsection{Welcome}
Das Element \glqq Welcome\grqq \ ist eine Element, welches in die Startseite einzubinden ist, um dort einen Begrüßungstext mit diversen Hinweisen anzuzeigen. Der text ist statisch und kann daher direkt in den Quellcode eingebunden werden. Es ist aber eine Unterscheidung der angeforderten Sprache vorzunehmen. 



\newpage
\subsection{Anmeldung bzw. Abmeldung}
Für die Anmeldung bzw. Abmeldung ist ein Element in die rechte Seitenleiste zu integrieren. 

Die Anmeldung erfolgt über Benutzername und Passwort. Dabei ist eine Bindung an das Active Directory (AD) über das Lightweight Directory Access Protocol (LDAP) durchzuführen. Bei erfolgreicher Anmeldung kann davon ausgegangen werden, dass der Benutzer autorisiert ist. War die Anbindung erfolgreich so ist dies in der Session zu hinterlegen. Im Browser ist ein Cookie mit der Session-ID zu erstellen, so dass der Mitarbeiter bei einem erneuten Aufruf einer Seite des Webportals automatisch angemeldet ist. Das Cookie bzw. die Session sollen einen Gültigkeitszeitraum von 7 Tagen nicht überschreiten.



\subsection{Synchronisation (Active Directory / MySQL-Datenbank)}
Da die MySQL-Datenbank dazu diet die Daten zu puffern, um den Traffic auf das Active Directory auf ein Minimum zu beschränken, ist eine Synchronisation vorzusehen.

In den Algorithmus der Synchronisation ist zusätzlich eine Prüfung aller Tabellen der MySQL-Datenbank vorzunehmen. Fehlt Eine, ist diese zu erstellen und ggf. mit Standardwerten zu füllen. 

Des Weiteren sind Termine und News, deren Gültigkeitszeitraum abgelaufen sind, aus der Datenbank zu entfernen. Hat ein Mitarbeiter im \glqq Who is Who\grqq \  seinen Geburtstag angegeben, so ist für diesen Tag ein Geburtstagsgruß als Termin zu erstellen. 

Für die \glqq Who is Who\grqq Daten sind folgende Abgleiche durchzuführen:
\begin{itemize}\itemsep0px
	\item Erstellen eines Datensatzes für neue Mitarbeiter mit den Daten aus dem Active Directory (AD)
	\item Aktualisieren der Datensätze von Mitarbeitern, denen/deren Daten sich unterscheiden (MySQL \textless ---\textgreater \ AD) durch die Daten des AD
	\item Löschen der Datensätze (MySQL) von den Mitarbeitern denen kein Datensatz im AD zugeordnet werden kann.
	\item Entfernen von Mitarbeiterbildern zu denen kein Datensatz eines Mitarbeiter zugeordnet werden kann.
\end{itemize}
