<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.foxtom.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Alexanderrogers</id>
	<title>Foxwiki - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.foxtom.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Alexanderrogers"/>
	<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php/Spezial:Beitr%C3%A4ge/Alexanderrogers"/>
	<updated>2026-07-28T04:29:53Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=18570</id>
		<title>TestTool/Dokumentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=18570"/>
		<updated>2020-11-12T12:47:53Z</updated>

		<summary type="html">&lt;p&gt;Alexanderrogers: /* Soll/Ist-Vergleich */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projektdokumentation zur Webanwendung&lt;br /&gt;
&lt;br /&gt;
=Einleitung=&lt;br /&gt;
In dieser Projektdokumentation wird der Ablauf des Abschlussprojektes erläutert, das der Autor im Rahmen seiner Abschlussprüfung zum Fachinformatiker für Anwendungsentwicklung durchführt.&lt;br /&gt;
&lt;br /&gt;
==Projektbeschreibung==&lt;br /&gt;
Für die Dirk Wagner Berlin soll eine Webanwendung mit HTML und PHP entwickelt werden. Diese Webanwendung soll bestimmte Anforderungen erfüllen, die das Erstellen von Prüfungen erleichtern sollen.&lt;br /&gt;
==Projektziel==&lt;br /&gt;
Das Ziel dieses Projektes ist die erfolgreiche Umsetzung einer Webanwendung, die alle Prüfungen von Prüfern verwaltet. Die Prüfer sollen Fragen und mögliche Antworten eintragen können. Die Prüfungen sollen von Prüflingen durchgeführt werden und anschließend ein Ergebnis der Prüfung präsentiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Phasen des Projekts===&lt;br /&gt;
==Startphase==&lt;br /&gt;
===Ist-Zustand===&lt;br /&gt;
*Derzeit müssen alle Prüfungen händisch erstellt werden&lt;br /&gt;
*Ergebnisse müssen manuell ermittelt und geprüft werden, was Zeit dauert&lt;br /&gt;
*Vorbild: Ein portabler LPIC-Simulator aus XML und JavaScript-Dateien, der jedoch nur eingeschränkt nützlich ist&lt;br /&gt;
**Keine Kategorisierung möglich&lt;br /&gt;
**Neue Fragen und Antworten müssen in &#039;&#039;&#039;eine&#039;&#039;&#039; XML-Datei eingetragen sein. Kenntnisse in XML müssen also vorhanden sein.&lt;br /&gt;
**Keine personalisierte Prüfungen möglich&lt;br /&gt;
&lt;br /&gt;
===Wirtschaftlichkeitsanalyse===&lt;br /&gt;
===Anwendungsfälle===&lt;br /&gt;
*Grundgedanken&lt;br /&gt;
**&#039;&#039;Prüfer&#039;&#039; und &#039;&#039;Prüfling&#039;&#039;&lt;br /&gt;
**Prüfer muss Fragen, Antworten, neue Prüflinge, neue Fachgebiete und Themen, neue Prüfungen erstellen können&lt;br /&gt;
**Prüfer kann Ergebnisse von Prüflingen einsichten&lt;br /&gt;
**Prüfling muss Prüfung ablegen können&lt;br /&gt;
**Anwendung muss Ergebnis dem Prüfling präsentieren&lt;br /&gt;
&lt;br /&gt;
===Lastenheft===&lt;br /&gt;
* Beschreibung des Lastenhefts(Nicht das Lastenheft selber! Auszugsweise im Anhang!)&lt;br /&gt;
* Soll nach der MoSCoW-Methode(Must, Should, Could, Won´t) formuliert werden.&lt;br /&gt;
&lt;br /&gt;
==Entwurf==&lt;br /&gt;
&lt;br /&gt;
===Datenbank===&lt;br /&gt;
*Grundgedanken&lt;br /&gt;
**Drei Blöcke: &#039;&#039;Fragen-Antworten&#039;&#039;-Block, &#039;&#039;Prüfung&#039;&#039;-Block und &#039;&#039;Teilnehmer&#039;&#039;-Block&lt;br /&gt;
**Eine Frage hat mehrere Antworten(mind. 1-2 je nach Frageart); Eine Antwort gehört zu einer Frage&lt;br /&gt;
**Eine Prüfung hat mehrere Teilnehmer und ein Teilnehmer belegt mehrere Prüfungen.&lt;br /&gt;
**Eine Frage kommt in mehreren Prüfungen vor, eine Prüfung hat mehrere Fragen.&lt;br /&gt;
**Ein Benutzer/Teilnehmer gehört zu einer Gruppe(Team) und hat eine bestimmte Rolle in der Anwendung(Admin, Editor, Prüfling).&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|1200px]]&lt;br /&gt;
*Damit keine Redundanzen entstehen bei den Fragen, wird auf fg_fragetext ein UNIQUE KEY gesetzt.&lt;br /&gt;
*&#039;&#039;Hilft nicht 100%, da ähnliche Fragen trotzdem in die Datenbank geschrieben werden können.&#039;&#039;&lt;br /&gt;
*&#039;&#039;Macht keinen Unterschied, ob die Frage Groß- oder kleingeschrieben ist. Ist die Frage identisch, wird sie verworfen.&#039;&#039;&lt;br /&gt;
*Ebenfalls UNIQUE KEY gesetzt:&lt;br /&gt;
**fg_fachgebiet&lt;br /&gt;
**pr_titel&lt;br /&gt;
**tn_username&lt;br /&gt;
**ro_rolle&lt;br /&gt;
**gr_gruppe&lt;br /&gt;
**sc_level&lt;br /&gt;
**fa_frageart&lt;br /&gt;
&lt;br /&gt;
===Benutzeroberfläche===&lt;br /&gt;
*Realisiert mithilfe des Frameworks &#039;&#039;Bootstrap&#039;&#039;&lt;br /&gt;
*HTML/CSS größtenteils&lt;br /&gt;
&lt;br /&gt;
===Funktionen===&lt;br /&gt;
*Funktionen sollen die [[Projekt:TestTool:Use-Case-Szenarien|Anwendungsfälle]] realisieren können&lt;br /&gt;
*Zusätzliche Funktionen&lt;br /&gt;
**Filterung&lt;br /&gt;
**Sortierung&lt;br /&gt;
**Import von Fragen&lt;br /&gt;
**Benutzerinformationen ändern bzgl. Gruppe, Rolle, Benutzernamen etc.&lt;br /&gt;
*Für das Erstellen neuer Benutzer gilt folgendes:&lt;br /&gt;
**Passwort muss verschlüsselt auf der Datenbank liegen&lt;br /&gt;
**Realisierung erfolgt durch SHA512 (Umwandlung des Passworts durch eine Hash-Funktion)&lt;br /&gt;
**Zur Erhöhung der Sicherheit wird zusätzlich ein SALT verwendet&lt;br /&gt;
&lt;br /&gt;
===Pflichtenheft===&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Kurze Beschreibung des Pflichtenhefts(Nicht das Pflichtenheft selber, höchstens Auszüge davon im Anhang!&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Implementierungsphase==&lt;br /&gt;
===Erstellung der Datenbank===&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE c8testtool;&lt;br /&gt;
 USE c8testtool;&lt;br /&gt;
&lt;br /&gt;
Fragentabelle erstellen mit Primärschlüssel und NOT NULL auf Fragetext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE fragen &lt;br /&gt;
 (fr_id INT PRIMARY KEY AUTO_INCREMENT, &lt;br /&gt;
 fr_fragetext VARCHAR(255) NOT NULL, &lt;br /&gt;
 fr_th_id INT, &lt;br /&gt;
 fr_sc_id INT, &lt;br /&gt;
 fr_fa_id INT, &lt;br /&gt;
 fr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Antworttabelle erstellen mit Primärschlüssel und UNIQUE-Index auf Antworttext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE antworten &lt;br /&gt;
 (an_id INT PRIMARY KEY AUTO_INCREMENT, &lt;br /&gt;
 an_antworttext TEXT UNIQUE,&lt;br /&gt;
 an_fr_id int, &lt;br /&gt;
 an_richtig boolean, &lt;br /&gt;
 an_delete boolean);&lt;br /&gt;
&lt;br /&gt;
Thementabelle erstellen mit Primärschlüssel und UNIQUE-Index auf Thema.&lt;br /&gt;
 &lt;br /&gt;
 CREATE TABLE themen&lt;br /&gt;
 (th_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 th_thema varchar(40) UNIQUE,&lt;br /&gt;
 th_fa_id INT,&lt;br /&gt;
 th_delete boolean);&lt;br /&gt;
&lt;br /&gt;
Tabelle mit Fachgebieten erstellen mit Primärschlüssel und UNIQUE-Index auf Fachgebiet.&lt;br /&gt;
  &lt;br /&gt;
 CREATE TABLE fachgebiete&lt;br /&gt;
 (fa_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 fa_fachgebiet varchar(40) UNIQUE,&lt;br /&gt;
 fa_delete boolean);&lt;br /&gt;
&lt;br /&gt;
Im Nachhinein Beziehung aufsetzen zwischen Antworten und Fragen. Jede Frage hat mehrere Antworten, jede Antwort gehört zu einer Frage. Einsetzen der Lösch- und Änderungsweitergabe.&lt;br /&gt;
&lt;br /&gt;
 ALTER TABLE antworten &lt;br /&gt;
 ADD FOREIGN KEY(an_fr_id) &lt;br /&gt;
 REFERENCES fragen(fr_id) &lt;br /&gt;
 ON DELETE CASCADE ON UPDATE CASCADE;&lt;br /&gt;
&lt;br /&gt;
Tabelle mit Benutzer/Teilnehmer erstellen mit UNIQUE-KEY auf &#039;&#039;tn_username&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE teilnehmer &lt;br /&gt;
 (tn_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 tn_vorname VARCHAR(40) NOT NULL,&lt;br /&gt;
 tn_nachname VARCHAR(40) NOT NULL,&lt;br /&gt;
 tn_ro_id INT NOT NULL,&lt;br /&gt;
 tn_gr_id INT NOT NULL,&lt;br /&gt;
 tn_username VARCHAR(40)UNIQUE NOT NULL, &lt;br /&gt;
 tn_passwort VARCHAR(255) NOT NULL,&lt;br /&gt;
 tn_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Prüfungstabelle erstellen mit Standardwert 90 für &#039;&#039;pr_dauer&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE pruefung&lt;br /&gt;
 (pr_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 pr_titel VARCHAR(40) NOT NULL,&lt;br /&gt;
 pr_datum DATE NOT NULL,&lt;br /&gt;
 pr_dauer INT NOT NULL DEFAULT 90,&lt;br /&gt;
 pr_wiederholbar BOOLEAN,&lt;br /&gt;
 pr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Zuordnungstabelle &#039;&#039;Prüfungsfragen&#039;&#039; erstellen&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE pruefungsfragen&lt;br /&gt;
 (pf_fr_id INT,&lt;br /&gt;
 pf_pr_id INT);&lt;br /&gt;
&lt;br /&gt;
===Implementierung der Entitäten===&lt;br /&gt;
===Implementierung der Programmierlogik===&lt;br /&gt;
&lt;br /&gt;
====Import-Funktion====&lt;br /&gt;
&lt;br /&gt;
====Ermitteln und Berechnen des Ergebnisses====&lt;br /&gt;
&lt;br /&gt;
===Testphase===&lt;br /&gt;
Während der Testphase wurden folgenden Fehler entdeckt:&lt;br /&gt;
*SQL-Injections möglich im Sucheingabefeld&lt;br /&gt;
**Lösung: Benutzen der php-Funktion &#039;&#039;bindParam&#039;&#039;&lt;br /&gt;
*Unauthorisierter Zugriff, wenn beim Browser auf den Zurück-Knopf klickt.&lt;br /&gt;
**Lösung: Prüfen, ob der Benutzer Zugriff darauf hat.&lt;br /&gt;
&lt;br /&gt;
==Abschlussphase==&lt;br /&gt;
&lt;br /&gt;
===Abnahme===&lt;br /&gt;
&lt;br /&gt;
===Einführung===&lt;br /&gt;
&lt;br /&gt;
===Dokumentation===&lt;br /&gt;
*Es wird neben der Projektdokumentation eine [[Projekt:TestTool:Benutzerdoku|Benutzerdokumenation]] verfasst.&lt;br /&gt;
&lt;br /&gt;
==Fazit==&lt;br /&gt;
&lt;br /&gt;
===Ist/Soll-Vergleich===&lt;br /&gt;
&lt;br /&gt;
===Ausblick/Verbesserungen===&lt;br /&gt;
*Einfügen von Bildern&lt;br /&gt;
*Einfügen neuer Fragetypen(Zuordnungsfragen, Bildbeschreibungsfragen)&lt;br /&gt;
*Bessere Programmierung, Modularisierung&lt;br /&gt;
&lt;br /&gt;
==Quellen==&lt;br /&gt;
&lt;br /&gt;
=Anhang=&lt;br /&gt;
*Auszug aus dem Lastenheft&lt;br /&gt;
*Auszug aus dem Pflichtenheft&lt;br /&gt;
*ER-Modell&lt;br /&gt;
[[Datei:er-modell_testtool.png|750px]]&lt;br /&gt;
*Tabellenmodell&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|750px]]&lt;br /&gt;
*Use-Case-Szenarien&lt;br /&gt;
*Use-Case-Diagramm&lt;br /&gt;
*Aktivitätsdiagramm&lt;br /&gt;
*Auszug aus der Funktion &amp;quot;Bewerten einer Prüfung&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Formalien ==&lt;br /&gt;
=== Deckblatt ===&lt;br /&gt;
*Projektbezeichnung: Datenbankbasierte Webanwendung zur Verwaltung und Durchführung von Prüfungen&lt;br /&gt;
*Namen und Vornamen: Rogers, Alexander&lt;br /&gt;
*Prüfungsausschuss&lt;br /&gt;
*Ausbildungsberuf: Fachinformatiker Anwendungsentwicklung&lt;br /&gt;
*Ausbildungsstätte bzw. Praktikumsbetrieb: itw gGmbH, Groninger Straße 25, 13347 Berlin bzw. Dirk Wagner Berlin, Carstennstraße 6, 12205 Berlin&lt;br /&gt;
&lt;br /&gt;
===Eidesstattliche Erklärung===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Abkürzungsverzeichnis===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekt:TestTool]]&lt;/div&gt;</summary>
		<author><name>Alexanderrogers</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=18569</id>
		<title>TestTool/Dokumentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=18569"/>
		<updated>2020-11-12T12:47:38Z</updated>

		<summary type="html">&lt;p&gt;Alexanderrogers: /* Implementierung der Programmierlogik */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projektdokumentation zur Webanwendung&lt;br /&gt;
&lt;br /&gt;
=Einleitung=&lt;br /&gt;
In dieser Projektdokumentation wird der Ablauf des Abschlussprojektes erläutert, das der Autor im Rahmen seiner Abschlussprüfung zum Fachinformatiker für Anwendungsentwicklung durchführt.&lt;br /&gt;
&lt;br /&gt;
==Projektbeschreibung==&lt;br /&gt;
Für die Dirk Wagner Berlin soll eine Webanwendung mit HTML und PHP entwickelt werden. Diese Webanwendung soll bestimmte Anforderungen erfüllen, die das Erstellen von Prüfungen erleichtern sollen.&lt;br /&gt;
==Projektziel==&lt;br /&gt;
Das Ziel dieses Projektes ist die erfolgreiche Umsetzung einer Webanwendung, die alle Prüfungen von Prüfern verwaltet. Die Prüfer sollen Fragen und mögliche Antworten eintragen können. Die Prüfungen sollen von Prüflingen durchgeführt werden und anschließend ein Ergebnis der Prüfung präsentiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Phasen des Projekts===&lt;br /&gt;
==Startphase==&lt;br /&gt;
===Ist-Zustand===&lt;br /&gt;
*Derzeit müssen alle Prüfungen händisch erstellt werden&lt;br /&gt;
*Ergebnisse müssen manuell ermittelt und geprüft werden, was Zeit dauert&lt;br /&gt;
*Vorbild: Ein portabler LPIC-Simulator aus XML und JavaScript-Dateien, der jedoch nur eingeschränkt nützlich ist&lt;br /&gt;
**Keine Kategorisierung möglich&lt;br /&gt;
**Neue Fragen und Antworten müssen in &#039;&#039;&#039;eine&#039;&#039;&#039; XML-Datei eingetragen sein. Kenntnisse in XML müssen also vorhanden sein.&lt;br /&gt;
**Keine personalisierte Prüfungen möglich&lt;br /&gt;
&lt;br /&gt;
===Wirtschaftlichkeitsanalyse===&lt;br /&gt;
===Anwendungsfälle===&lt;br /&gt;
*Grundgedanken&lt;br /&gt;
**&#039;&#039;Prüfer&#039;&#039; und &#039;&#039;Prüfling&#039;&#039;&lt;br /&gt;
**Prüfer muss Fragen, Antworten, neue Prüflinge, neue Fachgebiete und Themen, neue Prüfungen erstellen können&lt;br /&gt;
**Prüfer kann Ergebnisse von Prüflingen einsichten&lt;br /&gt;
**Prüfling muss Prüfung ablegen können&lt;br /&gt;
**Anwendung muss Ergebnis dem Prüfling präsentieren&lt;br /&gt;
&lt;br /&gt;
===Lastenheft===&lt;br /&gt;
* Beschreibung des Lastenhefts(Nicht das Lastenheft selber! Auszugsweise im Anhang!)&lt;br /&gt;
* Soll nach der MoSCoW-Methode(Must, Should, Could, Won´t) formuliert werden.&lt;br /&gt;
&lt;br /&gt;
==Entwurf==&lt;br /&gt;
&lt;br /&gt;
===Datenbank===&lt;br /&gt;
*Grundgedanken&lt;br /&gt;
**Drei Blöcke: &#039;&#039;Fragen-Antworten&#039;&#039;-Block, &#039;&#039;Prüfung&#039;&#039;-Block und &#039;&#039;Teilnehmer&#039;&#039;-Block&lt;br /&gt;
**Eine Frage hat mehrere Antworten(mind. 1-2 je nach Frageart); Eine Antwort gehört zu einer Frage&lt;br /&gt;
**Eine Prüfung hat mehrere Teilnehmer und ein Teilnehmer belegt mehrere Prüfungen.&lt;br /&gt;
**Eine Frage kommt in mehreren Prüfungen vor, eine Prüfung hat mehrere Fragen.&lt;br /&gt;
**Ein Benutzer/Teilnehmer gehört zu einer Gruppe(Team) und hat eine bestimmte Rolle in der Anwendung(Admin, Editor, Prüfling).&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|1200px]]&lt;br /&gt;
*Damit keine Redundanzen entstehen bei den Fragen, wird auf fg_fragetext ein UNIQUE KEY gesetzt.&lt;br /&gt;
*&#039;&#039;Hilft nicht 100%, da ähnliche Fragen trotzdem in die Datenbank geschrieben werden können.&#039;&#039;&lt;br /&gt;
*&#039;&#039;Macht keinen Unterschied, ob die Frage Groß- oder kleingeschrieben ist. Ist die Frage identisch, wird sie verworfen.&#039;&#039;&lt;br /&gt;
*Ebenfalls UNIQUE KEY gesetzt:&lt;br /&gt;
**fg_fachgebiet&lt;br /&gt;
**pr_titel&lt;br /&gt;
**tn_username&lt;br /&gt;
**ro_rolle&lt;br /&gt;
**gr_gruppe&lt;br /&gt;
**sc_level&lt;br /&gt;
**fa_frageart&lt;br /&gt;
&lt;br /&gt;
===Benutzeroberfläche===&lt;br /&gt;
*Realisiert mithilfe des Frameworks &#039;&#039;Bootstrap&#039;&#039;&lt;br /&gt;
*HTML/CSS größtenteils&lt;br /&gt;
&lt;br /&gt;
===Funktionen===&lt;br /&gt;
*Funktionen sollen die [[Projekt:TestTool:Use-Case-Szenarien|Anwendungsfälle]] realisieren können&lt;br /&gt;
*Zusätzliche Funktionen&lt;br /&gt;
**Filterung&lt;br /&gt;
**Sortierung&lt;br /&gt;
**Import von Fragen&lt;br /&gt;
**Benutzerinformationen ändern bzgl. Gruppe, Rolle, Benutzernamen etc.&lt;br /&gt;
*Für das Erstellen neuer Benutzer gilt folgendes:&lt;br /&gt;
**Passwort muss verschlüsselt auf der Datenbank liegen&lt;br /&gt;
**Realisierung erfolgt durch SHA512 (Umwandlung des Passworts durch eine Hash-Funktion)&lt;br /&gt;
**Zur Erhöhung der Sicherheit wird zusätzlich ein SALT verwendet&lt;br /&gt;
&lt;br /&gt;
===Pflichtenheft===&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Kurze Beschreibung des Pflichtenhefts(Nicht das Pflichtenheft selber, höchstens Auszüge davon im Anhang!&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Implementierungsphase==&lt;br /&gt;
===Erstellung der Datenbank===&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE c8testtool;&lt;br /&gt;
 USE c8testtool;&lt;br /&gt;
&lt;br /&gt;
Fragentabelle erstellen mit Primärschlüssel und NOT NULL auf Fragetext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE fragen &lt;br /&gt;
 (fr_id INT PRIMARY KEY AUTO_INCREMENT, &lt;br /&gt;
 fr_fragetext VARCHAR(255) NOT NULL, &lt;br /&gt;
 fr_th_id INT, &lt;br /&gt;
 fr_sc_id INT, &lt;br /&gt;
 fr_fa_id INT, &lt;br /&gt;
 fr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Antworttabelle erstellen mit Primärschlüssel und UNIQUE-Index auf Antworttext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE antworten &lt;br /&gt;
 (an_id INT PRIMARY KEY AUTO_INCREMENT, &lt;br /&gt;
 an_antworttext TEXT UNIQUE,&lt;br /&gt;
 an_fr_id int, &lt;br /&gt;
 an_richtig boolean, &lt;br /&gt;
 an_delete boolean);&lt;br /&gt;
&lt;br /&gt;
Thementabelle erstellen mit Primärschlüssel und UNIQUE-Index auf Thema.&lt;br /&gt;
 &lt;br /&gt;
 CREATE TABLE themen&lt;br /&gt;
 (th_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 th_thema varchar(40) UNIQUE,&lt;br /&gt;
 th_fa_id INT,&lt;br /&gt;
 th_delete boolean);&lt;br /&gt;
&lt;br /&gt;
Tabelle mit Fachgebieten erstellen mit Primärschlüssel und UNIQUE-Index auf Fachgebiet.&lt;br /&gt;
  &lt;br /&gt;
 CREATE TABLE fachgebiete&lt;br /&gt;
 (fa_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 fa_fachgebiet varchar(40) UNIQUE,&lt;br /&gt;
 fa_delete boolean);&lt;br /&gt;
&lt;br /&gt;
Im Nachhinein Beziehung aufsetzen zwischen Antworten und Fragen. Jede Frage hat mehrere Antworten, jede Antwort gehört zu einer Frage. Einsetzen der Lösch- und Änderungsweitergabe.&lt;br /&gt;
&lt;br /&gt;
 ALTER TABLE antworten &lt;br /&gt;
 ADD FOREIGN KEY(an_fr_id) &lt;br /&gt;
 REFERENCES fragen(fr_id) &lt;br /&gt;
 ON DELETE CASCADE ON UPDATE CASCADE;&lt;br /&gt;
&lt;br /&gt;
Tabelle mit Benutzer/Teilnehmer erstellen mit UNIQUE-KEY auf &#039;&#039;tn_username&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE teilnehmer &lt;br /&gt;
 (tn_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 tn_vorname VARCHAR(40) NOT NULL,&lt;br /&gt;
 tn_nachname VARCHAR(40) NOT NULL,&lt;br /&gt;
 tn_ro_id INT NOT NULL,&lt;br /&gt;
 tn_gr_id INT NOT NULL,&lt;br /&gt;
 tn_username VARCHAR(40)UNIQUE NOT NULL, &lt;br /&gt;
 tn_passwort VARCHAR(255) NOT NULL,&lt;br /&gt;
 tn_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Prüfungstabelle erstellen mit Standardwert 90 für &#039;&#039;pr_dauer&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE pruefung&lt;br /&gt;
 (pr_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 pr_titel VARCHAR(40) NOT NULL,&lt;br /&gt;
 pr_datum DATE NOT NULL,&lt;br /&gt;
 pr_dauer INT NOT NULL DEFAULT 90,&lt;br /&gt;
 pr_wiederholbar BOOLEAN,&lt;br /&gt;
 pr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Zuordnungstabelle &#039;&#039;Prüfungsfragen&#039;&#039; erstellen&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE pruefungsfragen&lt;br /&gt;
 (pf_fr_id INT,&lt;br /&gt;
 pf_pr_id INT);&lt;br /&gt;
&lt;br /&gt;
===Implementierung der Entitäten===&lt;br /&gt;
===Implementierung der Programmierlogik===&lt;br /&gt;
&lt;br /&gt;
====Import-Funktion====&lt;br /&gt;
&lt;br /&gt;
====Ermitteln und Berechnen des Ergebnisses====&lt;br /&gt;
&lt;br /&gt;
===Testphase===&lt;br /&gt;
Während der Testphase wurden folgenden Fehler entdeckt:&lt;br /&gt;
*SQL-Injections möglich im Sucheingabefeld&lt;br /&gt;
**Lösung: Benutzen der php-Funktion &#039;&#039;bindParam&#039;&#039;&lt;br /&gt;
*Unauthorisierter Zugriff, wenn beim Browser auf den Zurück-Knopf klickt.&lt;br /&gt;
**Lösung: Prüfen, ob der Benutzer Zugriff darauf hat.&lt;br /&gt;
&lt;br /&gt;
==Abschlussphase==&lt;br /&gt;
&lt;br /&gt;
===Abnahme===&lt;br /&gt;
&lt;br /&gt;
===Einführung===&lt;br /&gt;
&lt;br /&gt;
===Dokumentation===&lt;br /&gt;
*Es wird neben der Projektdokumentation eine [[Projekt:TestTool:Benutzerdoku|Benutzerdokumenation]] verfasst.&lt;br /&gt;
&lt;br /&gt;
==Fazit==&lt;br /&gt;
&lt;br /&gt;
===Soll/Ist-Vergleich===&lt;br /&gt;
&lt;br /&gt;
===Ausblick/Verbesserungen===&lt;br /&gt;
*Einfügen von Bildern&lt;br /&gt;
*Einfügen neuer Fragetypen(Zuordnungsfragen, Bildbeschreibungsfragen)&lt;br /&gt;
*Bessere Programmierung, Modularisierung&lt;br /&gt;
&lt;br /&gt;
==Quellen==&lt;br /&gt;
&lt;br /&gt;
=Anhang=&lt;br /&gt;
*Auszug aus dem Lastenheft&lt;br /&gt;
*Auszug aus dem Pflichtenheft&lt;br /&gt;
*ER-Modell&lt;br /&gt;
[[Datei:er-modell_testtool.png|750px]]&lt;br /&gt;
*Tabellenmodell&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|750px]]&lt;br /&gt;
*Use-Case-Szenarien&lt;br /&gt;
*Use-Case-Diagramm&lt;br /&gt;
*Aktivitätsdiagramm&lt;br /&gt;
*Auszug aus der Funktion &amp;quot;Bewerten einer Prüfung&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Formalien ==&lt;br /&gt;
=== Deckblatt ===&lt;br /&gt;
*Projektbezeichnung: Datenbankbasierte Webanwendung zur Verwaltung und Durchführung von Prüfungen&lt;br /&gt;
*Namen und Vornamen: Rogers, Alexander&lt;br /&gt;
*Prüfungsausschuss&lt;br /&gt;
*Ausbildungsberuf: Fachinformatiker Anwendungsentwicklung&lt;br /&gt;
*Ausbildungsstätte bzw. Praktikumsbetrieb: itw gGmbH, Groninger Straße 25, 13347 Berlin bzw. Dirk Wagner Berlin, Carstennstraße 6, 12205 Berlin&lt;br /&gt;
&lt;br /&gt;
===Eidesstattliche Erklärung===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Abkürzungsverzeichnis===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekt:TestTool]]&lt;/div&gt;</summary>
		<author><name>Alexanderrogers</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=TestTool/Benutzerdokumentation&amp;diff=18480</id>
		<title>TestTool/Benutzerdokumentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=TestTool/Benutzerdokumentation&amp;diff=18480"/>
		<updated>2020-11-10T14:14:40Z</updated>

		<summary type="html">&lt;p&gt;Alexanderrogers: /* Teilnehmer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Benutzerhandbuch für den Prüfungssimulator&lt;br /&gt;
&lt;br /&gt;
==Rollen==&lt;br /&gt;
===Admin===&lt;br /&gt;
*Neue Benutzer anlegen.&lt;br /&gt;
*Rechte vergeben an Benutzer.&lt;br /&gt;
*Neue Prüfungen anlegen.&lt;br /&gt;
*Fragen in die Prüfungen anlegen.&lt;br /&gt;
*Prüfungen ablegen&lt;br /&gt;
*Neue Fragen und Antworten eingeben.&lt;br /&gt;
*Fragen und Antworten löschen&lt;br /&gt;
*Einsicht in alle Prüfungsergebnisse&lt;br /&gt;
*Neue Fachgebiete und Themen erstellen.&lt;br /&gt;
&lt;br /&gt;
===Editor===&lt;br /&gt;
*Neue Fragen und Antworten eingeben&lt;br /&gt;
*Prüfungen ablegen&lt;br /&gt;
*Einsicht in eigene Prüfungsergebnisse &lt;br /&gt;
&lt;br /&gt;
===Prüfling===&lt;br /&gt;
*Prüfungen ablegen&lt;br /&gt;
*Einsicht in eigene Prüfungsergebnisse&lt;br /&gt;
&lt;br /&gt;
==Einloggen==&lt;br /&gt;
&lt;br /&gt;
==Fragen==&lt;br /&gt;
===Eintragen von Fragen===&lt;br /&gt;
&lt;br /&gt;
===Bearbeiten von Fragen===&lt;br /&gt;
&lt;br /&gt;
==Antworten==&lt;br /&gt;
===Eintragen von Antworten===&lt;br /&gt;
&lt;br /&gt;
===Bearbeiten von Antworten===&lt;br /&gt;
&lt;br /&gt;
==Importieren von Fragen und dazugehöriger Antworten==&lt;br /&gt;
&lt;br /&gt;
==Benutzer==&lt;br /&gt;
===Neuen Benutzer erstellen===&lt;br /&gt;
&lt;br /&gt;
===Bearbeiten der Benutzerinformationen===&lt;br /&gt;
&lt;br /&gt;
==Prüfung==&lt;br /&gt;
===Prüfung erstellen===&lt;br /&gt;
&lt;br /&gt;
===Prüfungsfragen hinzufügen===&lt;br /&gt;
&lt;br /&gt;
===Prüfung ablegen===&lt;br /&gt;
&lt;br /&gt;
==Ergebnisse==&lt;/div&gt;</summary>
		<author><name>Alexanderrogers</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=TestTool/Benutzerdokumentation&amp;diff=18479</id>
		<title>TestTool/Benutzerdokumentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=TestTool/Benutzerdokumentation&amp;diff=18479"/>
		<updated>2020-11-10T14:14:12Z</updated>

		<summary type="html">&lt;p&gt;Alexanderrogers: /* Admin */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Benutzerhandbuch für den Prüfungssimulator&lt;br /&gt;
&lt;br /&gt;
==Rollen==&lt;br /&gt;
===Admin===&lt;br /&gt;
*Neue Benutzer anlegen.&lt;br /&gt;
*Rechte vergeben an Benutzer.&lt;br /&gt;
*Neue Prüfungen anlegen.&lt;br /&gt;
*Fragen in die Prüfungen anlegen.&lt;br /&gt;
*Prüfungen ablegen&lt;br /&gt;
*Neue Fragen und Antworten eingeben.&lt;br /&gt;
*Fragen und Antworten löschen&lt;br /&gt;
*Einsicht in alle Prüfungsergebnisse&lt;br /&gt;
*Neue Fachgebiete und Themen erstellen.&lt;br /&gt;
&lt;br /&gt;
===Editor===&lt;br /&gt;
*Neue Fragen und Antworten eingeben&lt;br /&gt;
*Prüfungen ablegen&lt;br /&gt;
*Einsicht in eigene Prüfungsergebnisse &lt;br /&gt;
&lt;br /&gt;
===Prüfling===&lt;br /&gt;
*Prüfungen ablegen&lt;br /&gt;
*Einsicht in eigene Prüfungsergebnisse&lt;br /&gt;
&lt;br /&gt;
==Einloggen==&lt;br /&gt;
&lt;br /&gt;
==Fragen==&lt;br /&gt;
===Eintragen von Fragen===&lt;br /&gt;
&lt;br /&gt;
===Bearbeiten von Fragen===&lt;br /&gt;
&lt;br /&gt;
==Antworten==&lt;br /&gt;
===Eintragen von Antworten===&lt;br /&gt;
&lt;br /&gt;
===Bearbeiten von Antworten===&lt;br /&gt;
&lt;br /&gt;
==Importieren von Fragen und dazugehöriger Antworten==&lt;br /&gt;
&lt;br /&gt;
==Teilnehmer==&lt;br /&gt;
===Neuen Teilnehmer erstellen===&lt;br /&gt;
&lt;br /&gt;
===Bearbeiten der Teilnehmerinformationen===&lt;br /&gt;
&lt;br /&gt;
==Prüfung==&lt;br /&gt;
===Prüfung erstellen===&lt;br /&gt;
&lt;br /&gt;
===Prüfungsfragen hinzufügen===&lt;br /&gt;
&lt;br /&gt;
===Prüfung ablegen===&lt;br /&gt;
&lt;br /&gt;
==Ergebnisse==&lt;/div&gt;</summary>
		<author><name>Alexanderrogers</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=TestTool/Benutzerdokumentation&amp;diff=18478</id>
		<title>TestTool/Benutzerdokumentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=TestTool/Benutzerdokumentation&amp;diff=18478"/>
		<updated>2020-11-10T14:13:59Z</updated>

		<summary type="html">&lt;p&gt;Alexanderrogers: /* Admin */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Benutzerhandbuch für den Prüfungssimulator&lt;br /&gt;
&lt;br /&gt;
==Rollen==&lt;br /&gt;
===Admin===&lt;br /&gt;
*Neue Benutzer anlegen.&lt;br /&gt;
*Neue Prüfungen anlegen.&lt;br /&gt;
*Fragen in die Prüfungen anlegen.&lt;br /&gt;
*Prüfungen ablegen&lt;br /&gt;
*Neue Fragen und Antworten eingeben.&lt;br /&gt;
*Fragen und Antworten löschen&lt;br /&gt;
*Einsicht in alle Prüfungsergebnisse&lt;br /&gt;
*Neue Fachgebiete und Themen erstellen.&lt;br /&gt;
&lt;br /&gt;
===Editor===&lt;br /&gt;
*Neue Fragen und Antworten eingeben&lt;br /&gt;
*Prüfungen ablegen&lt;br /&gt;
*Einsicht in eigene Prüfungsergebnisse &lt;br /&gt;
&lt;br /&gt;
===Prüfling===&lt;br /&gt;
*Prüfungen ablegen&lt;br /&gt;
*Einsicht in eigene Prüfungsergebnisse&lt;br /&gt;
&lt;br /&gt;
==Einloggen==&lt;br /&gt;
&lt;br /&gt;
==Fragen==&lt;br /&gt;
===Eintragen von Fragen===&lt;br /&gt;
&lt;br /&gt;
===Bearbeiten von Fragen===&lt;br /&gt;
&lt;br /&gt;
==Antworten==&lt;br /&gt;
===Eintragen von Antworten===&lt;br /&gt;
&lt;br /&gt;
===Bearbeiten von Antworten===&lt;br /&gt;
&lt;br /&gt;
==Importieren von Fragen und dazugehöriger Antworten==&lt;br /&gt;
&lt;br /&gt;
==Teilnehmer==&lt;br /&gt;
===Neuen Teilnehmer erstellen===&lt;br /&gt;
&lt;br /&gt;
===Bearbeiten der Teilnehmerinformationen===&lt;br /&gt;
&lt;br /&gt;
==Prüfung==&lt;br /&gt;
===Prüfung erstellen===&lt;br /&gt;
&lt;br /&gt;
===Prüfungsfragen hinzufügen===&lt;br /&gt;
&lt;br /&gt;
===Prüfung ablegen===&lt;br /&gt;
&lt;br /&gt;
==Ergebnisse==&lt;/div&gt;</summary>
		<author><name>Alexanderrogers</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=18477</id>
		<title>TestTool/Dokumentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=18477"/>
		<updated>2020-11-10T14:13:35Z</updated>

		<summary type="html">&lt;p&gt;Alexanderrogers: /* Erstellung der Datenbank */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projektdokumentation zur Webanwendung&lt;br /&gt;
&lt;br /&gt;
=Einleitung=&lt;br /&gt;
In dieser Projektdokumentation wird der Ablauf des Abschlussprojektes erläutert, das der Autor im Rahmen seiner Abschlussprüfung zum Fachinformatiker für Anwendungsentwicklung durchführt.&lt;br /&gt;
&lt;br /&gt;
==Projektbeschreibung==&lt;br /&gt;
Für die Dirk Wagner Berlin soll eine Webanwendung mit HTML und PHP entwickelt werden. Diese Webanwendung soll bestimmte Anforderungen erfüllen, die das Erstellen von Prüfungen erleichtern sollen.&lt;br /&gt;
==Projektziel==&lt;br /&gt;
Das Ziel dieses Projektes ist die erfolgreiche Umsetzung einer Webanwendung, die alle Prüfungen von Prüfern verwaltet. Die Prüfer sollen Fragen und mögliche Antworten eintragen können. Die Prüfungen sollen von Prüflingen durchgeführt werden und anschließend ein Ergebnis der Prüfung präsentiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Phasen des Projekts===&lt;br /&gt;
==Startphase==&lt;br /&gt;
===Ist-Zustand===&lt;br /&gt;
*Derzeit müssen alle Prüfungen händisch erstellt werden&lt;br /&gt;
*Ergebnisse müssen manuell ermittelt und geprüft werden, was Zeit dauert&lt;br /&gt;
*Vorbild: Ein portabler LPIC-Simulator aus XML und JavaScript-Dateien, der jedoch nur eingeschränkt nützlich ist&lt;br /&gt;
**Keine Kategorisierung möglich&lt;br /&gt;
**Neue Fragen und Antworten müssen in &#039;&#039;&#039;eine&#039;&#039;&#039; XML-Datei eingetragen sein. Kenntnisse in XML müssen also vorhanden sein.&lt;br /&gt;
**Keine personalisierte Prüfungen möglich&lt;br /&gt;
&lt;br /&gt;
===Wirtschaftlichkeitsanalyse===&lt;br /&gt;
===Anwendungsfälle===&lt;br /&gt;
*Grundgedanken&lt;br /&gt;
**&#039;&#039;Prüfer&#039;&#039; und &#039;&#039;Prüfling&#039;&#039;&lt;br /&gt;
**Prüfer muss Fragen, Antworten, neue Prüflinge, neue Fachgebiete und Themen, neue Prüfungen erstellen können&lt;br /&gt;
**Prüfer kann Ergebnisse von Prüflingen einsichten&lt;br /&gt;
**Prüfling muss Prüfung ablegen können&lt;br /&gt;
**Anwendung muss Ergebnis dem Prüfling präsentieren&lt;br /&gt;
&lt;br /&gt;
===Lastenheft===&lt;br /&gt;
* Beschreibung des Lastenhefts(Nicht das Lastenheft selber! Auszugsweise im Anhang!)&lt;br /&gt;
* Soll nach der MoSCoW-Methode(Must, Should, Could, Won´t) formuliert werden.&lt;br /&gt;
&lt;br /&gt;
==Entwurf==&lt;br /&gt;
&lt;br /&gt;
===Datenbank===&lt;br /&gt;
*Grundgedanken&lt;br /&gt;
**Drei Blöcke: &#039;&#039;Fragen-Antworten&#039;&#039;-Block, &#039;&#039;Prüfung&#039;&#039;-Block und &#039;&#039;Teilnehmer&#039;&#039;-Block&lt;br /&gt;
**Eine Frage hat mehrere Antworten(mind. 1-2 je nach Frageart); Eine Antwort gehört zu einer Frage&lt;br /&gt;
**Eine Prüfung hat mehrere Teilnehmer und ein Teilnehmer belegt mehrere Prüfungen.&lt;br /&gt;
**Eine Frage kommt in mehreren Prüfungen vor, eine Prüfung hat mehrere Fragen.&lt;br /&gt;
**Ein Benutzer/Teilnehmer gehört zu einer Gruppe(Team) und hat eine bestimmte Rolle in der Anwendung(Admin, Editor, Prüfling).&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|1200px]]&lt;br /&gt;
*Damit keine Redundanzen entstehen bei den Fragen, wird auf fg_fragetext ein UNIQUE KEY gesetzt.&lt;br /&gt;
*&#039;&#039;Hilft nicht 100%, da ähnliche Fragen trotzdem in die Datenbank geschrieben werden können.&#039;&#039;&lt;br /&gt;
*&#039;&#039;Macht keinen Unterschied, ob die Frage Groß- oder kleingeschrieben ist. Ist die Frage identisch, wird sie verworfen.&#039;&#039;&lt;br /&gt;
*Ebenfalls UNIQUE KEY gesetzt:&lt;br /&gt;
**fg_fachgebiet&lt;br /&gt;
**pr_titel&lt;br /&gt;
**tn_username&lt;br /&gt;
**ro_rolle&lt;br /&gt;
**gr_gruppe&lt;br /&gt;
**sc_level&lt;br /&gt;
**fa_frageart&lt;br /&gt;
&lt;br /&gt;
===Benutzeroberfläche===&lt;br /&gt;
*Realisiert mithilfe des Frameworks &#039;&#039;Bootstrap&#039;&#039;&lt;br /&gt;
*HTML/CSS größtenteils&lt;br /&gt;
&lt;br /&gt;
===Funktionen===&lt;br /&gt;
*Funktionen sollen die [[Projekt:TestTool:Use-Case-Szenarien|Anwendungsfälle]] realisieren können&lt;br /&gt;
*Zusätzliche Funktionen&lt;br /&gt;
**Filterung&lt;br /&gt;
**Sortierung&lt;br /&gt;
**Import von Fragen&lt;br /&gt;
**Benutzerinformationen ändern bzgl. Gruppe, Rolle, Benutzernamen etc.&lt;br /&gt;
*Für das Erstellen neuer Benutzer gilt folgendes:&lt;br /&gt;
**Passwort muss verschlüsselt auf der Datenbank liegen&lt;br /&gt;
**Realisierung erfolgt durch SHA512 (Umwandlung des Passworts durch eine Hash-Funktion)&lt;br /&gt;
**Zur Erhöhung der Sicherheit wird zusätzlich ein SALT verwendet&lt;br /&gt;
&lt;br /&gt;
===Pflichtenheft===&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Kurze Beschreibung des Pflichtenhefts(Nicht das Pflichtenheft selber, höchstens Auszüge davon im Anhang!&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Implementierungsphase==&lt;br /&gt;
===Erstellung der Datenbank===&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE c8testtool;&lt;br /&gt;
 USE c8testtool;&lt;br /&gt;
&lt;br /&gt;
Fragentabelle erstellen mit Primärschlüssel und NOT NULL auf Fragetext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE fragen &lt;br /&gt;
 (fr_id INT PRIMARY KEY AUTO_INCREMENT, &lt;br /&gt;
 fr_fragetext VARCHAR(255) NOT NULL, &lt;br /&gt;
 fr_th_id INT, &lt;br /&gt;
 fr_sc_id INT, &lt;br /&gt;
 fr_fa_id INT, &lt;br /&gt;
 fr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Antworttabelle erstellen mit Primärschlüssel und UNIQUE-Index auf Antworttext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE antworten &lt;br /&gt;
 (an_id INT PRIMARY KEY AUTO_INCREMENT, &lt;br /&gt;
 an_antworttext TEXT UNIQUE,&lt;br /&gt;
 an_fr_id int, &lt;br /&gt;
 an_richtig boolean, &lt;br /&gt;
 an_delete boolean);&lt;br /&gt;
&lt;br /&gt;
Thementabelle erstellen mit Primärschlüssel und UNIQUE-Index auf Thema.&lt;br /&gt;
 &lt;br /&gt;
 CREATE TABLE themen&lt;br /&gt;
 (th_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 th_thema varchar(40) UNIQUE,&lt;br /&gt;
 th_fa_id INT,&lt;br /&gt;
 th_delete boolean);&lt;br /&gt;
&lt;br /&gt;
Tabelle mit Fachgebieten erstellen mit Primärschlüssel und UNIQUE-Index auf Fachgebiet.&lt;br /&gt;
  &lt;br /&gt;
 CREATE TABLE fachgebiete&lt;br /&gt;
 (fa_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 fa_fachgebiet varchar(40) UNIQUE,&lt;br /&gt;
 fa_delete boolean);&lt;br /&gt;
&lt;br /&gt;
Im Nachhinein Beziehung aufsetzen zwischen Antworten und Fragen. Jede Frage hat mehrere Antworten, jede Antwort gehört zu einer Frage. Einsetzen der Lösch- und Änderungsweitergabe.&lt;br /&gt;
&lt;br /&gt;
 ALTER TABLE antworten &lt;br /&gt;
 ADD FOREIGN KEY(an_fr_id) &lt;br /&gt;
 REFERENCES fragen(fr_id) &lt;br /&gt;
 ON DELETE CASCADE ON UPDATE CASCADE;&lt;br /&gt;
&lt;br /&gt;
Tabelle mit Benutzer/Teilnehmer erstellen mit UNIQUE-KEY auf &#039;&#039;tn_username&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE teilnehmer &lt;br /&gt;
 (tn_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 tn_vorname VARCHAR(40) NOT NULL,&lt;br /&gt;
 tn_nachname VARCHAR(40) NOT NULL,&lt;br /&gt;
 tn_ro_id INT NOT NULL,&lt;br /&gt;
 tn_gr_id INT NOT NULL,&lt;br /&gt;
 tn_username VARCHAR(40)UNIQUE NOT NULL, &lt;br /&gt;
 tn_passwort VARCHAR(255) NOT NULL,&lt;br /&gt;
 tn_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Prüfungstabelle erstellen mit Standardwert 90 für &#039;&#039;pr_dauer&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE pruefung&lt;br /&gt;
 (pr_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 pr_titel VARCHAR(40) NOT NULL,&lt;br /&gt;
 pr_datum DATE NOT NULL,&lt;br /&gt;
 pr_dauer INT NOT NULL DEFAULT 90,&lt;br /&gt;
 pr_wiederholbar BOOLEAN,&lt;br /&gt;
 pr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Zuordnungstabelle &#039;&#039;Prüfungsfragen&#039;&#039; erstellen&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE pruefungsfragen&lt;br /&gt;
 (pf_fr_id INT,&lt;br /&gt;
 pf_pr_id INT);&lt;br /&gt;
&lt;br /&gt;
===Implementierung der Entitäten===&lt;br /&gt;
===Implementierung der Programmierlogik===&lt;br /&gt;
===Testphase===&lt;br /&gt;
Während der Testphase wurden folgenden Fehler entdeckt:&lt;br /&gt;
*SQL-Injections möglich im Sucheingabefeld&lt;br /&gt;
**Lösung: Benutzen der php-Funktion &#039;&#039;bindParam&#039;&#039;&lt;br /&gt;
*Unauthorisierter Zugriff, wenn beim Browser auf den Zurück-Knopf klickt.&lt;br /&gt;
**Lösung: Prüfen, ob der Benutzer Zugriff darauf hat.&lt;br /&gt;
&lt;br /&gt;
==Abschlussphase==&lt;br /&gt;
&lt;br /&gt;
===Abnahme===&lt;br /&gt;
&lt;br /&gt;
===Einführung===&lt;br /&gt;
&lt;br /&gt;
===Dokumentation===&lt;br /&gt;
*Es wird neben der Projektdokumentation eine [[Projekt:TestTool:Benutzerdoku|Benutzerdokumenation]] verfasst.&lt;br /&gt;
&lt;br /&gt;
==Fazit==&lt;br /&gt;
&lt;br /&gt;
===Soll/Ist-Vergleich===&lt;br /&gt;
&lt;br /&gt;
===Ausblick/Verbesserungen===&lt;br /&gt;
*Einfügen von Bildern&lt;br /&gt;
*Einfügen neuer Fragetypen(Zuordnungsfragen, Bildbeschreibungsfragen)&lt;br /&gt;
*Bessere Programmierung, Modularisierung&lt;br /&gt;
&lt;br /&gt;
==Quellen==&lt;br /&gt;
&lt;br /&gt;
=Anhang=&lt;br /&gt;
*Auszug aus dem Lastenheft&lt;br /&gt;
*Auszug aus dem Pflichtenheft&lt;br /&gt;
*ER-Modell&lt;br /&gt;
[[Datei:er-modell_testtool.png|750px]]&lt;br /&gt;
*Tabellenmodell&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|750px]]&lt;br /&gt;
*Use-Case-Szenarien&lt;br /&gt;
*Use-Case-Diagramm&lt;br /&gt;
*Aktivitätsdiagramm&lt;br /&gt;
*Auszug aus der Funktion &amp;quot;Bewerten einer Prüfung&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Formalien ==&lt;br /&gt;
=== Deckblatt ===&lt;br /&gt;
*Projektbezeichnung: Datenbankbasierte Webanwendung zur Verwaltung und Durchführung von Prüfungen&lt;br /&gt;
*Namen und Vornamen: Rogers, Alexander&lt;br /&gt;
*Prüfungsausschuss&lt;br /&gt;
*Ausbildungsberuf: Fachinformatiker Anwendungsentwicklung&lt;br /&gt;
*Ausbildungsstätte bzw. Praktikumsbetrieb: itw gGmbH, Groninger Straße 25, 13347 Berlin bzw. Dirk Wagner Berlin, Carstennstraße 6, 12205 Berlin&lt;br /&gt;
&lt;br /&gt;
===Eidesstattliche Erklärung===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Abkürzungsverzeichnis===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekt:TestTool]]&lt;/div&gt;</summary>
		<author><name>Alexanderrogers</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=18476</id>
		<title>TestTool/Dokumentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=18476"/>
		<updated>2020-11-10T14:13:09Z</updated>

		<summary type="html">&lt;p&gt;Alexanderrogers: /* Funktionen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projektdokumentation zur Webanwendung&lt;br /&gt;
&lt;br /&gt;
=Einleitung=&lt;br /&gt;
In dieser Projektdokumentation wird der Ablauf des Abschlussprojektes erläutert, das der Autor im Rahmen seiner Abschlussprüfung zum Fachinformatiker für Anwendungsentwicklung durchführt.&lt;br /&gt;
&lt;br /&gt;
==Projektbeschreibung==&lt;br /&gt;
Für die Dirk Wagner Berlin soll eine Webanwendung mit HTML und PHP entwickelt werden. Diese Webanwendung soll bestimmte Anforderungen erfüllen, die das Erstellen von Prüfungen erleichtern sollen.&lt;br /&gt;
==Projektziel==&lt;br /&gt;
Das Ziel dieses Projektes ist die erfolgreiche Umsetzung einer Webanwendung, die alle Prüfungen von Prüfern verwaltet. Die Prüfer sollen Fragen und mögliche Antworten eintragen können. Die Prüfungen sollen von Prüflingen durchgeführt werden und anschließend ein Ergebnis der Prüfung präsentiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Phasen des Projekts===&lt;br /&gt;
==Startphase==&lt;br /&gt;
===Ist-Zustand===&lt;br /&gt;
*Derzeit müssen alle Prüfungen händisch erstellt werden&lt;br /&gt;
*Ergebnisse müssen manuell ermittelt und geprüft werden, was Zeit dauert&lt;br /&gt;
*Vorbild: Ein portabler LPIC-Simulator aus XML und JavaScript-Dateien, der jedoch nur eingeschränkt nützlich ist&lt;br /&gt;
**Keine Kategorisierung möglich&lt;br /&gt;
**Neue Fragen und Antworten müssen in &#039;&#039;&#039;eine&#039;&#039;&#039; XML-Datei eingetragen sein. Kenntnisse in XML müssen also vorhanden sein.&lt;br /&gt;
**Keine personalisierte Prüfungen möglich&lt;br /&gt;
&lt;br /&gt;
===Wirtschaftlichkeitsanalyse===&lt;br /&gt;
===Anwendungsfälle===&lt;br /&gt;
*Grundgedanken&lt;br /&gt;
**&#039;&#039;Prüfer&#039;&#039; und &#039;&#039;Prüfling&#039;&#039;&lt;br /&gt;
**Prüfer muss Fragen, Antworten, neue Prüflinge, neue Fachgebiete und Themen, neue Prüfungen erstellen können&lt;br /&gt;
**Prüfer kann Ergebnisse von Prüflingen einsichten&lt;br /&gt;
**Prüfling muss Prüfung ablegen können&lt;br /&gt;
**Anwendung muss Ergebnis dem Prüfling präsentieren&lt;br /&gt;
&lt;br /&gt;
===Lastenheft===&lt;br /&gt;
* Beschreibung des Lastenhefts(Nicht das Lastenheft selber! Auszugsweise im Anhang!)&lt;br /&gt;
* Soll nach der MoSCoW-Methode(Must, Should, Could, Won´t) formuliert werden.&lt;br /&gt;
&lt;br /&gt;
==Entwurf==&lt;br /&gt;
&lt;br /&gt;
===Datenbank===&lt;br /&gt;
*Grundgedanken&lt;br /&gt;
**Drei Blöcke: &#039;&#039;Fragen-Antworten&#039;&#039;-Block, &#039;&#039;Prüfung&#039;&#039;-Block und &#039;&#039;Teilnehmer&#039;&#039;-Block&lt;br /&gt;
**Eine Frage hat mehrere Antworten(mind. 1-2 je nach Frageart); Eine Antwort gehört zu einer Frage&lt;br /&gt;
**Eine Prüfung hat mehrere Teilnehmer und ein Teilnehmer belegt mehrere Prüfungen.&lt;br /&gt;
**Eine Frage kommt in mehreren Prüfungen vor, eine Prüfung hat mehrere Fragen.&lt;br /&gt;
**Ein Benutzer/Teilnehmer gehört zu einer Gruppe(Team) und hat eine bestimmte Rolle in der Anwendung(Admin, Editor, Prüfling).&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|1200px]]&lt;br /&gt;
*Damit keine Redundanzen entstehen bei den Fragen, wird auf fg_fragetext ein UNIQUE KEY gesetzt.&lt;br /&gt;
*&#039;&#039;Hilft nicht 100%, da ähnliche Fragen trotzdem in die Datenbank geschrieben werden können.&#039;&#039;&lt;br /&gt;
*&#039;&#039;Macht keinen Unterschied, ob die Frage Groß- oder kleingeschrieben ist. Ist die Frage identisch, wird sie verworfen.&#039;&#039;&lt;br /&gt;
*Ebenfalls UNIQUE KEY gesetzt:&lt;br /&gt;
**fg_fachgebiet&lt;br /&gt;
**pr_titel&lt;br /&gt;
**tn_username&lt;br /&gt;
**ro_rolle&lt;br /&gt;
**gr_gruppe&lt;br /&gt;
**sc_level&lt;br /&gt;
**fa_frageart&lt;br /&gt;
&lt;br /&gt;
===Benutzeroberfläche===&lt;br /&gt;
*Realisiert mithilfe des Frameworks &#039;&#039;Bootstrap&#039;&#039;&lt;br /&gt;
*HTML/CSS größtenteils&lt;br /&gt;
&lt;br /&gt;
===Funktionen===&lt;br /&gt;
*Funktionen sollen die [[Projekt:TestTool:Use-Case-Szenarien|Anwendungsfälle]] realisieren können&lt;br /&gt;
*Zusätzliche Funktionen&lt;br /&gt;
**Filterung&lt;br /&gt;
**Sortierung&lt;br /&gt;
**Import von Fragen&lt;br /&gt;
**Benutzerinformationen ändern bzgl. Gruppe, Rolle, Benutzernamen etc.&lt;br /&gt;
*Für das Erstellen neuer Benutzer gilt folgendes:&lt;br /&gt;
**Passwort muss verschlüsselt auf der Datenbank liegen&lt;br /&gt;
**Realisierung erfolgt durch SHA512 (Umwandlung des Passworts durch eine Hash-Funktion)&lt;br /&gt;
**Zur Erhöhung der Sicherheit wird zusätzlich ein SALT verwendet&lt;br /&gt;
&lt;br /&gt;
===Pflichtenheft===&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Kurze Beschreibung des Pflichtenhefts(Nicht das Pflichtenheft selber, höchstens Auszüge davon im Anhang!&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Implementierungsphase==&lt;br /&gt;
===Erstellung der Datenbank===&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE c8testtool;&lt;br /&gt;
 USE c8testtool;&lt;br /&gt;
&lt;br /&gt;
Fragentabelle erstellen mit Primärschlüssel und NOT NULL auf Fragetext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE fragen &lt;br /&gt;
 (fr_id INT PRIMARY KEY AUTO_INCREMENT, &lt;br /&gt;
 fr_fragetext VARCHAR(255) NOT NULL, &lt;br /&gt;
 fr_th_id INT, &lt;br /&gt;
 fr_sc_id INT, &lt;br /&gt;
 fr_fa_id INT, &lt;br /&gt;
 fr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Antworttabelle erstellen mit Primärschlüssel und UNIQUE-Index auf Antworttext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE antworten &lt;br /&gt;
 (an_id INT PRIMARY KEY AUTO_INCREMENT, &lt;br /&gt;
 an_antworttext TEXT UNIQUE,&lt;br /&gt;
 an_fr_id int, &lt;br /&gt;
 an_richtig boolean, &lt;br /&gt;
 an_delete boolean);&lt;br /&gt;
&lt;br /&gt;
Thementabelle erstellen mit Primärschlüssel und UNIQUE-Index auf Thema.&lt;br /&gt;
 &lt;br /&gt;
 CREATE TABLE themen&lt;br /&gt;
 (th_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 th_thema varchar(40) UNIQUE,&lt;br /&gt;
 th_fa_id INT,&lt;br /&gt;
 th_delete boolean);&lt;br /&gt;
&lt;br /&gt;
Tabelle mit Fachgebieten erstellen mit Primärschlüssel und UNIQUE-Index auf Fachgebiet.&lt;br /&gt;
  &lt;br /&gt;
 CREATE TABLE fachgebiete&lt;br /&gt;
 (fa_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 fa_fachgebiet varchar(40) UNIQUE,&lt;br /&gt;
 fa_delete boolean);&lt;br /&gt;
&lt;br /&gt;
Im Nachhinein Beziehung aufsetzen zwischen Antworten und Fragen. Jede Frage hat mehrere Antworten, jede Antwort gehört zu einer Frage. Einsetzen der Lösch- und Änderungsweitergabe.&lt;br /&gt;
&lt;br /&gt;
 ALTER TABLE antworten &lt;br /&gt;
 ADD FOREIGN KEY(an_fr_id) &lt;br /&gt;
 REFERENCES fragen(fr_id) &lt;br /&gt;
 ON DELETE CASCADE ON UPDATE CASCADE;&lt;br /&gt;
&lt;br /&gt;
Teilnehmertabelle erstellen mit UNIQUE-KEY auf &#039;&#039;tn_username&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE teilnehmer &lt;br /&gt;
 (tn_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 tn_vorname VARCHAR(40) NOT NULL,&lt;br /&gt;
 tn_nachname VARCHAR(40) NOT NULL,&lt;br /&gt;
 tn_ro_id INT NOT NULL,&lt;br /&gt;
 tn_gr_id INT NOT NULL,&lt;br /&gt;
 tn_username VARCHAR(40)UNIQUE NOT NULL, &lt;br /&gt;
 tn_passwort VARCHAR(255) NOT NULL,&lt;br /&gt;
 tn_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Prüfungstabelle erstellen mit Standardwert 90 für &#039;&#039;pr_dauer&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE pruefung&lt;br /&gt;
 (pr_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 pr_titel VARCHAR(40) NOT NULL,&lt;br /&gt;
 pr_datum DATE NOT NULL,&lt;br /&gt;
 pr_dauer INT NOT NULL DEFAULT 90,&lt;br /&gt;
 pr_wiederholbar BOOLEAN,&lt;br /&gt;
 pr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Zuordnungstabelle &#039;&#039;Prüfungsfragen&#039;&#039; erstellen&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE pruefungsfragen&lt;br /&gt;
 (pf_fr_id INT,&lt;br /&gt;
 pf_pr_id INT);&lt;br /&gt;
&lt;br /&gt;
===Implementierung der Entitäten===&lt;br /&gt;
===Implementierung der Programmierlogik===&lt;br /&gt;
===Testphase===&lt;br /&gt;
Während der Testphase wurden folgenden Fehler entdeckt:&lt;br /&gt;
*SQL-Injections möglich im Sucheingabefeld&lt;br /&gt;
**Lösung: Benutzen der php-Funktion &#039;&#039;bindParam&#039;&#039;&lt;br /&gt;
*Unauthorisierter Zugriff, wenn beim Browser auf den Zurück-Knopf klickt.&lt;br /&gt;
**Lösung: Prüfen, ob der Benutzer Zugriff darauf hat.&lt;br /&gt;
&lt;br /&gt;
==Abschlussphase==&lt;br /&gt;
&lt;br /&gt;
===Abnahme===&lt;br /&gt;
&lt;br /&gt;
===Einführung===&lt;br /&gt;
&lt;br /&gt;
===Dokumentation===&lt;br /&gt;
*Es wird neben der Projektdokumentation eine [[Projekt:TestTool:Benutzerdoku|Benutzerdokumenation]] verfasst.&lt;br /&gt;
&lt;br /&gt;
==Fazit==&lt;br /&gt;
&lt;br /&gt;
===Soll/Ist-Vergleich===&lt;br /&gt;
&lt;br /&gt;
===Ausblick/Verbesserungen===&lt;br /&gt;
*Einfügen von Bildern&lt;br /&gt;
*Einfügen neuer Fragetypen(Zuordnungsfragen, Bildbeschreibungsfragen)&lt;br /&gt;
*Bessere Programmierung, Modularisierung&lt;br /&gt;
&lt;br /&gt;
==Quellen==&lt;br /&gt;
&lt;br /&gt;
=Anhang=&lt;br /&gt;
*Auszug aus dem Lastenheft&lt;br /&gt;
*Auszug aus dem Pflichtenheft&lt;br /&gt;
*ER-Modell&lt;br /&gt;
[[Datei:er-modell_testtool.png|750px]]&lt;br /&gt;
*Tabellenmodell&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|750px]]&lt;br /&gt;
*Use-Case-Szenarien&lt;br /&gt;
*Use-Case-Diagramm&lt;br /&gt;
*Aktivitätsdiagramm&lt;br /&gt;
*Auszug aus der Funktion &amp;quot;Bewerten einer Prüfung&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Formalien ==&lt;br /&gt;
=== Deckblatt ===&lt;br /&gt;
*Projektbezeichnung: Datenbankbasierte Webanwendung zur Verwaltung und Durchführung von Prüfungen&lt;br /&gt;
*Namen und Vornamen: Rogers, Alexander&lt;br /&gt;
*Prüfungsausschuss&lt;br /&gt;
*Ausbildungsberuf: Fachinformatiker Anwendungsentwicklung&lt;br /&gt;
*Ausbildungsstätte bzw. Praktikumsbetrieb: itw gGmbH, Groninger Straße 25, 13347 Berlin bzw. Dirk Wagner Berlin, Carstennstraße 6, 12205 Berlin&lt;br /&gt;
&lt;br /&gt;
===Eidesstattliche Erklärung===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Abkürzungsverzeichnis===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekt:TestTool]]&lt;/div&gt;</summary>
		<author><name>Alexanderrogers</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=18475</id>
		<title>TestTool/Dokumentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=18475"/>
		<updated>2020-11-10T14:12:57Z</updated>

		<summary type="html">&lt;p&gt;Alexanderrogers: /* Datenbank */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projektdokumentation zur Webanwendung&lt;br /&gt;
&lt;br /&gt;
=Einleitung=&lt;br /&gt;
In dieser Projektdokumentation wird der Ablauf des Abschlussprojektes erläutert, das der Autor im Rahmen seiner Abschlussprüfung zum Fachinformatiker für Anwendungsentwicklung durchführt.&lt;br /&gt;
&lt;br /&gt;
==Projektbeschreibung==&lt;br /&gt;
Für die Dirk Wagner Berlin soll eine Webanwendung mit HTML und PHP entwickelt werden. Diese Webanwendung soll bestimmte Anforderungen erfüllen, die das Erstellen von Prüfungen erleichtern sollen.&lt;br /&gt;
==Projektziel==&lt;br /&gt;
Das Ziel dieses Projektes ist die erfolgreiche Umsetzung einer Webanwendung, die alle Prüfungen von Prüfern verwaltet. Die Prüfer sollen Fragen und mögliche Antworten eintragen können. Die Prüfungen sollen von Prüflingen durchgeführt werden und anschließend ein Ergebnis der Prüfung präsentiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Phasen des Projekts===&lt;br /&gt;
==Startphase==&lt;br /&gt;
===Ist-Zustand===&lt;br /&gt;
*Derzeit müssen alle Prüfungen händisch erstellt werden&lt;br /&gt;
*Ergebnisse müssen manuell ermittelt und geprüft werden, was Zeit dauert&lt;br /&gt;
*Vorbild: Ein portabler LPIC-Simulator aus XML und JavaScript-Dateien, der jedoch nur eingeschränkt nützlich ist&lt;br /&gt;
**Keine Kategorisierung möglich&lt;br /&gt;
**Neue Fragen und Antworten müssen in &#039;&#039;&#039;eine&#039;&#039;&#039; XML-Datei eingetragen sein. Kenntnisse in XML müssen also vorhanden sein.&lt;br /&gt;
**Keine personalisierte Prüfungen möglich&lt;br /&gt;
&lt;br /&gt;
===Wirtschaftlichkeitsanalyse===&lt;br /&gt;
===Anwendungsfälle===&lt;br /&gt;
*Grundgedanken&lt;br /&gt;
**&#039;&#039;Prüfer&#039;&#039; und &#039;&#039;Prüfling&#039;&#039;&lt;br /&gt;
**Prüfer muss Fragen, Antworten, neue Prüflinge, neue Fachgebiete und Themen, neue Prüfungen erstellen können&lt;br /&gt;
**Prüfer kann Ergebnisse von Prüflingen einsichten&lt;br /&gt;
**Prüfling muss Prüfung ablegen können&lt;br /&gt;
**Anwendung muss Ergebnis dem Prüfling präsentieren&lt;br /&gt;
&lt;br /&gt;
===Lastenheft===&lt;br /&gt;
* Beschreibung des Lastenhefts(Nicht das Lastenheft selber! Auszugsweise im Anhang!)&lt;br /&gt;
* Soll nach der MoSCoW-Methode(Must, Should, Could, Won´t) formuliert werden.&lt;br /&gt;
&lt;br /&gt;
==Entwurf==&lt;br /&gt;
&lt;br /&gt;
===Datenbank===&lt;br /&gt;
*Grundgedanken&lt;br /&gt;
**Drei Blöcke: &#039;&#039;Fragen-Antworten&#039;&#039;-Block, &#039;&#039;Prüfung&#039;&#039;-Block und &#039;&#039;Teilnehmer&#039;&#039;-Block&lt;br /&gt;
**Eine Frage hat mehrere Antworten(mind. 1-2 je nach Frageart); Eine Antwort gehört zu einer Frage&lt;br /&gt;
**Eine Prüfung hat mehrere Teilnehmer und ein Teilnehmer belegt mehrere Prüfungen.&lt;br /&gt;
**Eine Frage kommt in mehreren Prüfungen vor, eine Prüfung hat mehrere Fragen.&lt;br /&gt;
**Ein Benutzer/Teilnehmer gehört zu einer Gruppe(Team) und hat eine bestimmte Rolle in der Anwendung(Admin, Editor, Prüfling).&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|1200px]]&lt;br /&gt;
*Damit keine Redundanzen entstehen bei den Fragen, wird auf fg_fragetext ein UNIQUE KEY gesetzt.&lt;br /&gt;
*&#039;&#039;Hilft nicht 100%, da ähnliche Fragen trotzdem in die Datenbank geschrieben werden können.&#039;&#039;&lt;br /&gt;
*&#039;&#039;Macht keinen Unterschied, ob die Frage Groß- oder kleingeschrieben ist. Ist die Frage identisch, wird sie verworfen.&#039;&#039;&lt;br /&gt;
*Ebenfalls UNIQUE KEY gesetzt:&lt;br /&gt;
**fg_fachgebiet&lt;br /&gt;
**pr_titel&lt;br /&gt;
**tn_username&lt;br /&gt;
**ro_rolle&lt;br /&gt;
**gr_gruppe&lt;br /&gt;
**sc_level&lt;br /&gt;
**fa_frageart&lt;br /&gt;
&lt;br /&gt;
===Benutzeroberfläche===&lt;br /&gt;
*Realisiert mithilfe des Frameworks &#039;&#039;Bootstrap&#039;&#039;&lt;br /&gt;
*HTML/CSS größtenteils&lt;br /&gt;
&lt;br /&gt;
===Funktionen===&lt;br /&gt;
*Funktionen sollen die [[Projekt:TestTool:Use-Case-Szenarien|Anwendungsfälle]] realisieren können&lt;br /&gt;
*Zusätzliche Funktionen&lt;br /&gt;
**Filterung&lt;br /&gt;
**Sortierung&lt;br /&gt;
**Import von Fragen&lt;br /&gt;
**Benutzerinformationen ändern bzgl. Gruppe, Rolle, Benutzernamen etc.&lt;br /&gt;
*Für das Erstellen neuer Teilnehmer gilt folgendes:&lt;br /&gt;
**Passwort muss verschlüsselt auf der Datenbank liegen&lt;br /&gt;
**Realisierung erfolgt durch SHA512 (Umwandlung des Passworts durch eine Hash-Funktion)&lt;br /&gt;
**Zur Erhöhung der Sicherheit wird zusätzlich ein SALT verwendet&lt;br /&gt;
&lt;br /&gt;
===Pflichtenheft===&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Kurze Beschreibung des Pflichtenhefts(Nicht das Pflichtenheft selber, höchstens Auszüge davon im Anhang!&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Implementierungsphase==&lt;br /&gt;
===Erstellung der Datenbank===&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE c8testtool;&lt;br /&gt;
 USE c8testtool;&lt;br /&gt;
&lt;br /&gt;
Fragentabelle erstellen mit Primärschlüssel und NOT NULL auf Fragetext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE fragen &lt;br /&gt;
 (fr_id INT PRIMARY KEY AUTO_INCREMENT, &lt;br /&gt;
 fr_fragetext VARCHAR(255) NOT NULL, &lt;br /&gt;
 fr_th_id INT, &lt;br /&gt;
 fr_sc_id INT, &lt;br /&gt;
 fr_fa_id INT, &lt;br /&gt;
 fr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Antworttabelle erstellen mit Primärschlüssel und UNIQUE-Index auf Antworttext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE antworten &lt;br /&gt;
 (an_id INT PRIMARY KEY AUTO_INCREMENT, &lt;br /&gt;
 an_antworttext TEXT UNIQUE,&lt;br /&gt;
 an_fr_id int, &lt;br /&gt;
 an_richtig boolean, &lt;br /&gt;
 an_delete boolean);&lt;br /&gt;
&lt;br /&gt;
Thementabelle erstellen mit Primärschlüssel und UNIQUE-Index auf Thema.&lt;br /&gt;
 &lt;br /&gt;
 CREATE TABLE themen&lt;br /&gt;
 (th_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 th_thema varchar(40) UNIQUE,&lt;br /&gt;
 th_fa_id INT,&lt;br /&gt;
 th_delete boolean);&lt;br /&gt;
&lt;br /&gt;
Tabelle mit Fachgebieten erstellen mit Primärschlüssel und UNIQUE-Index auf Fachgebiet.&lt;br /&gt;
  &lt;br /&gt;
 CREATE TABLE fachgebiete&lt;br /&gt;
 (fa_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 fa_fachgebiet varchar(40) UNIQUE,&lt;br /&gt;
 fa_delete boolean);&lt;br /&gt;
&lt;br /&gt;
Im Nachhinein Beziehung aufsetzen zwischen Antworten und Fragen. Jede Frage hat mehrere Antworten, jede Antwort gehört zu einer Frage. Einsetzen der Lösch- und Änderungsweitergabe.&lt;br /&gt;
&lt;br /&gt;
 ALTER TABLE antworten &lt;br /&gt;
 ADD FOREIGN KEY(an_fr_id) &lt;br /&gt;
 REFERENCES fragen(fr_id) &lt;br /&gt;
 ON DELETE CASCADE ON UPDATE CASCADE;&lt;br /&gt;
&lt;br /&gt;
Teilnehmertabelle erstellen mit UNIQUE-KEY auf &#039;&#039;tn_username&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE teilnehmer &lt;br /&gt;
 (tn_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 tn_vorname VARCHAR(40) NOT NULL,&lt;br /&gt;
 tn_nachname VARCHAR(40) NOT NULL,&lt;br /&gt;
 tn_ro_id INT NOT NULL,&lt;br /&gt;
 tn_gr_id INT NOT NULL,&lt;br /&gt;
 tn_username VARCHAR(40)UNIQUE NOT NULL, &lt;br /&gt;
 tn_passwort VARCHAR(255) NOT NULL,&lt;br /&gt;
 tn_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Prüfungstabelle erstellen mit Standardwert 90 für &#039;&#039;pr_dauer&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE pruefung&lt;br /&gt;
 (pr_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 pr_titel VARCHAR(40) NOT NULL,&lt;br /&gt;
 pr_datum DATE NOT NULL,&lt;br /&gt;
 pr_dauer INT NOT NULL DEFAULT 90,&lt;br /&gt;
 pr_wiederholbar BOOLEAN,&lt;br /&gt;
 pr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Zuordnungstabelle &#039;&#039;Prüfungsfragen&#039;&#039; erstellen&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE pruefungsfragen&lt;br /&gt;
 (pf_fr_id INT,&lt;br /&gt;
 pf_pr_id INT);&lt;br /&gt;
&lt;br /&gt;
===Implementierung der Entitäten===&lt;br /&gt;
===Implementierung der Programmierlogik===&lt;br /&gt;
===Testphase===&lt;br /&gt;
Während der Testphase wurden folgenden Fehler entdeckt:&lt;br /&gt;
*SQL-Injections möglich im Sucheingabefeld&lt;br /&gt;
**Lösung: Benutzen der php-Funktion &#039;&#039;bindParam&#039;&#039;&lt;br /&gt;
*Unauthorisierter Zugriff, wenn beim Browser auf den Zurück-Knopf klickt.&lt;br /&gt;
**Lösung: Prüfen, ob der Benutzer Zugriff darauf hat.&lt;br /&gt;
&lt;br /&gt;
==Abschlussphase==&lt;br /&gt;
&lt;br /&gt;
===Abnahme===&lt;br /&gt;
&lt;br /&gt;
===Einführung===&lt;br /&gt;
&lt;br /&gt;
===Dokumentation===&lt;br /&gt;
*Es wird neben der Projektdokumentation eine [[Projekt:TestTool:Benutzerdoku|Benutzerdokumenation]] verfasst.&lt;br /&gt;
&lt;br /&gt;
==Fazit==&lt;br /&gt;
&lt;br /&gt;
===Soll/Ist-Vergleich===&lt;br /&gt;
&lt;br /&gt;
===Ausblick/Verbesserungen===&lt;br /&gt;
*Einfügen von Bildern&lt;br /&gt;
*Einfügen neuer Fragetypen(Zuordnungsfragen, Bildbeschreibungsfragen)&lt;br /&gt;
*Bessere Programmierung, Modularisierung&lt;br /&gt;
&lt;br /&gt;
==Quellen==&lt;br /&gt;
&lt;br /&gt;
=Anhang=&lt;br /&gt;
*Auszug aus dem Lastenheft&lt;br /&gt;
*Auszug aus dem Pflichtenheft&lt;br /&gt;
*ER-Modell&lt;br /&gt;
[[Datei:er-modell_testtool.png|750px]]&lt;br /&gt;
*Tabellenmodell&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|750px]]&lt;br /&gt;
*Use-Case-Szenarien&lt;br /&gt;
*Use-Case-Diagramm&lt;br /&gt;
*Aktivitätsdiagramm&lt;br /&gt;
*Auszug aus der Funktion &amp;quot;Bewerten einer Prüfung&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Formalien ==&lt;br /&gt;
=== Deckblatt ===&lt;br /&gt;
*Projektbezeichnung: Datenbankbasierte Webanwendung zur Verwaltung und Durchführung von Prüfungen&lt;br /&gt;
*Namen und Vornamen: Rogers, Alexander&lt;br /&gt;
*Prüfungsausschuss&lt;br /&gt;
*Ausbildungsberuf: Fachinformatiker Anwendungsentwicklung&lt;br /&gt;
*Ausbildungsstätte bzw. Praktikumsbetrieb: itw gGmbH, Groninger Straße 25, 13347 Berlin bzw. Dirk Wagner Berlin, Carstennstraße 6, 12205 Berlin&lt;br /&gt;
&lt;br /&gt;
===Eidesstattliche Erklärung===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Abkürzungsverzeichnis===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekt:TestTool]]&lt;/div&gt;</summary>
		<author><name>Alexanderrogers</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=18408</id>
		<title>TestTool/Dokumentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=18408"/>
		<updated>2020-11-10T11:43:55Z</updated>

		<summary type="html">&lt;p&gt;Alexanderrogers: /* Erstellung der Datenbank */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projektdokumentation zur Webanwendung&lt;br /&gt;
&lt;br /&gt;
=Einleitung=&lt;br /&gt;
In dieser Projektdokumentation wird der Ablauf des Abschlussprojektes erläutert, das der Autor im Rahmen seiner Abschlussprüfung zum Fachinformatiker für Anwendungsentwicklung durchführt.&lt;br /&gt;
&lt;br /&gt;
==Projektbeschreibung==&lt;br /&gt;
Für die Dirk Wagner Berlin soll eine Webanwendung mit HTML und PHP entwickelt werden. Diese Webanwendung soll bestimmte Anforderungen erfüllen, die das Erstellen von Prüfungen erleichtern sollen.&lt;br /&gt;
==Projektziel==&lt;br /&gt;
Das Ziel dieses Projektes ist die erfolgreiche Umsetzung einer Webanwendung, die alle Prüfungen von Prüfern verwaltet. Die Prüfer sollen Fragen und mögliche Antworten eintragen können. Die Prüfungen sollen von Prüflingen durchgeführt werden und anschließend ein Ergebnis der Prüfung präsentiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Phasen des Projekts===&lt;br /&gt;
==Startphase==&lt;br /&gt;
===Ist-Zustand===&lt;br /&gt;
*Derzeit müssen alle Prüfungen händisch erstellt werden&lt;br /&gt;
*Ergebnisse müssen manuell ermittelt und geprüft werden, was Zeit dauert&lt;br /&gt;
*Vorbild: Ein portabler LPIC-Simulator aus XML und JavaScript-Dateien, der jedoch nur eingeschränkt nützlich ist&lt;br /&gt;
**Keine Kategorisierung möglich&lt;br /&gt;
**Neue Fragen und Antworten müssen in &#039;&#039;&#039;eine&#039;&#039;&#039; XML-Datei eingetragen sein. Kenntnisse in XML müssen also vorhanden sein.&lt;br /&gt;
**Keine personalisierte Prüfungen möglich&lt;br /&gt;
&lt;br /&gt;
===Wirtschaftlichkeitsanalyse===&lt;br /&gt;
===Anwendungsfälle===&lt;br /&gt;
*Grundgedanken&lt;br /&gt;
**&#039;&#039;Prüfer&#039;&#039; und &#039;&#039;Prüfling&#039;&#039;&lt;br /&gt;
**Prüfer muss Fragen, Antworten, neue Prüflinge, neue Fachgebiete und Themen, neue Prüfungen erstellen können&lt;br /&gt;
**Prüfer kann Ergebnisse von Prüflingen einsichten&lt;br /&gt;
**Prüfling muss Prüfung ablegen können&lt;br /&gt;
**Anwendung muss Ergebnis dem Prüfling präsentieren&lt;br /&gt;
&lt;br /&gt;
===Lastenheft===&lt;br /&gt;
* Beschreibung des Lastenhefts(Nicht das Lastenheft selber! Auszugsweise im Anhang!)&lt;br /&gt;
* Soll nach der MoSCoW-Methode(Must, Should, Could, Won´t) formuliert werden.&lt;br /&gt;
&lt;br /&gt;
==Entwurf==&lt;br /&gt;
&lt;br /&gt;
===Datenbank===&lt;br /&gt;
*Grundgedanken&lt;br /&gt;
**Drei Blöcke: &#039;&#039;Fragen-Antworten&#039;&#039;-Block, &#039;&#039;Prüfung&#039;&#039;-Block und &#039;&#039;Teilnehmer&#039;&#039;-Block&lt;br /&gt;
**Eine Frage hat mehrere Antworten(mind. 1-2 je nach Frageart); Eine Antwort gehört zu einer Frage&lt;br /&gt;
**Eine Prüfung hat mehrere Teilnehmer und ein Teilnehmer belegt mehrere Prüfungen.&lt;br /&gt;
**Eine Frage kommt in mehreren Prüfungen vor, eine Prüfung hat mehrere Fragen.&lt;br /&gt;
**Ein Teilnehmer gehört zu einer Gruppe(Team) und hat eine bestimmte Rolle in der Anwendung(Admin, Editor, Prüfling).&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|1200px]]&lt;br /&gt;
*Damit keine Redundanzen entstehen bei den Fragen, wird auf fg_fragetext ein UNIQUE KEY gesetzt.&lt;br /&gt;
*&#039;&#039;Hilft nicht 100%, da ähnliche Fragen trotzdem in die Datenbank geschrieben werden können.&#039;&#039;&lt;br /&gt;
*&#039;&#039;Macht keinen Unterschied, ob die Frage Groß- oder kleingeschrieben ist. Ist die Frage identisch, wird sie verworfen.&#039;&#039;&lt;br /&gt;
*Ebenfalls UNIQUE KEY gesetzt:&lt;br /&gt;
**fg_fachgebiet&lt;br /&gt;
**pr_titel&lt;br /&gt;
**tn_username&lt;br /&gt;
**ro_rolle&lt;br /&gt;
**gr_gruppe&lt;br /&gt;
**sc_level&lt;br /&gt;
**fa_frageart&lt;br /&gt;
&lt;br /&gt;
===Benutzeroberfläche===&lt;br /&gt;
*Realisiert mithilfe des Frameworks &#039;&#039;Bootstrap&#039;&#039;&lt;br /&gt;
*HTML/CSS größtenteils&lt;br /&gt;
&lt;br /&gt;
===Funktionen===&lt;br /&gt;
*Funktionen sollen die [[Projekt:TestTool:Use-Case-Szenarien|Anwendungsfälle]] realisieren können&lt;br /&gt;
*Zusätzliche Funktionen&lt;br /&gt;
**Filterung&lt;br /&gt;
**Sortierung&lt;br /&gt;
**Import von Fragen&lt;br /&gt;
**Benutzerinformationen ändern bzgl. Gruppe, Rolle, Benutzernamen etc.&lt;br /&gt;
*Für das Erstellen neuer Teilnehmer gilt folgendes:&lt;br /&gt;
**Passwort muss verschlüsselt auf der Datenbank liegen&lt;br /&gt;
**Realisierung erfolgt durch SHA512 (Umwandlung des Passworts durch eine Hash-Funktion)&lt;br /&gt;
**Zur Erhöhung der Sicherheit wird zusätzlich ein SALT verwendet&lt;br /&gt;
&lt;br /&gt;
===Pflichtenheft===&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Kurze Beschreibung des Pflichtenhefts(Nicht das Pflichtenheft selber, höchstens Auszüge davon im Anhang!&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Implementierungsphase==&lt;br /&gt;
===Erstellung der Datenbank===&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE c8testtool;&lt;br /&gt;
 USE c8testtool;&lt;br /&gt;
&lt;br /&gt;
Fragentabelle erstellen mit Primärschlüssel und NOT NULL auf Fragetext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE fragen &lt;br /&gt;
 (fr_id INT PRIMARY KEY AUTO_INCREMENT, &lt;br /&gt;
 fr_fragetext VARCHAR(255) NOT NULL, &lt;br /&gt;
 fr_th_id INT, &lt;br /&gt;
 fr_sc_id INT, &lt;br /&gt;
 fr_fa_id INT, &lt;br /&gt;
 fr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Antworttabelle erstellen mit Primärschlüssel und UNIQUE-Index auf Antworttext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE antworten &lt;br /&gt;
 (an_id INT PRIMARY KEY AUTO_INCREMENT, &lt;br /&gt;
 an_antworttext TEXT UNIQUE,&lt;br /&gt;
 an_fr_id int, &lt;br /&gt;
 an_richtig boolean, &lt;br /&gt;
 an_delete boolean);&lt;br /&gt;
&lt;br /&gt;
Thementabelle erstellen mit Primärschlüssel und UNIQUE-Index auf Thema.&lt;br /&gt;
 &lt;br /&gt;
 CREATE TABLE themen&lt;br /&gt;
 (th_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 th_thema varchar(40) UNIQUE,&lt;br /&gt;
 th_fa_id INT,&lt;br /&gt;
 th_delete boolean);&lt;br /&gt;
&lt;br /&gt;
Tabelle mit Fachgebieten erstellen mit Primärschlüssel und UNIQUE-Index auf Fachgebiet.&lt;br /&gt;
  &lt;br /&gt;
 CREATE TABLE fachgebiete&lt;br /&gt;
 (fa_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 fa_fachgebiet varchar(40) UNIQUE,&lt;br /&gt;
 fa_delete boolean);&lt;br /&gt;
&lt;br /&gt;
Im Nachhinein Beziehung aufsetzen zwischen Antworten und Fragen. Jede Frage hat mehrere Antworten, jede Antwort gehört zu einer Frage. Einsetzen der Lösch- und Änderungsweitergabe.&lt;br /&gt;
&lt;br /&gt;
 ALTER TABLE antworten &lt;br /&gt;
 ADD FOREIGN KEY(an_fr_id) &lt;br /&gt;
 REFERENCES fragen(fr_id) &lt;br /&gt;
 ON DELETE CASCADE ON UPDATE CASCADE;&lt;br /&gt;
&lt;br /&gt;
Teilnehmertabelle erstellen mit UNIQUE-KEY auf &#039;&#039;tn_username&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE teilnehmer &lt;br /&gt;
 (tn_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 tn_vorname VARCHAR(40) NOT NULL,&lt;br /&gt;
 tn_nachname VARCHAR(40) NOT NULL,&lt;br /&gt;
 tn_ro_id INT NOT NULL,&lt;br /&gt;
 tn_gr_id INT NOT NULL,&lt;br /&gt;
 tn_username VARCHAR(40)UNIQUE NOT NULL, &lt;br /&gt;
 tn_passwort VARCHAR(255) NOT NULL,&lt;br /&gt;
 tn_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Prüfungstabelle erstellen mit Standardwert 90 für &#039;&#039;pr_dauer&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE pruefung&lt;br /&gt;
 (pr_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 pr_titel VARCHAR(40) NOT NULL,&lt;br /&gt;
 pr_datum DATE NOT NULL,&lt;br /&gt;
 pr_dauer INT NOT NULL DEFAULT 90,&lt;br /&gt;
 pr_wiederholbar BOOLEAN,&lt;br /&gt;
 pr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Zuordnungstabelle &#039;&#039;Prüfungsfragen&#039;&#039; erstellen&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE pruefungsfragen&lt;br /&gt;
 (pf_fr_id INT,&lt;br /&gt;
 pf_pr_id INT);&lt;br /&gt;
&lt;br /&gt;
===Implementierung der Entitäten===&lt;br /&gt;
===Implementierung der Programmierlogik===&lt;br /&gt;
===Testphase===&lt;br /&gt;
Während der Testphase wurden folgenden Fehler entdeckt:&lt;br /&gt;
*SQL-Injections möglich im Sucheingabefeld&lt;br /&gt;
**Lösung: Benutzen der php-Funktion &#039;&#039;bindParam&#039;&#039;&lt;br /&gt;
*Unauthorisierter Zugriff, wenn beim Browser auf den Zurück-Knopf klickt.&lt;br /&gt;
**Lösung: Prüfen, ob der Benutzer Zugriff darauf hat.&lt;br /&gt;
&lt;br /&gt;
==Abschlussphase==&lt;br /&gt;
&lt;br /&gt;
===Abnahme===&lt;br /&gt;
&lt;br /&gt;
===Einführung===&lt;br /&gt;
&lt;br /&gt;
===Dokumentation===&lt;br /&gt;
*Es wird neben der Projektdokumentation eine [[Projekt:TestTool:Benutzerdoku|Benutzerdokumenation]] verfasst.&lt;br /&gt;
&lt;br /&gt;
==Fazit==&lt;br /&gt;
&lt;br /&gt;
===Soll/Ist-Vergleich===&lt;br /&gt;
&lt;br /&gt;
===Ausblick/Verbesserungen===&lt;br /&gt;
*Einfügen von Bildern&lt;br /&gt;
*Einfügen neuer Fragetypen(Zuordnungsfragen, Bildbeschreibungsfragen)&lt;br /&gt;
*Bessere Programmierung, Modularisierung&lt;br /&gt;
&lt;br /&gt;
==Quellen==&lt;br /&gt;
&lt;br /&gt;
=Anhang=&lt;br /&gt;
*Auszug aus dem Lastenheft&lt;br /&gt;
*Auszug aus dem Pflichtenheft&lt;br /&gt;
*ER-Modell&lt;br /&gt;
[[Datei:er-modell_testtool.png|750px]]&lt;br /&gt;
*Tabellenmodell&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|750px]]&lt;br /&gt;
*Use-Case-Szenarien&lt;br /&gt;
*Use-Case-Diagramm&lt;br /&gt;
*Aktivitätsdiagramm&lt;br /&gt;
*Auszug aus der Funktion &amp;quot;Bewerten einer Prüfung&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Formalien ==&lt;br /&gt;
=== Deckblatt ===&lt;br /&gt;
*Projektbezeichnung: Datenbankbasierte Webanwendung zur Verwaltung und Durchführung von Prüfungen&lt;br /&gt;
*Namen und Vornamen: Rogers, Alexander&lt;br /&gt;
*Prüfungsausschuss&lt;br /&gt;
*Ausbildungsberuf: Fachinformatiker Anwendungsentwicklung&lt;br /&gt;
*Ausbildungsstätte bzw. Praktikumsbetrieb: itw gGmbH, Groninger Straße 25, 13347 Berlin bzw. Dirk Wagner Berlin, Carstennstraße 6, 12205 Berlin&lt;br /&gt;
&lt;br /&gt;
===Eidesstattliche Erklärung===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Abkürzungsverzeichnis===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekt:TestTool]]&lt;/div&gt;</summary>
		<author><name>Alexanderrogers</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=18407</id>
		<title>TestTool/Dokumentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=18407"/>
		<updated>2020-11-10T11:41:39Z</updated>

		<summary type="html">&lt;p&gt;Alexanderrogers: /* Erstellung der Datenbank */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projektdokumentation zur Webanwendung&lt;br /&gt;
&lt;br /&gt;
=Einleitung=&lt;br /&gt;
In dieser Projektdokumentation wird der Ablauf des Abschlussprojektes erläutert, das der Autor im Rahmen seiner Abschlussprüfung zum Fachinformatiker für Anwendungsentwicklung durchführt.&lt;br /&gt;
&lt;br /&gt;
==Projektbeschreibung==&lt;br /&gt;
Für die Dirk Wagner Berlin soll eine Webanwendung mit HTML und PHP entwickelt werden. Diese Webanwendung soll bestimmte Anforderungen erfüllen, die das Erstellen von Prüfungen erleichtern sollen.&lt;br /&gt;
==Projektziel==&lt;br /&gt;
Das Ziel dieses Projektes ist die erfolgreiche Umsetzung einer Webanwendung, die alle Prüfungen von Prüfern verwaltet. Die Prüfer sollen Fragen und mögliche Antworten eintragen können. Die Prüfungen sollen von Prüflingen durchgeführt werden und anschließend ein Ergebnis der Prüfung präsentiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Phasen des Projekts===&lt;br /&gt;
==Startphase==&lt;br /&gt;
===Ist-Zustand===&lt;br /&gt;
*Derzeit müssen alle Prüfungen händisch erstellt werden&lt;br /&gt;
*Ergebnisse müssen manuell ermittelt und geprüft werden, was Zeit dauert&lt;br /&gt;
*Vorbild: Ein portabler LPIC-Simulator aus XML und JavaScript-Dateien, der jedoch nur eingeschränkt nützlich ist&lt;br /&gt;
**Keine Kategorisierung möglich&lt;br /&gt;
**Neue Fragen und Antworten müssen in &#039;&#039;&#039;eine&#039;&#039;&#039; XML-Datei eingetragen sein. Kenntnisse in XML müssen also vorhanden sein.&lt;br /&gt;
**Keine personalisierte Prüfungen möglich&lt;br /&gt;
&lt;br /&gt;
===Wirtschaftlichkeitsanalyse===&lt;br /&gt;
===Anwendungsfälle===&lt;br /&gt;
*Grundgedanken&lt;br /&gt;
**&#039;&#039;Prüfer&#039;&#039; und &#039;&#039;Prüfling&#039;&#039;&lt;br /&gt;
**Prüfer muss Fragen, Antworten, neue Prüflinge, neue Fachgebiete und Themen, neue Prüfungen erstellen können&lt;br /&gt;
**Prüfer kann Ergebnisse von Prüflingen einsichten&lt;br /&gt;
**Prüfling muss Prüfung ablegen können&lt;br /&gt;
**Anwendung muss Ergebnis dem Prüfling präsentieren&lt;br /&gt;
&lt;br /&gt;
===Lastenheft===&lt;br /&gt;
* Beschreibung des Lastenhefts(Nicht das Lastenheft selber! Auszugsweise im Anhang!)&lt;br /&gt;
* Soll nach der MoSCoW-Methode(Must, Should, Could, Won´t) formuliert werden.&lt;br /&gt;
&lt;br /&gt;
==Entwurf==&lt;br /&gt;
&lt;br /&gt;
===Datenbank===&lt;br /&gt;
*Grundgedanken&lt;br /&gt;
**Drei Blöcke: &#039;&#039;Fragen-Antworten&#039;&#039;-Block, &#039;&#039;Prüfung&#039;&#039;-Block und &#039;&#039;Teilnehmer&#039;&#039;-Block&lt;br /&gt;
**Eine Frage hat mehrere Antworten(mind. 1-2 je nach Frageart); Eine Antwort gehört zu einer Frage&lt;br /&gt;
**Eine Prüfung hat mehrere Teilnehmer und ein Teilnehmer belegt mehrere Prüfungen.&lt;br /&gt;
**Eine Frage kommt in mehreren Prüfungen vor, eine Prüfung hat mehrere Fragen.&lt;br /&gt;
**Ein Teilnehmer gehört zu einer Gruppe(Team) und hat eine bestimmte Rolle in der Anwendung(Admin, Editor, Prüfling).&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|1200px]]&lt;br /&gt;
*Damit keine Redundanzen entstehen bei den Fragen, wird auf fg_fragetext ein UNIQUE KEY gesetzt.&lt;br /&gt;
*&#039;&#039;Hilft nicht 100%, da ähnliche Fragen trotzdem in die Datenbank geschrieben werden können.&#039;&#039;&lt;br /&gt;
*&#039;&#039;Macht keinen Unterschied, ob die Frage Groß- oder kleingeschrieben ist. Ist die Frage identisch, wird sie verworfen.&#039;&#039;&lt;br /&gt;
*Ebenfalls UNIQUE KEY gesetzt:&lt;br /&gt;
**fg_fachgebiet&lt;br /&gt;
**pr_titel&lt;br /&gt;
**tn_username&lt;br /&gt;
**ro_rolle&lt;br /&gt;
**gr_gruppe&lt;br /&gt;
**sc_level&lt;br /&gt;
**fa_frageart&lt;br /&gt;
&lt;br /&gt;
===Benutzeroberfläche===&lt;br /&gt;
*Realisiert mithilfe des Frameworks &#039;&#039;Bootstrap&#039;&#039;&lt;br /&gt;
*HTML/CSS größtenteils&lt;br /&gt;
&lt;br /&gt;
===Funktionen===&lt;br /&gt;
*Funktionen sollen die [[Projekt:TestTool:Use-Case-Szenarien|Anwendungsfälle]] realisieren können&lt;br /&gt;
*Zusätzliche Funktionen&lt;br /&gt;
**Filterung&lt;br /&gt;
**Sortierung&lt;br /&gt;
**Import von Fragen&lt;br /&gt;
**Benutzerinformationen ändern bzgl. Gruppe, Rolle, Benutzernamen etc.&lt;br /&gt;
*Für das Erstellen neuer Teilnehmer gilt folgendes:&lt;br /&gt;
**Passwort muss verschlüsselt auf der Datenbank liegen&lt;br /&gt;
**Realisierung erfolgt durch SHA512 (Umwandlung des Passworts durch eine Hash-Funktion)&lt;br /&gt;
**Zur Erhöhung der Sicherheit wird zusätzlich ein SALT verwendet&lt;br /&gt;
&lt;br /&gt;
===Pflichtenheft===&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Kurze Beschreibung des Pflichtenhefts(Nicht das Pflichtenheft selber, höchstens Auszüge davon im Anhang!&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Implementierungsphase==&lt;br /&gt;
===Erstellung der Datenbank===&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE c8testtool;&lt;br /&gt;
 USE c8testtool;&lt;br /&gt;
&lt;br /&gt;
Fragentabelle erstellen mit Primärschlüssel und NOT NULL auf Fragetext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE fragen &lt;br /&gt;
 (fr_id INT PRIMARY KEY AUTO_INCREMENT, &lt;br /&gt;
 fr_fragetext VARCHAR(255) NOT NULL, &lt;br /&gt;
 fr_th_id INT, &lt;br /&gt;
 fr_sc_id INT, &lt;br /&gt;
 fr_fa_id INT, &lt;br /&gt;
 fr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Antworttabelle erstellen mit Primärschlüssel und UNIQUE-Index auf Antworttext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE antworten &lt;br /&gt;
 (an_id INT PRIMARY KEY AUTO_INCREMENT, &lt;br /&gt;
 an_antworttext TEXT UNIQUE,&lt;br /&gt;
 an_fr_id int, &lt;br /&gt;
 an_richtig boolean, &lt;br /&gt;
 an_delete boolean);&lt;br /&gt;
&lt;br /&gt;
Thementabelle erstellen mit Primärschlüssel und UNIQUE-Index auf Thema.&lt;br /&gt;
 &lt;br /&gt;
 CREATE TABLE themen&lt;br /&gt;
 (th_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 th_thema varchar(40) UNIQUE,&lt;br /&gt;
 th_fa_id INT,&lt;br /&gt;
 th_delete boolean);&lt;br /&gt;
&lt;br /&gt;
Tabelle mit Fachgebieten erstellen mit Primärschlüssel und UNIQUE-Index auf Fachgebiet.&lt;br /&gt;
  &lt;br /&gt;
 CREATE TABLE fachgebiete&lt;br /&gt;
 (fa_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 fa_fachgebiet varchar(40) UNIQUE,&lt;br /&gt;
 fa_delete boolean);&lt;br /&gt;
&lt;br /&gt;
Im Nachhinein Beziehung aufsetzen zwischen Antworten und Fragen. Jede Frage hat mehrere Antworten, jede Antwort gehört zu einer Frage. Einsetzen der Lösch- und Änderungsweitergabe.&lt;br /&gt;
&lt;br /&gt;
 ALTER TABLE antworten &lt;br /&gt;
 ADD FOREIGN KEY(an_fr_id) &lt;br /&gt;
 REFERENCES fragen(fr_id) &lt;br /&gt;
 ON DELETE CASCADE ON UPDATE CASCADE;&lt;br /&gt;
&lt;br /&gt;
Teilnehmertabelle erstellen mit UNIQUE-KEY auf &#039;&#039;tn_username&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE teilnehmer &lt;br /&gt;
 (tn_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 tn_vorname VARCHAR(40) NOT NULL,&lt;br /&gt;
 tn_nachname VARCHAR(40) NOT NULL,&lt;br /&gt;
 tn_ro_id INT NOT NULL,&lt;br /&gt;
 tn_gr_id INT NOT NULL,&lt;br /&gt;
 tn_username VARCHAR(40)UNIQUE NOT NULL, &lt;br /&gt;
 tn_passwort VARCHAR(255) NOT NULL,&lt;br /&gt;
 tn_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Prüfungstabelle erstellen mit Standardwert 90 für &#039;&#039;pr_dauer&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE pruefung&lt;br /&gt;
 (pr_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 pr_titel VARCHAR(40) NOT NULL,&lt;br /&gt;
 pr_datum DATE NOT NULL,&lt;br /&gt;
 pr_dauer INT NOT NULL DEFAULT 90,&lt;br /&gt;
 pr_wiederholbar BOOLEAN,&lt;br /&gt;
 pr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
===Implementierung der Entitäten===&lt;br /&gt;
===Implementierung der Programmierlogik===&lt;br /&gt;
===Testphase===&lt;br /&gt;
Während der Testphase wurden folgenden Fehler entdeckt:&lt;br /&gt;
*SQL-Injections möglich im Sucheingabefeld&lt;br /&gt;
**Lösung: Benutzen der php-Funktion &#039;&#039;bindParam&#039;&#039;&lt;br /&gt;
*Unauthorisierter Zugriff, wenn beim Browser auf den Zurück-Knopf klickt.&lt;br /&gt;
**Lösung: Prüfen, ob der Benutzer Zugriff darauf hat.&lt;br /&gt;
&lt;br /&gt;
==Abschlussphase==&lt;br /&gt;
&lt;br /&gt;
===Abnahme===&lt;br /&gt;
&lt;br /&gt;
===Einführung===&lt;br /&gt;
&lt;br /&gt;
===Dokumentation===&lt;br /&gt;
*Es wird neben der Projektdokumentation eine [[Projekt:TestTool:Benutzerdoku|Benutzerdokumenation]] verfasst.&lt;br /&gt;
&lt;br /&gt;
==Fazit==&lt;br /&gt;
&lt;br /&gt;
===Soll/Ist-Vergleich===&lt;br /&gt;
&lt;br /&gt;
===Ausblick/Verbesserungen===&lt;br /&gt;
*Einfügen von Bildern&lt;br /&gt;
*Einfügen neuer Fragetypen(Zuordnungsfragen, Bildbeschreibungsfragen)&lt;br /&gt;
*Bessere Programmierung, Modularisierung&lt;br /&gt;
&lt;br /&gt;
==Quellen==&lt;br /&gt;
&lt;br /&gt;
=Anhang=&lt;br /&gt;
*Auszug aus dem Lastenheft&lt;br /&gt;
*Auszug aus dem Pflichtenheft&lt;br /&gt;
*ER-Modell&lt;br /&gt;
[[Datei:er-modell_testtool.png|750px]]&lt;br /&gt;
*Tabellenmodell&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|750px]]&lt;br /&gt;
*Use-Case-Szenarien&lt;br /&gt;
*Use-Case-Diagramm&lt;br /&gt;
*Aktivitätsdiagramm&lt;br /&gt;
*Auszug aus der Funktion &amp;quot;Bewerten einer Prüfung&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Formalien ==&lt;br /&gt;
=== Deckblatt ===&lt;br /&gt;
*Projektbezeichnung: Datenbankbasierte Webanwendung zur Verwaltung und Durchführung von Prüfungen&lt;br /&gt;
*Namen und Vornamen: Rogers, Alexander&lt;br /&gt;
*Prüfungsausschuss&lt;br /&gt;
*Ausbildungsberuf: Fachinformatiker Anwendungsentwicklung&lt;br /&gt;
*Ausbildungsstätte bzw. Praktikumsbetrieb: itw gGmbH, Groninger Straße 25, 13347 Berlin bzw. Dirk Wagner Berlin, Carstennstraße 6, 12205 Berlin&lt;br /&gt;
&lt;br /&gt;
===Eidesstattliche Erklärung===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Abkürzungsverzeichnis===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekt:TestTool]]&lt;/div&gt;</summary>
		<author><name>Alexanderrogers</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=18404</id>
		<title>TestTool/Dokumentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=18404"/>
		<updated>2020-11-10T11:35:24Z</updated>

		<summary type="html">&lt;p&gt;Alexanderrogers: /* Dokumentation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projektdokumentation zur Webanwendung&lt;br /&gt;
&lt;br /&gt;
=Einleitung=&lt;br /&gt;
In dieser Projektdokumentation wird der Ablauf des Abschlussprojektes erläutert, das der Autor im Rahmen seiner Abschlussprüfung zum Fachinformatiker für Anwendungsentwicklung durchführt.&lt;br /&gt;
&lt;br /&gt;
==Projektbeschreibung==&lt;br /&gt;
Für die Dirk Wagner Berlin soll eine Webanwendung mit HTML und PHP entwickelt werden. Diese Webanwendung soll bestimmte Anforderungen erfüllen, die das Erstellen von Prüfungen erleichtern sollen.&lt;br /&gt;
==Projektziel==&lt;br /&gt;
Das Ziel dieses Projektes ist die erfolgreiche Umsetzung einer Webanwendung, die alle Prüfungen von Prüfern verwaltet. Die Prüfer sollen Fragen und mögliche Antworten eintragen können. Die Prüfungen sollen von Prüflingen durchgeführt werden und anschließend ein Ergebnis der Prüfung präsentiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Phasen des Projekts===&lt;br /&gt;
==Startphase==&lt;br /&gt;
===Ist-Zustand===&lt;br /&gt;
*Derzeit müssen alle Prüfungen händisch erstellt werden&lt;br /&gt;
*Ergebnisse müssen manuell ermittelt und geprüft werden, was Zeit dauert&lt;br /&gt;
*Vorbild: Ein portabler LPIC-Simulator aus XML und JavaScript-Dateien, der jedoch nur eingeschränkt nützlich ist&lt;br /&gt;
**Keine Kategorisierung möglich&lt;br /&gt;
**Neue Fragen und Antworten müssen in &#039;&#039;&#039;eine&#039;&#039;&#039; XML-Datei eingetragen sein. Kenntnisse in XML müssen also vorhanden sein.&lt;br /&gt;
**Keine personalisierte Prüfungen möglich&lt;br /&gt;
&lt;br /&gt;
===Wirtschaftlichkeitsanalyse===&lt;br /&gt;
===Anwendungsfälle===&lt;br /&gt;
*Grundgedanken&lt;br /&gt;
**&#039;&#039;Prüfer&#039;&#039; und &#039;&#039;Prüfling&#039;&#039;&lt;br /&gt;
**Prüfer muss Fragen, Antworten, neue Prüflinge, neue Fachgebiete und Themen, neue Prüfungen erstellen können&lt;br /&gt;
**Prüfer kann Ergebnisse von Prüflingen einsichten&lt;br /&gt;
**Prüfling muss Prüfung ablegen können&lt;br /&gt;
**Anwendung muss Ergebnis dem Prüfling präsentieren&lt;br /&gt;
&lt;br /&gt;
===Lastenheft===&lt;br /&gt;
* Beschreibung des Lastenhefts(Nicht das Lastenheft selber! Auszugsweise im Anhang!)&lt;br /&gt;
* Soll nach der MoSCoW-Methode(Must, Should, Could, Won´t) formuliert werden.&lt;br /&gt;
&lt;br /&gt;
==Entwurf==&lt;br /&gt;
&lt;br /&gt;
===Datenbank===&lt;br /&gt;
*Grundgedanken&lt;br /&gt;
**Drei Blöcke: &#039;&#039;Fragen-Antworten&#039;&#039;-Block, &#039;&#039;Prüfung&#039;&#039;-Block und &#039;&#039;Teilnehmer&#039;&#039;-Block&lt;br /&gt;
**Eine Frage hat mehrere Antworten(mind. 1-2 je nach Frageart); Eine Antwort gehört zu einer Frage&lt;br /&gt;
**Eine Prüfung hat mehrere Teilnehmer und ein Teilnehmer belegt mehrere Prüfungen.&lt;br /&gt;
**Eine Frage kommt in mehreren Prüfungen vor, eine Prüfung hat mehrere Fragen.&lt;br /&gt;
**Ein Teilnehmer gehört zu einer Gruppe(Team) und hat eine bestimmte Rolle in der Anwendung(Admin, Editor, Prüfling).&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|1200px]]&lt;br /&gt;
*Damit keine Redundanzen entstehen bei den Fragen, wird auf fg_fragetext ein UNIQUE KEY gesetzt.&lt;br /&gt;
*&#039;&#039;Hilft nicht 100%, da ähnliche Fragen trotzdem in die Datenbank geschrieben werden können.&#039;&#039;&lt;br /&gt;
*&#039;&#039;Macht keinen Unterschied, ob die Frage Groß- oder kleingeschrieben ist. Ist die Frage identisch, wird sie verworfen.&#039;&#039;&lt;br /&gt;
*Ebenfalls UNIQUE KEY gesetzt:&lt;br /&gt;
**fg_fachgebiet&lt;br /&gt;
**pr_titel&lt;br /&gt;
**tn_username&lt;br /&gt;
**ro_rolle&lt;br /&gt;
**gr_gruppe&lt;br /&gt;
**sc_level&lt;br /&gt;
**fa_frageart&lt;br /&gt;
&lt;br /&gt;
===Benutzeroberfläche===&lt;br /&gt;
*Realisiert mithilfe des Frameworks &#039;&#039;Bootstrap&#039;&#039;&lt;br /&gt;
*HTML/CSS größtenteils&lt;br /&gt;
&lt;br /&gt;
===Funktionen===&lt;br /&gt;
*Funktionen sollen die [[Projekt:TestTool:Use-Case-Szenarien|Anwendungsfälle]] realisieren können&lt;br /&gt;
*Zusätzliche Funktionen&lt;br /&gt;
**Filterung&lt;br /&gt;
**Sortierung&lt;br /&gt;
**Import von Fragen&lt;br /&gt;
**Benutzerinformationen ändern bzgl. Gruppe, Rolle, Benutzernamen etc.&lt;br /&gt;
*Für das Erstellen neuer Teilnehmer gilt folgendes:&lt;br /&gt;
**Passwort muss verschlüsselt auf der Datenbank liegen&lt;br /&gt;
**Realisierung erfolgt durch SHA512 (Umwandlung des Passworts durch eine Hash-Funktion)&lt;br /&gt;
**Zur Erhöhung der Sicherheit wird zusätzlich ein SALT verwendet&lt;br /&gt;
&lt;br /&gt;
===Pflichtenheft===&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Kurze Beschreibung des Pflichtenhefts(Nicht das Pflichtenheft selber, höchstens Auszüge davon im Anhang!&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Implementierungsphase==&lt;br /&gt;
===Erstellung der Datenbank===&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE c8testtool;&lt;br /&gt;
 USE c8testtool;&lt;br /&gt;
&lt;br /&gt;
Fragentabelle erstellen mit Primärschlüssel und NOT NULL auf Fragetext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE fragen (fr_id INT AUTO_INCREMENT PRIMARY KEY, fr_fragetext TEXT NOT NULL, fr_th_id INT, fr_sc_id INT, fr_fa_id INT, fr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Antworttabelle erstellen mit Primärschlüssel und UNIQUE-Index auf Antworttext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE antworten (an_id INT AUTO_INCREMENT PRIMARY KEY, an_antworttext TEXT UNIQUE, an_fr_id int, an_richtig boolean, an_delete boolean);&lt;br /&gt;
&lt;br /&gt;
Im Nachhinein Beziehung aufsetzen zwischen Antworten und Fragen. Jede Frage hat mehrere Antworten, jede Antwort gehört zu einer Frage. Einsetzen der Lösch- und Änderungsweitergabe.&lt;br /&gt;
&lt;br /&gt;
 ALTER TABLE antworten ADD FOREIGN KEY(an_fr_id) REFERENCES fragen(fr_id) ON DELETE CASCADE ON UPDATE CASCADE;&lt;br /&gt;
&lt;br /&gt;
Teilnehmertabelle erstellen mit UNIQUE-KEY auf &#039;&#039;tn_username&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE teilnehmer &lt;br /&gt;
 (tn_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 tn_vorname VARCHAR(40) NOT NULL,&lt;br /&gt;
 tn_nachname VARCHAR(40) NOT NULL,&lt;br /&gt;
 tn_ro_id INT NOT NULL,&lt;br /&gt;
 tn_gr_id INT NOT NULL,&lt;br /&gt;
 tn_username VARCHAR(40)UNIQUE NOT NULL, &lt;br /&gt;
 tn_passwort VARCHAR(255) NOT NULL,&lt;br /&gt;
 tn_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Prüfungstabelle erstellen mit Standardwert 90 für &#039;&#039;pr_dauer&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE pruefung&lt;br /&gt;
 (pr_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 pr_titel VARCHAR(40) NOT NULL,&lt;br /&gt;
 pr_datum DATE NOT NULL,&lt;br /&gt;
 pr_dauer INT NOT NULL DEFAULT 90,&lt;br /&gt;
 pr_wiederholbar BOOLEAN,&lt;br /&gt;
 pr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
===Implementierung der Entitäten===&lt;br /&gt;
===Implementierung der Programmierlogik===&lt;br /&gt;
===Testphase===&lt;br /&gt;
Während der Testphase wurden folgenden Fehler entdeckt:&lt;br /&gt;
*SQL-Injections möglich im Sucheingabefeld&lt;br /&gt;
**Lösung: Benutzen der php-Funktion &#039;&#039;bindParam&#039;&#039;&lt;br /&gt;
*Unauthorisierter Zugriff, wenn beim Browser auf den Zurück-Knopf klickt.&lt;br /&gt;
**Lösung: Prüfen, ob der Benutzer Zugriff darauf hat.&lt;br /&gt;
&lt;br /&gt;
==Abschlussphase==&lt;br /&gt;
&lt;br /&gt;
===Abnahme===&lt;br /&gt;
&lt;br /&gt;
===Einführung===&lt;br /&gt;
&lt;br /&gt;
===Dokumentation===&lt;br /&gt;
*Es wird neben der Projektdokumentation eine [[Projekt:TestTool:Benutzerdoku|Benutzerdokumenation]] verfasst.&lt;br /&gt;
&lt;br /&gt;
==Fazit==&lt;br /&gt;
&lt;br /&gt;
===Soll/Ist-Vergleich===&lt;br /&gt;
&lt;br /&gt;
===Ausblick/Verbesserungen===&lt;br /&gt;
*Einfügen von Bildern&lt;br /&gt;
*Einfügen neuer Fragetypen(Zuordnungsfragen, Bildbeschreibungsfragen)&lt;br /&gt;
*Bessere Programmierung, Modularisierung&lt;br /&gt;
&lt;br /&gt;
==Quellen==&lt;br /&gt;
&lt;br /&gt;
=Anhang=&lt;br /&gt;
*Auszug aus dem Lastenheft&lt;br /&gt;
*Auszug aus dem Pflichtenheft&lt;br /&gt;
*ER-Modell&lt;br /&gt;
[[Datei:er-modell_testtool.png|750px]]&lt;br /&gt;
*Tabellenmodell&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|750px]]&lt;br /&gt;
*Use-Case-Szenarien&lt;br /&gt;
*Use-Case-Diagramm&lt;br /&gt;
*Aktivitätsdiagramm&lt;br /&gt;
*Auszug aus der Funktion &amp;quot;Bewerten einer Prüfung&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Formalien ==&lt;br /&gt;
=== Deckblatt ===&lt;br /&gt;
*Projektbezeichnung: Datenbankbasierte Webanwendung zur Verwaltung und Durchführung von Prüfungen&lt;br /&gt;
*Namen und Vornamen: Rogers, Alexander&lt;br /&gt;
*Prüfungsausschuss&lt;br /&gt;
*Ausbildungsberuf: Fachinformatiker Anwendungsentwicklung&lt;br /&gt;
*Ausbildungsstätte bzw. Praktikumsbetrieb: itw gGmbH, Groninger Straße 25, 13347 Berlin bzw. Dirk Wagner Berlin, Carstennstraße 6, 12205 Berlin&lt;br /&gt;
&lt;br /&gt;
===Eidesstattliche Erklärung===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Abkürzungsverzeichnis===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekt:TestTool]]&lt;/div&gt;</summary>
		<author><name>Alexanderrogers</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=TestTool/Benutzerdokumentation&amp;diff=18403</id>
		<title>TestTool/Benutzerdokumentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=TestTool/Benutzerdokumentation&amp;diff=18403"/>
		<updated>2020-11-10T11:33:38Z</updated>

		<summary type="html">&lt;p&gt;Alexanderrogers: /* Rollen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Benutzerhandbuch für den Prüfungssimulator&lt;br /&gt;
&lt;br /&gt;
==Rollen==&lt;br /&gt;
===Admin===&lt;br /&gt;
*Neue Teilnehmer einstellen.&lt;br /&gt;
*Neue Prüfungen anlegen.&lt;br /&gt;
*Fragen in die Prüfungen anlegen.&lt;br /&gt;
*Prüfungen ablegen&lt;br /&gt;
*Neue Fragen und Antworten eingeben.&lt;br /&gt;
*Fragen und Antworten löschen&lt;br /&gt;
*Einsicht in alle Prüfungsergebnisse&lt;br /&gt;
*Neue Fachgebiete und Themen erstellen.&lt;br /&gt;
&lt;br /&gt;
===Editor===&lt;br /&gt;
*Neue Fragen und Antworten eingeben&lt;br /&gt;
*Prüfungen ablegen&lt;br /&gt;
*Einsicht in eigene Prüfungsergebnisse &lt;br /&gt;
&lt;br /&gt;
===Prüfling===&lt;br /&gt;
*Prüfungen ablegen&lt;br /&gt;
*Einsicht in eigene Prüfungsergebnisse&lt;br /&gt;
&lt;br /&gt;
==Einloggen==&lt;br /&gt;
&lt;br /&gt;
==Fragen==&lt;br /&gt;
===Eintragen von Fragen===&lt;br /&gt;
&lt;br /&gt;
===Bearbeiten von Fragen===&lt;br /&gt;
&lt;br /&gt;
==Antworten==&lt;br /&gt;
===Eintragen von Antworten===&lt;br /&gt;
&lt;br /&gt;
===Bearbeiten von Antworten===&lt;br /&gt;
&lt;br /&gt;
==Importieren von Fragen und dazugehöriger Antworten==&lt;br /&gt;
&lt;br /&gt;
==Teilnehmer==&lt;br /&gt;
===Neuen Teilnehmer erstellen===&lt;br /&gt;
&lt;br /&gt;
===Bearbeiten der Teilnehmerinformationen===&lt;br /&gt;
&lt;br /&gt;
==Prüfung==&lt;br /&gt;
===Prüfung erstellen===&lt;br /&gt;
&lt;br /&gt;
===Prüfungsfragen hinzufügen===&lt;br /&gt;
&lt;br /&gt;
===Prüfung ablegen===&lt;br /&gt;
&lt;br /&gt;
==Ergebnisse==&lt;/div&gt;</summary>
		<author><name>Alexanderrogers</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=TestTool/Benutzerdokumentation&amp;diff=18402</id>
		<title>TestTool/Benutzerdokumentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=TestTool/Benutzerdokumentation&amp;diff=18402"/>
		<updated>2020-11-10T11:31:40Z</updated>

		<summary type="html">&lt;p&gt;Alexanderrogers: /* Admin */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Benutzerhandbuch für den Prüfungssimulator&lt;br /&gt;
&lt;br /&gt;
==Rollen==&lt;br /&gt;
===Admin===&lt;br /&gt;
*Neue Teilnehmer einstellen.&lt;br /&gt;
*Neue Prüfungen anlegen.&lt;br /&gt;
*Fragen in die Prüfungen anlegen.&lt;br /&gt;
*Neue Fragen und Antworten eingeben.&lt;br /&gt;
*Einsicht in alle Prüfungsergebnisse&lt;br /&gt;
*Neue Fachgebiete und Themen erstellen.&lt;br /&gt;
&lt;br /&gt;
===Editor===&lt;br /&gt;
&lt;br /&gt;
===Prüfling===&lt;br /&gt;
&lt;br /&gt;
==Einloggen==&lt;br /&gt;
&lt;br /&gt;
==Fragen==&lt;br /&gt;
===Eintragen von Fragen===&lt;br /&gt;
&lt;br /&gt;
===Bearbeiten von Fragen===&lt;br /&gt;
&lt;br /&gt;
==Antworten==&lt;br /&gt;
===Eintragen von Antworten===&lt;br /&gt;
&lt;br /&gt;
===Bearbeiten von Antworten===&lt;br /&gt;
&lt;br /&gt;
==Importieren von Fragen und dazugehöriger Antworten==&lt;br /&gt;
&lt;br /&gt;
==Teilnehmer==&lt;br /&gt;
===Neuen Teilnehmer erstellen===&lt;br /&gt;
&lt;br /&gt;
===Bearbeiten der Teilnehmerinformationen===&lt;br /&gt;
&lt;br /&gt;
==Prüfung==&lt;br /&gt;
===Prüfung erstellen===&lt;br /&gt;
&lt;br /&gt;
===Prüfungsfragen hinzufügen===&lt;br /&gt;
&lt;br /&gt;
===Prüfung ablegen===&lt;br /&gt;
&lt;br /&gt;
==Ergebnisse==&lt;/div&gt;</summary>
		<author><name>Alexanderrogers</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=TestTool/Benutzerdokumentation&amp;diff=18381</id>
		<title>TestTool/Benutzerdokumentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=TestTool/Benutzerdokumentation&amp;diff=18381"/>
		<updated>2020-11-10T10:43:16Z</updated>

		<summary type="html">&lt;p&gt;Alexanderrogers: Die Seite wurde neu angelegt: „Benutzerhandbuch für den Prüfungssimulator  ==Rollen== ===Admin===  ===Editor===  ===Prüfling===  ==Einloggen==  ==Fragen== ===Eintragen von Fragen===  ===B…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Benutzerhandbuch für den Prüfungssimulator&lt;br /&gt;
&lt;br /&gt;
==Rollen==&lt;br /&gt;
===Admin===&lt;br /&gt;
&lt;br /&gt;
===Editor===&lt;br /&gt;
&lt;br /&gt;
===Prüfling===&lt;br /&gt;
&lt;br /&gt;
==Einloggen==&lt;br /&gt;
&lt;br /&gt;
==Fragen==&lt;br /&gt;
===Eintragen von Fragen===&lt;br /&gt;
&lt;br /&gt;
===Bearbeiten von Fragen===&lt;br /&gt;
&lt;br /&gt;
==Antworten==&lt;br /&gt;
===Eintragen von Antworten===&lt;br /&gt;
&lt;br /&gt;
===Bearbeiten von Antworten===&lt;br /&gt;
&lt;br /&gt;
==Importieren von Fragen und dazugehöriger Antworten==&lt;br /&gt;
&lt;br /&gt;
==Teilnehmer==&lt;br /&gt;
===Neuen Teilnehmer erstellen===&lt;br /&gt;
&lt;br /&gt;
===Bearbeiten der Teilnehmerinformationen===&lt;br /&gt;
&lt;br /&gt;
==Prüfung==&lt;br /&gt;
===Prüfung erstellen===&lt;br /&gt;
&lt;br /&gt;
===Prüfungsfragen hinzufügen===&lt;br /&gt;
&lt;br /&gt;
===Prüfung ablegen===&lt;br /&gt;
&lt;br /&gt;
==Ergebnisse==&lt;/div&gt;</summary>
		<author><name>Alexanderrogers</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=18379</id>
		<title>TestTool/Dokumentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=18379"/>
		<updated>2020-11-10T10:34:00Z</updated>

		<summary type="html">&lt;p&gt;Alexanderrogers: /* Startphase */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projektdokumentation zur Webanwendung&lt;br /&gt;
&lt;br /&gt;
=Einleitung=&lt;br /&gt;
In dieser Projektdokumentation wird der Ablauf des Abschlussprojektes erläutert, das der Autor im Rahmen seiner Abschlussprüfung zum Fachinformatiker für Anwendungsentwicklung durchführt.&lt;br /&gt;
&lt;br /&gt;
==Projektbeschreibung==&lt;br /&gt;
Für die Dirk Wagner Berlin soll eine Webanwendung mit HTML und PHP entwickelt werden. Diese Webanwendung soll bestimmte Anforderungen erfüllen, die das Erstellen von Prüfungen erleichtern sollen.&lt;br /&gt;
==Projektziel==&lt;br /&gt;
Das Ziel dieses Projektes ist die erfolgreiche Umsetzung einer Webanwendung, die alle Prüfungen von Prüfern verwaltet. Die Prüfer sollen Fragen und mögliche Antworten eintragen können. Die Prüfungen sollen von Prüflingen durchgeführt werden und anschließend ein Ergebnis der Prüfung präsentiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Phasen des Projekts===&lt;br /&gt;
==Startphase==&lt;br /&gt;
===Ist-Zustand===&lt;br /&gt;
*Derzeit müssen alle Prüfungen händisch erstellt werden&lt;br /&gt;
*Ergebnisse müssen manuell ermittelt und geprüft werden, was Zeit dauert&lt;br /&gt;
*Vorbild: Ein portabler LPIC-Simulator aus XML und JavaScript-Dateien, der jedoch nur eingeschränkt nützlich ist&lt;br /&gt;
**Keine Kategorisierung möglich&lt;br /&gt;
**Neue Fragen und Antworten müssen in &#039;&#039;&#039;eine&#039;&#039;&#039; XML-Datei eingetragen sein. Kenntnisse in XML müssen also vorhanden sein.&lt;br /&gt;
**Keine personalisierte Prüfungen möglich&lt;br /&gt;
&lt;br /&gt;
===Wirtschaftlichkeitsanalyse===&lt;br /&gt;
===Anwendungsfälle===&lt;br /&gt;
*Grundgedanken&lt;br /&gt;
**&#039;&#039;Prüfer&#039;&#039; und &#039;&#039;Prüfling&#039;&#039;&lt;br /&gt;
**Prüfer muss Fragen, Antworten, neue Prüflinge, neue Fachgebiete und Themen, neue Prüfungen erstellen können&lt;br /&gt;
**Prüfer kann Ergebnisse von Prüflingen einsichten&lt;br /&gt;
**Prüfling muss Prüfung ablegen können&lt;br /&gt;
**Anwendung muss Ergebnis dem Prüfling präsentieren&lt;br /&gt;
&lt;br /&gt;
===Lastenheft===&lt;br /&gt;
* Beschreibung des Lastenhefts(Nicht das Lastenheft selber! Auszugsweise im Anhang!)&lt;br /&gt;
* Soll nach der MoSCoW-Methode(Must, Should, Could, Won´t) formuliert werden.&lt;br /&gt;
&lt;br /&gt;
==Entwurf==&lt;br /&gt;
&lt;br /&gt;
===Datenbank===&lt;br /&gt;
*Grundgedanken&lt;br /&gt;
**Drei Blöcke: &#039;&#039;Fragen-Antworten&#039;&#039;-Block, &#039;&#039;Prüfung&#039;&#039;-Block und &#039;&#039;Teilnehmer&#039;&#039;-Block&lt;br /&gt;
**Eine Frage hat mehrere Antworten(mind. 1-2 je nach Frageart); Eine Antwort gehört zu einer Frage&lt;br /&gt;
**Eine Prüfung hat mehrere Teilnehmer und ein Teilnehmer belegt mehrere Prüfungen.&lt;br /&gt;
**Eine Frage kommt in mehreren Prüfungen vor, eine Prüfung hat mehrere Fragen.&lt;br /&gt;
**Ein Teilnehmer gehört zu einer Gruppe(Team) und hat eine bestimmte Rolle in der Anwendung(Admin, Editor, Prüfling).&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|1200px]]&lt;br /&gt;
*Damit keine Redundanzen entstehen bei den Fragen, wird auf fg_fragetext ein UNIQUE KEY gesetzt.&lt;br /&gt;
*&#039;&#039;Hilft nicht 100%, da ähnliche Fragen trotzdem in die Datenbank geschrieben werden können.&#039;&#039;&lt;br /&gt;
*&#039;&#039;Macht keinen Unterschied, ob die Frage Groß- oder kleingeschrieben ist. Ist die Frage identisch, wird sie verworfen.&#039;&#039;&lt;br /&gt;
*Ebenfalls UNIQUE KEY gesetzt:&lt;br /&gt;
**fg_fachgebiet&lt;br /&gt;
**pr_titel&lt;br /&gt;
**tn_username&lt;br /&gt;
**ro_rolle&lt;br /&gt;
**gr_gruppe&lt;br /&gt;
**sc_level&lt;br /&gt;
**fa_frageart&lt;br /&gt;
&lt;br /&gt;
===Benutzeroberfläche===&lt;br /&gt;
*Realisiert mithilfe des Frameworks &#039;&#039;Bootstrap&#039;&#039;&lt;br /&gt;
*HTML/CSS größtenteils&lt;br /&gt;
&lt;br /&gt;
===Funktionen===&lt;br /&gt;
*Funktionen sollen die [[Projekt:TestTool:Use-Case-Szenarien|Anwendungsfälle]] realisieren können&lt;br /&gt;
*Zusätzliche Funktionen&lt;br /&gt;
**Filterung&lt;br /&gt;
**Sortierung&lt;br /&gt;
**Import von Fragen&lt;br /&gt;
**Benutzerinformationen ändern bzgl. Gruppe, Rolle, Benutzernamen etc.&lt;br /&gt;
*Für das Erstellen neuer Teilnehmer gilt folgendes:&lt;br /&gt;
**Passwort muss verschlüsselt auf der Datenbank liegen&lt;br /&gt;
**Realisierung erfolgt durch SHA512 (Umwandlung des Passworts durch eine Hash-Funktion)&lt;br /&gt;
**Zur Erhöhung der Sicherheit wird zusätzlich ein SALT verwendet&lt;br /&gt;
&lt;br /&gt;
===Pflichtenheft===&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Kurze Beschreibung des Pflichtenhefts(Nicht das Pflichtenheft selber, höchstens Auszüge davon im Anhang!&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Implementierungsphase==&lt;br /&gt;
===Erstellung der Datenbank===&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE c8testtool;&lt;br /&gt;
 USE c8testtool;&lt;br /&gt;
&lt;br /&gt;
Fragentabelle erstellen mit Primärschlüssel und NOT NULL auf Fragetext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE fragen (fr_id INT AUTO_INCREMENT PRIMARY KEY, fr_fragetext TEXT NOT NULL, fr_th_id INT, fr_sc_id INT, fr_fa_id INT, fr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Antworttabelle erstellen mit Primärschlüssel und UNIQUE-Index auf Antworttext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE antworten (an_id INT AUTO_INCREMENT PRIMARY KEY, an_antworttext TEXT UNIQUE, an_fr_id int, an_richtig boolean, an_delete boolean);&lt;br /&gt;
&lt;br /&gt;
Im Nachhinein Beziehung aufsetzen zwischen Antworten und Fragen. Jede Frage hat mehrere Antworten, jede Antwort gehört zu einer Frage. Einsetzen der Lösch- und Änderungsweitergabe.&lt;br /&gt;
&lt;br /&gt;
 ALTER TABLE antworten ADD FOREIGN KEY(an_fr_id) REFERENCES fragen(fr_id) ON DELETE CASCADE ON UPDATE CASCADE;&lt;br /&gt;
&lt;br /&gt;
Teilnehmertabelle erstellen mit UNIQUE-KEY auf &#039;&#039;tn_username&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE teilnehmer &lt;br /&gt;
 (tn_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 tn_vorname VARCHAR(40) NOT NULL,&lt;br /&gt;
 tn_nachname VARCHAR(40) NOT NULL,&lt;br /&gt;
 tn_ro_id INT NOT NULL,&lt;br /&gt;
 tn_gr_id INT NOT NULL,&lt;br /&gt;
 tn_username VARCHAR(40)UNIQUE NOT NULL, &lt;br /&gt;
 tn_passwort VARCHAR(255) NOT NULL,&lt;br /&gt;
 tn_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Prüfungstabelle erstellen mit Standardwert 90 für &#039;&#039;pr_dauer&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE pruefung&lt;br /&gt;
 (pr_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 pr_titel VARCHAR(40) NOT NULL,&lt;br /&gt;
 pr_datum DATE NOT NULL,&lt;br /&gt;
 pr_dauer INT NOT NULL DEFAULT 90,&lt;br /&gt;
 pr_wiederholbar BOOLEAN,&lt;br /&gt;
 pr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
===Implementierung der Entitäten===&lt;br /&gt;
===Implementierung der Programmierlogik===&lt;br /&gt;
===Testphase===&lt;br /&gt;
Während der Testphase wurden folgenden Fehler entdeckt:&lt;br /&gt;
*SQL-Injections möglich im Sucheingabefeld&lt;br /&gt;
**Lösung: Benutzen der php-Funktion &#039;&#039;bindParam&#039;&#039;&lt;br /&gt;
*Unauthorisierter Zugriff, wenn beim Browser auf den Zurück-Knopf klickt.&lt;br /&gt;
**Lösung: Prüfen, ob der Benutzer Zugriff darauf hat.&lt;br /&gt;
&lt;br /&gt;
==Abschlussphase==&lt;br /&gt;
&lt;br /&gt;
===Abnahme===&lt;br /&gt;
&lt;br /&gt;
===Einführung===&lt;br /&gt;
&lt;br /&gt;
===Dokumentation===&lt;br /&gt;
*Es wird neben der Projektdokumentation eine Benutzerdokumentation verfasst.&lt;br /&gt;
&lt;br /&gt;
==Fazit==&lt;br /&gt;
&lt;br /&gt;
===Soll/Ist-Vergleich===&lt;br /&gt;
&lt;br /&gt;
===Ausblick/Verbesserungen===&lt;br /&gt;
*Einfügen von Bildern&lt;br /&gt;
*Einfügen neuer Fragetypen(Zuordnungsfragen, Bildbeschreibungsfragen)&lt;br /&gt;
*Bessere Programmierung, Modularisierung&lt;br /&gt;
&lt;br /&gt;
==Quellen==&lt;br /&gt;
&lt;br /&gt;
=Anhang=&lt;br /&gt;
*Auszug aus dem Lastenheft&lt;br /&gt;
*Auszug aus dem Pflichtenheft&lt;br /&gt;
*ER-Modell&lt;br /&gt;
[[Datei:er-modell_testtool.png|750px]]&lt;br /&gt;
*Tabellenmodell&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|750px]]&lt;br /&gt;
*Use-Case-Szenarien&lt;br /&gt;
*Use-Case-Diagramm&lt;br /&gt;
*Aktivitätsdiagramm&lt;br /&gt;
*Auszug aus der Funktion &amp;quot;Bewerten einer Prüfung&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Formalien ==&lt;br /&gt;
=== Deckblatt ===&lt;br /&gt;
*Projektbezeichnung: Datenbankbasierte Webanwendung zur Verwaltung und Durchführung von Prüfungen&lt;br /&gt;
*Namen und Vornamen: Rogers, Alexander&lt;br /&gt;
*Prüfungsausschuss&lt;br /&gt;
*Ausbildungsberuf: Fachinformatiker Anwendungsentwicklung&lt;br /&gt;
*Ausbildungsstätte bzw. Praktikumsbetrieb: itw gGmbH, Groninger Straße 25, 13347 Berlin bzw. Dirk Wagner Berlin, Carstennstraße 6, 12205 Berlin&lt;br /&gt;
&lt;br /&gt;
===Eidesstattliche Erklärung===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Abkürzungsverzeichnis===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekt:TestTool]]&lt;/div&gt;</summary>
		<author><name>Alexanderrogers</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=18377</id>
		<title>TestTool/Dokumentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=18377"/>
		<updated>2020-11-10T10:29:17Z</updated>

		<summary type="html">&lt;p&gt;Alexanderrogers: /* Ist-Zustand */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projektdokumentation zur Webanwendung&lt;br /&gt;
&lt;br /&gt;
=Einleitung=&lt;br /&gt;
In dieser Projektdokumentation wird der Ablauf des Abschlussprojektes erläutert, das der Autor im Rahmen seiner Abschlussprüfung zum Fachinformatiker für Anwendungsentwicklung durchführt.&lt;br /&gt;
&lt;br /&gt;
==Projektbeschreibung==&lt;br /&gt;
Für die Dirk Wagner Berlin soll eine Webanwendung mit HTML und PHP entwickelt werden. Diese Webanwendung soll bestimmte Anforderungen erfüllen, die das Erstellen von Prüfungen erleichtern sollen.&lt;br /&gt;
==Projektziel==&lt;br /&gt;
Das Ziel dieses Projektes ist die erfolgreiche Umsetzung einer Webanwendung, die alle Prüfungen von Prüfern verwaltet. Die Prüfer sollen Fragen und mögliche Antworten eintragen können. Die Prüfungen sollen von Prüflingen durchgeführt werden und anschließend ein Ergebnis der Prüfung präsentiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Phasen des Projekts===&lt;br /&gt;
==Startphase==&lt;br /&gt;
===Ist-Zustand===&lt;br /&gt;
*Derzeit müssen alle Prüfungen händisch erstellt werden&lt;br /&gt;
*Ergebnisse müssen manuell ermittelt und geprüft werden, was Zeit dauert&lt;br /&gt;
&lt;br /&gt;
===Wirtschaftlichkeitsanalyse===&lt;br /&gt;
===Anwendungsfälle===&lt;br /&gt;
*Grundgedanken&lt;br /&gt;
**&#039;&#039;Prüfer&#039;&#039; und &#039;&#039;Prüfling&#039;&#039;&lt;br /&gt;
**Prüfer muss Fragen, Antworten, neue Prüflinge, neue Fachgebiete und Themen, neue Prüfungen erstellen können&lt;br /&gt;
**Prüfer kann Ergebnisse von Prüflingen einsichten&lt;br /&gt;
**Prüfling muss Prüfung ablegen können&lt;br /&gt;
**Anwendung muss Ergebnis dem Prüfling präsentieren&lt;br /&gt;
&lt;br /&gt;
===Lastenheft===&lt;br /&gt;
* Beschreibung des Lastenhefts(Nicht das Lastenheft selber! Auszugsweise im Anhang!)&lt;br /&gt;
* Soll nach der MoSCoW-Methode(Must, Should, Could, Won´t) formuliert werden.&lt;br /&gt;
&lt;br /&gt;
==Entwurf==&lt;br /&gt;
&lt;br /&gt;
===Datenbank===&lt;br /&gt;
*Grundgedanken&lt;br /&gt;
**Drei Blöcke: &#039;&#039;Fragen-Antworten&#039;&#039;-Block, &#039;&#039;Prüfung&#039;&#039;-Block und &#039;&#039;Teilnehmer&#039;&#039;-Block&lt;br /&gt;
**Eine Frage hat mehrere Antworten(mind. 1-2 je nach Frageart); Eine Antwort gehört zu einer Frage&lt;br /&gt;
**Eine Prüfung hat mehrere Teilnehmer und ein Teilnehmer belegt mehrere Prüfungen.&lt;br /&gt;
**Eine Frage kommt in mehreren Prüfungen vor, eine Prüfung hat mehrere Fragen.&lt;br /&gt;
**Ein Teilnehmer gehört zu einer Gruppe(Team) und hat eine bestimmte Rolle in der Anwendung(Admin, Editor, Prüfling).&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|1200px]]&lt;br /&gt;
*Damit keine Redundanzen entstehen bei den Fragen, wird auf fg_fragetext ein UNIQUE KEY gesetzt.&lt;br /&gt;
*&#039;&#039;Hilft nicht 100%, da ähnliche Fragen trotzdem in die Datenbank geschrieben werden können.&#039;&#039;&lt;br /&gt;
*&#039;&#039;Macht keinen Unterschied, ob die Frage Groß- oder kleingeschrieben ist. Ist die Frage identisch, wird sie verworfen.&#039;&#039;&lt;br /&gt;
*Ebenfalls UNIQUE KEY gesetzt:&lt;br /&gt;
**fg_fachgebiet&lt;br /&gt;
**pr_titel&lt;br /&gt;
**tn_username&lt;br /&gt;
**ro_rolle&lt;br /&gt;
**gr_gruppe&lt;br /&gt;
**sc_level&lt;br /&gt;
**fa_frageart&lt;br /&gt;
&lt;br /&gt;
===Benutzeroberfläche===&lt;br /&gt;
*Realisiert mithilfe des Frameworks &#039;&#039;Bootstrap&#039;&#039;&lt;br /&gt;
*HTML/CSS größtenteils&lt;br /&gt;
&lt;br /&gt;
===Funktionen===&lt;br /&gt;
*Funktionen sollen die [[Projekt:TestTool:Use-Case-Szenarien|Anwendungsfälle]] realisieren können&lt;br /&gt;
*Zusätzliche Funktionen&lt;br /&gt;
**Filterung&lt;br /&gt;
**Sortierung&lt;br /&gt;
**Import von Fragen&lt;br /&gt;
**Benutzerinformationen ändern bzgl. Gruppe, Rolle, Benutzernamen etc.&lt;br /&gt;
*Für das Erstellen neuer Teilnehmer gilt folgendes:&lt;br /&gt;
**Passwort muss verschlüsselt auf der Datenbank liegen&lt;br /&gt;
**Realisierung erfolgt durch SHA512 (Umwandlung des Passworts durch eine Hash-Funktion)&lt;br /&gt;
**Zur Erhöhung der Sicherheit wird zusätzlich ein SALT verwendet&lt;br /&gt;
&lt;br /&gt;
===Pflichtenheft===&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Kurze Beschreibung des Pflichtenhefts(Nicht das Pflichtenheft selber, höchstens Auszüge davon im Anhang!&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Implementierungsphase==&lt;br /&gt;
===Erstellung der Datenbank===&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE c8testtool;&lt;br /&gt;
 USE c8testtool;&lt;br /&gt;
&lt;br /&gt;
Fragentabelle erstellen mit Primärschlüssel und NOT NULL auf Fragetext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE fragen (fr_id INT AUTO_INCREMENT PRIMARY KEY, fr_fragetext TEXT NOT NULL, fr_th_id INT, fr_sc_id INT, fr_fa_id INT, fr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Antworttabelle erstellen mit Primärschlüssel und UNIQUE-Index auf Antworttext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE antworten (an_id INT AUTO_INCREMENT PRIMARY KEY, an_antworttext TEXT UNIQUE, an_fr_id int, an_richtig boolean, an_delete boolean);&lt;br /&gt;
&lt;br /&gt;
Im Nachhinein Beziehung aufsetzen zwischen Antworten und Fragen. Jede Frage hat mehrere Antworten, jede Antwort gehört zu einer Frage. Einsetzen der Lösch- und Änderungsweitergabe.&lt;br /&gt;
&lt;br /&gt;
 ALTER TABLE antworten ADD FOREIGN KEY(an_fr_id) REFERENCES fragen(fr_id) ON DELETE CASCADE ON UPDATE CASCADE;&lt;br /&gt;
&lt;br /&gt;
Teilnehmertabelle erstellen mit UNIQUE-KEY auf &#039;&#039;tn_username&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE teilnehmer &lt;br /&gt;
 (tn_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 tn_vorname VARCHAR(40) NOT NULL,&lt;br /&gt;
 tn_nachname VARCHAR(40) NOT NULL,&lt;br /&gt;
 tn_ro_id INT NOT NULL,&lt;br /&gt;
 tn_gr_id INT NOT NULL,&lt;br /&gt;
 tn_username VARCHAR(40)UNIQUE NOT NULL, &lt;br /&gt;
 tn_passwort VARCHAR(255) NOT NULL,&lt;br /&gt;
 tn_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Prüfungstabelle erstellen mit Standardwert 90 für &#039;&#039;pr_dauer&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE pruefung&lt;br /&gt;
 (pr_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 pr_titel VARCHAR(40) NOT NULL,&lt;br /&gt;
 pr_datum DATE NOT NULL,&lt;br /&gt;
 pr_dauer INT NOT NULL DEFAULT 90,&lt;br /&gt;
 pr_wiederholbar BOOLEAN,&lt;br /&gt;
 pr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
===Implementierung der Entitäten===&lt;br /&gt;
===Implementierung der Programmierlogik===&lt;br /&gt;
===Testphase===&lt;br /&gt;
Während der Testphase wurden folgenden Fehler entdeckt:&lt;br /&gt;
*SQL-Injections möglich im Sucheingabefeld&lt;br /&gt;
**Lösung: Benutzen der php-Funktion &#039;&#039;bindParam&#039;&#039;&lt;br /&gt;
*Unauthorisierter Zugriff, wenn beim Browser auf den Zurück-Knopf klickt.&lt;br /&gt;
**Lösung: Prüfen, ob der Benutzer Zugriff darauf hat.&lt;br /&gt;
&lt;br /&gt;
==Abschlussphase==&lt;br /&gt;
&lt;br /&gt;
===Abnahme===&lt;br /&gt;
&lt;br /&gt;
===Einführung===&lt;br /&gt;
&lt;br /&gt;
===Dokumentation===&lt;br /&gt;
*Es wird neben der Projektdokumentation eine Benutzerdokumentation verfasst.&lt;br /&gt;
&lt;br /&gt;
==Fazit==&lt;br /&gt;
&lt;br /&gt;
===Soll/Ist-Vergleich===&lt;br /&gt;
&lt;br /&gt;
===Ausblick/Verbesserungen===&lt;br /&gt;
*Einfügen von Bildern&lt;br /&gt;
*Einfügen neuer Fragetypen(Zuordnungsfragen, Bildbeschreibungsfragen)&lt;br /&gt;
*Bessere Programmierung, Modularisierung&lt;br /&gt;
&lt;br /&gt;
==Quellen==&lt;br /&gt;
&lt;br /&gt;
=Anhang=&lt;br /&gt;
*Auszug aus dem Lastenheft&lt;br /&gt;
*Auszug aus dem Pflichtenheft&lt;br /&gt;
*ER-Modell&lt;br /&gt;
[[Datei:er-modell_testtool.png|750px]]&lt;br /&gt;
*Tabellenmodell&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|750px]]&lt;br /&gt;
*Use-Case-Szenarien&lt;br /&gt;
*Use-Case-Diagramm&lt;br /&gt;
*Aktivitätsdiagramm&lt;br /&gt;
*Auszug aus der Funktion &amp;quot;Bewerten einer Prüfung&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Formalien ==&lt;br /&gt;
=== Deckblatt ===&lt;br /&gt;
*Projektbezeichnung: Datenbankbasierte Webanwendung zur Verwaltung und Durchführung von Prüfungen&lt;br /&gt;
*Namen und Vornamen: Rogers, Alexander&lt;br /&gt;
*Prüfungsausschuss&lt;br /&gt;
*Ausbildungsberuf: Fachinformatiker Anwendungsentwicklung&lt;br /&gt;
*Ausbildungsstätte bzw. Praktikumsbetrieb: itw gGmbH, Groninger Straße 25, 13347 Berlin bzw. Dirk Wagner Berlin, Carstennstraße 6, 12205 Berlin&lt;br /&gt;
&lt;br /&gt;
===Eidesstattliche Erklärung===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Abkürzungsverzeichnis===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekt:TestTool]]&lt;/div&gt;</summary>
		<author><name>Alexanderrogers</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=18371</id>
		<title>TestTool/Dokumentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=18371"/>
		<updated>2020-11-10T10:05:46Z</updated>

		<summary type="html">&lt;p&gt;Alexanderrogers: /* Funktionen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projektdokumentation zur Webanwendung&lt;br /&gt;
&lt;br /&gt;
=Einleitung=&lt;br /&gt;
In dieser Projektdokumentation wird der Ablauf des Abschlussprojektes erläutert, das der Autor im Rahmen seiner Abschlussprüfung zum Fachinformatiker für Anwendungsentwicklung durchführt.&lt;br /&gt;
&lt;br /&gt;
==Projektbeschreibung==&lt;br /&gt;
Für die Dirk Wagner Berlin soll eine Webanwendung mit HTML und PHP entwickelt werden. Diese Webanwendung soll bestimmte Anforderungen erfüllen, die das Erstellen von Prüfungen erleichtern sollen.&lt;br /&gt;
==Projektziel==&lt;br /&gt;
Das Ziel dieses Projektes ist die erfolgreiche Umsetzung einer Webanwendung, die alle Prüfungen von Prüfern verwaltet. Die Prüfer sollen Fragen und mögliche Antworten eintragen können. Die Prüfungen sollen von Prüflingen durchgeführt werden und anschließend ein Ergebnis der Prüfung präsentiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Phasen des Projekts===&lt;br /&gt;
==Startphase==&lt;br /&gt;
===Ist-Zustand===&lt;br /&gt;
===Wirtschaftlichkeitsanalyse===&lt;br /&gt;
===Anwendungsfälle===&lt;br /&gt;
*Grundgedanken&lt;br /&gt;
**&#039;&#039;Prüfer&#039;&#039; und &#039;&#039;Prüfling&#039;&#039;&lt;br /&gt;
**Prüfer muss Fragen, Antworten, neue Prüflinge, neue Fachgebiete und Themen, neue Prüfungen erstellen können&lt;br /&gt;
**Prüfer kann Ergebnisse von Prüflingen einsichten&lt;br /&gt;
**Prüfling muss Prüfung ablegen können&lt;br /&gt;
**Anwendung muss Ergebnis dem Prüfling präsentieren&lt;br /&gt;
&lt;br /&gt;
===Lastenheft===&lt;br /&gt;
* Beschreibung des Lastenhefts(Nicht das Lastenheft selber! Auszugsweise im Anhang!)&lt;br /&gt;
* Soll nach der MoSCoW-Methode(Must, Should, Could, Won´t) formuliert werden.&lt;br /&gt;
&lt;br /&gt;
==Entwurf==&lt;br /&gt;
&lt;br /&gt;
===Datenbank===&lt;br /&gt;
*Grundgedanken&lt;br /&gt;
**Drei Blöcke: &#039;&#039;Fragen-Antworten&#039;&#039;-Block, &#039;&#039;Prüfung&#039;&#039;-Block und &#039;&#039;Teilnehmer&#039;&#039;-Block&lt;br /&gt;
**Eine Frage hat mehrere Antworten(mind. 1-2 je nach Frageart); Eine Antwort gehört zu einer Frage&lt;br /&gt;
**Eine Prüfung hat mehrere Teilnehmer und ein Teilnehmer belegt mehrere Prüfungen.&lt;br /&gt;
**Eine Frage kommt in mehreren Prüfungen vor, eine Prüfung hat mehrere Fragen.&lt;br /&gt;
**Ein Teilnehmer gehört zu einer Gruppe(Team) und hat eine bestimmte Rolle in der Anwendung(Admin, Editor, Prüfling).&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|1200px]]&lt;br /&gt;
*Damit keine Redundanzen entstehen bei den Fragen, wird auf fg_fragetext ein UNIQUE KEY gesetzt.&lt;br /&gt;
*&#039;&#039;Hilft nicht 100%, da ähnliche Fragen trotzdem in die Datenbank geschrieben werden können.&#039;&#039;&lt;br /&gt;
*&#039;&#039;Macht keinen Unterschied, ob die Frage Groß- oder kleingeschrieben ist. Ist die Frage identisch, wird sie verworfen.&#039;&#039;&lt;br /&gt;
*Ebenfalls UNIQUE KEY gesetzt:&lt;br /&gt;
**fg_fachgebiet&lt;br /&gt;
**pr_titel&lt;br /&gt;
**tn_username&lt;br /&gt;
**ro_rolle&lt;br /&gt;
**gr_gruppe&lt;br /&gt;
**sc_level&lt;br /&gt;
**fa_frageart&lt;br /&gt;
&lt;br /&gt;
===Benutzeroberfläche===&lt;br /&gt;
*Realisiert mithilfe des Frameworks &#039;&#039;Bootstrap&#039;&#039;&lt;br /&gt;
*HTML/CSS größtenteils&lt;br /&gt;
&lt;br /&gt;
===Funktionen===&lt;br /&gt;
*Funktionen sollen die [[Projekt:TestTool:Use-Case-Szenarien|Anwendungsfälle]] realisieren können&lt;br /&gt;
*Zusätzliche Funktionen&lt;br /&gt;
**Filterung&lt;br /&gt;
**Sortierung&lt;br /&gt;
**Import von Fragen&lt;br /&gt;
**Benutzerinformationen ändern bzgl. Gruppe, Rolle, Benutzernamen etc.&lt;br /&gt;
*Für das Erstellen neuer Teilnehmer gilt folgendes:&lt;br /&gt;
**Passwort muss verschlüsselt auf der Datenbank liegen&lt;br /&gt;
**Realisierung erfolgt durch SHA512 (Umwandlung des Passworts durch eine Hash-Funktion)&lt;br /&gt;
**Zur Erhöhung der Sicherheit wird zusätzlich ein SALT verwendet&lt;br /&gt;
&lt;br /&gt;
===Pflichtenheft===&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Kurze Beschreibung des Pflichtenhefts(Nicht das Pflichtenheft selber, höchstens Auszüge davon im Anhang!&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Implementierungsphase==&lt;br /&gt;
===Erstellung der Datenbank===&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE c8testtool;&lt;br /&gt;
 USE c8testtool;&lt;br /&gt;
&lt;br /&gt;
Fragentabelle erstellen mit Primärschlüssel und NOT NULL auf Fragetext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE fragen (fr_id INT AUTO_INCREMENT PRIMARY KEY, fr_fragetext TEXT NOT NULL, fr_th_id INT, fr_sc_id INT, fr_fa_id INT, fr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Antworttabelle erstellen mit Primärschlüssel und UNIQUE-Index auf Antworttext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE antworten (an_id INT AUTO_INCREMENT PRIMARY KEY, an_antworttext TEXT UNIQUE, an_fr_id int, an_richtig boolean, an_delete boolean);&lt;br /&gt;
&lt;br /&gt;
Im Nachhinein Beziehung aufsetzen zwischen Antworten und Fragen. Jede Frage hat mehrere Antworten, jede Antwort gehört zu einer Frage. Einsetzen der Lösch- und Änderungsweitergabe.&lt;br /&gt;
&lt;br /&gt;
 ALTER TABLE antworten ADD FOREIGN KEY(an_fr_id) REFERENCES fragen(fr_id) ON DELETE CASCADE ON UPDATE CASCADE;&lt;br /&gt;
&lt;br /&gt;
Teilnehmertabelle erstellen mit UNIQUE-KEY auf &#039;&#039;tn_username&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE teilnehmer &lt;br /&gt;
 (tn_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 tn_vorname VARCHAR(40) NOT NULL,&lt;br /&gt;
 tn_nachname VARCHAR(40) NOT NULL,&lt;br /&gt;
 tn_ro_id INT NOT NULL,&lt;br /&gt;
 tn_gr_id INT NOT NULL,&lt;br /&gt;
 tn_username VARCHAR(40)UNIQUE NOT NULL, &lt;br /&gt;
 tn_passwort VARCHAR(255) NOT NULL,&lt;br /&gt;
 tn_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Prüfungstabelle erstellen mit Standardwert 90 für &#039;&#039;pr_dauer&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE pruefung&lt;br /&gt;
 (pr_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 pr_titel VARCHAR(40) NOT NULL,&lt;br /&gt;
 pr_datum DATE NOT NULL,&lt;br /&gt;
 pr_dauer INT NOT NULL DEFAULT 90,&lt;br /&gt;
 pr_wiederholbar BOOLEAN,&lt;br /&gt;
 pr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
===Implementierung der Entitäten===&lt;br /&gt;
===Implementierung der Programmierlogik===&lt;br /&gt;
===Testphase===&lt;br /&gt;
Während der Testphase wurden folgenden Fehler entdeckt:&lt;br /&gt;
*SQL-Injections möglich im Sucheingabefeld&lt;br /&gt;
**Lösung: Benutzen der php-Funktion &#039;&#039;bindParam&#039;&#039;&lt;br /&gt;
*Unauthorisierter Zugriff, wenn beim Browser auf den Zurück-Knopf klickt.&lt;br /&gt;
**Lösung: Prüfen, ob der Benutzer Zugriff darauf hat.&lt;br /&gt;
&lt;br /&gt;
==Abschlussphase==&lt;br /&gt;
&lt;br /&gt;
===Abnahme===&lt;br /&gt;
&lt;br /&gt;
===Einführung===&lt;br /&gt;
&lt;br /&gt;
===Dokumentation===&lt;br /&gt;
*Es wird neben der Projektdokumentation eine Benutzerdokumentation verfasst.&lt;br /&gt;
&lt;br /&gt;
==Fazit==&lt;br /&gt;
&lt;br /&gt;
===Soll/Ist-Vergleich===&lt;br /&gt;
&lt;br /&gt;
===Ausblick/Verbesserungen===&lt;br /&gt;
*Einfügen von Bildern&lt;br /&gt;
*Einfügen neuer Fragetypen(Zuordnungsfragen, Bildbeschreibungsfragen)&lt;br /&gt;
*Bessere Programmierung, Modularisierung&lt;br /&gt;
&lt;br /&gt;
==Quellen==&lt;br /&gt;
&lt;br /&gt;
=Anhang=&lt;br /&gt;
*Auszug aus dem Lastenheft&lt;br /&gt;
*Auszug aus dem Pflichtenheft&lt;br /&gt;
*ER-Modell&lt;br /&gt;
[[Datei:er-modell_testtool.png|750px]]&lt;br /&gt;
*Tabellenmodell&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|750px]]&lt;br /&gt;
*Use-Case-Szenarien&lt;br /&gt;
*Use-Case-Diagramm&lt;br /&gt;
*Aktivitätsdiagramm&lt;br /&gt;
*Auszug aus der Funktion &amp;quot;Bewerten einer Prüfung&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Formalien ==&lt;br /&gt;
=== Deckblatt ===&lt;br /&gt;
*Projektbezeichnung: Datenbankbasierte Webanwendung zur Verwaltung und Durchführung von Prüfungen&lt;br /&gt;
*Namen und Vornamen: Rogers, Alexander&lt;br /&gt;
*Prüfungsausschuss&lt;br /&gt;
*Ausbildungsberuf: Fachinformatiker Anwendungsentwicklung&lt;br /&gt;
*Ausbildungsstätte bzw. Praktikumsbetrieb: itw gGmbH, Groninger Straße 25, 13347 Berlin bzw. Dirk Wagner Berlin, Carstennstraße 6, 12205 Berlin&lt;br /&gt;
&lt;br /&gt;
===Eidesstattliche Erklärung===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Abkürzungsverzeichnis===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekt:TestTool]]&lt;/div&gt;</summary>
		<author><name>Alexanderrogers</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=18370</id>
		<title>TestTool/Dokumentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=18370"/>
		<updated>2020-11-10T10:05:06Z</updated>

		<summary type="html">&lt;p&gt;Alexanderrogers: /* Funktionen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projektdokumentation zur Webanwendung&lt;br /&gt;
&lt;br /&gt;
=Einleitung=&lt;br /&gt;
In dieser Projektdokumentation wird der Ablauf des Abschlussprojektes erläutert, das der Autor im Rahmen seiner Abschlussprüfung zum Fachinformatiker für Anwendungsentwicklung durchführt.&lt;br /&gt;
&lt;br /&gt;
==Projektbeschreibung==&lt;br /&gt;
Für die Dirk Wagner Berlin soll eine Webanwendung mit HTML und PHP entwickelt werden. Diese Webanwendung soll bestimmte Anforderungen erfüllen, die das Erstellen von Prüfungen erleichtern sollen.&lt;br /&gt;
==Projektziel==&lt;br /&gt;
Das Ziel dieses Projektes ist die erfolgreiche Umsetzung einer Webanwendung, die alle Prüfungen von Prüfern verwaltet. Die Prüfer sollen Fragen und mögliche Antworten eintragen können. Die Prüfungen sollen von Prüflingen durchgeführt werden und anschließend ein Ergebnis der Prüfung präsentiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Phasen des Projekts===&lt;br /&gt;
==Startphase==&lt;br /&gt;
===Ist-Zustand===&lt;br /&gt;
===Wirtschaftlichkeitsanalyse===&lt;br /&gt;
===Anwendungsfälle===&lt;br /&gt;
*Grundgedanken&lt;br /&gt;
**&#039;&#039;Prüfer&#039;&#039; und &#039;&#039;Prüfling&#039;&#039;&lt;br /&gt;
**Prüfer muss Fragen, Antworten, neue Prüflinge, neue Fachgebiete und Themen, neue Prüfungen erstellen können&lt;br /&gt;
**Prüfer kann Ergebnisse von Prüflingen einsichten&lt;br /&gt;
**Prüfling muss Prüfung ablegen können&lt;br /&gt;
**Anwendung muss Ergebnis dem Prüfling präsentieren&lt;br /&gt;
&lt;br /&gt;
===Lastenheft===&lt;br /&gt;
* Beschreibung des Lastenhefts(Nicht das Lastenheft selber! Auszugsweise im Anhang!)&lt;br /&gt;
* Soll nach der MoSCoW-Methode(Must, Should, Could, Won´t) formuliert werden.&lt;br /&gt;
&lt;br /&gt;
==Entwurf==&lt;br /&gt;
&lt;br /&gt;
===Datenbank===&lt;br /&gt;
*Grundgedanken&lt;br /&gt;
**Drei Blöcke: &#039;&#039;Fragen-Antworten&#039;&#039;-Block, &#039;&#039;Prüfung&#039;&#039;-Block und &#039;&#039;Teilnehmer&#039;&#039;-Block&lt;br /&gt;
**Eine Frage hat mehrere Antworten(mind. 1-2 je nach Frageart); Eine Antwort gehört zu einer Frage&lt;br /&gt;
**Eine Prüfung hat mehrere Teilnehmer und ein Teilnehmer belegt mehrere Prüfungen.&lt;br /&gt;
**Eine Frage kommt in mehreren Prüfungen vor, eine Prüfung hat mehrere Fragen.&lt;br /&gt;
**Ein Teilnehmer gehört zu einer Gruppe(Team) und hat eine bestimmte Rolle in der Anwendung(Admin, Editor, Prüfling).&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|1200px]]&lt;br /&gt;
*Damit keine Redundanzen entstehen bei den Fragen, wird auf fg_fragetext ein UNIQUE KEY gesetzt.&lt;br /&gt;
*&#039;&#039;Hilft nicht 100%, da ähnliche Fragen trotzdem in die Datenbank geschrieben werden können.&#039;&#039;&lt;br /&gt;
*&#039;&#039;Macht keinen Unterschied, ob die Frage Groß- oder kleingeschrieben ist. Ist die Frage identisch, wird sie verworfen.&#039;&#039;&lt;br /&gt;
*Ebenfalls UNIQUE KEY gesetzt:&lt;br /&gt;
**fg_fachgebiet&lt;br /&gt;
**pr_titel&lt;br /&gt;
**tn_username&lt;br /&gt;
**ro_rolle&lt;br /&gt;
**gr_gruppe&lt;br /&gt;
**sc_level&lt;br /&gt;
**fa_frageart&lt;br /&gt;
&lt;br /&gt;
===Benutzeroberfläche===&lt;br /&gt;
*Realisiert mithilfe des Frameworks &#039;&#039;Bootstrap&#039;&#039;&lt;br /&gt;
*HTML/CSS größtenteils&lt;br /&gt;
&lt;br /&gt;
===Funktionen===&lt;br /&gt;
*Funktionen sollen die [[Projekt:TestTool:Use-Case-Szenarien|Anwendungsfälle]] realisieren können&lt;br /&gt;
*Zusätzliche Funktionen&lt;br /&gt;
**Filterung&lt;br /&gt;
**Sortierung&lt;br /&gt;
**Import&lt;br /&gt;
**Benutzerinformationen ändern bzgl. Gruppe, Rolle, Benutzernamen etc.&lt;br /&gt;
*Für das Erstellen neuer Teilnehmer gilt folgendes:&lt;br /&gt;
**Passwort muss verschlüsselt auf der Datenbank liegen&lt;br /&gt;
**Realisierung erfolgt durch SHA512 (Umwandlung des Passworts durch eine Hash-Funktion)&lt;br /&gt;
**Zur Erhöhung der Sicherheit wird zusätzlich ein SALT verwendet&lt;br /&gt;
&lt;br /&gt;
===Pflichtenheft===&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Kurze Beschreibung des Pflichtenhefts(Nicht das Pflichtenheft selber, höchstens Auszüge davon im Anhang!&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Implementierungsphase==&lt;br /&gt;
===Erstellung der Datenbank===&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE c8testtool;&lt;br /&gt;
 USE c8testtool;&lt;br /&gt;
&lt;br /&gt;
Fragentabelle erstellen mit Primärschlüssel und NOT NULL auf Fragetext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE fragen (fr_id INT AUTO_INCREMENT PRIMARY KEY, fr_fragetext TEXT NOT NULL, fr_th_id INT, fr_sc_id INT, fr_fa_id INT, fr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Antworttabelle erstellen mit Primärschlüssel und UNIQUE-Index auf Antworttext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE antworten (an_id INT AUTO_INCREMENT PRIMARY KEY, an_antworttext TEXT UNIQUE, an_fr_id int, an_richtig boolean, an_delete boolean);&lt;br /&gt;
&lt;br /&gt;
Im Nachhinein Beziehung aufsetzen zwischen Antworten und Fragen. Jede Frage hat mehrere Antworten, jede Antwort gehört zu einer Frage. Einsetzen der Lösch- und Änderungsweitergabe.&lt;br /&gt;
&lt;br /&gt;
 ALTER TABLE antworten ADD FOREIGN KEY(an_fr_id) REFERENCES fragen(fr_id) ON DELETE CASCADE ON UPDATE CASCADE;&lt;br /&gt;
&lt;br /&gt;
Teilnehmertabelle erstellen mit UNIQUE-KEY auf &#039;&#039;tn_username&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE teilnehmer &lt;br /&gt;
 (tn_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 tn_vorname VARCHAR(40) NOT NULL,&lt;br /&gt;
 tn_nachname VARCHAR(40) NOT NULL,&lt;br /&gt;
 tn_ro_id INT NOT NULL,&lt;br /&gt;
 tn_gr_id INT NOT NULL,&lt;br /&gt;
 tn_username VARCHAR(40)UNIQUE NOT NULL, &lt;br /&gt;
 tn_passwort VARCHAR(255) NOT NULL,&lt;br /&gt;
 tn_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Prüfungstabelle erstellen mit Standardwert 90 für &#039;&#039;pr_dauer&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE pruefung&lt;br /&gt;
 (pr_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 pr_titel VARCHAR(40) NOT NULL,&lt;br /&gt;
 pr_datum DATE NOT NULL,&lt;br /&gt;
 pr_dauer INT NOT NULL DEFAULT 90,&lt;br /&gt;
 pr_wiederholbar BOOLEAN,&lt;br /&gt;
 pr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
===Implementierung der Entitäten===&lt;br /&gt;
===Implementierung der Programmierlogik===&lt;br /&gt;
===Testphase===&lt;br /&gt;
Während der Testphase wurden folgenden Fehler entdeckt:&lt;br /&gt;
*SQL-Injections möglich im Sucheingabefeld&lt;br /&gt;
**Lösung: Benutzen der php-Funktion &#039;&#039;bindParam&#039;&#039;&lt;br /&gt;
*Unauthorisierter Zugriff, wenn beim Browser auf den Zurück-Knopf klickt.&lt;br /&gt;
**Lösung: Prüfen, ob der Benutzer Zugriff darauf hat.&lt;br /&gt;
&lt;br /&gt;
==Abschlussphase==&lt;br /&gt;
&lt;br /&gt;
===Abnahme===&lt;br /&gt;
&lt;br /&gt;
===Einführung===&lt;br /&gt;
&lt;br /&gt;
===Dokumentation===&lt;br /&gt;
*Es wird neben der Projektdokumentation eine Benutzerdokumentation verfasst.&lt;br /&gt;
&lt;br /&gt;
==Fazit==&lt;br /&gt;
&lt;br /&gt;
===Soll/Ist-Vergleich===&lt;br /&gt;
&lt;br /&gt;
===Ausblick/Verbesserungen===&lt;br /&gt;
*Einfügen von Bildern&lt;br /&gt;
*Einfügen neuer Fragetypen(Zuordnungsfragen, Bildbeschreibungsfragen)&lt;br /&gt;
*Bessere Programmierung, Modularisierung&lt;br /&gt;
&lt;br /&gt;
==Quellen==&lt;br /&gt;
&lt;br /&gt;
=Anhang=&lt;br /&gt;
*Auszug aus dem Lastenheft&lt;br /&gt;
*Auszug aus dem Pflichtenheft&lt;br /&gt;
*ER-Modell&lt;br /&gt;
[[Datei:er-modell_testtool.png|750px]]&lt;br /&gt;
*Tabellenmodell&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|750px]]&lt;br /&gt;
*Use-Case-Szenarien&lt;br /&gt;
*Use-Case-Diagramm&lt;br /&gt;
*Aktivitätsdiagramm&lt;br /&gt;
*Auszug aus der Funktion &amp;quot;Bewerten einer Prüfung&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Formalien ==&lt;br /&gt;
=== Deckblatt ===&lt;br /&gt;
*Projektbezeichnung: Datenbankbasierte Webanwendung zur Verwaltung und Durchführung von Prüfungen&lt;br /&gt;
*Namen und Vornamen: Rogers, Alexander&lt;br /&gt;
*Prüfungsausschuss&lt;br /&gt;
*Ausbildungsberuf: Fachinformatiker Anwendungsentwicklung&lt;br /&gt;
*Ausbildungsstätte bzw. Praktikumsbetrieb: itw gGmbH, Groninger Straße 25, 13347 Berlin bzw. Dirk Wagner Berlin, Carstennstraße 6, 12205 Berlin&lt;br /&gt;
&lt;br /&gt;
===Eidesstattliche Erklärung===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Abkürzungsverzeichnis===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekt:TestTool]]&lt;/div&gt;</summary>
		<author><name>Alexanderrogers</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=18346</id>
		<title>TestTool/Dokumentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=18346"/>
		<updated>2020-11-09T13:12:36Z</updated>

		<summary type="html">&lt;p&gt;Alexanderrogers: /* Ausblick/Verbesserungen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projektdokumentation zur Webanwendung&lt;br /&gt;
&lt;br /&gt;
=Einleitung=&lt;br /&gt;
In dieser Projektdokumentation wird der Ablauf des Abschlussprojektes erläutert, das der Autor im Rahmen seiner Abschlussprüfung zum Fachinformatiker für Anwendungsentwicklung durchführt.&lt;br /&gt;
&lt;br /&gt;
==Projektbeschreibung==&lt;br /&gt;
Für die Dirk Wagner Berlin soll eine Webanwendung mit HTML und PHP entwickelt werden. Diese Webanwendung soll bestimmte Anforderungen erfüllen, die das Erstellen von Prüfungen erleichtern sollen.&lt;br /&gt;
==Projektziel==&lt;br /&gt;
Das Ziel dieses Projektes ist die erfolgreiche Umsetzung einer Webanwendung, die alle Prüfungen von Prüfern verwaltet. Die Prüfer sollen Fragen und mögliche Antworten eintragen können. Die Prüfungen sollen von Prüflingen durchgeführt werden und anschließend ein Ergebnis der Prüfung präsentiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Phasen des Projekts===&lt;br /&gt;
==Startphase==&lt;br /&gt;
===Ist-Zustand===&lt;br /&gt;
===Wirtschaftlichkeitsanalyse===&lt;br /&gt;
===Anwendungsfälle===&lt;br /&gt;
*Grundgedanken&lt;br /&gt;
**&#039;&#039;Prüfer&#039;&#039; und &#039;&#039;Prüfling&#039;&#039;&lt;br /&gt;
**Prüfer muss Fragen, Antworten, neue Prüflinge, neue Fachgebiete und Themen, neue Prüfungen erstellen können&lt;br /&gt;
**Prüfer kann Ergebnisse von Prüflingen einsichten&lt;br /&gt;
**Prüfling muss Prüfung ablegen können&lt;br /&gt;
**Anwendung muss Ergebnis dem Prüfling präsentieren&lt;br /&gt;
&lt;br /&gt;
===Lastenheft===&lt;br /&gt;
* Beschreibung des Lastenhefts(Nicht das Lastenheft selber! Auszugsweise im Anhang!)&lt;br /&gt;
* Soll nach der MoSCoW-Methode(Must, Should, Could, Won´t) formuliert werden.&lt;br /&gt;
&lt;br /&gt;
==Entwurf==&lt;br /&gt;
&lt;br /&gt;
===Datenbank===&lt;br /&gt;
*Grundgedanken&lt;br /&gt;
**Drei Blöcke: &#039;&#039;Fragen-Antworten&#039;&#039;-Block, &#039;&#039;Prüfung&#039;&#039;-Block und &#039;&#039;Teilnehmer&#039;&#039;-Block&lt;br /&gt;
**Eine Frage hat mehrere Antworten(mind. 1-2 je nach Frageart); Eine Antwort gehört zu einer Frage&lt;br /&gt;
**Eine Prüfung hat mehrere Teilnehmer und ein Teilnehmer belegt mehrere Prüfungen.&lt;br /&gt;
**Eine Frage kommt in mehreren Prüfungen vor, eine Prüfung hat mehrere Fragen.&lt;br /&gt;
**Ein Teilnehmer gehört zu einer Gruppe(Team) und hat eine bestimmte Rolle in der Anwendung(Admin, Editor, Prüfling).&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|1200px]]&lt;br /&gt;
*Damit keine Redundanzen entstehen bei den Fragen, wird auf fg_fragetext ein UNIQUE KEY gesetzt.&lt;br /&gt;
*&#039;&#039;Hilft nicht 100%, da ähnliche Fragen trotzdem in die Datenbank geschrieben werden können.&#039;&#039;&lt;br /&gt;
*&#039;&#039;Macht keinen Unterschied, ob die Frage Groß- oder kleingeschrieben ist. Ist die Frage identisch, wird sie verworfen.&#039;&#039;&lt;br /&gt;
*Ebenfalls UNIQUE KEY gesetzt:&lt;br /&gt;
**fg_fachgebiet&lt;br /&gt;
**pr_titel&lt;br /&gt;
**tn_username&lt;br /&gt;
**ro_rolle&lt;br /&gt;
**gr_gruppe&lt;br /&gt;
**sc_level&lt;br /&gt;
**fa_frageart&lt;br /&gt;
&lt;br /&gt;
===Benutzeroberfläche===&lt;br /&gt;
*Realisiert mithilfe des Frameworks &#039;&#039;Bootstrap&#039;&#039;&lt;br /&gt;
*HTML/CSS größtenteils&lt;br /&gt;
&lt;br /&gt;
===Funktionen===&lt;br /&gt;
*Funktionen sollen die [[Projekt:TestTool:Use-Case-Szenarien|Anwendungsfälle]] realisieren können&lt;br /&gt;
*Zusätzliche Funktionen&lt;br /&gt;
**Filterung&lt;br /&gt;
**Sortierung&lt;br /&gt;
**Import&lt;br /&gt;
**Benutzerinformationen ändern bzgl. Gruppe, Rolle, Benutzernamen etc.&lt;br /&gt;
&lt;br /&gt;
===Pflichtenheft===&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Kurze Beschreibung des Pflichtenhefts(Nicht das Pflichtenheft selber, höchstens Auszüge davon im Anhang!&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Implementierungsphase==&lt;br /&gt;
===Erstellung der Datenbank===&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE c8testtool;&lt;br /&gt;
 USE c8testtool;&lt;br /&gt;
&lt;br /&gt;
Fragentabelle erstellen mit Primärschlüssel und NOT NULL auf Fragetext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE fragen (fr_id INT AUTO_INCREMENT PRIMARY KEY, fr_fragetext TEXT NOT NULL, fr_th_id INT, fr_sc_id INT, fr_fa_id INT, fr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Antworttabelle erstellen mit Primärschlüssel und UNIQUE-Index auf Antworttext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE antworten (an_id INT AUTO_INCREMENT PRIMARY KEY, an_antworttext TEXT UNIQUE, an_fr_id int, an_richtig boolean, an_delete boolean);&lt;br /&gt;
&lt;br /&gt;
Im Nachhinein Beziehung aufsetzen zwischen Antworten und Fragen. Jede Frage hat mehrere Antworten, jede Antwort gehört zu einer Frage. Einsetzen der Lösch- und Änderungsweitergabe.&lt;br /&gt;
&lt;br /&gt;
 ALTER TABLE antworten ADD FOREIGN KEY(an_fr_id) REFERENCES fragen(fr_id) ON DELETE CASCADE ON UPDATE CASCADE;&lt;br /&gt;
&lt;br /&gt;
Teilnehmertabelle erstellen mit UNIQUE-KEY auf &#039;&#039;tn_username&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE teilnehmer &lt;br /&gt;
 (tn_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 tn_vorname VARCHAR(40) NOT NULL,&lt;br /&gt;
 tn_nachname VARCHAR(40) NOT NULL,&lt;br /&gt;
 tn_ro_id INT NOT NULL,&lt;br /&gt;
 tn_gr_id INT NOT NULL,&lt;br /&gt;
 tn_username VARCHAR(40)UNIQUE NOT NULL, &lt;br /&gt;
 tn_passwort VARCHAR(255) NOT NULL,&lt;br /&gt;
 tn_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Prüfungstabelle erstellen mit Standardwert 90 für &#039;&#039;pr_dauer&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE pruefung&lt;br /&gt;
 (pr_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 pr_titel VARCHAR(40) NOT NULL,&lt;br /&gt;
 pr_datum DATE NOT NULL,&lt;br /&gt;
 pr_dauer INT NOT NULL DEFAULT 90,&lt;br /&gt;
 pr_wiederholbar BOOLEAN,&lt;br /&gt;
 pr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
===Implementierung der Entitäten===&lt;br /&gt;
===Implementierung der Programmierlogik===&lt;br /&gt;
===Testphase===&lt;br /&gt;
Während der Testphase wurden folgenden Fehler entdeckt:&lt;br /&gt;
*SQL-Injections möglich im Sucheingabefeld&lt;br /&gt;
**Lösung: Benutzen der php-Funktion &#039;&#039;bindParam&#039;&#039;&lt;br /&gt;
*Unauthorisierter Zugriff, wenn beim Browser auf den Zurück-Knopf klickt.&lt;br /&gt;
**Lösung: Prüfen, ob der Benutzer Zugriff darauf hat.&lt;br /&gt;
&lt;br /&gt;
==Abschlussphase==&lt;br /&gt;
&lt;br /&gt;
===Abnahme===&lt;br /&gt;
&lt;br /&gt;
===Einführung===&lt;br /&gt;
&lt;br /&gt;
===Dokumentation===&lt;br /&gt;
*Es wird neben der Projektdokumentation eine Benutzerdokumentation verfasst.&lt;br /&gt;
&lt;br /&gt;
==Fazit==&lt;br /&gt;
&lt;br /&gt;
===Soll/Ist-Vergleich===&lt;br /&gt;
&lt;br /&gt;
===Ausblick/Verbesserungen===&lt;br /&gt;
*Einfügen von Bildern&lt;br /&gt;
*Einfügen neuer Fragetypen(Zuordnungsfragen, Bildbeschreibungsfragen)&lt;br /&gt;
*Bessere Programmierung, Modularisierung&lt;br /&gt;
&lt;br /&gt;
==Quellen==&lt;br /&gt;
&lt;br /&gt;
=Anhang=&lt;br /&gt;
*Auszug aus dem Lastenheft&lt;br /&gt;
*Auszug aus dem Pflichtenheft&lt;br /&gt;
*ER-Modell&lt;br /&gt;
[[Datei:er-modell_testtool.png|750px]]&lt;br /&gt;
*Tabellenmodell&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|750px]]&lt;br /&gt;
*Use-Case-Szenarien&lt;br /&gt;
*Use-Case-Diagramm&lt;br /&gt;
*Aktivitätsdiagramm&lt;br /&gt;
*Auszug aus der Funktion &amp;quot;Bewerten einer Prüfung&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Formalien ==&lt;br /&gt;
=== Deckblatt ===&lt;br /&gt;
*Projektbezeichnung: Datenbankbasierte Webanwendung zur Verwaltung und Durchführung von Prüfungen&lt;br /&gt;
*Namen und Vornamen: Rogers, Alexander&lt;br /&gt;
*Prüfungsausschuss&lt;br /&gt;
*Ausbildungsberuf: Fachinformatiker Anwendungsentwicklung&lt;br /&gt;
*Ausbildungsstätte bzw. Praktikumsbetrieb: itw gGmbH, Groninger Straße 25, 13347 Berlin bzw. Dirk Wagner Berlin, Carstennstraße 6, 12205 Berlin&lt;br /&gt;
&lt;br /&gt;
===Eidesstattliche Erklärung===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Abkürzungsverzeichnis===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekt:TestTool]]&lt;/div&gt;</summary>
		<author><name>Alexanderrogers</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=18345</id>
		<title>TestTool/Dokumentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=18345"/>
		<updated>2020-11-09T13:12:06Z</updated>

		<summary type="html">&lt;p&gt;Alexanderrogers: /* Ausblick/Verbesserungen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projektdokumentation zur Webanwendung&lt;br /&gt;
&lt;br /&gt;
=Einleitung=&lt;br /&gt;
In dieser Projektdokumentation wird der Ablauf des Abschlussprojektes erläutert, das der Autor im Rahmen seiner Abschlussprüfung zum Fachinformatiker für Anwendungsentwicklung durchführt.&lt;br /&gt;
&lt;br /&gt;
==Projektbeschreibung==&lt;br /&gt;
Für die Dirk Wagner Berlin soll eine Webanwendung mit HTML und PHP entwickelt werden. Diese Webanwendung soll bestimmte Anforderungen erfüllen, die das Erstellen von Prüfungen erleichtern sollen.&lt;br /&gt;
==Projektziel==&lt;br /&gt;
Das Ziel dieses Projektes ist die erfolgreiche Umsetzung einer Webanwendung, die alle Prüfungen von Prüfern verwaltet. Die Prüfer sollen Fragen und mögliche Antworten eintragen können. Die Prüfungen sollen von Prüflingen durchgeführt werden und anschließend ein Ergebnis der Prüfung präsentiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Phasen des Projekts===&lt;br /&gt;
==Startphase==&lt;br /&gt;
===Ist-Zustand===&lt;br /&gt;
===Wirtschaftlichkeitsanalyse===&lt;br /&gt;
===Anwendungsfälle===&lt;br /&gt;
*Grundgedanken&lt;br /&gt;
**&#039;&#039;Prüfer&#039;&#039; und &#039;&#039;Prüfling&#039;&#039;&lt;br /&gt;
**Prüfer muss Fragen, Antworten, neue Prüflinge, neue Fachgebiete und Themen, neue Prüfungen erstellen können&lt;br /&gt;
**Prüfer kann Ergebnisse von Prüflingen einsichten&lt;br /&gt;
**Prüfling muss Prüfung ablegen können&lt;br /&gt;
**Anwendung muss Ergebnis dem Prüfling präsentieren&lt;br /&gt;
&lt;br /&gt;
===Lastenheft===&lt;br /&gt;
* Beschreibung des Lastenhefts(Nicht das Lastenheft selber! Auszugsweise im Anhang!)&lt;br /&gt;
* Soll nach der MoSCoW-Methode(Must, Should, Could, Won´t) formuliert werden.&lt;br /&gt;
&lt;br /&gt;
==Entwurf==&lt;br /&gt;
&lt;br /&gt;
===Datenbank===&lt;br /&gt;
*Grundgedanken&lt;br /&gt;
**Drei Blöcke: &#039;&#039;Fragen-Antworten&#039;&#039;-Block, &#039;&#039;Prüfung&#039;&#039;-Block und &#039;&#039;Teilnehmer&#039;&#039;-Block&lt;br /&gt;
**Eine Frage hat mehrere Antworten(mind. 1-2 je nach Frageart); Eine Antwort gehört zu einer Frage&lt;br /&gt;
**Eine Prüfung hat mehrere Teilnehmer und ein Teilnehmer belegt mehrere Prüfungen.&lt;br /&gt;
**Eine Frage kommt in mehreren Prüfungen vor, eine Prüfung hat mehrere Fragen.&lt;br /&gt;
**Ein Teilnehmer gehört zu einer Gruppe(Team) und hat eine bestimmte Rolle in der Anwendung(Admin, Editor, Prüfling).&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|1200px]]&lt;br /&gt;
*Damit keine Redundanzen entstehen bei den Fragen, wird auf fg_fragetext ein UNIQUE KEY gesetzt.&lt;br /&gt;
*&#039;&#039;Hilft nicht 100%, da ähnliche Fragen trotzdem in die Datenbank geschrieben werden können.&#039;&#039;&lt;br /&gt;
*&#039;&#039;Macht keinen Unterschied, ob die Frage Groß- oder kleingeschrieben ist. Ist die Frage identisch, wird sie verworfen.&#039;&#039;&lt;br /&gt;
*Ebenfalls UNIQUE KEY gesetzt:&lt;br /&gt;
**fg_fachgebiet&lt;br /&gt;
**pr_titel&lt;br /&gt;
**tn_username&lt;br /&gt;
**ro_rolle&lt;br /&gt;
**gr_gruppe&lt;br /&gt;
**sc_level&lt;br /&gt;
**fa_frageart&lt;br /&gt;
&lt;br /&gt;
===Benutzeroberfläche===&lt;br /&gt;
*Realisiert mithilfe des Frameworks &#039;&#039;Bootstrap&#039;&#039;&lt;br /&gt;
*HTML/CSS größtenteils&lt;br /&gt;
&lt;br /&gt;
===Funktionen===&lt;br /&gt;
*Funktionen sollen die [[Projekt:TestTool:Use-Case-Szenarien|Anwendungsfälle]] realisieren können&lt;br /&gt;
*Zusätzliche Funktionen&lt;br /&gt;
**Filterung&lt;br /&gt;
**Sortierung&lt;br /&gt;
**Import&lt;br /&gt;
**Benutzerinformationen ändern bzgl. Gruppe, Rolle, Benutzernamen etc.&lt;br /&gt;
&lt;br /&gt;
===Pflichtenheft===&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Kurze Beschreibung des Pflichtenhefts(Nicht das Pflichtenheft selber, höchstens Auszüge davon im Anhang!&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Implementierungsphase==&lt;br /&gt;
===Erstellung der Datenbank===&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE c8testtool;&lt;br /&gt;
 USE c8testtool;&lt;br /&gt;
&lt;br /&gt;
Fragentabelle erstellen mit Primärschlüssel und NOT NULL auf Fragetext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE fragen (fr_id INT AUTO_INCREMENT PRIMARY KEY, fr_fragetext TEXT NOT NULL, fr_th_id INT, fr_sc_id INT, fr_fa_id INT, fr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Antworttabelle erstellen mit Primärschlüssel und UNIQUE-Index auf Antworttext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE antworten (an_id INT AUTO_INCREMENT PRIMARY KEY, an_antworttext TEXT UNIQUE, an_fr_id int, an_richtig boolean, an_delete boolean);&lt;br /&gt;
&lt;br /&gt;
Im Nachhinein Beziehung aufsetzen zwischen Antworten und Fragen. Jede Frage hat mehrere Antworten, jede Antwort gehört zu einer Frage. Einsetzen der Lösch- und Änderungsweitergabe.&lt;br /&gt;
&lt;br /&gt;
 ALTER TABLE antworten ADD FOREIGN KEY(an_fr_id) REFERENCES fragen(fr_id) ON DELETE CASCADE ON UPDATE CASCADE;&lt;br /&gt;
&lt;br /&gt;
Teilnehmertabelle erstellen mit UNIQUE-KEY auf &#039;&#039;tn_username&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE teilnehmer &lt;br /&gt;
 (tn_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 tn_vorname VARCHAR(40) NOT NULL,&lt;br /&gt;
 tn_nachname VARCHAR(40) NOT NULL,&lt;br /&gt;
 tn_ro_id INT NOT NULL,&lt;br /&gt;
 tn_gr_id INT NOT NULL,&lt;br /&gt;
 tn_username VARCHAR(40)UNIQUE NOT NULL, &lt;br /&gt;
 tn_passwort VARCHAR(255) NOT NULL,&lt;br /&gt;
 tn_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Prüfungstabelle erstellen mit Standardwert 90 für &#039;&#039;pr_dauer&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE pruefung&lt;br /&gt;
 (pr_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 pr_titel VARCHAR(40) NOT NULL,&lt;br /&gt;
 pr_datum DATE NOT NULL,&lt;br /&gt;
 pr_dauer INT NOT NULL DEFAULT 90,&lt;br /&gt;
 pr_wiederholbar BOOLEAN,&lt;br /&gt;
 pr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
===Implementierung der Entitäten===&lt;br /&gt;
===Implementierung der Programmierlogik===&lt;br /&gt;
===Testphase===&lt;br /&gt;
Während der Testphase wurden folgenden Fehler entdeckt:&lt;br /&gt;
*SQL-Injections möglich im Sucheingabefeld&lt;br /&gt;
**Lösung: Benutzen der php-Funktion &#039;&#039;bindParam&#039;&#039;&lt;br /&gt;
*Unauthorisierter Zugriff, wenn beim Browser auf den Zurück-Knopf klickt.&lt;br /&gt;
**Lösung: Prüfen, ob der Benutzer Zugriff darauf hat.&lt;br /&gt;
&lt;br /&gt;
==Abschlussphase==&lt;br /&gt;
&lt;br /&gt;
===Abnahme===&lt;br /&gt;
&lt;br /&gt;
===Einführung===&lt;br /&gt;
&lt;br /&gt;
===Dokumentation===&lt;br /&gt;
*Es wird neben der Projektdokumentation eine Benutzerdokumentation verfasst.&lt;br /&gt;
&lt;br /&gt;
==Fazit==&lt;br /&gt;
&lt;br /&gt;
===Soll/Ist-Vergleich===&lt;br /&gt;
&lt;br /&gt;
===Ausblick/Verbesserungen===&lt;br /&gt;
*Einfügen von Bildern&lt;br /&gt;
*Einfügen neuer Fragetypen(Zuordnungsfragen, Bildbeschreibungsfragen)&lt;br /&gt;
&lt;br /&gt;
==Quellen==&lt;br /&gt;
&lt;br /&gt;
=Anhang=&lt;br /&gt;
*Auszug aus dem Lastenheft&lt;br /&gt;
*Auszug aus dem Pflichtenheft&lt;br /&gt;
*ER-Modell&lt;br /&gt;
[[Datei:er-modell_testtool.png|750px]]&lt;br /&gt;
*Tabellenmodell&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|750px]]&lt;br /&gt;
*Use-Case-Szenarien&lt;br /&gt;
*Use-Case-Diagramm&lt;br /&gt;
*Aktivitätsdiagramm&lt;br /&gt;
*Auszug aus der Funktion &amp;quot;Bewerten einer Prüfung&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Formalien ==&lt;br /&gt;
=== Deckblatt ===&lt;br /&gt;
*Projektbezeichnung: Datenbankbasierte Webanwendung zur Verwaltung und Durchführung von Prüfungen&lt;br /&gt;
*Namen und Vornamen: Rogers, Alexander&lt;br /&gt;
*Prüfungsausschuss&lt;br /&gt;
*Ausbildungsberuf: Fachinformatiker Anwendungsentwicklung&lt;br /&gt;
*Ausbildungsstätte bzw. Praktikumsbetrieb: itw gGmbH, Groninger Straße 25, 13347 Berlin bzw. Dirk Wagner Berlin, Carstennstraße 6, 12205 Berlin&lt;br /&gt;
&lt;br /&gt;
===Eidesstattliche Erklärung===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Abkürzungsverzeichnis===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekt:TestTool]]&lt;/div&gt;</summary>
		<author><name>Alexanderrogers</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=18344</id>
		<title>TestTool/Dokumentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=18344"/>
		<updated>2020-11-09T13:09:53Z</updated>

		<summary type="html">&lt;p&gt;Alexanderrogers: /* Dokumentation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projektdokumentation zur Webanwendung&lt;br /&gt;
&lt;br /&gt;
=Einleitung=&lt;br /&gt;
In dieser Projektdokumentation wird der Ablauf des Abschlussprojektes erläutert, das der Autor im Rahmen seiner Abschlussprüfung zum Fachinformatiker für Anwendungsentwicklung durchführt.&lt;br /&gt;
&lt;br /&gt;
==Projektbeschreibung==&lt;br /&gt;
Für die Dirk Wagner Berlin soll eine Webanwendung mit HTML und PHP entwickelt werden. Diese Webanwendung soll bestimmte Anforderungen erfüllen, die das Erstellen von Prüfungen erleichtern sollen.&lt;br /&gt;
==Projektziel==&lt;br /&gt;
Das Ziel dieses Projektes ist die erfolgreiche Umsetzung einer Webanwendung, die alle Prüfungen von Prüfern verwaltet. Die Prüfer sollen Fragen und mögliche Antworten eintragen können. Die Prüfungen sollen von Prüflingen durchgeführt werden und anschließend ein Ergebnis der Prüfung präsentiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Phasen des Projekts===&lt;br /&gt;
==Startphase==&lt;br /&gt;
===Ist-Zustand===&lt;br /&gt;
===Wirtschaftlichkeitsanalyse===&lt;br /&gt;
===Anwendungsfälle===&lt;br /&gt;
*Grundgedanken&lt;br /&gt;
**&#039;&#039;Prüfer&#039;&#039; und &#039;&#039;Prüfling&#039;&#039;&lt;br /&gt;
**Prüfer muss Fragen, Antworten, neue Prüflinge, neue Fachgebiete und Themen, neue Prüfungen erstellen können&lt;br /&gt;
**Prüfer kann Ergebnisse von Prüflingen einsichten&lt;br /&gt;
**Prüfling muss Prüfung ablegen können&lt;br /&gt;
**Anwendung muss Ergebnis dem Prüfling präsentieren&lt;br /&gt;
&lt;br /&gt;
===Lastenheft===&lt;br /&gt;
* Beschreibung des Lastenhefts(Nicht das Lastenheft selber! Auszugsweise im Anhang!)&lt;br /&gt;
* Soll nach der MoSCoW-Methode(Must, Should, Could, Won´t) formuliert werden.&lt;br /&gt;
&lt;br /&gt;
==Entwurf==&lt;br /&gt;
&lt;br /&gt;
===Datenbank===&lt;br /&gt;
*Grundgedanken&lt;br /&gt;
**Drei Blöcke: &#039;&#039;Fragen-Antworten&#039;&#039;-Block, &#039;&#039;Prüfung&#039;&#039;-Block und &#039;&#039;Teilnehmer&#039;&#039;-Block&lt;br /&gt;
**Eine Frage hat mehrere Antworten(mind. 1-2 je nach Frageart); Eine Antwort gehört zu einer Frage&lt;br /&gt;
**Eine Prüfung hat mehrere Teilnehmer und ein Teilnehmer belegt mehrere Prüfungen.&lt;br /&gt;
**Eine Frage kommt in mehreren Prüfungen vor, eine Prüfung hat mehrere Fragen.&lt;br /&gt;
**Ein Teilnehmer gehört zu einer Gruppe(Team) und hat eine bestimmte Rolle in der Anwendung(Admin, Editor, Prüfling).&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|1200px]]&lt;br /&gt;
*Damit keine Redundanzen entstehen bei den Fragen, wird auf fg_fragetext ein UNIQUE KEY gesetzt.&lt;br /&gt;
*&#039;&#039;Hilft nicht 100%, da ähnliche Fragen trotzdem in die Datenbank geschrieben werden können.&#039;&#039;&lt;br /&gt;
*&#039;&#039;Macht keinen Unterschied, ob die Frage Groß- oder kleingeschrieben ist. Ist die Frage identisch, wird sie verworfen.&#039;&#039;&lt;br /&gt;
*Ebenfalls UNIQUE KEY gesetzt:&lt;br /&gt;
**fg_fachgebiet&lt;br /&gt;
**pr_titel&lt;br /&gt;
**tn_username&lt;br /&gt;
**ro_rolle&lt;br /&gt;
**gr_gruppe&lt;br /&gt;
**sc_level&lt;br /&gt;
**fa_frageart&lt;br /&gt;
&lt;br /&gt;
===Benutzeroberfläche===&lt;br /&gt;
*Realisiert mithilfe des Frameworks &#039;&#039;Bootstrap&#039;&#039;&lt;br /&gt;
*HTML/CSS größtenteils&lt;br /&gt;
&lt;br /&gt;
===Funktionen===&lt;br /&gt;
*Funktionen sollen die [[Projekt:TestTool:Use-Case-Szenarien|Anwendungsfälle]] realisieren können&lt;br /&gt;
*Zusätzliche Funktionen&lt;br /&gt;
**Filterung&lt;br /&gt;
**Sortierung&lt;br /&gt;
**Import&lt;br /&gt;
**Benutzerinformationen ändern bzgl. Gruppe, Rolle, Benutzernamen etc.&lt;br /&gt;
&lt;br /&gt;
===Pflichtenheft===&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Kurze Beschreibung des Pflichtenhefts(Nicht das Pflichtenheft selber, höchstens Auszüge davon im Anhang!&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Implementierungsphase==&lt;br /&gt;
===Erstellung der Datenbank===&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE c8testtool;&lt;br /&gt;
 USE c8testtool;&lt;br /&gt;
&lt;br /&gt;
Fragentabelle erstellen mit Primärschlüssel und NOT NULL auf Fragetext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE fragen (fr_id INT AUTO_INCREMENT PRIMARY KEY, fr_fragetext TEXT NOT NULL, fr_th_id INT, fr_sc_id INT, fr_fa_id INT, fr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Antworttabelle erstellen mit Primärschlüssel und UNIQUE-Index auf Antworttext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE antworten (an_id INT AUTO_INCREMENT PRIMARY KEY, an_antworttext TEXT UNIQUE, an_fr_id int, an_richtig boolean, an_delete boolean);&lt;br /&gt;
&lt;br /&gt;
Im Nachhinein Beziehung aufsetzen zwischen Antworten und Fragen. Jede Frage hat mehrere Antworten, jede Antwort gehört zu einer Frage. Einsetzen der Lösch- und Änderungsweitergabe.&lt;br /&gt;
&lt;br /&gt;
 ALTER TABLE antworten ADD FOREIGN KEY(an_fr_id) REFERENCES fragen(fr_id) ON DELETE CASCADE ON UPDATE CASCADE;&lt;br /&gt;
&lt;br /&gt;
Teilnehmertabelle erstellen mit UNIQUE-KEY auf &#039;&#039;tn_username&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE teilnehmer &lt;br /&gt;
 (tn_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 tn_vorname VARCHAR(40) NOT NULL,&lt;br /&gt;
 tn_nachname VARCHAR(40) NOT NULL,&lt;br /&gt;
 tn_ro_id INT NOT NULL,&lt;br /&gt;
 tn_gr_id INT NOT NULL,&lt;br /&gt;
 tn_username VARCHAR(40)UNIQUE NOT NULL, &lt;br /&gt;
 tn_passwort VARCHAR(255) NOT NULL,&lt;br /&gt;
 tn_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Prüfungstabelle erstellen mit Standardwert 90 für &#039;&#039;pr_dauer&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE pruefung&lt;br /&gt;
 (pr_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 pr_titel VARCHAR(40) NOT NULL,&lt;br /&gt;
 pr_datum DATE NOT NULL,&lt;br /&gt;
 pr_dauer INT NOT NULL DEFAULT 90,&lt;br /&gt;
 pr_wiederholbar BOOLEAN,&lt;br /&gt;
 pr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
===Implementierung der Entitäten===&lt;br /&gt;
===Implementierung der Programmierlogik===&lt;br /&gt;
===Testphase===&lt;br /&gt;
Während der Testphase wurden folgenden Fehler entdeckt:&lt;br /&gt;
*SQL-Injections möglich im Sucheingabefeld&lt;br /&gt;
**Lösung: Benutzen der php-Funktion &#039;&#039;bindParam&#039;&#039;&lt;br /&gt;
*Unauthorisierter Zugriff, wenn beim Browser auf den Zurück-Knopf klickt.&lt;br /&gt;
**Lösung: Prüfen, ob der Benutzer Zugriff darauf hat.&lt;br /&gt;
&lt;br /&gt;
==Abschlussphase==&lt;br /&gt;
&lt;br /&gt;
===Abnahme===&lt;br /&gt;
&lt;br /&gt;
===Einführung===&lt;br /&gt;
&lt;br /&gt;
===Dokumentation===&lt;br /&gt;
*Es wird neben der Projektdokumentation eine Benutzerdokumentation verfasst.&lt;br /&gt;
&lt;br /&gt;
==Fazit==&lt;br /&gt;
&lt;br /&gt;
===Soll/Ist-Vergleich===&lt;br /&gt;
&lt;br /&gt;
===Ausblick/Verbesserungen===&lt;br /&gt;
&lt;br /&gt;
==Quellen==&lt;br /&gt;
&lt;br /&gt;
=Anhang=&lt;br /&gt;
*Auszug aus dem Lastenheft&lt;br /&gt;
*Auszug aus dem Pflichtenheft&lt;br /&gt;
*ER-Modell&lt;br /&gt;
[[Datei:er-modell_testtool.png|750px]]&lt;br /&gt;
*Tabellenmodell&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|750px]]&lt;br /&gt;
*Use-Case-Szenarien&lt;br /&gt;
*Use-Case-Diagramm&lt;br /&gt;
*Aktivitätsdiagramm&lt;br /&gt;
*Auszug aus der Funktion &amp;quot;Bewerten einer Prüfung&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Formalien ==&lt;br /&gt;
=== Deckblatt ===&lt;br /&gt;
*Projektbezeichnung: Datenbankbasierte Webanwendung zur Verwaltung und Durchführung von Prüfungen&lt;br /&gt;
*Namen und Vornamen: Rogers, Alexander&lt;br /&gt;
*Prüfungsausschuss&lt;br /&gt;
*Ausbildungsberuf: Fachinformatiker Anwendungsentwicklung&lt;br /&gt;
*Ausbildungsstätte bzw. Praktikumsbetrieb: itw gGmbH, Groninger Straße 25, 13347 Berlin bzw. Dirk Wagner Berlin, Carstennstraße 6, 12205 Berlin&lt;br /&gt;
&lt;br /&gt;
===Eidesstattliche Erklärung===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Abkürzungsverzeichnis===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekt:TestTool]]&lt;/div&gt;</summary>
		<author><name>Alexanderrogers</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=18343</id>
		<title>TestTool/Dokumentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=18343"/>
		<updated>2020-11-09T13:09:19Z</updated>

		<summary type="html">&lt;p&gt;Alexanderrogers: /* Testphase */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projektdokumentation zur Webanwendung&lt;br /&gt;
&lt;br /&gt;
=Einleitung=&lt;br /&gt;
In dieser Projektdokumentation wird der Ablauf des Abschlussprojektes erläutert, das der Autor im Rahmen seiner Abschlussprüfung zum Fachinformatiker für Anwendungsentwicklung durchführt.&lt;br /&gt;
&lt;br /&gt;
==Projektbeschreibung==&lt;br /&gt;
Für die Dirk Wagner Berlin soll eine Webanwendung mit HTML und PHP entwickelt werden. Diese Webanwendung soll bestimmte Anforderungen erfüllen, die das Erstellen von Prüfungen erleichtern sollen.&lt;br /&gt;
==Projektziel==&lt;br /&gt;
Das Ziel dieses Projektes ist die erfolgreiche Umsetzung einer Webanwendung, die alle Prüfungen von Prüfern verwaltet. Die Prüfer sollen Fragen und mögliche Antworten eintragen können. Die Prüfungen sollen von Prüflingen durchgeführt werden und anschließend ein Ergebnis der Prüfung präsentiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Phasen des Projekts===&lt;br /&gt;
==Startphase==&lt;br /&gt;
===Ist-Zustand===&lt;br /&gt;
===Wirtschaftlichkeitsanalyse===&lt;br /&gt;
===Anwendungsfälle===&lt;br /&gt;
*Grundgedanken&lt;br /&gt;
**&#039;&#039;Prüfer&#039;&#039; und &#039;&#039;Prüfling&#039;&#039;&lt;br /&gt;
**Prüfer muss Fragen, Antworten, neue Prüflinge, neue Fachgebiete und Themen, neue Prüfungen erstellen können&lt;br /&gt;
**Prüfer kann Ergebnisse von Prüflingen einsichten&lt;br /&gt;
**Prüfling muss Prüfung ablegen können&lt;br /&gt;
**Anwendung muss Ergebnis dem Prüfling präsentieren&lt;br /&gt;
&lt;br /&gt;
===Lastenheft===&lt;br /&gt;
* Beschreibung des Lastenhefts(Nicht das Lastenheft selber! Auszugsweise im Anhang!)&lt;br /&gt;
* Soll nach der MoSCoW-Methode(Must, Should, Could, Won´t) formuliert werden.&lt;br /&gt;
&lt;br /&gt;
==Entwurf==&lt;br /&gt;
&lt;br /&gt;
===Datenbank===&lt;br /&gt;
*Grundgedanken&lt;br /&gt;
**Drei Blöcke: &#039;&#039;Fragen-Antworten&#039;&#039;-Block, &#039;&#039;Prüfung&#039;&#039;-Block und &#039;&#039;Teilnehmer&#039;&#039;-Block&lt;br /&gt;
**Eine Frage hat mehrere Antworten(mind. 1-2 je nach Frageart); Eine Antwort gehört zu einer Frage&lt;br /&gt;
**Eine Prüfung hat mehrere Teilnehmer und ein Teilnehmer belegt mehrere Prüfungen.&lt;br /&gt;
**Eine Frage kommt in mehreren Prüfungen vor, eine Prüfung hat mehrere Fragen.&lt;br /&gt;
**Ein Teilnehmer gehört zu einer Gruppe(Team) und hat eine bestimmte Rolle in der Anwendung(Admin, Editor, Prüfling).&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|1200px]]&lt;br /&gt;
*Damit keine Redundanzen entstehen bei den Fragen, wird auf fg_fragetext ein UNIQUE KEY gesetzt.&lt;br /&gt;
*&#039;&#039;Hilft nicht 100%, da ähnliche Fragen trotzdem in die Datenbank geschrieben werden können.&#039;&#039;&lt;br /&gt;
*&#039;&#039;Macht keinen Unterschied, ob die Frage Groß- oder kleingeschrieben ist. Ist die Frage identisch, wird sie verworfen.&#039;&#039;&lt;br /&gt;
*Ebenfalls UNIQUE KEY gesetzt:&lt;br /&gt;
**fg_fachgebiet&lt;br /&gt;
**pr_titel&lt;br /&gt;
**tn_username&lt;br /&gt;
**ro_rolle&lt;br /&gt;
**gr_gruppe&lt;br /&gt;
**sc_level&lt;br /&gt;
**fa_frageart&lt;br /&gt;
&lt;br /&gt;
===Benutzeroberfläche===&lt;br /&gt;
*Realisiert mithilfe des Frameworks &#039;&#039;Bootstrap&#039;&#039;&lt;br /&gt;
*HTML/CSS größtenteils&lt;br /&gt;
&lt;br /&gt;
===Funktionen===&lt;br /&gt;
*Funktionen sollen die [[Projekt:TestTool:Use-Case-Szenarien|Anwendungsfälle]] realisieren können&lt;br /&gt;
*Zusätzliche Funktionen&lt;br /&gt;
**Filterung&lt;br /&gt;
**Sortierung&lt;br /&gt;
**Import&lt;br /&gt;
**Benutzerinformationen ändern bzgl. Gruppe, Rolle, Benutzernamen etc.&lt;br /&gt;
&lt;br /&gt;
===Pflichtenheft===&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Kurze Beschreibung des Pflichtenhefts(Nicht das Pflichtenheft selber, höchstens Auszüge davon im Anhang!&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Implementierungsphase==&lt;br /&gt;
===Erstellung der Datenbank===&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE c8testtool;&lt;br /&gt;
 USE c8testtool;&lt;br /&gt;
&lt;br /&gt;
Fragentabelle erstellen mit Primärschlüssel und NOT NULL auf Fragetext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE fragen (fr_id INT AUTO_INCREMENT PRIMARY KEY, fr_fragetext TEXT NOT NULL, fr_th_id INT, fr_sc_id INT, fr_fa_id INT, fr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Antworttabelle erstellen mit Primärschlüssel und UNIQUE-Index auf Antworttext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE antworten (an_id INT AUTO_INCREMENT PRIMARY KEY, an_antworttext TEXT UNIQUE, an_fr_id int, an_richtig boolean, an_delete boolean);&lt;br /&gt;
&lt;br /&gt;
Im Nachhinein Beziehung aufsetzen zwischen Antworten und Fragen. Jede Frage hat mehrere Antworten, jede Antwort gehört zu einer Frage. Einsetzen der Lösch- und Änderungsweitergabe.&lt;br /&gt;
&lt;br /&gt;
 ALTER TABLE antworten ADD FOREIGN KEY(an_fr_id) REFERENCES fragen(fr_id) ON DELETE CASCADE ON UPDATE CASCADE;&lt;br /&gt;
&lt;br /&gt;
Teilnehmertabelle erstellen mit UNIQUE-KEY auf &#039;&#039;tn_username&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE teilnehmer &lt;br /&gt;
 (tn_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 tn_vorname VARCHAR(40) NOT NULL,&lt;br /&gt;
 tn_nachname VARCHAR(40) NOT NULL,&lt;br /&gt;
 tn_ro_id INT NOT NULL,&lt;br /&gt;
 tn_gr_id INT NOT NULL,&lt;br /&gt;
 tn_username VARCHAR(40)UNIQUE NOT NULL, &lt;br /&gt;
 tn_passwort VARCHAR(255) NOT NULL,&lt;br /&gt;
 tn_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Prüfungstabelle erstellen mit Standardwert 90 für &#039;&#039;pr_dauer&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE pruefung&lt;br /&gt;
 (pr_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 pr_titel VARCHAR(40) NOT NULL,&lt;br /&gt;
 pr_datum DATE NOT NULL,&lt;br /&gt;
 pr_dauer INT NOT NULL DEFAULT 90,&lt;br /&gt;
 pr_wiederholbar BOOLEAN,&lt;br /&gt;
 pr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
===Implementierung der Entitäten===&lt;br /&gt;
===Implementierung der Programmierlogik===&lt;br /&gt;
===Testphase===&lt;br /&gt;
Während der Testphase wurden folgenden Fehler entdeckt:&lt;br /&gt;
*SQL-Injections möglich im Sucheingabefeld&lt;br /&gt;
**Lösung: Benutzen der php-Funktion &#039;&#039;bindParam&#039;&#039;&lt;br /&gt;
*Unauthorisierter Zugriff, wenn beim Browser auf den Zurück-Knopf klickt.&lt;br /&gt;
**Lösung: Prüfen, ob der Benutzer Zugriff darauf hat.&lt;br /&gt;
&lt;br /&gt;
==Abschlussphase==&lt;br /&gt;
&lt;br /&gt;
===Abnahme===&lt;br /&gt;
&lt;br /&gt;
===Einführung===&lt;br /&gt;
&lt;br /&gt;
===Dokumentation===&lt;br /&gt;
&lt;br /&gt;
==Fazit==&lt;br /&gt;
&lt;br /&gt;
===Soll/Ist-Vergleich===&lt;br /&gt;
&lt;br /&gt;
===Ausblick/Verbesserungen===&lt;br /&gt;
&lt;br /&gt;
==Quellen==&lt;br /&gt;
&lt;br /&gt;
=Anhang=&lt;br /&gt;
*Auszug aus dem Lastenheft&lt;br /&gt;
*Auszug aus dem Pflichtenheft&lt;br /&gt;
*ER-Modell&lt;br /&gt;
[[Datei:er-modell_testtool.png|750px]]&lt;br /&gt;
*Tabellenmodell&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|750px]]&lt;br /&gt;
*Use-Case-Szenarien&lt;br /&gt;
*Use-Case-Diagramm&lt;br /&gt;
*Aktivitätsdiagramm&lt;br /&gt;
*Auszug aus der Funktion &amp;quot;Bewerten einer Prüfung&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Formalien ==&lt;br /&gt;
=== Deckblatt ===&lt;br /&gt;
*Projektbezeichnung: Datenbankbasierte Webanwendung zur Verwaltung und Durchführung von Prüfungen&lt;br /&gt;
*Namen und Vornamen: Rogers, Alexander&lt;br /&gt;
*Prüfungsausschuss&lt;br /&gt;
*Ausbildungsberuf: Fachinformatiker Anwendungsentwicklung&lt;br /&gt;
*Ausbildungsstätte bzw. Praktikumsbetrieb: itw gGmbH, Groninger Straße 25, 13347 Berlin bzw. Dirk Wagner Berlin, Carstennstraße 6, 12205 Berlin&lt;br /&gt;
&lt;br /&gt;
===Eidesstattliche Erklärung===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Abkürzungsverzeichnis===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekt:TestTool]]&lt;/div&gt;</summary>
		<author><name>Alexanderrogers</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=18341</id>
		<title>TestTool/Dokumentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=18341"/>
		<updated>2020-11-09T13:05:49Z</updated>

		<summary type="html">&lt;p&gt;Alexanderrogers: /* Benutzeroberfläche */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projektdokumentation zur Webanwendung&lt;br /&gt;
&lt;br /&gt;
=Einleitung=&lt;br /&gt;
In dieser Projektdokumentation wird der Ablauf des Abschlussprojektes erläutert, das der Autor im Rahmen seiner Abschlussprüfung zum Fachinformatiker für Anwendungsentwicklung durchführt.&lt;br /&gt;
&lt;br /&gt;
==Projektbeschreibung==&lt;br /&gt;
Für die Dirk Wagner Berlin soll eine Webanwendung mit HTML und PHP entwickelt werden. Diese Webanwendung soll bestimmte Anforderungen erfüllen, die das Erstellen von Prüfungen erleichtern sollen.&lt;br /&gt;
==Projektziel==&lt;br /&gt;
Das Ziel dieses Projektes ist die erfolgreiche Umsetzung einer Webanwendung, die alle Prüfungen von Prüfern verwaltet. Die Prüfer sollen Fragen und mögliche Antworten eintragen können. Die Prüfungen sollen von Prüflingen durchgeführt werden und anschließend ein Ergebnis der Prüfung präsentiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Phasen des Projekts===&lt;br /&gt;
==Startphase==&lt;br /&gt;
===Ist-Zustand===&lt;br /&gt;
===Wirtschaftlichkeitsanalyse===&lt;br /&gt;
===Anwendungsfälle===&lt;br /&gt;
*Grundgedanken&lt;br /&gt;
**&#039;&#039;Prüfer&#039;&#039; und &#039;&#039;Prüfling&#039;&#039;&lt;br /&gt;
**Prüfer muss Fragen, Antworten, neue Prüflinge, neue Fachgebiete und Themen, neue Prüfungen erstellen können&lt;br /&gt;
**Prüfer kann Ergebnisse von Prüflingen einsichten&lt;br /&gt;
**Prüfling muss Prüfung ablegen können&lt;br /&gt;
**Anwendung muss Ergebnis dem Prüfling präsentieren&lt;br /&gt;
&lt;br /&gt;
===Lastenheft===&lt;br /&gt;
* Beschreibung des Lastenhefts(Nicht das Lastenheft selber! Auszugsweise im Anhang!)&lt;br /&gt;
* Soll nach der MoSCoW-Methode(Must, Should, Could, Won´t) formuliert werden.&lt;br /&gt;
&lt;br /&gt;
==Entwurf==&lt;br /&gt;
&lt;br /&gt;
===Datenbank===&lt;br /&gt;
*Grundgedanken&lt;br /&gt;
**Drei Blöcke: &#039;&#039;Fragen-Antworten&#039;&#039;-Block, &#039;&#039;Prüfung&#039;&#039;-Block und &#039;&#039;Teilnehmer&#039;&#039;-Block&lt;br /&gt;
**Eine Frage hat mehrere Antworten(mind. 1-2 je nach Frageart); Eine Antwort gehört zu einer Frage&lt;br /&gt;
**Eine Prüfung hat mehrere Teilnehmer und ein Teilnehmer belegt mehrere Prüfungen.&lt;br /&gt;
**Eine Frage kommt in mehreren Prüfungen vor, eine Prüfung hat mehrere Fragen.&lt;br /&gt;
**Ein Teilnehmer gehört zu einer Gruppe(Team) und hat eine bestimmte Rolle in der Anwendung(Admin, Editor, Prüfling).&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|1200px]]&lt;br /&gt;
*Damit keine Redundanzen entstehen bei den Fragen, wird auf fg_fragetext ein UNIQUE KEY gesetzt.&lt;br /&gt;
*&#039;&#039;Hilft nicht 100%, da ähnliche Fragen trotzdem in die Datenbank geschrieben werden können.&#039;&#039;&lt;br /&gt;
*&#039;&#039;Macht keinen Unterschied, ob die Frage Groß- oder kleingeschrieben ist. Ist die Frage identisch, wird sie verworfen.&#039;&#039;&lt;br /&gt;
*Ebenfalls UNIQUE KEY gesetzt:&lt;br /&gt;
**fg_fachgebiet&lt;br /&gt;
**pr_titel&lt;br /&gt;
**tn_username&lt;br /&gt;
**ro_rolle&lt;br /&gt;
**gr_gruppe&lt;br /&gt;
**sc_level&lt;br /&gt;
**fa_frageart&lt;br /&gt;
&lt;br /&gt;
===Benutzeroberfläche===&lt;br /&gt;
*Realisiert mithilfe des Frameworks &#039;&#039;Bootstrap&#039;&#039;&lt;br /&gt;
*HTML/CSS größtenteils&lt;br /&gt;
&lt;br /&gt;
===Funktionen===&lt;br /&gt;
*Funktionen sollen die [[Projekt:TestTool:Use-Case-Szenarien|Anwendungsfälle]] realisieren können&lt;br /&gt;
*Zusätzliche Funktionen&lt;br /&gt;
**Filterung&lt;br /&gt;
**Sortierung&lt;br /&gt;
**Import&lt;br /&gt;
**Benutzerinformationen ändern bzgl. Gruppe, Rolle, Benutzernamen etc.&lt;br /&gt;
&lt;br /&gt;
===Pflichtenheft===&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Kurze Beschreibung des Pflichtenhefts(Nicht das Pflichtenheft selber, höchstens Auszüge davon im Anhang!&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Implementierungsphase==&lt;br /&gt;
===Erstellung der Datenbank===&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE c8testtool;&lt;br /&gt;
 USE c8testtool;&lt;br /&gt;
&lt;br /&gt;
Fragentabelle erstellen mit Primärschlüssel und NOT NULL auf Fragetext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE fragen (fr_id INT AUTO_INCREMENT PRIMARY KEY, fr_fragetext TEXT NOT NULL, fr_th_id INT, fr_sc_id INT, fr_fa_id INT, fr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Antworttabelle erstellen mit Primärschlüssel und UNIQUE-Index auf Antworttext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE antworten (an_id INT AUTO_INCREMENT PRIMARY KEY, an_antworttext TEXT UNIQUE, an_fr_id int, an_richtig boolean, an_delete boolean);&lt;br /&gt;
&lt;br /&gt;
Im Nachhinein Beziehung aufsetzen zwischen Antworten und Fragen. Jede Frage hat mehrere Antworten, jede Antwort gehört zu einer Frage. Einsetzen der Lösch- und Änderungsweitergabe.&lt;br /&gt;
&lt;br /&gt;
 ALTER TABLE antworten ADD FOREIGN KEY(an_fr_id) REFERENCES fragen(fr_id) ON DELETE CASCADE ON UPDATE CASCADE;&lt;br /&gt;
&lt;br /&gt;
Teilnehmertabelle erstellen mit UNIQUE-KEY auf &#039;&#039;tn_username&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE teilnehmer &lt;br /&gt;
 (tn_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 tn_vorname VARCHAR(40) NOT NULL,&lt;br /&gt;
 tn_nachname VARCHAR(40) NOT NULL,&lt;br /&gt;
 tn_ro_id INT NOT NULL,&lt;br /&gt;
 tn_gr_id INT NOT NULL,&lt;br /&gt;
 tn_username VARCHAR(40)UNIQUE NOT NULL, &lt;br /&gt;
 tn_passwort VARCHAR(255) NOT NULL,&lt;br /&gt;
 tn_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Prüfungstabelle erstellen mit Standardwert 90 für &#039;&#039;pr_dauer&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE pruefung&lt;br /&gt;
 (pr_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 pr_titel VARCHAR(40) NOT NULL,&lt;br /&gt;
 pr_datum DATE NOT NULL,&lt;br /&gt;
 pr_dauer INT NOT NULL DEFAULT 90,&lt;br /&gt;
 pr_wiederholbar BOOLEAN,&lt;br /&gt;
 pr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
===Implementierung der Entitäten===&lt;br /&gt;
===Implementierung der Programmierlogik===&lt;br /&gt;
===Testphase===&lt;br /&gt;
==Abschlussphase==&lt;br /&gt;
&lt;br /&gt;
===Abnahme===&lt;br /&gt;
&lt;br /&gt;
===Einführung===&lt;br /&gt;
&lt;br /&gt;
===Dokumentation===&lt;br /&gt;
&lt;br /&gt;
==Fazit==&lt;br /&gt;
&lt;br /&gt;
===Soll/Ist-Vergleich===&lt;br /&gt;
&lt;br /&gt;
===Ausblick/Verbesserungen===&lt;br /&gt;
&lt;br /&gt;
==Quellen==&lt;br /&gt;
&lt;br /&gt;
=Anhang=&lt;br /&gt;
*Auszug aus dem Lastenheft&lt;br /&gt;
*Auszug aus dem Pflichtenheft&lt;br /&gt;
*ER-Modell&lt;br /&gt;
[[Datei:er-modell_testtool.png|750px]]&lt;br /&gt;
*Tabellenmodell&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|750px]]&lt;br /&gt;
*Use-Case-Szenarien&lt;br /&gt;
*Use-Case-Diagramm&lt;br /&gt;
*Aktivitätsdiagramm&lt;br /&gt;
*Auszug aus der Funktion &amp;quot;Bewerten einer Prüfung&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Formalien ==&lt;br /&gt;
=== Deckblatt ===&lt;br /&gt;
*Projektbezeichnung: Datenbankbasierte Webanwendung zur Verwaltung und Durchführung von Prüfungen&lt;br /&gt;
*Namen und Vornamen: Rogers, Alexander&lt;br /&gt;
*Prüfungsausschuss&lt;br /&gt;
*Ausbildungsberuf: Fachinformatiker Anwendungsentwicklung&lt;br /&gt;
*Ausbildungsstätte bzw. Praktikumsbetrieb: itw gGmbH, Groninger Straße 25, 13347 Berlin bzw. Dirk Wagner Berlin, Carstennstraße 6, 12205 Berlin&lt;br /&gt;
&lt;br /&gt;
===Eidesstattliche Erklärung===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Abkürzungsverzeichnis===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekt:TestTool]]&lt;/div&gt;</summary>
		<author><name>Alexanderrogers</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=18339</id>
		<title>TestTool/Dokumentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=18339"/>
		<updated>2020-11-09T13:04:01Z</updated>

		<summary type="html">&lt;p&gt;Alexanderrogers: /* Funktionen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projektdokumentation zur Webanwendung&lt;br /&gt;
&lt;br /&gt;
=Einleitung=&lt;br /&gt;
In dieser Projektdokumentation wird der Ablauf des Abschlussprojektes erläutert, das der Autor im Rahmen seiner Abschlussprüfung zum Fachinformatiker für Anwendungsentwicklung durchführt.&lt;br /&gt;
&lt;br /&gt;
==Projektbeschreibung==&lt;br /&gt;
Für die Dirk Wagner Berlin soll eine Webanwendung mit HTML und PHP entwickelt werden. Diese Webanwendung soll bestimmte Anforderungen erfüllen, die das Erstellen von Prüfungen erleichtern sollen.&lt;br /&gt;
==Projektziel==&lt;br /&gt;
Das Ziel dieses Projektes ist die erfolgreiche Umsetzung einer Webanwendung, die alle Prüfungen von Prüfern verwaltet. Die Prüfer sollen Fragen und mögliche Antworten eintragen können. Die Prüfungen sollen von Prüflingen durchgeführt werden und anschließend ein Ergebnis der Prüfung präsentiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Phasen des Projekts===&lt;br /&gt;
==Startphase==&lt;br /&gt;
===Ist-Zustand===&lt;br /&gt;
===Wirtschaftlichkeitsanalyse===&lt;br /&gt;
===Anwendungsfälle===&lt;br /&gt;
*Grundgedanken&lt;br /&gt;
**&#039;&#039;Prüfer&#039;&#039; und &#039;&#039;Prüfling&#039;&#039;&lt;br /&gt;
**Prüfer muss Fragen, Antworten, neue Prüflinge, neue Fachgebiete und Themen, neue Prüfungen erstellen können&lt;br /&gt;
**Prüfer kann Ergebnisse von Prüflingen einsichten&lt;br /&gt;
**Prüfling muss Prüfung ablegen können&lt;br /&gt;
**Anwendung muss Ergebnis dem Prüfling präsentieren&lt;br /&gt;
&lt;br /&gt;
===Lastenheft===&lt;br /&gt;
* Beschreibung des Lastenhefts(Nicht das Lastenheft selber! Auszugsweise im Anhang!)&lt;br /&gt;
* Soll nach der MoSCoW-Methode(Must, Should, Could, Won´t) formuliert werden.&lt;br /&gt;
&lt;br /&gt;
==Entwurf==&lt;br /&gt;
&lt;br /&gt;
===Datenbank===&lt;br /&gt;
*Grundgedanken&lt;br /&gt;
**Drei Blöcke: &#039;&#039;Fragen-Antworten&#039;&#039;-Block, &#039;&#039;Prüfung&#039;&#039;-Block und &#039;&#039;Teilnehmer&#039;&#039;-Block&lt;br /&gt;
**Eine Frage hat mehrere Antworten(mind. 1-2 je nach Frageart); Eine Antwort gehört zu einer Frage&lt;br /&gt;
**Eine Prüfung hat mehrere Teilnehmer und ein Teilnehmer belegt mehrere Prüfungen.&lt;br /&gt;
**Eine Frage kommt in mehreren Prüfungen vor, eine Prüfung hat mehrere Fragen.&lt;br /&gt;
**Ein Teilnehmer gehört zu einer Gruppe(Team) und hat eine bestimmte Rolle in der Anwendung(Admin, Editor, Prüfling).&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|1200px]]&lt;br /&gt;
*Damit keine Redundanzen entstehen bei den Fragen, wird auf fg_fragetext ein UNIQUE KEY gesetzt.&lt;br /&gt;
*&#039;&#039;Hilft nicht 100%, da ähnliche Fragen trotzdem in die Datenbank geschrieben werden können.&#039;&#039;&lt;br /&gt;
*&#039;&#039;Macht keinen Unterschied, ob die Frage Groß- oder kleingeschrieben ist. Ist die Frage identisch, wird sie verworfen.&#039;&#039;&lt;br /&gt;
*Ebenfalls UNIQUE KEY gesetzt:&lt;br /&gt;
**fg_fachgebiet&lt;br /&gt;
**pr_titel&lt;br /&gt;
**tn_username&lt;br /&gt;
**ro_rolle&lt;br /&gt;
**gr_gruppe&lt;br /&gt;
**sc_level&lt;br /&gt;
**fa_frageart&lt;br /&gt;
&lt;br /&gt;
===Benutzeroberfläche===&lt;br /&gt;
&lt;br /&gt;
===Funktionen===&lt;br /&gt;
*Funktionen sollen die [[Projekt:TestTool:Use-Case-Szenarien|Anwendungsfälle]] realisieren können&lt;br /&gt;
*Zusätzliche Funktionen&lt;br /&gt;
**Filterung&lt;br /&gt;
**Sortierung&lt;br /&gt;
**Import&lt;br /&gt;
**Benutzerinformationen ändern bzgl. Gruppe, Rolle, Benutzernamen etc.&lt;br /&gt;
&lt;br /&gt;
===Pflichtenheft===&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Kurze Beschreibung des Pflichtenhefts(Nicht das Pflichtenheft selber, höchstens Auszüge davon im Anhang!&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Implementierungsphase==&lt;br /&gt;
===Erstellung der Datenbank===&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE c8testtool;&lt;br /&gt;
 USE c8testtool;&lt;br /&gt;
&lt;br /&gt;
Fragentabelle erstellen mit Primärschlüssel und NOT NULL auf Fragetext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE fragen (fr_id INT AUTO_INCREMENT PRIMARY KEY, fr_fragetext TEXT NOT NULL, fr_th_id INT, fr_sc_id INT, fr_fa_id INT, fr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Antworttabelle erstellen mit Primärschlüssel und UNIQUE-Index auf Antworttext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE antworten (an_id INT AUTO_INCREMENT PRIMARY KEY, an_antworttext TEXT UNIQUE, an_fr_id int, an_richtig boolean, an_delete boolean);&lt;br /&gt;
&lt;br /&gt;
Im Nachhinein Beziehung aufsetzen zwischen Antworten und Fragen. Jede Frage hat mehrere Antworten, jede Antwort gehört zu einer Frage. Einsetzen der Lösch- und Änderungsweitergabe.&lt;br /&gt;
&lt;br /&gt;
 ALTER TABLE antworten ADD FOREIGN KEY(an_fr_id) REFERENCES fragen(fr_id) ON DELETE CASCADE ON UPDATE CASCADE;&lt;br /&gt;
&lt;br /&gt;
Teilnehmertabelle erstellen mit UNIQUE-KEY auf &#039;&#039;tn_username&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE teilnehmer &lt;br /&gt;
 (tn_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 tn_vorname VARCHAR(40) NOT NULL,&lt;br /&gt;
 tn_nachname VARCHAR(40) NOT NULL,&lt;br /&gt;
 tn_ro_id INT NOT NULL,&lt;br /&gt;
 tn_gr_id INT NOT NULL,&lt;br /&gt;
 tn_username VARCHAR(40)UNIQUE NOT NULL, &lt;br /&gt;
 tn_passwort VARCHAR(255) NOT NULL,&lt;br /&gt;
 tn_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Prüfungstabelle erstellen mit Standardwert 90 für &#039;&#039;pr_dauer&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE pruefung&lt;br /&gt;
 (pr_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 pr_titel VARCHAR(40) NOT NULL,&lt;br /&gt;
 pr_datum DATE NOT NULL,&lt;br /&gt;
 pr_dauer INT NOT NULL DEFAULT 90,&lt;br /&gt;
 pr_wiederholbar BOOLEAN,&lt;br /&gt;
 pr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
===Implementierung der Entitäten===&lt;br /&gt;
===Implementierung der Programmierlogik===&lt;br /&gt;
===Testphase===&lt;br /&gt;
==Abschlussphase==&lt;br /&gt;
&lt;br /&gt;
===Abnahme===&lt;br /&gt;
&lt;br /&gt;
===Einführung===&lt;br /&gt;
&lt;br /&gt;
===Dokumentation===&lt;br /&gt;
&lt;br /&gt;
==Fazit==&lt;br /&gt;
&lt;br /&gt;
===Soll/Ist-Vergleich===&lt;br /&gt;
&lt;br /&gt;
===Ausblick/Verbesserungen===&lt;br /&gt;
&lt;br /&gt;
==Quellen==&lt;br /&gt;
&lt;br /&gt;
=Anhang=&lt;br /&gt;
*Auszug aus dem Lastenheft&lt;br /&gt;
*Auszug aus dem Pflichtenheft&lt;br /&gt;
*ER-Modell&lt;br /&gt;
[[Datei:er-modell_testtool.png|750px]]&lt;br /&gt;
*Tabellenmodell&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|750px]]&lt;br /&gt;
*Use-Case-Szenarien&lt;br /&gt;
*Use-Case-Diagramm&lt;br /&gt;
*Aktivitätsdiagramm&lt;br /&gt;
*Auszug aus der Funktion &amp;quot;Bewerten einer Prüfung&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Formalien ==&lt;br /&gt;
=== Deckblatt ===&lt;br /&gt;
*Projektbezeichnung: Datenbankbasierte Webanwendung zur Verwaltung und Durchführung von Prüfungen&lt;br /&gt;
*Namen und Vornamen: Rogers, Alexander&lt;br /&gt;
*Prüfungsausschuss&lt;br /&gt;
*Ausbildungsberuf: Fachinformatiker Anwendungsentwicklung&lt;br /&gt;
*Ausbildungsstätte bzw. Praktikumsbetrieb: itw gGmbH, Groninger Straße 25, 13347 Berlin bzw. Dirk Wagner Berlin, Carstennstraße 6, 12205 Berlin&lt;br /&gt;
&lt;br /&gt;
===Eidesstattliche Erklärung===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Abkürzungsverzeichnis===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekt:TestTool]]&lt;/div&gt;</summary>
		<author><name>Alexanderrogers</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=18337</id>
		<title>TestTool/Dokumentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=18337"/>
		<updated>2020-11-09T13:03:06Z</updated>

		<summary type="html">&lt;p&gt;Alexanderrogers: /* Funktionen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projektdokumentation zur Webanwendung&lt;br /&gt;
&lt;br /&gt;
=Einleitung=&lt;br /&gt;
In dieser Projektdokumentation wird der Ablauf des Abschlussprojektes erläutert, das der Autor im Rahmen seiner Abschlussprüfung zum Fachinformatiker für Anwendungsentwicklung durchführt.&lt;br /&gt;
&lt;br /&gt;
==Projektbeschreibung==&lt;br /&gt;
Für die Dirk Wagner Berlin soll eine Webanwendung mit HTML und PHP entwickelt werden. Diese Webanwendung soll bestimmte Anforderungen erfüllen, die das Erstellen von Prüfungen erleichtern sollen.&lt;br /&gt;
==Projektziel==&lt;br /&gt;
Das Ziel dieses Projektes ist die erfolgreiche Umsetzung einer Webanwendung, die alle Prüfungen von Prüfern verwaltet. Die Prüfer sollen Fragen und mögliche Antworten eintragen können. Die Prüfungen sollen von Prüflingen durchgeführt werden und anschließend ein Ergebnis der Prüfung präsentiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Phasen des Projekts===&lt;br /&gt;
==Startphase==&lt;br /&gt;
===Ist-Zustand===&lt;br /&gt;
===Wirtschaftlichkeitsanalyse===&lt;br /&gt;
===Anwendungsfälle===&lt;br /&gt;
*Grundgedanken&lt;br /&gt;
**&#039;&#039;Prüfer&#039;&#039; und &#039;&#039;Prüfling&#039;&#039;&lt;br /&gt;
**Prüfer muss Fragen, Antworten, neue Prüflinge, neue Fachgebiete und Themen, neue Prüfungen erstellen können&lt;br /&gt;
**Prüfer kann Ergebnisse von Prüflingen einsichten&lt;br /&gt;
**Prüfling muss Prüfung ablegen können&lt;br /&gt;
**Anwendung muss Ergebnis dem Prüfling präsentieren&lt;br /&gt;
&lt;br /&gt;
===Lastenheft===&lt;br /&gt;
* Beschreibung des Lastenhefts(Nicht das Lastenheft selber! Auszugsweise im Anhang!)&lt;br /&gt;
* Soll nach der MoSCoW-Methode(Must, Should, Could, Won´t) formuliert werden.&lt;br /&gt;
&lt;br /&gt;
==Entwurf==&lt;br /&gt;
&lt;br /&gt;
===Datenbank===&lt;br /&gt;
*Grundgedanken&lt;br /&gt;
**Drei Blöcke: &#039;&#039;Fragen-Antworten&#039;&#039;-Block, &#039;&#039;Prüfung&#039;&#039;-Block und &#039;&#039;Teilnehmer&#039;&#039;-Block&lt;br /&gt;
**Eine Frage hat mehrere Antworten(mind. 1-2 je nach Frageart); Eine Antwort gehört zu einer Frage&lt;br /&gt;
**Eine Prüfung hat mehrere Teilnehmer und ein Teilnehmer belegt mehrere Prüfungen.&lt;br /&gt;
**Eine Frage kommt in mehreren Prüfungen vor, eine Prüfung hat mehrere Fragen.&lt;br /&gt;
**Ein Teilnehmer gehört zu einer Gruppe(Team) und hat eine bestimmte Rolle in der Anwendung(Admin, Editor, Prüfling).&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|1200px]]&lt;br /&gt;
*Damit keine Redundanzen entstehen bei den Fragen, wird auf fg_fragetext ein UNIQUE KEY gesetzt.&lt;br /&gt;
*&#039;&#039;Hilft nicht 100%, da ähnliche Fragen trotzdem in die Datenbank geschrieben werden können.&#039;&#039;&lt;br /&gt;
*&#039;&#039;Macht keinen Unterschied, ob die Frage Groß- oder kleingeschrieben ist. Ist die Frage identisch, wird sie verworfen.&#039;&#039;&lt;br /&gt;
*Ebenfalls UNIQUE KEY gesetzt:&lt;br /&gt;
**fg_fachgebiet&lt;br /&gt;
**pr_titel&lt;br /&gt;
**tn_username&lt;br /&gt;
**ro_rolle&lt;br /&gt;
**gr_gruppe&lt;br /&gt;
**sc_level&lt;br /&gt;
**fa_frageart&lt;br /&gt;
&lt;br /&gt;
===Benutzeroberfläche===&lt;br /&gt;
&lt;br /&gt;
===Funktionen===&lt;br /&gt;
*Funktionen sollen die Anwendungsfälle realisieren können&lt;br /&gt;
*Zusätzliche Funktionen&lt;br /&gt;
**Filterung&lt;br /&gt;
**Sortierung&lt;br /&gt;
**Import&lt;br /&gt;
**Benutzerinformationen ändern bzgl. Gruppe, Rolle, Benutzernamen etc.&lt;br /&gt;
&lt;br /&gt;
===Pflichtenheft===&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Kurze Beschreibung des Pflichtenhefts(Nicht das Pflichtenheft selber, höchstens Auszüge davon im Anhang!&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Implementierungsphase==&lt;br /&gt;
===Erstellung der Datenbank===&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE c8testtool;&lt;br /&gt;
 USE c8testtool;&lt;br /&gt;
&lt;br /&gt;
Fragentabelle erstellen mit Primärschlüssel und NOT NULL auf Fragetext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE fragen (fr_id INT AUTO_INCREMENT PRIMARY KEY, fr_fragetext TEXT NOT NULL, fr_th_id INT, fr_sc_id INT, fr_fa_id INT, fr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Antworttabelle erstellen mit Primärschlüssel und UNIQUE-Index auf Antworttext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE antworten (an_id INT AUTO_INCREMENT PRIMARY KEY, an_antworttext TEXT UNIQUE, an_fr_id int, an_richtig boolean, an_delete boolean);&lt;br /&gt;
&lt;br /&gt;
Im Nachhinein Beziehung aufsetzen zwischen Antworten und Fragen. Jede Frage hat mehrere Antworten, jede Antwort gehört zu einer Frage. Einsetzen der Lösch- und Änderungsweitergabe.&lt;br /&gt;
&lt;br /&gt;
 ALTER TABLE antworten ADD FOREIGN KEY(an_fr_id) REFERENCES fragen(fr_id) ON DELETE CASCADE ON UPDATE CASCADE;&lt;br /&gt;
&lt;br /&gt;
Teilnehmertabelle erstellen mit UNIQUE-KEY auf &#039;&#039;tn_username&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE teilnehmer &lt;br /&gt;
 (tn_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 tn_vorname VARCHAR(40) NOT NULL,&lt;br /&gt;
 tn_nachname VARCHAR(40) NOT NULL,&lt;br /&gt;
 tn_ro_id INT NOT NULL,&lt;br /&gt;
 tn_gr_id INT NOT NULL,&lt;br /&gt;
 tn_username VARCHAR(40)UNIQUE NOT NULL, &lt;br /&gt;
 tn_passwort VARCHAR(255) NOT NULL,&lt;br /&gt;
 tn_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Prüfungstabelle erstellen mit Standardwert 90 für &#039;&#039;pr_dauer&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE pruefung&lt;br /&gt;
 (pr_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 pr_titel VARCHAR(40) NOT NULL,&lt;br /&gt;
 pr_datum DATE NOT NULL,&lt;br /&gt;
 pr_dauer INT NOT NULL DEFAULT 90,&lt;br /&gt;
 pr_wiederholbar BOOLEAN,&lt;br /&gt;
 pr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
===Implementierung der Entitäten===&lt;br /&gt;
===Implementierung der Programmierlogik===&lt;br /&gt;
===Testphase===&lt;br /&gt;
==Abschlussphase==&lt;br /&gt;
&lt;br /&gt;
===Abnahme===&lt;br /&gt;
&lt;br /&gt;
===Einführung===&lt;br /&gt;
&lt;br /&gt;
===Dokumentation===&lt;br /&gt;
&lt;br /&gt;
==Fazit==&lt;br /&gt;
&lt;br /&gt;
===Soll/Ist-Vergleich===&lt;br /&gt;
&lt;br /&gt;
===Ausblick/Verbesserungen===&lt;br /&gt;
&lt;br /&gt;
==Quellen==&lt;br /&gt;
&lt;br /&gt;
=Anhang=&lt;br /&gt;
*Auszug aus dem Lastenheft&lt;br /&gt;
*Auszug aus dem Pflichtenheft&lt;br /&gt;
*ER-Modell&lt;br /&gt;
[[Datei:er-modell_testtool.png|750px]]&lt;br /&gt;
*Tabellenmodell&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|750px]]&lt;br /&gt;
*Use-Case-Szenarien&lt;br /&gt;
*Use-Case-Diagramm&lt;br /&gt;
*Aktivitätsdiagramm&lt;br /&gt;
*Auszug aus der Funktion &amp;quot;Bewerten einer Prüfung&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Formalien ==&lt;br /&gt;
=== Deckblatt ===&lt;br /&gt;
*Projektbezeichnung: Datenbankbasierte Webanwendung zur Verwaltung und Durchführung von Prüfungen&lt;br /&gt;
*Namen und Vornamen: Rogers, Alexander&lt;br /&gt;
*Prüfungsausschuss&lt;br /&gt;
*Ausbildungsberuf: Fachinformatiker Anwendungsentwicklung&lt;br /&gt;
*Ausbildungsstätte bzw. Praktikumsbetrieb: itw gGmbH, Groninger Straße 25, 13347 Berlin bzw. Dirk Wagner Berlin, Carstennstraße 6, 12205 Berlin&lt;br /&gt;
&lt;br /&gt;
===Eidesstattliche Erklärung===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Abkürzungsverzeichnis===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekt:TestTool]]&lt;/div&gt;</summary>
		<author><name>Alexanderrogers</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=18157</id>
		<title>TestTool/Dokumentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=18157"/>
		<updated>2020-11-06T12:00:22Z</updated>

		<summary type="html">&lt;p&gt;Alexanderrogers: /* Datenbank */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projektdokumentation zur Webanwendung&lt;br /&gt;
&lt;br /&gt;
=Einleitung=&lt;br /&gt;
In dieser Projektdokumentation wird der Ablauf des Abschlussprojektes erläutert, das der Autor im Rahmen seiner Abschlussprüfung zum Fachinformatiker für Anwendungsentwicklung durchführt.&lt;br /&gt;
&lt;br /&gt;
==Projektbeschreibung==&lt;br /&gt;
Für die Dirk Wagner Berlin soll eine Webanwendung mit HTML und PHP entwickelt werden. Diese Webanwendung soll bestimmte Anforderungen erfüllen, die das Erstellen von Prüfungen erleichtern sollen.&lt;br /&gt;
==Projektziel==&lt;br /&gt;
Das Ziel dieses Projektes ist die erfolgreiche Umsetzung einer Webanwendung, die alle Prüfungen von Prüfern verwaltet. Die Prüfer sollen Fragen und mögliche Antworten eintragen können. Die Prüfungen sollen von Prüflingen durchgeführt werden und anschließend ein Ergebnis der Prüfung präsentiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Phasen des Projekts===&lt;br /&gt;
==Startphase==&lt;br /&gt;
===Ist-Zustand===&lt;br /&gt;
===Wirtschaftlichkeitsanalyse===&lt;br /&gt;
===Anwendungsfälle===&lt;br /&gt;
*Grundgedanken&lt;br /&gt;
**&#039;&#039;Prüfer&#039;&#039; und &#039;&#039;Prüfling&#039;&#039;&lt;br /&gt;
**Prüfer muss Fragen, Antworten, neue Prüflinge, neue Fachgebiete und Themen, neue Prüfungen erstellen können&lt;br /&gt;
**Prüfer kann Ergebnisse von Prüflingen einsichten&lt;br /&gt;
**Prüfling muss Prüfung ablegen können&lt;br /&gt;
**Anwendung muss Ergebnis dem Prüfling präsentieren&lt;br /&gt;
&lt;br /&gt;
===Lastenheft===&lt;br /&gt;
* Beschreibung des Lastenhefts(Nicht das Lastenheft selber! Auszugsweise im Anhang!)&lt;br /&gt;
* Soll nach der MoSCoW-Methode(Must, Should, Could, Won´t) formuliert werden.&lt;br /&gt;
&lt;br /&gt;
==Entwurf==&lt;br /&gt;
&lt;br /&gt;
===Datenbank===&lt;br /&gt;
*Grundgedanken&lt;br /&gt;
**Drei Blöcke: &#039;&#039;Fragen-Antworten&#039;&#039;-Block, &#039;&#039;Prüfung&#039;&#039;-Block und &#039;&#039;Teilnehmer&#039;&#039;-Block&lt;br /&gt;
**Eine Frage hat mehrere Antworten(mind. 1-2 je nach Frageart); Eine Antwort gehört zu einer Frage&lt;br /&gt;
**Eine Prüfung hat mehrere Teilnehmer und ein Teilnehmer belegt mehrere Prüfungen.&lt;br /&gt;
**Eine Frage kommt in mehreren Prüfungen vor, eine Prüfung hat mehrere Fragen.&lt;br /&gt;
**Ein Teilnehmer gehört zu einer Gruppe(Team) und hat eine bestimmte Rolle in der Anwendung(Admin, Editor, Prüfling).&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|1200px]]&lt;br /&gt;
*Damit keine Redundanzen entstehen bei den Fragen, wird auf fg_fragetext ein UNIQUE KEY gesetzt.&lt;br /&gt;
*&#039;&#039;Hilft nicht 100%, da ähnliche Fragen trotzdem in die Datenbank geschrieben werden können.&#039;&#039;&lt;br /&gt;
*&#039;&#039;Macht keinen Unterschied, ob die Frage Groß- oder kleingeschrieben ist. Ist die Frage identisch, wird sie verworfen.&#039;&#039;&lt;br /&gt;
*Ebenfalls UNIQUE KEY gesetzt:&lt;br /&gt;
**fg_fachgebiet&lt;br /&gt;
**pr_titel&lt;br /&gt;
**tn_username&lt;br /&gt;
**ro_rolle&lt;br /&gt;
**gr_gruppe&lt;br /&gt;
**sc_level&lt;br /&gt;
**fa_frageart&lt;br /&gt;
&lt;br /&gt;
===Benutzeroberfläche===&lt;br /&gt;
&lt;br /&gt;
===Funktionen===&lt;br /&gt;
&lt;br /&gt;
===Pflichtenheft===&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Kurze Beschreibung des Pflichtenhefts(Nicht das Pflichtenheft selber, höchstens Auszüge davon im Anhang!&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Implementierungsphase==&lt;br /&gt;
===Erstellung der Datenbank===&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE c8testtool;&lt;br /&gt;
 USE c8testtool;&lt;br /&gt;
&lt;br /&gt;
Fragentabelle erstellen mit Primärschlüssel und NOT NULL auf Fragetext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE fragen (fr_id INT AUTO_INCREMENT PRIMARY KEY, fr_fragetext TEXT NOT NULL, fr_th_id INT, fr_sc_id INT, fr_fa_id INT, fr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Antworttabelle erstellen mit Primärschlüssel und UNIQUE-Index auf Antworttext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE antworten (an_id INT AUTO_INCREMENT PRIMARY KEY, an_antworttext TEXT UNIQUE, an_fr_id int, an_richtig boolean, an_delete boolean);&lt;br /&gt;
&lt;br /&gt;
Im Nachhinein Beziehung aufsetzen zwischen Antworten und Fragen. Jede Frage hat mehrere Antworten, jede Antwort gehört zu einer Frage. Einsetzen der Lösch- und Änderungsweitergabe.&lt;br /&gt;
&lt;br /&gt;
 ALTER TABLE antworten ADD FOREIGN KEY(an_fr_id) REFERENCES fragen(fr_id) ON DELETE CASCADE ON UPDATE CASCADE;&lt;br /&gt;
&lt;br /&gt;
Teilnehmertabelle erstellen mit UNIQUE-KEY auf &#039;&#039;tn_username&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE teilnehmer &lt;br /&gt;
 (tn_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 tn_vorname VARCHAR(40) NOT NULL,&lt;br /&gt;
 tn_nachname VARCHAR(40) NOT NULL,&lt;br /&gt;
 tn_ro_id INT NOT NULL,&lt;br /&gt;
 tn_gr_id INT NOT NULL,&lt;br /&gt;
 tn_username VARCHAR(40)UNIQUE NOT NULL, &lt;br /&gt;
 tn_passwort VARCHAR(255) NOT NULL,&lt;br /&gt;
 tn_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Prüfungstabelle erstellen mit Standardwert 90 für &#039;&#039;pr_dauer&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE pruefung&lt;br /&gt;
 (pr_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 pr_titel VARCHAR(40) NOT NULL,&lt;br /&gt;
 pr_datum DATE NOT NULL,&lt;br /&gt;
 pr_dauer INT NOT NULL DEFAULT 90,&lt;br /&gt;
 pr_wiederholbar BOOLEAN,&lt;br /&gt;
 pr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
===Implementierung der Entitäten===&lt;br /&gt;
===Implementierung der Programmierlogik===&lt;br /&gt;
===Testphase===&lt;br /&gt;
==Abschlussphase==&lt;br /&gt;
&lt;br /&gt;
===Abnahme===&lt;br /&gt;
&lt;br /&gt;
===Einführung===&lt;br /&gt;
&lt;br /&gt;
===Dokumentation===&lt;br /&gt;
&lt;br /&gt;
==Fazit==&lt;br /&gt;
&lt;br /&gt;
===Soll/Ist-Vergleich===&lt;br /&gt;
&lt;br /&gt;
===Ausblick/Verbesserungen===&lt;br /&gt;
&lt;br /&gt;
==Quellen==&lt;br /&gt;
&lt;br /&gt;
=Anhang=&lt;br /&gt;
*Auszug aus dem Lastenheft&lt;br /&gt;
*Auszug aus dem Pflichtenheft&lt;br /&gt;
*ER-Modell&lt;br /&gt;
[[Datei:er-modell_testtool.png|750px]]&lt;br /&gt;
*Tabellenmodell&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|750px]]&lt;br /&gt;
*Use-Case-Szenarien&lt;br /&gt;
*Use-Case-Diagramm&lt;br /&gt;
*Aktivitätsdiagramm&lt;br /&gt;
*Auszug aus der Funktion &amp;quot;Bewerten einer Prüfung&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Formalien ==&lt;br /&gt;
=== Deckblatt ===&lt;br /&gt;
*Projektbezeichnung: Datenbankbasierte Webanwendung zur Verwaltung und Durchführung von Prüfungen&lt;br /&gt;
*Namen und Vornamen: Rogers, Alexander&lt;br /&gt;
*Prüfungsausschuss&lt;br /&gt;
*Ausbildungsberuf: Fachinformatiker Anwendungsentwicklung&lt;br /&gt;
*Ausbildungsstätte bzw. Praktikumsbetrieb: itw gGmbH, Groninger Straße 25, 13347 Berlin bzw. Dirk Wagner Berlin, Carstennstraße 6, 12205 Berlin&lt;br /&gt;
&lt;br /&gt;
===Eidesstattliche Erklärung===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Abkürzungsverzeichnis===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekt:TestTool]]&lt;/div&gt;</summary>
		<author><name>Alexanderrogers</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=18156</id>
		<title>TestTool/Dokumentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=18156"/>
		<updated>2020-11-06T11:58:50Z</updated>

		<summary type="html">&lt;p&gt;Alexanderrogers: /* Datenbank */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projektdokumentation zur Webanwendung&lt;br /&gt;
&lt;br /&gt;
=Einleitung=&lt;br /&gt;
In dieser Projektdokumentation wird der Ablauf des Abschlussprojektes erläutert, das der Autor im Rahmen seiner Abschlussprüfung zum Fachinformatiker für Anwendungsentwicklung durchführt.&lt;br /&gt;
&lt;br /&gt;
==Projektbeschreibung==&lt;br /&gt;
Für die Dirk Wagner Berlin soll eine Webanwendung mit HTML und PHP entwickelt werden. Diese Webanwendung soll bestimmte Anforderungen erfüllen, die das Erstellen von Prüfungen erleichtern sollen.&lt;br /&gt;
==Projektziel==&lt;br /&gt;
Das Ziel dieses Projektes ist die erfolgreiche Umsetzung einer Webanwendung, die alle Prüfungen von Prüfern verwaltet. Die Prüfer sollen Fragen und mögliche Antworten eintragen können. Die Prüfungen sollen von Prüflingen durchgeführt werden und anschließend ein Ergebnis der Prüfung präsentiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Phasen des Projekts===&lt;br /&gt;
==Startphase==&lt;br /&gt;
===Ist-Zustand===&lt;br /&gt;
===Wirtschaftlichkeitsanalyse===&lt;br /&gt;
===Anwendungsfälle===&lt;br /&gt;
*Grundgedanken&lt;br /&gt;
**&#039;&#039;Prüfer&#039;&#039; und &#039;&#039;Prüfling&#039;&#039;&lt;br /&gt;
**Prüfer muss Fragen, Antworten, neue Prüflinge, neue Fachgebiete und Themen, neue Prüfungen erstellen können&lt;br /&gt;
**Prüfer kann Ergebnisse von Prüflingen einsichten&lt;br /&gt;
**Prüfling muss Prüfung ablegen können&lt;br /&gt;
**Anwendung muss Ergebnis dem Prüfling präsentieren&lt;br /&gt;
&lt;br /&gt;
===Lastenheft===&lt;br /&gt;
* Beschreibung des Lastenhefts(Nicht das Lastenheft selber! Auszugsweise im Anhang!)&lt;br /&gt;
* Soll nach der MoSCoW-Methode(Must, Should, Could, Won´t) formuliert werden.&lt;br /&gt;
&lt;br /&gt;
==Entwurf==&lt;br /&gt;
&lt;br /&gt;
===Datenbank===&lt;br /&gt;
*Grundgedanken&lt;br /&gt;
**Zwei Blöcke: &#039;&#039;Fragen-Antworten&#039;&#039;-Block und &#039;&#039;Prüfung-Teilnehmer&#039;&#039;-Block&lt;br /&gt;
**Eine Frage hat mehrere Antworten(mind. 1-2 je nach Frageart); Eine Antwort gehört zu einer Frage&lt;br /&gt;
**Eine Prüfung hat mehrere Teilnehmer und ein Teilnehmer belegt mehrere Prüfungen.&lt;br /&gt;
**Eine Frage kommt in mehreren Prüfungen vor, eine Prüfung hat mehrere Fragen.&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|1200px]]&lt;br /&gt;
*Damit keine Redundanzen entstehen bei den Fragen, wird auf fg_fragetext ein UNIQUE KEY gesetzt.&lt;br /&gt;
*&#039;&#039;Hilft nicht 100%, da ähnliche Fragen trotzdem in die Datenbank geschrieben werden können.&#039;&#039;&lt;br /&gt;
*&#039;&#039;Macht keinen Unterschied, ob die Frage Groß- oder kleingeschrieben ist. Ist die Frage identisch, wird sie verworfen.&#039;&#039;&lt;br /&gt;
*Ebenfalls UNIQUE KEY gesetzt:&lt;br /&gt;
**fg_fachgebiet&lt;br /&gt;
**pr_titel&lt;br /&gt;
**tn_username&lt;br /&gt;
**ro_rolle&lt;br /&gt;
**gr_gruppe&lt;br /&gt;
**sc_level&lt;br /&gt;
**fa_frageart&lt;br /&gt;
&lt;br /&gt;
===Benutzeroberfläche===&lt;br /&gt;
&lt;br /&gt;
===Funktionen===&lt;br /&gt;
&lt;br /&gt;
===Pflichtenheft===&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Kurze Beschreibung des Pflichtenhefts(Nicht das Pflichtenheft selber, höchstens Auszüge davon im Anhang!&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Implementierungsphase==&lt;br /&gt;
===Erstellung der Datenbank===&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE c8testtool;&lt;br /&gt;
 USE c8testtool;&lt;br /&gt;
&lt;br /&gt;
Fragentabelle erstellen mit Primärschlüssel und NOT NULL auf Fragetext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE fragen (fr_id INT AUTO_INCREMENT PRIMARY KEY, fr_fragetext TEXT NOT NULL, fr_th_id INT, fr_sc_id INT, fr_fa_id INT, fr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Antworttabelle erstellen mit Primärschlüssel und UNIQUE-Index auf Antworttext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE antworten (an_id INT AUTO_INCREMENT PRIMARY KEY, an_antworttext TEXT UNIQUE, an_fr_id int, an_richtig boolean, an_delete boolean);&lt;br /&gt;
&lt;br /&gt;
Im Nachhinein Beziehung aufsetzen zwischen Antworten und Fragen. Jede Frage hat mehrere Antworten, jede Antwort gehört zu einer Frage. Einsetzen der Lösch- und Änderungsweitergabe.&lt;br /&gt;
&lt;br /&gt;
 ALTER TABLE antworten ADD FOREIGN KEY(an_fr_id) REFERENCES fragen(fr_id) ON DELETE CASCADE ON UPDATE CASCADE;&lt;br /&gt;
&lt;br /&gt;
Teilnehmertabelle erstellen mit UNIQUE-KEY auf &#039;&#039;tn_username&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE teilnehmer &lt;br /&gt;
 (tn_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 tn_vorname VARCHAR(40) NOT NULL,&lt;br /&gt;
 tn_nachname VARCHAR(40) NOT NULL,&lt;br /&gt;
 tn_ro_id INT NOT NULL,&lt;br /&gt;
 tn_gr_id INT NOT NULL,&lt;br /&gt;
 tn_username VARCHAR(40)UNIQUE NOT NULL, &lt;br /&gt;
 tn_passwort VARCHAR(255) NOT NULL,&lt;br /&gt;
 tn_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Prüfungstabelle erstellen mit Standardwert 90 für &#039;&#039;pr_dauer&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE pruefung&lt;br /&gt;
 (pr_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 pr_titel VARCHAR(40) NOT NULL,&lt;br /&gt;
 pr_datum DATE NOT NULL,&lt;br /&gt;
 pr_dauer INT NOT NULL DEFAULT 90,&lt;br /&gt;
 pr_wiederholbar BOOLEAN,&lt;br /&gt;
 pr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
===Implementierung der Entitäten===&lt;br /&gt;
===Implementierung der Programmierlogik===&lt;br /&gt;
===Testphase===&lt;br /&gt;
==Abschlussphase==&lt;br /&gt;
&lt;br /&gt;
===Abnahme===&lt;br /&gt;
&lt;br /&gt;
===Einführung===&lt;br /&gt;
&lt;br /&gt;
===Dokumentation===&lt;br /&gt;
&lt;br /&gt;
==Fazit==&lt;br /&gt;
&lt;br /&gt;
===Soll/Ist-Vergleich===&lt;br /&gt;
&lt;br /&gt;
===Ausblick/Verbesserungen===&lt;br /&gt;
&lt;br /&gt;
==Quellen==&lt;br /&gt;
&lt;br /&gt;
=Anhang=&lt;br /&gt;
*Auszug aus dem Lastenheft&lt;br /&gt;
*Auszug aus dem Pflichtenheft&lt;br /&gt;
*ER-Modell&lt;br /&gt;
[[Datei:er-modell_testtool.png|750px]]&lt;br /&gt;
*Tabellenmodell&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|750px]]&lt;br /&gt;
*Use-Case-Szenarien&lt;br /&gt;
*Use-Case-Diagramm&lt;br /&gt;
*Aktivitätsdiagramm&lt;br /&gt;
*Auszug aus der Funktion &amp;quot;Bewerten einer Prüfung&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Formalien ==&lt;br /&gt;
=== Deckblatt ===&lt;br /&gt;
*Projektbezeichnung: Datenbankbasierte Webanwendung zur Verwaltung und Durchführung von Prüfungen&lt;br /&gt;
*Namen und Vornamen: Rogers, Alexander&lt;br /&gt;
*Prüfungsausschuss&lt;br /&gt;
*Ausbildungsberuf: Fachinformatiker Anwendungsentwicklung&lt;br /&gt;
*Ausbildungsstätte bzw. Praktikumsbetrieb: itw gGmbH, Groninger Straße 25, 13347 Berlin bzw. Dirk Wagner Berlin, Carstennstraße 6, 12205 Berlin&lt;br /&gt;
&lt;br /&gt;
===Eidesstattliche Erklärung===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Abkürzungsverzeichnis===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekt:TestTool]]&lt;/div&gt;</summary>
		<author><name>Alexanderrogers</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=18155</id>
		<title>TestTool/Dokumentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=18155"/>
		<updated>2020-11-06T11:54:54Z</updated>

		<summary type="html">&lt;p&gt;Alexanderrogers: /* Anwendungsfälle */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projektdokumentation zur Webanwendung&lt;br /&gt;
&lt;br /&gt;
=Einleitung=&lt;br /&gt;
In dieser Projektdokumentation wird der Ablauf des Abschlussprojektes erläutert, das der Autor im Rahmen seiner Abschlussprüfung zum Fachinformatiker für Anwendungsentwicklung durchführt.&lt;br /&gt;
&lt;br /&gt;
==Projektbeschreibung==&lt;br /&gt;
Für die Dirk Wagner Berlin soll eine Webanwendung mit HTML und PHP entwickelt werden. Diese Webanwendung soll bestimmte Anforderungen erfüllen, die das Erstellen von Prüfungen erleichtern sollen.&lt;br /&gt;
==Projektziel==&lt;br /&gt;
Das Ziel dieses Projektes ist die erfolgreiche Umsetzung einer Webanwendung, die alle Prüfungen von Prüfern verwaltet. Die Prüfer sollen Fragen und mögliche Antworten eintragen können. Die Prüfungen sollen von Prüflingen durchgeführt werden und anschließend ein Ergebnis der Prüfung präsentiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Phasen des Projekts===&lt;br /&gt;
==Startphase==&lt;br /&gt;
===Ist-Zustand===&lt;br /&gt;
===Wirtschaftlichkeitsanalyse===&lt;br /&gt;
===Anwendungsfälle===&lt;br /&gt;
*Grundgedanken&lt;br /&gt;
**&#039;&#039;Prüfer&#039;&#039; und &#039;&#039;Prüfling&#039;&#039;&lt;br /&gt;
**Prüfer muss Fragen, Antworten, neue Prüflinge, neue Fachgebiete und Themen, neue Prüfungen erstellen können&lt;br /&gt;
**Prüfer kann Ergebnisse von Prüflingen einsichten&lt;br /&gt;
**Prüfling muss Prüfung ablegen können&lt;br /&gt;
**Anwendung muss Ergebnis dem Prüfling präsentieren&lt;br /&gt;
&lt;br /&gt;
===Lastenheft===&lt;br /&gt;
* Beschreibung des Lastenhefts(Nicht das Lastenheft selber! Auszugsweise im Anhang!)&lt;br /&gt;
* Soll nach der MoSCoW-Methode(Must, Should, Could, Won´t) formuliert werden.&lt;br /&gt;
&lt;br /&gt;
==Entwurf==&lt;br /&gt;
&lt;br /&gt;
===Datenbank===&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|1200px]]&lt;br /&gt;
*Damit keine Redundanzen entstehen bei den Fragen, wird auf fg_fragetext ein UNIQUE KEY gesetzt.&lt;br /&gt;
*&#039;&#039;Hilft nicht 100%, da ähnliche Fragen trotzdem in die Datenbank geschrieben werden können.&#039;&#039;&lt;br /&gt;
*&#039;&#039;Macht keinen Unterschied, ob die Frage Groß- oder kleingeschrieben ist. Ist die Frage identisch, wird sie verworfen.&#039;&#039;&lt;br /&gt;
*Ebenfalls UNIQUE KEY gesetzt:&lt;br /&gt;
**fg_fachgebiet&lt;br /&gt;
**pr_titel&lt;br /&gt;
**tn_username&lt;br /&gt;
**ro_rolle&lt;br /&gt;
**gr_gruppe&lt;br /&gt;
**sc_level&lt;br /&gt;
**fa_frageart&lt;br /&gt;
&lt;br /&gt;
===Benutzeroberfläche===&lt;br /&gt;
&lt;br /&gt;
===Funktionen===&lt;br /&gt;
&lt;br /&gt;
===Pflichtenheft===&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Kurze Beschreibung des Pflichtenhefts(Nicht das Pflichtenheft selber, höchstens Auszüge davon im Anhang!&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Implementierungsphase==&lt;br /&gt;
===Erstellung der Datenbank===&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE c8testtool;&lt;br /&gt;
 USE c8testtool;&lt;br /&gt;
&lt;br /&gt;
Fragentabelle erstellen mit Primärschlüssel und NOT NULL auf Fragetext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE fragen (fr_id INT AUTO_INCREMENT PRIMARY KEY, fr_fragetext TEXT NOT NULL, fr_th_id INT, fr_sc_id INT, fr_fa_id INT, fr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Antworttabelle erstellen mit Primärschlüssel und UNIQUE-Index auf Antworttext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE antworten (an_id INT AUTO_INCREMENT PRIMARY KEY, an_antworttext TEXT UNIQUE, an_fr_id int, an_richtig boolean, an_delete boolean);&lt;br /&gt;
&lt;br /&gt;
Im Nachhinein Beziehung aufsetzen zwischen Antworten und Fragen. Jede Frage hat mehrere Antworten, jede Antwort gehört zu einer Frage. Einsetzen der Lösch- und Änderungsweitergabe.&lt;br /&gt;
&lt;br /&gt;
 ALTER TABLE antworten ADD FOREIGN KEY(an_fr_id) REFERENCES fragen(fr_id) ON DELETE CASCADE ON UPDATE CASCADE;&lt;br /&gt;
&lt;br /&gt;
Teilnehmertabelle erstellen mit UNIQUE-KEY auf &#039;&#039;tn_username&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE teilnehmer &lt;br /&gt;
 (tn_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 tn_vorname VARCHAR(40) NOT NULL,&lt;br /&gt;
 tn_nachname VARCHAR(40) NOT NULL,&lt;br /&gt;
 tn_ro_id INT NOT NULL,&lt;br /&gt;
 tn_gr_id INT NOT NULL,&lt;br /&gt;
 tn_username VARCHAR(40)UNIQUE NOT NULL, &lt;br /&gt;
 tn_passwort VARCHAR(255) NOT NULL,&lt;br /&gt;
 tn_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Prüfungstabelle erstellen mit Standardwert 90 für &#039;&#039;pr_dauer&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE pruefung&lt;br /&gt;
 (pr_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 pr_titel VARCHAR(40) NOT NULL,&lt;br /&gt;
 pr_datum DATE NOT NULL,&lt;br /&gt;
 pr_dauer INT NOT NULL DEFAULT 90,&lt;br /&gt;
 pr_wiederholbar BOOLEAN,&lt;br /&gt;
 pr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
===Implementierung der Entitäten===&lt;br /&gt;
===Implementierung der Programmierlogik===&lt;br /&gt;
===Testphase===&lt;br /&gt;
==Abschlussphase==&lt;br /&gt;
&lt;br /&gt;
===Abnahme===&lt;br /&gt;
&lt;br /&gt;
===Einführung===&lt;br /&gt;
&lt;br /&gt;
===Dokumentation===&lt;br /&gt;
&lt;br /&gt;
==Fazit==&lt;br /&gt;
&lt;br /&gt;
===Soll/Ist-Vergleich===&lt;br /&gt;
&lt;br /&gt;
===Ausblick/Verbesserungen===&lt;br /&gt;
&lt;br /&gt;
==Quellen==&lt;br /&gt;
&lt;br /&gt;
=Anhang=&lt;br /&gt;
*Auszug aus dem Lastenheft&lt;br /&gt;
*Auszug aus dem Pflichtenheft&lt;br /&gt;
*ER-Modell&lt;br /&gt;
[[Datei:er-modell_testtool.png|750px]]&lt;br /&gt;
*Tabellenmodell&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|750px]]&lt;br /&gt;
*Use-Case-Szenarien&lt;br /&gt;
*Use-Case-Diagramm&lt;br /&gt;
*Aktivitätsdiagramm&lt;br /&gt;
*Auszug aus der Funktion &amp;quot;Bewerten einer Prüfung&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Formalien ==&lt;br /&gt;
=== Deckblatt ===&lt;br /&gt;
*Projektbezeichnung: Datenbankbasierte Webanwendung zur Verwaltung und Durchführung von Prüfungen&lt;br /&gt;
*Namen und Vornamen: Rogers, Alexander&lt;br /&gt;
*Prüfungsausschuss&lt;br /&gt;
*Ausbildungsberuf: Fachinformatiker Anwendungsentwicklung&lt;br /&gt;
*Ausbildungsstätte bzw. Praktikumsbetrieb: itw gGmbH, Groninger Straße 25, 13347 Berlin bzw. Dirk Wagner Berlin, Carstennstraße 6, 12205 Berlin&lt;br /&gt;
&lt;br /&gt;
===Eidesstattliche Erklärung===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Abkürzungsverzeichnis===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekt:TestTool]]&lt;/div&gt;</summary>
		<author><name>Alexanderrogers</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=17998</id>
		<title>TestTool/Dokumentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=17998"/>
		<updated>2020-11-04T14:00:37Z</updated>

		<summary type="html">&lt;p&gt;Alexanderrogers: /* Erstellung der Datenbank */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projektdokumentation zur Webanwendung&lt;br /&gt;
&lt;br /&gt;
=Einleitung=&lt;br /&gt;
In dieser Projektdokumentation wird der Ablauf des Abschlussprojektes erläutert, das der Autor im Rahmen seiner Abschlussprüfung zum Fachinformatiker für Anwendungsentwicklung durchführt.&lt;br /&gt;
&lt;br /&gt;
==Projektbeschreibung==&lt;br /&gt;
Für die Dirk Wagner Berlin soll eine Webanwendung mit HTML und PHP entwickelt werden. Diese Webanwendung soll bestimmte Anforderungen erfüllen, die das Erstellen von Prüfungen erleichtern sollen.&lt;br /&gt;
==Projektziel==&lt;br /&gt;
Das Ziel dieses Projektes ist die erfolgreiche Umsetzung einer Webanwendung, die alle Prüfungen von Prüfern verwaltet. Die Prüfer sollen Fragen und mögliche Antworten eintragen können. Die Prüfungen sollen von Prüflingen durchgeführt werden und anschließend ein Ergebnis der Prüfung präsentiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Phasen des Projekts===&lt;br /&gt;
==Startphase==&lt;br /&gt;
===Ist-Zustand===&lt;br /&gt;
===Wirtschaftlichkeitsanalyse===&lt;br /&gt;
===Anwendungsfälle===&lt;br /&gt;
===Lastenheft===&lt;br /&gt;
* Beschreibung des Lastenhefts(Nicht das Lastenheft selber! Auszugsweise im Anhang!)&lt;br /&gt;
* Soll nach der MoSCoW-Methode(Must, Should, Could, Won´t) formuliert werden.&lt;br /&gt;
&lt;br /&gt;
==Entwurf==&lt;br /&gt;
&lt;br /&gt;
===Datenbank===&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|1200px]]&lt;br /&gt;
*Damit keine Redundanzen entstehen bei den Fragen, wird auf fg_fragetext ein UNIQUE KEY gesetzt.&lt;br /&gt;
*&#039;&#039;Hilft nicht 100%, da ähnliche Fragen trotzdem in die Datenbank geschrieben werden können.&#039;&#039;&lt;br /&gt;
*&#039;&#039;Macht keinen Unterschied, ob die Frage Groß- oder kleingeschrieben ist. Ist die Frage identisch, wird sie verworfen.&#039;&#039;&lt;br /&gt;
*Ebenfalls UNIQUE KEY gesetzt:&lt;br /&gt;
**fg_fachgebiet&lt;br /&gt;
**pr_titel&lt;br /&gt;
**tn_username&lt;br /&gt;
**ro_rolle&lt;br /&gt;
**gr_gruppe&lt;br /&gt;
**sc_level&lt;br /&gt;
**fa_frageart&lt;br /&gt;
&lt;br /&gt;
===Benutzeroberfläche===&lt;br /&gt;
&lt;br /&gt;
===Funktionen===&lt;br /&gt;
&lt;br /&gt;
===Pflichtenheft===&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Kurze Beschreibung des Pflichtenhefts(Nicht das Pflichtenheft selber, höchstens Auszüge davon im Anhang!&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Implementierungsphase==&lt;br /&gt;
===Erstellung der Datenbank===&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE c8testtool;&lt;br /&gt;
 USE c8testtool;&lt;br /&gt;
&lt;br /&gt;
Fragentabelle erstellen mit Primärschlüssel und NOT NULL auf Fragetext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE fragen (fr_id INT AUTO_INCREMENT PRIMARY KEY, fr_fragetext TEXT NOT NULL, fr_th_id INT, fr_sc_id INT, fr_fa_id INT, fr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Antworttabelle erstellen mit Primärschlüssel und UNIQUE-Index auf Antworttext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE antworten (an_id INT AUTO_INCREMENT PRIMARY KEY, an_antworttext TEXT UNIQUE, an_fr_id int, an_richtig boolean, an_delete boolean);&lt;br /&gt;
&lt;br /&gt;
Im Nachhinein Beziehung aufsetzen zwischen Antworten und Fragen. Jede Frage hat mehrere Antworten, jede Antwort gehört zu einer Frage. Einsetzen der Lösch- und Änderungsweitergabe.&lt;br /&gt;
&lt;br /&gt;
 ALTER TABLE antworten ADD FOREIGN KEY(an_fr_id) REFERENCES fragen(fr_id) ON DELETE CASCADE ON UPDATE CASCADE;&lt;br /&gt;
&lt;br /&gt;
Teilnehmertabelle erstellen mit UNIQUE-KEY auf &#039;&#039;tn_username&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE teilnehmer &lt;br /&gt;
 (tn_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 tn_vorname VARCHAR(40) NOT NULL,&lt;br /&gt;
 tn_nachname VARCHAR(40) NOT NULL,&lt;br /&gt;
 tn_ro_id INT NOT NULL,&lt;br /&gt;
 tn_gr_id INT NOT NULL,&lt;br /&gt;
 tn_username VARCHAR(40)UNIQUE NOT NULL, &lt;br /&gt;
 tn_passwort VARCHAR(255) NOT NULL,&lt;br /&gt;
 tn_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Prüfungstabelle erstellen mit Standardwert 90 für &#039;&#039;pr_dauer&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE pruefung&lt;br /&gt;
 (pr_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 pr_titel VARCHAR(40) NOT NULL,&lt;br /&gt;
 pr_datum DATE NOT NULL,&lt;br /&gt;
 pr_dauer INT NOT NULL DEFAULT 90,&lt;br /&gt;
 pr_wiederholbar BOOLEAN,&lt;br /&gt;
 pr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
===Implementierung der Entitäten===&lt;br /&gt;
===Implementierung der Programmierlogik===&lt;br /&gt;
===Testphase===&lt;br /&gt;
==Abschlussphase==&lt;br /&gt;
&lt;br /&gt;
===Abnahme===&lt;br /&gt;
&lt;br /&gt;
===Einführung===&lt;br /&gt;
&lt;br /&gt;
===Dokumentation===&lt;br /&gt;
&lt;br /&gt;
==Fazit==&lt;br /&gt;
&lt;br /&gt;
===Soll/Ist-Vergleich===&lt;br /&gt;
&lt;br /&gt;
===Ausblick/Verbesserungen===&lt;br /&gt;
&lt;br /&gt;
==Quellen==&lt;br /&gt;
&lt;br /&gt;
=Anhang=&lt;br /&gt;
*Auszug aus dem Lastenheft&lt;br /&gt;
*Auszug aus dem Pflichtenheft&lt;br /&gt;
*ER-Modell&lt;br /&gt;
[[Datei:er-modell_testtool.png|750px]]&lt;br /&gt;
*Tabellenmodell&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|750px]]&lt;br /&gt;
*Use-Case-Szenarien&lt;br /&gt;
*Use-Case-Diagramm&lt;br /&gt;
*Aktivitätsdiagramm&lt;br /&gt;
*Auszug aus der Funktion &amp;quot;Bewerten einer Prüfung&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Formalien ==&lt;br /&gt;
=== Deckblatt ===&lt;br /&gt;
*Projektbezeichnung: Datenbankbasierte Webanwendung zur Verwaltung und Durchführung von Prüfungen&lt;br /&gt;
*Namen und Vornamen: Rogers, Alexander&lt;br /&gt;
*Prüfungsausschuss&lt;br /&gt;
*Ausbildungsberuf: Fachinformatiker Anwendungsentwicklung&lt;br /&gt;
*Ausbildungsstätte bzw. Praktikumsbetrieb: itw gGmbH, Groninger Straße 25, 13347 Berlin bzw. Dirk Wagner Berlin, Carstennstraße 6, 12205 Berlin&lt;br /&gt;
&lt;br /&gt;
===Eidesstattliche Erklärung===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Abkürzungsverzeichnis===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekt:TestTool]]&lt;/div&gt;</summary>
		<author><name>Alexanderrogers</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=17997</id>
		<title>TestTool/Dokumentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=17997"/>
		<updated>2020-11-04T13:59:19Z</updated>

		<summary type="html">&lt;p&gt;Alexanderrogers: /* Erstellung der Datenbank */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projektdokumentation zur Webanwendung&lt;br /&gt;
&lt;br /&gt;
=Einleitung=&lt;br /&gt;
In dieser Projektdokumentation wird der Ablauf des Abschlussprojektes erläutert, das der Autor im Rahmen seiner Abschlussprüfung zum Fachinformatiker für Anwendungsentwicklung durchführt.&lt;br /&gt;
&lt;br /&gt;
==Projektbeschreibung==&lt;br /&gt;
Für die Dirk Wagner Berlin soll eine Webanwendung mit HTML und PHP entwickelt werden. Diese Webanwendung soll bestimmte Anforderungen erfüllen, die das Erstellen von Prüfungen erleichtern sollen.&lt;br /&gt;
==Projektziel==&lt;br /&gt;
Das Ziel dieses Projektes ist die erfolgreiche Umsetzung einer Webanwendung, die alle Prüfungen von Prüfern verwaltet. Die Prüfer sollen Fragen und mögliche Antworten eintragen können. Die Prüfungen sollen von Prüflingen durchgeführt werden und anschließend ein Ergebnis der Prüfung präsentiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Phasen des Projekts===&lt;br /&gt;
==Startphase==&lt;br /&gt;
===Ist-Zustand===&lt;br /&gt;
===Wirtschaftlichkeitsanalyse===&lt;br /&gt;
===Anwendungsfälle===&lt;br /&gt;
===Lastenheft===&lt;br /&gt;
* Beschreibung des Lastenhefts(Nicht das Lastenheft selber! Auszugsweise im Anhang!)&lt;br /&gt;
* Soll nach der MoSCoW-Methode(Must, Should, Could, Won´t) formuliert werden.&lt;br /&gt;
&lt;br /&gt;
==Entwurf==&lt;br /&gt;
&lt;br /&gt;
===Datenbank===&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|1200px]]&lt;br /&gt;
*Damit keine Redundanzen entstehen bei den Fragen, wird auf fg_fragetext ein UNIQUE KEY gesetzt.&lt;br /&gt;
*&#039;&#039;Hilft nicht 100%, da ähnliche Fragen trotzdem in die Datenbank geschrieben werden können.&#039;&#039;&lt;br /&gt;
*&#039;&#039;Macht keinen Unterschied, ob die Frage Groß- oder kleingeschrieben ist. Ist die Frage identisch, wird sie verworfen.&#039;&#039;&lt;br /&gt;
*Ebenfalls UNIQUE KEY gesetzt:&lt;br /&gt;
**fg_fachgebiet&lt;br /&gt;
**pr_titel&lt;br /&gt;
**tn_username&lt;br /&gt;
**ro_rolle&lt;br /&gt;
**gr_gruppe&lt;br /&gt;
**sc_level&lt;br /&gt;
**fa_frageart&lt;br /&gt;
&lt;br /&gt;
===Benutzeroberfläche===&lt;br /&gt;
&lt;br /&gt;
===Funktionen===&lt;br /&gt;
&lt;br /&gt;
===Pflichtenheft===&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Kurze Beschreibung des Pflichtenhefts(Nicht das Pflichtenheft selber, höchstens Auszüge davon im Anhang!&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Implementierungsphase==&lt;br /&gt;
===Erstellung der Datenbank===&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE c8testtool;&lt;br /&gt;
 USE c8testtool;&lt;br /&gt;
&lt;br /&gt;
Fragentabelle erstellen mit Primärschlüssel und NOT NULL auf Fragetext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE fragen (fr_id INT AUTO_INCREMENT PRIMARY KEY, fr_fragetext TEXT NOT NULL, fr_th_id INT, fr_sc_id INT, fr_fa_id INT, fr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Antworttabelle erstellen mit Primärschlüssel und UNIQUE-Index auf Antworttext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE antworten (an_id INT AUTO_INCREMENT PRIMARY KEY, an_antworttext TEXT UNIQUE, an_fr_id int, an_richtig boolean, an_delete boolean);&lt;br /&gt;
&lt;br /&gt;
Im Nachhinein Beziehung aufsetzen zwischen Antworten und Fragen. Jede Frage hat mehrere Antworten, jede Antwort gehört zu einer Frage. Einsetzen der Lösch- und Änderungsweitergabe.&lt;br /&gt;
&lt;br /&gt;
 ALTER TABLE antworten ADD FOREIGN KEY(an_fr_id) REFERENCES fragen(fr_id) ON DELETE CASCADE ON UPDATE CASCADE;&lt;br /&gt;
&lt;br /&gt;
Teilnehmertabelle erstellen&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE teilnehmer &lt;br /&gt;
 (tn_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 tn_vorname VARCHAR(40) NOT NULL,&lt;br /&gt;
 tn_nachname VARCHAR(40) NOT NULL,&lt;br /&gt;
 tn_ro_id INT NOT NULL,&lt;br /&gt;
 tn_gr_id INT NOT NULL,&lt;br /&gt;
 tn_username VARCHAR(40)UNIQUE NOT NULL, &lt;br /&gt;
 tn_passwort VARCHAR(255) NOT NULL,&lt;br /&gt;
 tn_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Prüfungstabelle erstellen&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE pruefung&lt;br /&gt;
 (pr_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 pr_titel VARCHAR(40) NOT NULL,&lt;br /&gt;
 pr_datum DATE NOT NULL,&lt;br /&gt;
 pr_dauer INT NOT NULL DEFAULT 90,&lt;br /&gt;
 pr_wiederholbar BOOLEAN,&lt;br /&gt;
 pr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
===Implementierung der Entitäten===&lt;br /&gt;
===Implementierung der Programmierlogik===&lt;br /&gt;
===Testphase===&lt;br /&gt;
==Abschlussphase==&lt;br /&gt;
&lt;br /&gt;
===Abnahme===&lt;br /&gt;
&lt;br /&gt;
===Einführung===&lt;br /&gt;
&lt;br /&gt;
===Dokumentation===&lt;br /&gt;
&lt;br /&gt;
==Fazit==&lt;br /&gt;
&lt;br /&gt;
===Soll/Ist-Vergleich===&lt;br /&gt;
&lt;br /&gt;
===Ausblick/Verbesserungen===&lt;br /&gt;
&lt;br /&gt;
==Quellen==&lt;br /&gt;
&lt;br /&gt;
=Anhang=&lt;br /&gt;
*Auszug aus dem Lastenheft&lt;br /&gt;
*Auszug aus dem Pflichtenheft&lt;br /&gt;
*ER-Modell&lt;br /&gt;
[[Datei:er-modell_testtool.png|750px]]&lt;br /&gt;
*Tabellenmodell&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|750px]]&lt;br /&gt;
*Use-Case-Szenarien&lt;br /&gt;
*Use-Case-Diagramm&lt;br /&gt;
*Aktivitätsdiagramm&lt;br /&gt;
*Auszug aus der Funktion &amp;quot;Bewerten einer Prüfung&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Formalien ==&lt;br /&gt;
=== Deckblatt ===&lt;br /&gt;
*Projektbezeichnung: Datenbankbasierte Webanwendung zur Verwaltung und Durchführung von Prüfungen&lt;br /&gt;
*Namen und Vornamen: Rogers, Alexander&lt;br /&gt;
*Prüfungsausschuss&lt;br /&gt;
*Ausbildungsberuf: Fachinformatiker Anwendungsentwicklung&lt;br /&gt;
*Ausbildungsstätte bzw. Praktikumsbetrieb: itw gGmbH, Groninger Straße 25, 13347 Berlin bzw. Dirk Wagner Berlin, Carstennstraße 6, 12205 Berlin&lt;br /&gt;
&lt;br /&gt;
===Eidesstattliche Erklärung===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Abkürzungsverzeichnis===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekt:TestTool]]&lt;/div&gt;</summary>
		<author><name>Alexanderrogers</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=17996</id>
		<title>TestTool/Dokumentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=17996"/>
		<updated>2020-11-04T13:58:06Z</updated>

		<summary type="html">&lt;p&gt;Alexanderrogers: /* Erstellung der Datenbank */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projektdokumentation zur Webanwendung&lt;br /&gt;
&lt;br /&gt;
=Einleitung=&lt;br /&gt;
In dieser Projektdokumentation wird der Ablauf des Abschlussprojektes erläutert, das der Autor im Rahmen seiner Abschlussprüfung zum Fachinformatiker für Anwendungsentwicklung durchführt.&lt;br /&gt;
&lt;br /&gt;
==Projektbeschreibung==&lt;br /&gt;
Für die Dirk Wagner Berlin soll eine Webanwendung mit HTML und PHP entwickelt werden. Diese Webanwendung soll bestimmte Anforderungen erfüllen, die das Erstellen von Prüfungen erleichtern sollen.&lt;br /&gt;
==Projektziel==&lt;br /&gt;
Das Ziel dieses Projektes ist die erfolgreiche Umsetzung einer Webanwendung, die alle Prüfungen von Prüfern verwaltet. Die Prüfer sollen Fragen und mögliche Antworten eintragen können. Die Prüfungen sollen von Prüflingen durchgeführt werden und anschließend ein Ergebnis der Prüfung präsentiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Phasen des Projekts===&lt;br /&gt;
==Startphase==&lt;br /&gt;
===Ist-Zustand===&lt;br /&gt;
===Wirtschaftlichkeitsanalyse===&lt;br /&gt;
===Anwendungsfälle===&lt;br /&gt;
===Lastenheft===&lt;br /&gt;
* Beschreibung des Lastenhefts(Nicht das Lastenheft selber! Auszugsweise im Anhang!)&lt;br /&gt;
* Soll nach der MoSCoW-Methode(Must, Should, Could, Won´t) formuliert werden.&lt;br /&gt;
&lt;br /&gt;
==Entwurf==&lt;br /&gt;
&lt;br /&gt;
===Datenbank===&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|1200px]]&lt;br /&gt;
*Damit keine Redundanzen entstehen bei den Fragen, wird auf fg_fragetext ein UNIQUE KEY gesetzt.&lt;br /&gt;
*&#039;&#039;Hilft nicht 100%, da ähnliche Fragen trotzdem in die Datenbank geschrieben werden können.&#039;&#039;&lt;br /&gt;
*&#039;&#039;Macht keinen Unterschied, ob die Frage Groß- oder kleingeschrieben ist. Ist die Frage identisch, wird sie verworfen.&#039;&#039;&lt;br /&gt;
*Ebenfalls UNIQUE KEY gesetzt:&lt;br /&gt;
**fg_fachgebiet&lt;br /&gt;
**pr_titel&lt;br /&gt;
**tn_username&lt;br /&gt;
**ro_rolle&lt;br /&gt;
**gr_gruppe&lt;br /&gt;
**sc_level&lt;br /&gt;
**fa_frageart&lt;br /&gt;
&lt;br /&gt;
===Benutzeroberfläche===&lt;br /&gt;
&lt;br /&gt;
===Funktionen===&lt;br /&gt;
&lt;br /&gt;
===Pflichtenheft===&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Kurze Beschreibung des Pflichtenhefts(Nicht das Pflichtenheft selber, höchstens Auszüge davon im Anhang!&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Implementierungsphase==&lt;br /&gt;
===Erstellung der Datenbank===&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE c8testtool;&lt;br /&gt;
 USE c8testtool;&lt;br /&gt;
&lt;br /&gt;
Fragentabelle erstellen mit Primärschlüssel und NOT NULL auf Fragetext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE fragen (fr_id INT AUTO_INCREMENT PRIMARY KEY, fr_fragetext TEXT NOT NULL, fr_th_id INT, fr_sc_id INT, fr_fa_id INT, fr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Antworttabelle erstellen mit Primärschlüssel und UNIQUE-Index auf Antworttext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE antworten (an_id INT AUTO_INCREMENT PRIMARY KEY, an_antworttext TEXT UNIQUE, an_fr_id int, an_richtig boolean, an_delete boolean);&lt;br /&gt;
&lt;br /&gt;
Im Nachhinein Beziehung aufsetzen zwischen Antworten und Fragen. Jede Frage hat mehrere Antworten, jede Antwort gehört zu einer Frage. Einsetzen der Lösch- und Änderungsweitergabe.&lt;br /&gt;
&lt;br /&gt;
 ALTER TABLE antworten ADD FOREIGN KEY(an_fr_id) REFERENCES fragen(fr_id) ON DELETE CASCADE ON UPDATE CASCADE;&lt;br /&gt;
&lt;br /&gt;
Teilnehmertabelle erstellen&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE teilnehmer &lt;br /&gt;
 (tn_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 tn_vorname VARCHAR(40) NOT NULL,&lt;br /&gt;
 tn_nachname VARCHAR(40) NOT NULL,&lt;br /&gt;
 tn_ro_id INT NOT NULL,&lt;br /&gt;
 tn_gr_id INT NOT NULL,&lt;br /&gt;
 tn_username VARCHAR(40)UNIQUE NOT NULL, &lt;br /&gt;
 tn_passwort VARCHAR(255) NOT NULL);&lt;br /&gt;
&lt;br /&gt;
Prüfungstabelle erstellen&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE pruefung&lt;br /&gt;
 (pr_id INT PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
 pr_titel VARCHAR(40) NOT NULL,&lt;br /&gt;
 pr_datum DATE NOT NULL,&lt;br /&gt;
 pr_dauer int NOT NULL DEFAULT 90,&lt;br /&gt;
 pr_&lt;br /&gt;
&lt;br /&gt;
===Implementierung der Entitäten===&lt;br /&gt;
===Implementierung der Programmierlogik===&lt;br /&gt;
===Testphase===&lt;br /&gt;
==Abschlussphase==&lt;br /&gt;
&lt;br /&gt;
===Abnahme===&lt;br /&gt;
&lt;br /&gt;
===Einführung===&lt;br /&gt;
&lt;br /&gt;
===Dokumentation===&lt;br /&gt;
&lt;br /&gt;
==Fazit==&lt;br /&gt;
&lt;br /&gt;
===Soll/Ist-Vergleich===&lt;br /&gt;
&lt;br /&gt;
===Ausblick/Verbesserungen===&lt;br /&gt;
&lt;br /&gt;
==Quellen==&lt;br /&gt;
&lt;br /&gt;
=Anhang=&lt;br /&gt;
*Auszug aus dem Lastenheft&lt;br /&gt;
*Auszug aus dem Pflichtenheft&lt;br /&gt;
*ER-Modell&lt;br /&gt;
[[Datei:er-modell_testtool.png|750px]]&lt;br /&gt;
*Tabellenmodell&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|750px]]&lt;br /&gt;
*Use-Case-Szenarien&lt;br /&gt;
*Use-Case-Diagramm&lt;br /&gt;
*Aktivitätsdiagramm&lt;br /&gt;
*Auszug aus der Funktion &amp;quot;Bewerten einer Prüfung&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Formalien ==&lt;br /&gt;
=== Deckblatt ===&lt;br /&gt;
*Projektbezeichnung: Datenbankbasierte Webanwendung zur Verwaltung und Durchführung von Prüfungen&lt;br /&gt;
*Namen und Vornamen: Rogers, Alexander&lt;br /&gt;
*Prüfungsausschuss&lt;br /&gt;
*Ausbildungsberuf: Fachinformatiker Anwendungsentwicklung&lt;br /&gt;
*Ausbildungsstätte bzw. Praktikumsbetrieb: itw gGmbH, Groninger Straße 25, 13347 Berlin bzw. Dirk Wagner Berlin, Carstennstraße 6, 12205 Berlin&lt;br /&gt;
&lt;br /&gt;
===Eidesstattliche Erklärung===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Abkürzungsverzeichnis===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekt:TestTool]]&lt;/div&gt;</summary>
		<author><name>Alexanderrogers</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=17995</id>
		<title>TestTool/Dokumentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=17995"/>
		<updated>2020-11-04T13:05:17Z</updated>

		<summary type="html">&lt;p&gt;Alexanderrogers: /* Erstellung der Datenbank */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projektdokumentation zur Webanwendung&lt;br /&gt;
&lt;br /&gt;
=Einleitung=&lt;br /&gt;
In dieser Projektdokumentation wird der Ablauf des Abschlussprojektes erläutert, das der Autor im Rahmen seiner Abschlussprüfung zum Fachinformatiker für Anwendungsentwicklung durchführt.&lt;br /&gt;
&lt;br /&gt;
==Projektbeschreibung==&lt;br /&gt;
Für die Dirk Wagner Berlin soll eine Webanwendung mit HTML und PHP entwickelt werden. Diese Webanwendung soll bestimmte Anforderungen erfüllen, die das Erstellen von Prüfungen erleichtern sollen.&lt;br /&gt;
==Projektziel==&lt;br /&gt;
Das Ziel dieses Projektes ist die erfolgreiche Umsetzung einer Webanwendung, die alle Prüfungen von Prüfern verwaltet. Die Prüfer sollen Fragen und mögliche Antworten eintragen können. Die Prüfungen sollen von Prüflingen durchgeführt werden und anschließend ein Ergebnis der Prüfung präsentiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Phasen des Projekts===&lt;br /&gt;
==Startphase==&lt;br /&gt;
===Ist-Zustand===&lt;br /&gt;
===Wirtschaftlichkeitsanalyse===&lt;br /&gt;
===Anwendungsfälle===&lt;br /&gt;
===Lastenheft===&lt;br /&gt;
* Beschreibung des Lastenhefts(Nicht das Lastenheft selber! Auszugsweise im Anhang!)&lt;br /&gt;
* Soll nach der MoSCoW-Methode(Must, Should, Could, Won´t) formuliert werden.&lt;br /&gt;
&lt;br /&gt;
==Entwurf==&lt;br /&gt;
&lt;br /&gt;
===Datenbank===&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|1200px]]&lt;br /&gt;
*Damit keine Redundanzen entstehen bei den Fragen, wird auf fg_fragetext ein UNIQUE KEY gesetzt.&lt;br /&gt;
*&#039;&#039;Hilft nicht 100%, da ähnliche Fragen trotzdem in die Datenbank geschrieben werden können.&#039;&#039;&lt;br /&gt;
*&#039;&#039;Macht keinen Unterschied, ob die Frage Groß- oder kleingeschrieben ist. Ist die Frage identisch, wird sie verworfen.&#039;&#039;&lt;br /&gt;
*Ebenfalls UNIQUE KEY gesetzt:&lt;br /&gt;
**fg_fachgebiet&lt;br /&gt;
**pr_titel&lt;br /&gt;
**tn_username&lt;br /&gt;
**ro_rolle&lt;br /&gt;
**gr_gruppe&lt;br /&gt;
**sc_level&lt;br /&gt;
**fa_frageart&lt;br /&gt;
&lt;br /&gt;
===Benutzeroberfläche===&lt;br /&gt;
&lt;br /&gt;
===Funktionen===&lt;br /&gt;
&lt;br /&gt;
===Pflichtenheft===&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Kurze Beschreibung des Pflichtenhefts(Nicht das Pflichtenheft selber, höchstens Auszüge davon im Anhang!&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Implementierungsphase==&lt;br /&gt;
===Erstellung der Datenbank===&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE c8testtool;&lt;br /&gt;
 USE c8testtool;&lt;br /&gt;
&lt;br /&gt;
Fragentabelle erstellen mit Primärschlüssel und NOT NULL auf Fragetext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE fragen (fr_id INT AUTO_INCREMENT PRIMARY KEY, fr_fragetext TEXT NOT NULL, fr_th_id INT, fr_sc_id INT, fr_fa_id INT, fr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Antworttabelle erstellen mit Primärschlüssel und UNIQUE-Index auf Antworttext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE antworten (an_id INT AUTO_INCREMENT PRIMARY KEY, an_antworttext TEXT UNIQUE, an_fr_id int, an_richtig boolean, an_delete boolean);&lt;br /&gt;
&lt;br /&gt;
Im Nachhinein Beziehung aufsetzen zwischen Antworten und Fragen. Jede Frage hat mehrere Antworten, jede Antwort gehört zu einer Frage. Einsetzen der Lösch- und Änderungsweitergabe.&lt;br /&gt;
&lt;br /&gt;
 ALTER TABLE antworten ADD FOREIGN KEY(an_fr_id) REFERENCES fragen(fr_id) ON DELETE CASCADE ON UPDATE CASCADE;&lt;br /&gt;
&lt;br /&gt;
===Implementierung der Entitäten===&lt;br /&gt;
===Implementierung der Programmierlogik===&lt;br /&gt;
===Testphase===&lt;br /&gt;
==Abschlussphase==&lt;br /&gt;
&lt;br /&gt;
===Abnahme===&lt;br /&gt;
&lt;br /&gt;
===Einführung===&lt;br /&gt;
&lt;br /&gt;
===Dokumentation===&lt;br /&gt;
&lt;br /&gt;
==Fazit==&lt;br /&gt;
&lt;br /&gt;
===Soll/Ist-Vergleich===&lt;br /&gt;
&lt;br /&gt;
===Ausblick/Verbesserungen===&lt;br /&gt;
&lt;br /&gt;
==Quellen==&lt;br /&gt;
&lt;br /&gt;
=Anhang=&lt;br /&gt;
*Auszug aus dem Lastenheft&lt;br /&gt;
*Auszug aus dem Pflichtenheft&lt;br /&gt;
*ER-Modell&lt;br /&gt;
[[Datei:er-modell_testtool.png|750px]]&lt;br /&gt;
*Tabellenmodell&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|750px]]&lt;br /&gt;
*Use-Case-Szenarien&lt;br /&gt;
*Use-Case-Diagramm&lt;br /&gt;
*Aktivitätsdiagramm&lt;br /&gt;
*Auszug aus der Funktion &amp;quot;Bewerten einer Prüfung&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Formalien ==&lt;br /&gt;
=== Deckblatt ===&lt;br /&gt;
*Projektbezeichnung: Datenbankbasierte Webanwendung zur Verwaltung und Durchführung von Prüfungen&lt;br /&gt;
*Namen und Vornamen: Rogers, Alexander&lt;br /&gt;
*Prüfungsausschuss&lt;br /&gt;
*Ausbildungsberuf: Fachinformatiker Anwendungsentwicklung&lt;br /&gt;
*Ausbildungsstätte bzw. Praktikumsbetrieb: itw gGmbH, Groninger Straße 25, 13347 Berlin bzw. Dirk Wagner Berlin, Carstennstraße 6, 12205 Berlin&lt;br /&gt;
&lt;br /&gt;
===Eidesstattliche Erklärung===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Abkürzungsverzeichnis===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekt:TestTool]]&lt;/div&gt;</summary>
		<author><name>Alexanderrogers</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=17994</id>
		<title>TestTool/Dokumentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=17994"/>
		<updated>2020-11-04T13:04:37Z</updated>

		<summary type="html">&lt;p&gt;Alexanderrogers: /* Anhang */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projektdokumentation zur Webanwendung&lt;br /&gt;
&lt;br /&gt;
=Einleitung=&lt;br /&gt;
In dieser Projektdokumentation wird der Ablauf des Abschlussprojektes erläutert, das der Autor im Rahmen seiner Abschlussprüfung zum Fachinformatiker für Anwendungsentwicklung durchführt.&lt;br /&gt;
&lt;br /&gt;
==Projektbeschreibung==&lt;br /&gt;
Für die Dirk Wagner Berlin soll eine Webanwendung mit HTML und PHP entwickelt werden. Diese Webanwendung soll bestimmte Anforderungen erfüllen, die das Erstellen von Prüfungen erleichtern sollen.&lt;br /&gt;
==Projektziel==&lt;br /&gt;
Das Ziel dieses Projektes ist die erfolgreiche Umsetzung einer Webanwendung, die alle Prüfungen von Prüfern verwaltet. Die Prüfer sollen Fragen und mögliche Antworten eintragen können. Die Prüfungen sollen von Prüflingen durchgeführt werden und anschließend ein Ergebnis der Prüfung präsentiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Phasen des Projekts===&lt;br /&gt;
==Startphase==&lt;br /&gt;
===Ist-Zustand===&lt;br /&gt;
===Wirtschaftlichkeitsanalyse===&lt;br /&gt;
===Anwendungsfälle===&lt;br /&gt;
===Lastenheft===&lt;br /&gt;
* Beschreibung des Lastenhefts(Nicht das Lastenheft selber! Auszugsweise im Anhang!)&lt;br /&gt;
* Soll nach der MoSCoW-Methode(Must, Should, Could, Won´t) formuliert werden.&lt;br /&gt;
&lt;br /&gt;
==Entwurf==&lt;br /&gt;
&lt;br /&gt;
===Datenbank===&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|1200px]]&lt;br /&gt;
*Damit keine Redundanzen entstehen bei den Fragen, wird auf fg_fragetext ein UNIQUE KEY gesetzt.&lt;br /&gt;
*&#039;&#039;Hilft nicht 100%, da ähnliche Fragen trotzdem in die Datenbank geschrieben werden können.&#039;&#039;&lt;br /&gt;
*&#039;&#039;Macht keinen Unterschied, ob die Frage Groß- oder kleingeschrieben ist. Ist die Frage identisch, wird sie verworfen.&#039;&#039;&lt;br /&gt;
*Ebenfalls UNIQUE KEY gesetzt:&lt;br /&gt;
**fg_fachgebiet&lt;br /&gt;
**pr_titel&lt;br /&gt;
**tn_username&lt;br /&gt;
**ro_rolle&lt;br /&gt;
**gr_gruppe&lt;br /&gt;
**sc_level&lt;br /&gt;
**fa_frageart&lt;br /&gt;
&lt;br /&gt;
===Benutzeroberfläche===&lt;br /&gt;
&lt;br /&gt;
===Funktionen===&lt;br /&gt;
&lt;br /&gt;
===Pflichtenheft===&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Kurze Beschreibung des Pflichtenhefts(Nicht das Pflichtenheft selber, höchstens Auszüge davon im Anhang!&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Implementierungsphase==&lt;br /&gt;
===Erstellung der Datenbank===&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE c8testtool;&lt;br /&gt;
 USE c8testtool;&lt;br /&gt;
&lt;br /&gt;
Fragentabelle erstellen mit Primärschlüssel und NOT NULL auf Fragetext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE fragen (fr_id INT AUTO_INCREMENT PRIMARY KEY, fr_fragetext TEXT NOT NULL, fr_th_id INT, fr_sc_id INT, fr_fa_id INT, fr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Antworttabelle erstellen mit Primärschlüssel und UNIQUE-Index auf Antworttext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE antworten (an_id INT AUTO_INCREMENT PRIMARY KEY, an_antworttext TEXT UNIQUE, an_fr_id int, an_richtig boolean, an_delete boolean);&lt;br /&gt;
&lt;br /&gt;
Im Nachhinein Beziehung aufsetzen zwischen Antworten und Fragen. Jede Frage hat mehrere Antworten, jede Antwort gehört zu einer Frage. Einsetzen der Lösch- und Änderungsweitergabe.&lt;br /&gt;
&lt;br /&gt;
 ALTER TABLE antworten ADD FOREIGN KEY(an_fr_id) REFERENCES fragen(fr_id) ON DELETE CASCADE ON UPDATE CASCADE;&lt;br /&gt;
&lt;br /&gt;
Im Nachhinein einen UNIQUE-KEY aufsetzen auf &#039;&#039;fr_fragetext&#039;&#039; in &#039;&#039;Fragen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 ALTER TABLE fragen ADD UNIQUE KEY(fr_fragetext);&lt;br /&gt;
&lt;br /&gt;
Leider führt dies zu einem Fehler:&lt;br /&gt;
&lt;br /&gt;
 ERROR 1170:BLOB/TEXT column &#039;fr_fragetext&#039; used in key specification without a key length&lt;br /&gt;
&lt;br /&gt;
Grund: MySQL indiziert nur eine bestimmte, feste Anzahl an Zeichen&lt;br /&gt;
&lt;br /&gt;
===Implementierung der Entitäten===&lt;br /&gt;
===Implementierung der Programmierlogik===&lt;br /&gt;
===Testphase===&lt;br /&gt;
==Abschlussphase==&lt;br /&gt;
&lt;br /&gt;
===Abnahme===&lt;br /&gt;
&lt;br /&gt;
===Einführung===&lt;br /&gt;
&lt;br /&gt;
===Dokumentation===&lt;br /&gt;
&lt;br /&gt;
==Fazit==&lt;br /&gt;
&lt;br /&gt;
===Soll/Ist-Vergleich===&lt;br /&gt;
&lt;br /&gt;
===Ausblick/Verbesserungen===&lt;br /&gt;
&lt;br /&gt;
==Quellen==&lt;br /&gt;
&lt;br /&gt;
=Anhang=&lt;br /&gt;
*Auszug aus dem Lastenheft&lt;br /&gt;
*Auszug aus dem Pflichtenheft&lt;br /&gt;
*ER-Modell&lt;br /&gt;
[[Datei:er-modell_testtool.png|750px]]&lt;br /&gt;
*Tabellenmodell&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|750px]]&lt;br /&gt;
*Use-Case-Szenarien&lt;br /&gt;
*Use-Case-Diagramm&lt;br /&gt;
*Aktivitätsdiagramm&lt;br /&gt;
*Auszug aus der Funktion &amp;quot;Bewerten einer Prüfung&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Formalien ==&lt;br /&gt;
=== Deckblatt ===&lt;br /&gt;
*Projektbezeichnung: Datenbankbasierte Webanwendung zur Verwaltung und Durchführung von Prüfungen&lt;br /&gt;
*Namen und Vornamen: Rogers, Alexander&lt;br /&gt;
*Prüfungsausschuss&lt;br /&gt;
*Ausbildungsberuf: Fachinformatiker Anwendungsentwicklung&lt;br /&gt;
*Ausbildungsstätte bzw. Praktikumsbetrieb: itw gGmbH, Groninger Straße 25, 13347 Berlin bzw. Dirk Wagner Berlin, Carstennstraße 6, 12205 Berlin&lt;br /&gt;
&lt;br /&gt;
===Eidesstattliche Erklärung===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Abkürzungsverzeichnis===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekt:TestTool]]&lt;/div&gt;</summary>
		<author><name>Alexanderrogers</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=17993</id>
		<title>TestTool/Dokumentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=17993"/>
		<updated>2020-11-04T13:04:13Z</updated>

		<summary type="html">&lt;p&gt;Alexanderrogers: /* Anhang */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projektdokumentation zur Webanwendung&lt;br /&gt;
&lt;br /&gt;
=Einleitung=&lt;br /&gt;
In dieser Projektdokumentation wird der Ablauf des Abschlussprojektes erläutert, das der Autor im Rahmen seiner Abschlussprüfung zum Fachinformatiker für Anwendungsentwicklung durchführt.&lt;br /&gt;
&lt;br /&gt;
==Projektbeschreibung==&lt;br /&gt;
Für die Dirk Wagner Berlin soll eine Webanwendung mit HTML und PHP entwickelt werden. Diese Webanwendung soll bestimmte Anforderungen erfüllen, die das Erstellen von Prüfungen erleichtern sollen.&lt;br /&gt;
==Projektziel==&lt;br /&gt;
Das Ziel dieses Projektes ist die erfolgreiche Umsetzung einer Webanwendung, die alle Prüfungen von Prüfern verwaltet. Die Prüfer sollen Fragen und mögliche Antworten eintragen können. Die Prüfungen sollen von Prüflingen durchgeführt werden und anschließend ein Ergebnis der Prüfung präsentiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Phasen des Projekts===&lt;br /&gt;
==Startphase==&lt;br /&gt;
===Ist-Zustand===&lt;br /&gt;
===Wirtschaftlichkeitsanalyse===&lt;br /&gt;
===Anwendungsfälle===&lt;br /&gt;
===Lastenheft===&lt;br /&gt;
* Beschreibung des Lastenhefts(Nicht das Lastenheft selber! Auszugsweise im Anhang!)&lt;br /&gt;
* Soll nach der MoSCoW-Methode(Must, Should, Could, Won´t) formuliert werden.&lt;br /&gt;
&lt;br /&gt;
==Entwurf==&lt;br /&gt;
&lt;br /&gt;
===Datenbank===&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|1200px]]&lt;br /&gt;
*Damit keine Redundanzen entstehen bei den Fragen, wird auf fg_fragetext ein UNIQUE KEY gesetzt.&lt;br /&gt;
*&#039;&#039;Hilft nicht 100%, da ähnliche Fragen trotzdem in die Datenbank geschrieben werden können.&#039;&#039;&lt;br /&gt;
*&#039;&#039;Macht keinen Unterschied, ob die Frage Groß- oder kleingeschrieben ist. Ist die Frage identisch, wird sie verworfen.&#039;&#039;&lt;br /&gt;
*Ebenfalls UNIQUE KEY gesetzt:&lt;br /&gt;
**fg_fachgebiet&lt;br /&gt;
**pr_titel&lt;br /&gt;
**tn_username&lt;br /&gt;
**ro_rolle&lt;br /&gt;
**gr_gruppe&lt;br /&gt;
**sc_level&lt;br /&gt;
**fa_frageart&lt;br /&gt;
&lt;br /&gt;
===Benutzeroberfläche===&lt;br /&gt;
&lt;br /&gt;
===Funktionen===&lt;br /&gt;
&lt;br /&gt;
===Pflichtenheft===&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Kurze Beschreibung des Pflichtenhefts(Nicht das Pflichtenheft selber, höchstens Auszüge davon im Anhang!&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Implementierungsphase==&lt;br /&gt;
===Erstellung der Datenbank===&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE c8testtool;&lt;br /&gt;
 USE c8testtool;&lt;br /&gt;
&lt;br /&gt;
Fragentabelle erstellen mit Primärschlüssel und NOT NULL auf Fragetext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE fragen (fr_id INT AUTO_INCREMENT PRIMARY KEY, fr_fragetext TEXT NOT NULL, fr_th_id INT, fr_sc_id INT, fr_fa_id INT, fr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Antworttabelle erstellen mit Primärschlüssel und UNIQUE-Index auf Antworttext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE antworten (an_id INT AUTO_INCREMENT PRIMARY KEY, an_antworttext TEXT UNIQUE, an_fr_id int, an_richtig boolean, an_delete boolean);&lt;br /&gt;
&lt;br /&gt;
Im Nachhinein Beziehung aufsetzen zwischen Antworten und Fragen. Jede Frage hat mehrere Antworten, jede Antwort gehört zu einer Frage. Einsetzen der Lösch- und Änderungsweitergabe.&lt;br /&gt;
&lt;br /&gt;
 ALTER TABLE antworten ADD FOREIGN KEY(an_fr_id) REFERENCES fragen(fr_id) ON DELETE CASCADE ON UPDATE CASCADE;&lt;br /&gt;
&lt;br /&gt;
Im Nachhinein einen UNIQUE-KEY aufsetzen auf &#039;&#039;fr_fragetext&#039;&#039; in &#039;&#039;Fragen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 ALTER TABLE fragen ADD UNIQUE KEY(fr_fragetext);&lt;br /&gt;
&lt;br /&gt;
Leider führt dies zu einem Fehler:&lt;br /&gt;
&lt;br /&gt;
 ERROR 1170:BLOB/TEXT column &#039;fr_fragetext&#039; used in key specification without a key length&lt;br /&gt;
&lt;br /&gt;
Grund: MySQL indiziert nur eine bestimmte, feste Anzahl an Zeichen&lt;br /&gt;
&lt;br /&gt;
===Implementierung der Entitäten===&lt;br /&gt;
===Implementierung der Programmierlogik===&lt;br /&gt;
===Testphase===&lt;br /&gt;
==Abschlussphase==&lt;br /&gt;
&lt;br /&gt;
===Abnahme===&lt;br /&gt;
&lt;br /&gt;
===Einführung===&lt;br /&gt;
&lt;br /&gt;
===Dokumentation===&lt;br /&gt;
&lt;br /&gt;
==Fazit==&lt;br /&gt;
&lt;br /&gt;
===Soll/Ist-Vergleich===&lt;br /&gt;
&lt;br /&gt;
===Ausblick/Verbesserungen===&lt;br /&gt;
&lt;br /&gt;
==Quellen==&lt;br /&gt;
&lt;br /&gt;
=Anhang=&lt;br /&gt;
#Auszug aus dem Lastenheft&lt;br /&gt;
#Auszug aus dem Pflichtenheft&lt;br /&gt;
#ER-Modell&lt;br /&gt;
[[Datei:er-modell_testtool.png|750px]]&lt;br /&gt;
#Tabellenmodell&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|750px]]&lt;br /&gt;
#Use-Case-Szenarien&lt;br /&gt;
#Use-Case-Diagramm&lt;br /&gt;
#Aktivitätsdiagramm&lt;br /&gt;
#Auszug aus der Funktion &amp;quot;Bewerten einer Prüfung&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Formalien ==&lt;br /&gt;
=== Deckblatt ===&lt;br /&gt;
*Projektbezeichnung: Datenbankbasierte Webanwendung zur Verwaltung und Durchführung von Prüfungen&lt;br /&gt;
*Namen und Vornamen: Rogers, Alexander&lt;br /&gt;
*Prüfungsausschuss&lt;br /&gt;
*Ausbildungsberuf: Fachinformatiker Anwendungsentwicklung&lt;br /&gt;
*Ausbildungsstätte bzw. Praktikumsbetrieb: itw gGmbH, Groninger Straße 25, 13347 Berlin bzw. Dirk Wagner Berlin, Carstennstraße 6, 12205 Berlin&lt;br /&gt;
&lt;br /&gt;
===Eidesstattliche Erklärung===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Abkürzungsverzeichnis===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekt:TestTool]]&lt;/div&gt;</summary>
		<author><name>Alexanderrogers</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=17992</id>
		<title>TestTool/Dokumentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=17992"/>
		<updated>2020-11-04T13:02:54Z</updated>

		<summary type="html">&lt;p&gt;Alexanderrogers: /* Anhang */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projektdokumentation zur Webanwendung&lt;br /&gt;
&lt;br /&gt;
=Einleitung=&lt;br /&gt;
In dieser Projektdokumentation wird der Ablauf des Abschlussprojektes erläutert, das der Autor im Rahmen seiner Abschlussprüfung zum Fachinformatiker für Anwendungsentwicklung durchführt.&lt;br /&gt;
&lt;br /&gt;
==Projektbeschreibung==&lt;br /&gt;
Für die Dirk Wagner Berlin soll eine Webanwendung mit HTML und PHP entwickelt werden. Diese Webanwendung soll bestimmte Anforderungen erfüllen, die das Erstellen von Prüfungen erleichtern sollen.&lt;br /&gt;
==Projektziel==&lt;br /&gt;
Das Ziel dieses Projektes ist die erfolgreiche Umsetzung einer Webanwendung, die alle Prüfungen von Prüfern verwaltet. Die Prüfer sollen Fragen und mögliche Antworten eintragen können. Die Prüfungen sollen von Prüflingen durchgeführt werden und anschließend ein Ergebnis der Prüfung präsentiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Phasen des Projekts===&lt;br /&gt;
==Startphase==&lt;br /&gt;
===Ist-Zustand===&lt;br /&gt;
===Wirtschaftlichkeitsanalyse===&lt;br /&gt;
===Anwendungsfälle===&lt;br /&gt;
===Lastenheft===&lt;br /&gt;
* Beschreibung des Lastenhefts(Nicht das Lastenheft selber! Auszugsweise im Anhang!)&lt;br /&gt;
* Soll nach der MoSCoW-Methode(Must, Should, Could, Won´t) formuliert werden.&lt;br /&gt;
&lt;br /&gt;
==Entwurf==&lt;br /&gt;
&lt;br /&gt;
===Datenbank===&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|1200px]]&lt;br /&gt;
*Damit keine Redundanzen entstehen bei den Fragen, wird auf fg_fragetext ein UNIQUE KEY gesetzt.&lt;br /&gt;
*&#039;&#039;Hilft nicht 100%, da ähnliche Fragen trotzdem in die Datenbank geschrieben werden können.&#039;&#039;&lt;br /&gt;
*&#039;&#039;Macht keinen Unterschied, ob die Frage Groß- oder kleingeschrieben ist. Ist die Frage identisch, wird sie verworfen.&#039;&#039;&lt;br /&gt;
*Ebenfalls UNIQUE KEY gesetzt:&lt;br /&gt;
**fg_fachgebiet&lt;br /&gt;
**pr_titel&lt;br /&gt;
**tn_username&lt;br /&gt;
**ro_rolle&lt;br /&gt;
**gr_gruppe&lt;br /&gt;
**sc_level&lt;br /&gt;
**fa_frageart&lt;br /&gt;
&lt;br /&gt;
===Benutzeroberfläche===&lt;br /&gt;
&lt;br /&gt;
===Funktionen===&lt;br /&gt;
&lt;br /&gt;
===Pflichtenheft===&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Kurze Beschreibung des Pflichtenhefts(Nicht das Pflichtenheft selber, höchstens Auszüge davon im Anhang!&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Implementierungsphase==&lt;br /&gt;
===Erstellung der Datenbank===&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE c8testtool;&lt;br /&gt;
 USE c8testtool;&lt;br /&gt;
&lt;br /&gt;
Fragentabelle erstellen mit Primärschlüssel und NOT NULL auf Fragetext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE fragen (fr_id INT AUTO_INCREMENT PRIMARY KEY, fr_fragetext TEXT NOT NULL, fr_th_id INT, fr_sc_id INT, fr_fa_id INT, fr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Antworttabelle erstellen mit Primärschlüssel und UNIQUE-Index auf Antworttext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE antworten (an_id INT AUTO_INCREMENT PRIMARY KEY, an_antworttext TEXT UNIQUE, an_fr_id int, an_richtig boolean, an_delete boolean);&lt;br /&gt;
&lt;br /&gt;
Im Nachhinein Beziehung aufsetzen zwischen Antworten und Fragen. Jede Frage hat mehrere Antworten, jede Antwort gehört zu einer Frage. Einsetzen der Lösch- und Änderungsweitergabe.&lt;br /&gt;
&lt;br /&gt;
 ALTER TABLE antworten ADD FOREIGN KEY(an_fr_id) REFERENCES fragen(fr_id) ON DELETE CASCADE ON UPDATE CASCADE;&lt;br /&gt;
&lt;br /&gt;
Im Nachhinein einen UNIQUE-KEY aufsetzen auf &#039;&#039;fr_fragetext&#039;&#039; in &#039;&#039;Fragen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 ALTER TABLE fragen ADD UNIQUE KEY(fr_fragetext);&lt;br /&gt;
&lt;br /&gt;
Leider führt dies zu einem Fehler:&lt;br /&gt;
&lt;br /&gt;
 ERROR 1170:BLOB/TEXT column &#039;fr_fragetext&#039; used in key specification without a key length&lt;br /&gt;
&lt;br /&gt;
Grund: MySQL indiziert nur eine bestimmte, feste Anzahl an Zeichen&lt;br /&gt;
&lt;br /&gt;
===Implementierung der Entitäten===&lt;br /&gt;
===Implementierung der Programmierlogik===&lt;br /&gt;
===Testphase===&lt;br /&gt;
==Abschlussphase==&lt;br /&gt;
&lt;br /&gt;
===Abnahme===&lt;br /&gt;
&lt;br /&gt;
===Einführung===&lt;br /&gt;
&lt;br /&gt;
===Dokumentation===&lt;br /&gt;
&lt;br /&gt;
==Fazit==&lt;br /&gt;
&lt;br /&gt;
===Soll/Ist-Vergleich===&lt;br /&gt;
&lt;br /&gt;
===Ausblick/Verbesserungen===&lt;br /&gt;
&lt;br /&gt;
==Quellen==&lt;br /&gt;
&lt;br /&gt;
=Anhang=&lt;br /&gt;
#Auszug aus dem Lastenheft&lt;br /&gt;
#Auszug aus dem Pflichtenheft&lt;br /&gt;
#ER-Modell&lt;br /&gt;
[[Datei:er-modell_testtool.png|1000px]]&lt;br /&gt;
#Tabellemodell&lt;br /&gt;
#Use-Case-Szenarien&lt;br /&gt;
#Use-Case-Diagramm&lt;br /&gt;
#Aktivitätsdiagramm&lt;br /&gt;
#Auszug aus der Funktion &amp;quot;Bewerten einer Prüfung&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Formalien ==&lt;br /&gt;
=== Deckblatt ===&lt;br /&gt;
*Projektbezeichnung: Datenbankbasierte Webanwendung zur Verwaltung und Durchführung von Prüfungen&lt;br /&gt;
*Namen und Vornamen: Rogers, Alexander&lt;br /&gt;
*Prüfungsausschuss&lt;br /&gt;
*Ausbildungsberuf: Fachinformatiker Anwendungsentwicklung&lt;br /&gt;
*Ausbildungsstätte bzw. Praktikumsbetrieb: itw gGmbH, Groninger Straße 25, 13347 Berlin bzw. Dirk Wagner Berlin, Carstennstraße 6, 12205 Berlin&lt;br /&gt;
&lt;br /&gt;
===Eidesstattliche Erklärung===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Abkürzungsverzeichnis===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekt:TestTool]]&lt;/div&gt;</summary>
		<author><name>Alexanderrogers</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=17991</id>
		<title>TestTool/Dokumentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=17991"/>
		<updated>2020-11-04T13:02:24Z</updated>

		<summary type="html">&lt;p&gt;Alexanderrogers: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projektdokumentation zur Webanwendung&lt;br /&gt;
&lt;br /&gt;
=Einleitung=&lt;br /&gt;
In dieser Projektdokumentation wird der Ablauf des Abschlussprojektes erläutert, das der Autor im Rahmen seiner Abschlussprüfung zum Fachinformatiker für Anwendungsentwicklung durchführt.&lt;br /&gt;
&lt;br /&gt;
==Projektbeschreibung==&lt;br /&gt;
Für die Dirk Wagner Berlin soll eine Webanwendung mit HTML und PHP entwickelt werden. Diese Webanwendung soll bestimmte Anforderungen erfüllen, die das Erstellen von Prüfungen erleichtern sollen.&lt;br /&gt;
==Projektziel==&lt;br /&gt;
Das Ziel dieses Projektes ist die erfolgreiche Umsetzung einer Webanwendung, die alle Prüfungen von Prüfern verwaltet. Die Prüfer sollen Fragen und mögliche Antworten eintragen können. Die Prüfungen sollen von Prüflingen durchgeführt werden und anschließend ein Ergebnis der Prüfung präsentiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Phasen des Projekts===&lt;br /&gt;
==Startphase==&lt;br /&gt;
===Ist-Zustand===&lt;br /&gt;
===Wirtschaftlichkeitsanalyse===&lt;br /&gt;
===Anwendungsfälle===&lt;br /&gt;
===Lastenheft===&lt;br /&gt;
* Beschreibung des Lastenhefts(Nicht das Lastenheft selber! Auszugsweise im Anhang!)&lt;br /&gt;
* Soll nach der MoSCoW-Methode(Must, Should, Could, Won´t) formuliert werden.&lt;br /&gt;
&lt;br /&gt;
==Entwurf==&lt;br /&gt;
&lt;br /&gt;
===Datenbank===&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|1200px]]&lt;br /&gt;
*Damit keine Redundanzen entstehen bei den Fragen, wird auf fg_fragetext ein UNIQUE KEY gesetzt.&lt;br /&gt;
*&#039;&#039;Hilft nicht 100%, da ähnliche Fragen trotzdem in die Datenbank geschrieben werden können.&#039;&#039;&lt;br /&gt;
*&#039;&#039;Macht keinen Unterschied, ob die Frage Groß- oder kleingeschrieben ist. Ist die Frage identisch, wird sie verworfen.&#039;&#039;&lt;br /&gt;
*Ebenfalls UNIQUE KEY gesetzt:&lt;br /&gt;
**fg_fachgebiet&lt;br /&gt;
**pr_titel&lt;br /&gt;
**tn_username&lt;br /&gt;
**ro_rolle&lt;br /&gt;
**gr_gruppe&lt;br /&gt;
**sc_level&lt;br /&gt;
**fa_frageart&lt;br /&gt;
&lt;br /&gt;
===Benutzeroberfläche===&lt;br /&gt;
&lt;br /&gt;
===Funktionen===&lt;br /&gt;
&lt;br /&gt;
===Pflichtenheft===&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Kurze Beschreibung des Pflichtenhefts(Nicht das Pflichtenheft selber, höchstens Auszüge davon im Anhang!&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Implementierungsphase==&lt;br /&gt;
===Erstellung der Datenbank===&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE c8testtool;&lt;br /&gt;
 USE c8testtool;&lt;br /&gt;
&lt;br /&gt;
Fragentabelle erstellen mit Primärschlüssel und NOT NULL auf Fragetext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE fragen (fr_id INT AUTO_INCREMENT PRIMARY KEY, fr_fragetext TEXT NOT NULL, fr_th_id INT, fr_sc_id INT, fr_fa_id INT, fr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Antworttabelle erstellen mit Primärschlüssel und UNIQUE-Index auf Antworttext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE antworten (an_id INT AUTO_INCREMENT PRIMARY KEY, an_antworttext TEXT UNIQUE, an_fr_id int, an_richtig boolean, an_delete boolean);&lt;br /&gt;
&lt;br /&gt;
Im Nachhinein Beziehung aufsetzen zwischen Antworten und Fragen. Jede Frage hat mehrere Antworten, jede Antwort gehört zu einer Frage. Einsetzen der Lösch- und Änderungsweitergabe.&lt;br /&gt;
&lt;br /&gt;
 ALTER TABLE antworten ADD FOREIGN KEY(an_fr_id) REFERENCES fragen(fr_id) ON DELETE CASCADE ON UPDATE CASCADE;&lt;br /&gt;
&lt;br /&gt;
Im Nachhinein einen UNIQUE-KEY aufsetzen auf &#039;&#039;fr_fragetext&#039;&#039; in &#039;&#039;Fragen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 ALTER TABLE fragen ADD UNIQUE KEY(fr_fragetext);&lt;br /&gt;
&lt;br /&gt;
Leider führt dies zu einem Fehler:&lt;br /&gt;
&lt;br /&gt;
 ERROR 1170:BLOB/TEXT column &#039;fr_fragetext&#039; used in key specification without a key length&lt;br /&gt;
&lt;br /&gt;
Grund: MySQL indiziert nur eine bestimmte, feste Anzahl an Zeichen&lt;br /&gt;
&lt;br /&gt;
===Implementierung der Entitäten===&lt;br /&gt;
===Implementierung der Programmierlogik===&lt;br /&gt;
===Testphase===&lt;br /&gt;
==Abschlussphase==&lt;br /&gt;
&lt;br /&gt;
===Abnahme===&lt;br /&gt;
&lt;br /&gt;
===Einführung===&lt;br /&gt;
&lt;br /&gt;
===Dokumentation===&lt;br /&gt;
&lt;br /&gt;
==Fazit==&lt;br /&gt;
&lt;br /&gt;
===Soll/Ist-Vergleich===&lt;br /&gt;
&lt;br /&gt;
===Ausblick/Verbesserungen===&lt;br /&gt;
&lt;br /&gt;
==Quellen==&lt;br /&gt;
&lt;br /&gt;
=Anhang=&lt;br /&gt;
#Auszug aus dem Lastenheft&lt;br /&gt;
#Auszug aus dem Pflichtenheft&lt;br /&gt;
#ER-Modell&lt;br /&gt;
[Datei:er-modell_testtool.png|1000px]&lt;br /&gt;
#Tabellemodell&lt;br /&gt;
#Use-Case-Szenarien&lt;br /&gt;
#Use-Case-Diagramm&lt;br /&gt;
#Aktivitätsdiagramm&lt;br /&gt;
#Auszug aus der Funktion &amp;quot;Bewerten einer Prüfung&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Formalien ==&lt;br /&gt;
=== Deckblatt ===&lt;br /&gt;
*Projektbezeichnung: Datenbankbasierte Webanwendung zur Verwaltung und Durchführung von Prüfungen&lt;br /&gt;
*Namen und Vornamen: Rogers, Alexander&lt;br /&gt;
*Prüfungsausschuss&lt;br /&gt;
*Ausbildungsberuf: Fachinformatiker Anwendungsentwicklung&lt;br /&gt;
*Ausbildungsstätte bzw. Praktikumsbetrieb: itw gGmbH, Groninger Straße 25, 13347 Berlin bzw. Dirk Wagner Berlin, Carstennstraße 6, 12205 Berlin&lt;br /&gt;
&lt;br /&gt;
===Eidesstattliche Erklärung===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Abkürzungsverzeichnis===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekt:TestTool]]&lt;/div&gt;</summary>
		<author><name>Alexanderrogers</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=17990</id>
		<title>TestTool/Dokumentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=17990"/>
		<updated>2020-11-04T13:01:20Z</updated>

		<summary type="html">&lt;p&gt;Alexanderrogers: /* Anhang */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projektdokumentation zur Webanwendung&lt;br /&gt;
&lt;br /&gt;
=Einleitung=&lt;br /&gt;
In dieser Projektdokumentation wird der Ablauf des Abschlussprojektes erläutert, das der Autor im Rahmen seiner Abschlussprüfung zum Fachinformatiker für Anwendungsentwicklung durchführt.&lt;br /&gt;
&lt;br /&gt;
==Projektbeschreibung==&lt;br /&gt;
Für die Dirk Wagner Berlin soll eine Webanwendung mit HTML und PHP entwickelt werden. Diese Webanwendung soll bestimmte Anforderungen erfüllen, die das Erstellen von Prüfungen erleichtern sollen.&lt;br /&gt;
==Projektziel==&lt;br /&gt;
Das Ziel dieses Projektes ist die erfolgreiche Umsetzung einer Webanwendung, die alle Prüfungen von Prüfern verwaltet. Die Prüfer sollen Fragen und mögliche Antworten eintragen können. Die Prüfungen sollen von Prüflingen durchgeführt werden und anschließend ein Ergebnis der Prüfung präsentiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Phasen des Projekts===&lt;br /&gt;
==Startphase==&lt;br /&gt;
===Ist-Zustand===&lt;br /&gt;
===Wirtschaftlichkeitsanalyse===&lt;br /&gt;
===Anwendungsfälle===&lt;br /&gt;
===Lastenheft===&lt;br /&gt;
* Beschreibung des Lastenhefts(Nicht das Lastenheft selber! Auszugsweise im Anhang!)&lt;br /&gt;
* Soll nach der MoSCoW-Methode(Must, Should, Could, Won´t) formuliert werden.&lt;br /&gt;
&lt;br /&gt;
==Entwurf==&lt;br /&gt;
&lt;br /&gt;
===Datenbank===&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|1200px]]&lt;br /&gt;
*Damit keine Redundanzen entstehen bei den Fragen, wird auf fg_fragetext ein UNIQUE KEY gesetzt.&lt;br /&gt;
*&#039;&#039;Hilft nicht 100%, da ähnliche Fragen trotzdem in die Datenbank geschrieben werden können.&#039;&#039;&lt;br /&gt;
*&#039;&#039;Macht keinen Unterschied, ob die Frage Groß- oder kleingeschrieben ist. Ist die Frage identisch, wird sie verworfen.&#039;&#039;&lt;br /&gt;
*Ebenfalls UNIQUE KEY gesetzt:&lt;br /&gt;
**fg_fachgebiet&lt;br /&gt;
**pr_titel&lt;br /&gt;
**tn_username&lt;br /&gt;
**ro_rolle&lt;br /&gt;
**gr_gruppe&lt;br /&gt;
**sc_level&lt;br /&gt;
**fa_frageart&lt;br /&gt;
&lt;br /&gt;
===Benutzeroberfläche===&lt;br /&gt;
&lt;br /&gt;
===Funktionen===&lt;br /&gt;
&lt;br /&gt;
===Pflichtenheft===&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Kurze Beschreibung des Pflichtenhefts(Nicht das Pflichtenheft selber, höchstens Auszüge davon im Anhang!&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Implementierungsphase==&lt;br /&gt;
===Erstellung der Datenbank===&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE c8testtool;&lt;br /&gt;
 USE c8testtool;&lt;br /&gt;
&lt;br /&gt;
Fragentabelle erstellen mit Primärschlüssel und NOT NULL auf Fragetext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE fragen (fr_id INT AUTO_INCREMENT PRIMARY KEY, fr_fragetext TEXT NOT NULL, fr_th_id INT, fr_sc_id INT, fr_fa_id INT, fr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Antworttabelle erstellen mit Primärschlüssel und UNIQUE-Index auf Antworttext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE antworten (an_id INT AUTO_INCREMENT PRIMARY KEY, an_antworttext TEXT UNIQUE, an_fr_id int, an_richtig boolean, an_delete boolean);&lt;br /&gt;
&lt;br /&gt;
Im Nachhinein Beziehung aufsetzen zwischen Antworten und Fragen. Jede Frage hat mehrere Antworten, jede Antwort gehört zu einer Frage. Einsetzen der Lösch- und Änderungsweitergabe.&lt;br /&gt;
&lt;br /&gt;
 ALTER TABLE antworten ADD FOREIGN KEY(an_fr_id) REFERENCES fragen(fr_id) ON DELETE CASCADE ON UPDATE CASCADE;&lt;br /&gt;
&lt;br /&gt;
Im Nachhinein einen UNIQUE-KEY aufsetzen auf &#039;&#039;fr_fragetext&#039;&#039; in &#039;&#039;Fragen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 ALTER TABLE fragen ADD UNIQUE KEY(fr_fragetext);&lt;br /&gt;
&lt;br /&gt;
Leider führt dies zu einem Fehler:&lt;br /&gt;
&lt;br /&gt;
 ERROR 1170:BLOB/TEXT column &#039;fr_fragetext&#039; used in key specification without a key length&lt;br /&gt;
&lt;br /&gt;
Grund: MySQL indiziert nur eine bestimmte, feste Anzahl an Zeichen&lt;br /&gt;
&lt;br /&gt;
===Implementierung der Entitäten===&lt;br /&gt;
===Implementierung der Programmierlogik===&lt;br /&gt;
===Testphase===&lt;br /&gt;
==Abschlussphase==&lt;br /&gt;
&lt;br /&gt;
===Abnahme===&lt;br /&gt;
&lt;br /&gt;
===Einführung===&lt;br /&gt;
&lt;br /&gt;
===Dokumentation===&lt;br /&gt;
&lt;br /&gt;
==Fazit==&lt;br /&gt;
&lt;br /&gt;
===Soll/Ist-Vergleich===&lt;br /&gt;
&lt;br /&gt;
===Ausblick/Verbesserungen===&lt;br /&gt;
&lt;br /&gt;
==Quellen==&lt;br /&gt;
&lt;br /&gt;
=Anhang=&lt;br /&gt;
#Auszug aus dem Lastenheft&lt;br /&gt;
#Auszug aus dem Pflichtenheft&lt;br /&gt;
#ER-Modell&lt;br /&gt;
#Tabellemodell&lt;br /&gt;
#Use-Case-Szenarien&lt;br /&gt;
#Use-Case-Diagramm&lt;br /&gt;
#Aktivitätsdiagramm&lt;br /&gt;
#Auszug aus der Funktion &amp;quot;Bewerten einer Prüfung&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Formalien ==&lt;br /&gt;
=== Deckblatt ===&lt;br /&gt;
*Projektbezeichnung: Datenbankbasierte Webanwendung zur Verwaltung und Durchführung von Prüfungen&lt;br /&gt;
*Namen und Vornamen: Rogers, Alexander&lt;br /&gt;
*Prüfungsausschuss&lt;br /&gt;
*Ausbildungsberuf: Fachinformatiker Anwendungsentwicklung&lt;br /&gt;
*Ausbildungsstätte bzw. Praktikumsbetrieb: itw gGmbH, Groninger Straße 25, 13347 Berlin bzw. Dirk Wagner Berlin, Carstennstraße 6, 12205 Berlin&lt;br /&gt;
&lt;br /&gt;
===Eidesstattliche Erklärung===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Abkürzungsverzeichnis===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekt:TestTool]]&lt;/div&gt;</summary>
		<author><name>Alexanderrogers</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=17989</id>
		<title>TestTool/Dokumentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=17989"/>
		<updated>2020-11-04T13:00:40Z</updated>

		<summary type="html">&lt;p&gt;Alexanderrogers: /* Datenbank */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projektdokumentation zur Webanwendung&lt;br /&gt;
&lt;br /&gt;
=Einleitung=&lt;br /&gt;
In dieser Projektdokumentation wird der Ablauf des Abschlussprojektes erläutert, das der Autor im Rahmen seiner Abschlussprüfung zum Fachinformatiker für Anwendungsentwicklung durchführt.&lt;br /&gt;
&lt;br /&gt;
==Projektbeschreibung==&lt;br /&gt;
Für die Dirk Wagner Berlin soll eine Webanwendung mit HTML und PHP entwickelt werden. Diese Webanwendung soll bestimmte Anforderungen erfüllen, die das Erstellen von Prüfungen erleichtern sollen.&lt;br /&gt;
==Projektziel==&lt;br /&gt;
Das Ziel dieses Projektes ist die erfolgreiche Umsetzung einer Webanwendung, die alle Prüfungen von Prüfern verwaltet. Die Prüfer sollen Fragen und mögliche Antworten eintragen können. Die Prüfungen sollen von Prüflingen durchgeführt werden und anschließend ein Ergebnis der Prüfung präsentiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Phasen des Projekts===&lt;br /&gt;
==Startphase==&lt;br /&gt;
===Ist-Zustand===&lt;br /&gt;
===Wirtschaftlichkeitsanalyse===&lt;br /&gt;
===Anwendungsfälle===&lt;br /&gt;
===Lastenheft===&lt;br /&gt;
* Beschreibung des Lastenhefts(Nicht das Lastenheft selber! Auszugsweise im Anhang!)&lt;br /&gt;
* Soll nach der MoSCoW-Methode(Must, Should, Could, Won´t) formuliert werden.&lt;br /&gt;
&lt;br /&gt;
==Entwurf==&lt;br /&gt;
&lt;br /&gt;
===Datenbank===&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|1200px]]&lt;br /&gt;
*Damit keine Redundanzen entstehen bei den Fragen, wird auf fg_fragetext ein UNIQUE KEY gesetzt.&lt;br /&gt;
*&#039;&#039;Hilft nicht 100%, da ähnliche Fragen trotzdem in die Datenbank geschrieben werden können.&#039;&#039;&lt;br /&gt;
*&#039;&#039;Macht keinen Unterschied, ob die Frage Groß- oder kleingeschrieben ist. Ist die Frage identisch, wird sie verworfen.&#039;&#039;&lt;br /&gt;
*Ebenfalls UNIQUE KEY gesetzt:&lt;br /&gt;
**fg_fachgebiet&lt;br /&gt;
**pr_titel&lt;br /&gt;
**tn_username&lt;br /&gt;
**ro_rolle&lt;br /&gt;
**gr_gruppe&lt;br /&gt;
**sc_level&lt;br /&gt;
**fa_frageart&lt;br /&gt;
&lt;br /&gt;
===Benutzeroberfläche===&lt;br /&gt;
&lt;br /&gt;
===Funktionen===&lt;br /&gt;
&lt;br /&gt;
===Pflichtenheft===&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Kurze Beschreibung des Pflichtenhefts(Nicht das Pflichtenheft selber, höchstens Auszüge davon im Anhang!&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Implementierungsphase==&lt;br /&gt;
===Erstellung der Datenbank===&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE c8testtool;&lt;br /&gt;
 USE c8testtool;&lt;br /&gt;
&lt;br /&gt;
Fragentabelle erstellen mit Primärschlüssel und NOT NULL auf Fragetext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE fragen (fr_id INT AUTO_INCREMENT PRIMARY KEY, fr_fragetext TEXT NOT NULL, fr_th_id INT, fr_sc_id INT, fr_fa_id INT, fr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Antworttabelle erstellen mit Primärschlüssel und UNIQUE-Index auf Antworttext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE antworten (an_id INT AUTO_INCREMENT PRIMARY KEY, an_antworttext TEXT UNIQUE, an_fr_id int, an_richtig boolean, an_delete boolean);&lt;br /&gt;
&lt;br /&gt;
Im Nachhinein Beziehung aufsetzen zwischen Antworten und Fragen. Jede Frage hat mehrere Antworten, jede Antwort gehört zu einer Frage. Einsetzen der Lösch- und Änderungsweitergabe.&lt;br /&gt;
&lt;br /&gt;
 ALTER TABLE antworten ADD FOREIGN KEY(an_fr_id) REFERENCES fragen(fr_id) ON DELETE CASCADE ON UPDATE CASCADE;&lt;br /&gt;
&lt;br /&gt;
Im Nachhinein einen UNIQUE-KEY aufsetzen auf &#039;&#039;fr_fragetext&#039;&#039; in &#039;&#039;Fragen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 ALTER TABLE fragen ADD UNIQUE KEY(fr_fragetext);&lt;br /&gt;
&lt;br /&gt;
Leider führt dies zu einem Fehler:&lt;br /&gt;
&lt;br /&gt;
 ERROR 1170:BLOB/TEXT column &#039;fr_fragetext&#039; used in key specification without a key length&lt;br /&gt;
&lt;br /&gt;
Grund: MySQL indiziert nur eine bestimmte, feste Anzahl an Zeichen&lt;br /&gt;
&lt;br /&gt;
===Implementierung der Entitäten===&lt;br /&gt;
===Implementierung der Programmierlogik===&lt;br /&gt;
===Testphase===&lt;br /&gt;
==Abschlussphase==&lt;br /&gt;
&lt;br /&gt;
===Abnahme===&lt;br /&gt;
&lt;br /&gt;
===Einführung===&lt;br /&gt;
&lt;br /&gt;
===Dokumentation===&lt;br /&gt;
&lt;br /&gt;
==Fazit==&lt;br /&gt;
&lt;br /&gt;
===Soll/Ist-Vergleich===&lt;br /&gt;
&lt;br /&gt;
===Ausblick/Verbesserungen===&lt;br /&gt;
&lt;br /&gt;
==Quellen==&lt;br /&gt;
&lt;br /&gt;
=Anhang=&lt;br /&gt;
#Auszug aus dem Lastenheft&lt;br /&gt;
#Auszug aus dem Pflichtenheft&lt;br /&gt;
#Use-Case-Szenarien&lt;br /&gt;
#Use-Case-Diagramm&lt;br /&gt;
#Aktivitätsdiagramm&lt;br /&gt;
#Auszug aus der Funktion &amp;quot;Bewerten einer Prüfung&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Formalien ==&lt;br /&gt;
=== Deckblatt ===&lt;br /&gt;
*Projektbezeichnung: Datenbankbasierte Webanwendung zur Verwaltung und Durchführung von Prüfungen&lt;br /&gt;
*Namen und Vornamen: Rogers, Alexander&lt;br /&gt;
*Prüfungsausschuss&lt;br /&gt;
*Ausbildungsberuf: Fachinformatiker Anwendungsentwicklung&lt;br /&gt;
*Ausbildungsstätte bzw. Praktikumsbetrieb: itw gGmbH, Groninger Straße 25, 13347 Berlin bzw. Dirk Wagner Berlin, Carstennstraße 6, 12205 Berlin&lt;br /&gt;
&lt;br /&gt;
===Eidesstattliche Erklärung===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Abkürzungsverzeichnis===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekt:TestTool]]&lt;/div&gt;</summary>
		<author><name>Alexanderrogers</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=17988</id>
		<title>TestTool/Dokumentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=17988"/>
		<updated>2020-11-04T13:00:27Z</updated>

		<summary type="html">&lt;p&gt;Alexanderrogers: /* Datenbank */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projektdokumentation zur Webanwendung&lt;br /&gt;
&lt;br /&gt;
=Einleitung=&lt;br /&gt;
In dieser Projektdokumentation wird der Ablauf des Abschlussprojektes erläutert, das der Autor im Rahmen seiner Abschlussprüfung zum Fachinformatiker für Anwendungsentwicklung durchführt.&lt;br /&gt;
&lt;br /&gt;
==Projektbeschreibung==&lt;br /&gt;
Für die Dirk Wagner Berlin soll eine Webanwendung mit HTML und PHP entwickelt werden. Diese Webanwendung soll bestimmte Anforderungen erfüllen, die das Erstellen von Prüfungen erleichtern sollen.&lt;br /&gt;
==Projektziel==&lt;br /&gt;
Das Ziel dieses Projektes ist die erfolgreiche Umsetzung einer Webanwendung, die alle Prüfungen von Prüfern verwaltet. Die Prüfer sollen Fragen und mögliche Antworten eintragen können. Die Prüfungen sollen von Prüflingen durchgeführt werden und anschließend ein Ergebnis der Prüfung präsentiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Phasen des Projekts===&lt;br /&gt;
==Startphase==&lt;br /&gt;
===Ist-Zustand===&lt;br /&gt;
===Wirtschaftlichkeitsanalyse===&lt;br /&gt;
===Anwendungsfälle===&lt;br /&gt;
===Lastenheft===&lt;br /&gt;
* Beschreibung des Lastenhefts(Nicht das Lastenheft selber! Auszugsweise im Anhang!)&lt;br /&gt;
* Soll nach der MoSCoW-Methode(Must, Should, Could, Won´t) formuliert werden.&lt;br /&gt;
&lt;br /&gt;
==Entwurf==&lt;br /&gt;
&lt;br /&gt;
===Datenbank===&lt;br /&gt;
[[Datei:tabellenmodell_testtool.png|1000px]]&lt;br /&gt;
*Damit keine Redundanzen entstehen bei den Fragen, wird auf fg_fragetext ein UNIQUE KEY gesetzt.&lt;br /&gt;
*&#039;&#039;Hilft nicht 100%, da ähnliche Fragen trotzdem in die Datenbank geschrieben werden können.&#039;&#039;&lt;br /&gt;
*&#039;&#039;Macht keinen Unterschied, ob die Frage Groß- oder kleingeschrieben ist. Ist die Frage identisch, wird sie verworfen.&#039;&#039;&lt;br /&gt;
*Ebenfalls UNIQUE KEY gesetzt:&lt;br /&gt;
**fg_fachgebiet&lt;br /&gt;
**pr_titel&lt;br /&gt;
**tn_username&lt;br /&gt;
**ro_rolle&lt;br /&gt;
**gr_gruppe&lt;br /&gt;
**sc_level&lt;br /&gt;
**fa_frageart&lt;br /&gt;
&lt;br /&gt;
===Benutzeroberfläche===&lt;br /&gt;
&lt;br /&gt;
===Funktionen===&lt;br /&gt;
&lt;br /&gt;
===Pflichtenheft===&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Kurze Beschreibung des Pflichtenhefts(Nicht das Pflichtenheft selber, höchstens Auszüge davon im Anhang!&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Implementierungsphase==&lt;br /&gt;
===Erstellung der Datenbank===&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE c8testtool;&lt;br /&gt;
 USE c8testtool;&lt;br /&gt;
&lt;br /&gt;
Fragentabelle erstellen mit Primärschlüssel und NOT NULL auf Fragetext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE fragen (fr_id INT AUTO_INCREMENT PRIMARY KEY, fr_fragetext TEXT NOT NULL, fr_th_id INT, fr_sc_id INT, fr_fa_id INT, fr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Antworttabelle erstellen mit Primärschlüssel und UNIQUE-Index auf Antworttext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE antworten (an_id INT AUTO_INCREMENT PRIMARY KEY, an_antworttext TEXT UNIQUE, an_fr_id int, an_richtig boolean, an_delete boolean);&lt;br /&gt;
&lt;br /&gt;
Im Nachhinein Beziehung aufsetzen zwischen Antworten und Fragen. Jede Frage hat mehrere Antworten, jede Antwort gehört zu einer Frage. Einsetzen der Lösch- und Änderungsweitergabe.&lt;br /&gt;
&lt;br /&gt;
 ALTER TABLE antworten ADD FOREIGN KEY(an_fr_id) REFERENCES fragen(fr_id) ON DELETE CASCADE ON UPDATE CASCADE;&lt;br /&gt;
&lt;br /&gt;
Im Nachhinein einen UNIQUE-KEY aufsetzen auf &#039;&#039;fr_fragetext&#039;&#039; in &#039;&#039;Fragen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 ALTER TABLE fragen ADD UNIQUE KEY(fr_fragetext);&lt;br /&gt;
&lt;br /&gt;
Leider führt dies zu einem Fehler:&lt;br /&gt;
&lt;br /&gt;
 ERROR 1170:BLOB/TEXT column &#039;fr_fragetext&#039; used in key specification without a key length&lt;br /&gt;
&lt;br /&gt;
Grund: MySQL indiziert nur eine bestimmte, feste Anzahl an Zeichen&lt;br /&gt;
&lt;br /&gt;
===Implementierung der Entitäten===&lt;br /&gt;
===Implementierung der Programmierlogik===&lt;br /&gt;
===Testphase===&lt;br /&gt;
==Abschlussphase==&lt;br /&gt;
&lt;br /&gt;
===Abnahme===&lt;br /&gt;
&lt;br /&gt;
===Einführung===&lt;br /&gt;
&lt;br /&gt;
===Dokumentation===&lt;br /&gt;
&lt;br /&gt;
==Fazit==&lt;br /&gt;
&lt;br /&gt;
===Soll/Ist-Vergleich===&lt;br /&gt;
&lt;br /&gt;
===Ausblick/Verbesserungen===&lt;br /&gt;
&lt;br /&gt;
==Quellen==&lt;br /&gt;
&lt;br /&gt;
=Anhang=&lt;br /&gt;
#Auszug aus dem Lastenheft&lt;br /&gt;
#Auszug aus dem Pflichtenheft&lt;br /&gt;
#Use-Case-Szenarien&lt;br /&gt;
#Use-Case-Diagramm&lt;br /&gt;
#Aktivitätsdiagramm&lt;br /&gt;
#Auszug aus der Funktion &amp;quot;Bewerten einer Prüfung&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Formalien ==&lt;br /&gt;
=== Deckblatt ===&lt;br /&gt;
*Projektbezeichnung: Datenbankbasierte Webanwendung zur Verwaltung und Durchführung von Prüfungen&lt;br /&gt;
*Namen und Vornamen: Rogers, Alexander&lt;br /&gt;
*Prüfungsausschuss&lt;br /&gt;
*Ausbildungsberuf: Fachinformatiker Anwendungsentwicklung&lt;br /&gt;
*Ausbildungsstätte bzw. Praktikumsbetrieb: itw gGmbH, Groninger Straße 25, 13347 Berlin bzw. Dirk Wagner Berlin, Carstennstraße 6, 12205 Berlin&lt;br /&gt;
&lt;br /&gt;
===Eidesstattliche Erklärung===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Abkürzungsverzeichnis===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekt:TestTool]]&lt;/div&gt;</summary>
		<author><name>Alexanderrogers</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Datei:Tabellenmodell_testtool.png&amp;diff=17987</id>
		<title>Datei:Tabellenmodell testtool.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Datei:Tabellenmodell_testtool.png&amp;diff=17987"/>
		<updated>2020-11-04T12:59:31Z</updated>

		<summary type="html">&lt;p&gt;Alexanderrogers: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Alexanderrogers</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=17978</id>
		<title>TestTool/Dokumentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=17978"/>
		<updated>2020-11-04T11:48:13Z</updated>

		<summary type="html">&lt;p&gt;Alexanderrogers: /* Erstellung der Datenbank */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projektdokumentation zur Webanwendung&lt;br /&gt;
&lt;br /&gt;
=Einleitung=&lt;br /&gt;
In dieser Projektdokumentation wird der Ablauf des Abschlussprojektes erläutert, das der Autor im Rahmen seiner Abschlussprüfung zum Fachinformatiker für Anwendungsentwicklung durchführt.&lt;br /&gt;
&lt;br /&gt;
==Projektbeschreibung==&lt;br /&gt;
Für die Dirk Wagner Berlin soll eine Webanwendung mit HTML und PHP entwickelt werden. Diese Webanwendung soll bestimmte Anforderungen erfüllen, die das Erstellen von Prüfungen erleichtern sollen.&lt;br /&gt;
==Projektziel==&lt;br /&gt;
Das Ziel dieses Projektes ist die erfolgreiche Umsetzung einer Webanwendung, die alle Prüfungen von Prüfern verwaltet. Die Prüfer sollen Fragen und mögliche Antworten eintragen können. Die Prüfungen sollen von Prüflingen durchgeführt werden und anschließend ein Ergebnis der Prüfung präsentiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Phasen des Projekts===&lt;br /&gt;
==Startphase==&lt;br /&gt;
===Ist-Zustand===&lt;br /&gt;
===Wirtschaftlichkeitsanalyse===&lt;br /&gt;
===Anwendungsfälle===&lt;br /&gt;
===Lastenheft===&lt;br /&gt;
* Beschreibung des Lastenhefts(Nicht das Lastenheft selber! Auszugsweise im Anhang!)&lt;br /&gt;
* Soll nach der MoSCoW-Methode(Must, Should, Could, Won´t) formuliert werden.&lt;br /&gt;
&lt;br /&gt;
==Entwurf==&lt;br /&gt;
&lt;br /&gt;
===Datenbank===&lt;br /&gt;
[[Datei:Er-modell testtool.png|1000px]]&lt;br /&gt;
*Damit keine Redundanzen entstehen bei den Fragen, wird auf fg_fragetext ein UNIQUE KEY gesetzt.&lt;br /&gt;
*&#039;&#039;Hilft nicht 100%, da ähnliche Fragen trotzdem in die Datenbank geschrieben werden können.&#039;&#039;&lt;br /&gt;
*&#039;&#039;Macht keinen Unterschied, ob die Frage Groß- oder kleingeschrieben ist. Ist die Frage identisch, wird sie verworfen.&#039;&#039;&lt;br /&gt;
*Ebenfalls UNIQUE KEY gesetzt:&lt;br /&gt;
**fg_fachgebiet&lt;br /&gt;
**pr_titel&lt;br /&gt;
**tn_username&lt;br /&gt;
**ro_rolle&lt;br /&gt;
**gr_gruppe&lt;br /&gt;
**sc_level&lt;br /&gt;
**fa_frageart&lt;br /&gt;
&lt;br /&gt;
===Benutzeroberfläche===&lt;br /&gt;
&lt;br /&gt;
===Funktionen===&lt;br /&gt;
&lt;br /&gt;
===Pflichtenheft===&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Kurze Beschreibung des Pflichtenhefts(Nicht das Pflichtenheft selber, höchstens Auszüge davon im Anhang!&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Implementierungsphase==&lt;br /&gt;
===Erstellung der Datenbank===&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE c8testtool;&lt;br /&gt;
 USE c8testtool;&lt;br /&gt;
&lt;br /&gt;
Fragentabelle erstellen mit Primärschlüssel und NOT NULL auf Fragetext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE fragen (fr_id INT AUTO_INCREMENT PRIMARY KEY, fr_fragetext TEXT NOT NULL, fr_th_id INT, fr_sc_id INT, fr_fa_id INT, fr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Antworttabelle erstellen mit Primärschlüssel und UNIQUE-Index auf Antworttext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE antworten (an_id INT AUTO_INCREMENT PRIMARY KEY, an_antworttext TEXT UNIQUE, an_fr_id int, an_richtig boolean, an_delete boolean);&lt;br /&gt;
&lt;br /&gt;
Im Nachhinein Beziehung aufsetzen zwischen Antworten und Fragen. Jede Frage hat mehrere Antworten, jede Antwort gehört zu einer Frage. Einsetzen der Lösch- und Änderungsweitergabe.&lt;br /&gt;
&lt;br /&gt;
 ALTER TABLE antworten ADD FOREIGN KEY(an_fr_id) REFERENCES fragen(fr_id) ON DELETE CASCADE ON UPDATE CASCADE;&lt;br /&gt;
&lt;br /&gt;
Im Nachhinein einen UNIQUE-KEY aufsetzen auf &#039;&#039;fr_fragetext&#039;&#039; in &#039;&#039;Fragen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 ALTER TABLE fragen ADD UNIQUE KEY(fr_fragetext);&lt;br /&gt;
&lt;br /&gt;
Leider führt dies zu einem Fehler:&lt;br /&gt;
&lt;br /&gt;
 ERROR 1170:BLOB/TEXT column &#039;fr_fragetext&#039; used in key specification without a key length&lt;br /&gt;
&lt;br /&gt;
Grund: MySQL indiziert nur eine bestimmte, feste Anzahl an Zeichen&lt;br /&gt;
&lt;br /&gt;
===Implementierung der Entitäten===&lt;br /&gt;
===Implementierung der Programmierlogik===&lt;br /&gt;
===Testphase===&lt;br /&gt;
==Abschlussphase==&lt;br /&gt;
&lt;br /&gt;
===Abnahme===&lt;br /&gt;
&lt;br /&gt;
===Einführung===&lt;br /&gt;
&lt;br /&gt;
===Dokumentation===&lt;br /&gt;
&lt;br /&gt;
==Fazit==&lt;br /&gt;
&lt;br /&gt;
===Soll/Ist-Vergleich===&lt;br /&gt;
&lt;br /&gt;
===Ausblick/Verbesserungen===&lt;br /&gt;
&lt;br /&gt;
==Quellen==&lt;br /&gt;
&lt;br /&gt;
=Anhang=&lt;br /&gt;
#Auszug aus dem Lastenheft&lt;br /&gt;
#Auszug aus dem Pflichtenheft&lt;br /&gt;
#Use-Case-Szenarien&lt;br /&gt;
#Use-Case-Diagramm&lt;br /&gt;
#Aktivitätsdiagramm&lt;br /&gt;
#Auszug aus der Funktion &amp;quot;Bewerten einer Prüfung&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Formalien ==&lt;br /&gt;
=== Deckblatt ===&lt;br /&gt;
*Projektbezeichnung: Datenbankbasierte Webanwendung zur Verwaltung und Durchführung von Prüfungen&lt;br /&gt;
*Namen und Vornamen: Rogers, Alexander&lt;br /&gt;
*Prüfungsausschuss&lt;br /&gt;
*Ausbildungsberuf: Fachinformatiker Anwendungsentwicklung&lt;br /&gt;
*Ausbildungsstätte bzw. Praktikumsbetrieb: itw gGmbH, Groninger Straße 25, 13347 Berlin bzw. Dirk Wagner Berlin, Carstennstraße 6, 12205 Berlin&lt;br /&gt;
&lt;br /&gt;
===Eidesstattliche Erklärung===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Abkürzungsverzeichnis===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekt:TestTool]]&lt;/div&gt;</summary>
		<author><name>Alexanderrogers</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=17926</id>
		<title>TestTool/Dokumentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=17926"/>
		<updated>2020-11-04T08:31:40Z</updated>

		<summary type="html">&lt;p&gt;Alexanderrogers: /* Erstellung der Datenbank */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projektdokumentation zur Webanwendung&lt;br /&gt;
&lt;br /&gt;
=Einleitung=&lt;br /&gt;
In dieser Projektdokumentation wird der Ablauf des Abschlussprojektes erläutert, das der Autor im Rahmen seiner Abschlussprüfung zum Fachinformatiker für Anwendungsentwicklung durchführt.&lt;br /&gt;
&lt;br /&gt;
==Projektbeschreibung==&lt;br /&gt;
Für die Dirk Wagner Berlin soll eine Webanwendung mit HTML und PHP entwickelt werden. Diese Webanwendung soll bestimmte Anforderungen erfüllen, die das Erstellen von Prüfungen erleichtern sollen.&lt;br /&gt;
==Projektziel==&lt;br /&gt;
Das Ziel dieses Projektes ist die erfolgreiche Umsetzung einer Webanwendung, die alle Prüfungen von Prüfern verwaltet. Die Prüfer sollen Fragen und mögliche Antworten eintragen können. Die Prüfungen sollen von Prüflingen durchgeführt werden und anschließend ein Ergebnis der Prüfung präsentiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Phasen des Projekts===&lt;br /&gt;
==Startphase==&lt;br /&gt;
===Ist-Zustand===&lt;br /&gt;
===Wirtschaftlichkeitsanalyse===&lt;br /&gt;
===Anwendungsfälle===&lt;br /&gt;
===Lastenheft===&lt;br /&gt;
* Beschreibung des Lastenhefts(Nicht das Lastenheft selber! Auszugsweise im Anhang!)&lt;br /&gt;
* Soll nach der MoSCoW-Methode(Must, Should, Could, Won´t) formuliert werden.&lt;br /&gt;
&lt;br /&gt;
==Entwurf==&lt;br /&gt;
&lt;br /&gt;
===Datenbank===&lt;br /&gt;
[[Datei:Er-modell testtool.png|1000px]]&lt;br /&gt;
*Damit keine Redundanzen entstehen bei den Fragen, wird auf fg_fragetext ein UNIQUE KEY gesetzt.&lt;br /&gt;
*&#039;&#039;Hilft nicht 100%, da ähnliche Fragen trotzdem in die Datenbank geschrieben werden können.&#039;&#039;&lt;br /&gt;
*&#039;&#039;Macht keinen Unterschied, ob die Frage Groß- oder kleingeschrieben ist. Ist die Frage identisch, wird sie verworfen.&#039;&#039;&lt;br /&gt;
*Ebenfalls UNIQUE KEY gesetzt:&lt;br /&gt;
**fg_fachgebiet&lt;br /&gt;
**pr_titel&lt;br /&gt;
**tn_username&lt;br /&gt;
**ro_rolle&lt;br /&gt;
**gr_gruppe&lt;br /&gt;
**sc_level&lt;br /&gt;
**fa_frageart&lt;br /&gt;
&lt;br /&gt;
===Benutzeroberfläche===&lt;br /&gt;
&lt;br /&gt;
===Funktionen===&lt;br /&gt;
&lt;br /&gt;
===Pflichtenheft===&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Kurze Beschreibung des Pflichtenhefts(Nicht das Pflichtenheft selber, höchstens Auszüge davon im Anhang!&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Implementierungsphase==&lt;br /&gt;
===Erstellung der Datenbank===&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE c8testtool;&lt;br /&gt;
 USE c8testtool;&lt;br /&gt;
&lt;br /&gt;
Fragentabelle erstellen mit Primärschlüssel und NOT NULL auf Fragetext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE fragen (fr_id INT AUTO_INCREMENT PRIMARY KEY, fr_fragetext TEXT NOT NULL, fr_th_id INT, fr_sc_id INT, fr_fa_id INT, fr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Antworttabelle erstellen mit Primärschlüssel und UNIQUE-Index auf Antworttext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE antworten (an_id INT AUTO_INCREMENT PRIMARY KEY, an_antworttext TEXT UNIQUE, an_fr_id int, an_richtig boolean, an_delete boolean);&lt;br /&gt;
&lt;br /&gt;
Im Nachhinein Beziehung aufsetzen zwischen Antworten und Fragen. Jede Frage hat mehrere Antworten, jede Antwort gehört zu einer Frage.&lt;br /&gt;
&lt;br /&gt;
 ALTER TABLE antworten ADD FOREIGN KEY(an_fr_id) REFERENCES fragen(fr_id);&lt;br /&gt;
&lt;br /&gt;
Im Nachhinein einen UNIQUE-KEY aufsetzen auf &#039;&#039;fr_fragetext&#039;&#039; in &#039;&#039;Fragen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 ALTER TABLE fragen ADD UNIQUE KEY(fr_fragetext);&lt;br /&gt;
&lt;br /&gt;
Leider führt dies zu einem Fehler:&lt;br /&gt;
&lt;br /&gt;
 ERROR 1170:BLOB/TEXT column &#039;fr_fragetext&#039; used in key specification without a key length&lt;br /&gt;
&lt;br /&gt;
Grund: MySQL indiziert nur eine bestimmte, feste Anzahl an Zeichen&lt;br /&gt;
&lt;br /&gt;
===Implementierung der Entitäten===&lt;br /&gt;
===Implementierung der Programmierlogik===&lt;br /&gt;
===Testphase===&lt;br /&gt;
==Abschlussphase==&lt;br /&gt;
&lt;br /&gt;
===Abnahme===&lt;br /&gt;
&lt;br /&gt;
===Einführung===&lt;br /&gt;
&lt;br /&gt;
===Dokumentation===&lt;br /&gt;
&lt;br /&gt;
==Fazit==&lt;br /&gt;
&lt;br /&gt;
===Soll/Ist-Vergleich===&lt;br /&gt;
&lt;br /&gt;
===Ausblick/Verbesserungen===&lt;br /&gt;
&lt;br /&gt;
==Quellen==&lt;br /&gt;
&lt;br /&gt;
=Anhang=&lt;br /&gt;
#Auszug aus dem Lastenheft&lt;br /&gt;
#Auszug aus dem Pflichtenheft&lt;br /&gt;
#Use-Case-Szenarien&lt;br /&gt;
#Use-Case-Diagramm&lt;br /&gt;
#Aktivitätsdiagramm&lt;br /&gt;
#Auszug aus der Funktion &amp;quot;Bewerten einer Prüfung&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Formalien ==&lt;br /&gt;
=== Deckblatt ===&lt;br /&gt;
*Projektbezeichnung: Datenbankbasierte Webanwendung zur Verwaltung und Durchführung von Prüfungen&lt;br /&gt;
*Namen und Vornamen: Rogers, Alexander&lt;br /&gt;
*Prüfungsausschuss&lt;br /&gt;
*Ausbildungsberuf: Fachinformatiker Anwendungsentwicklung&lt;br /&gt;
*Ausbildungsstätte bzw. Praktikumsbetrieb: itw gGmbH, Groninger Straße 25, 13347 Berlin bzw. Dirk Wagner Berlin, Carstennstraße 6, 12205 Berlin&lt;br /&gt;
&lt;br /&gt;
===Eidesstattliche Erklärung===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Abkürzungsverzeichnis===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekt:TestTool]]&lt;/div&gt;</summary>
		<author><name>Alexanderrogers</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=17922</id>
		<title>TestTool/Dokumentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=17922"/>
		<updated>2020-11-04T08:21:26Z</updated>

		<summary type="html">&lt;p&gt;Alexanderrogers: /* Erstellung der Datenbank */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projektdokumentation zur Webanwendung&lt;br /&gt;
&lt;br /&gt;
=Einleitung=&lt;br /&gt;
In dieser Projektdokumentation wird der Ablauf des Abschlussprojektes erläutert, das der Autor im Rahmen seiner Abschlussprüfung zum Fachinformatiker für Anwendungsentwicklung durchführt.&lt;br /&gt;
&lt;br /&gt;
==Projektbeschreibung==&lt;br /&gt;
Für die Dirk Wagner Berlin soll eine Webanwendung mit HTML und PHP entwickelt werden. Diese Webanwendung soll bestimmte Anforderungen erfüllen, die das Erstellen von Prüfungen erleichtern sollen.&lt;br /&gt;
==Projektziel==&lt;br /&gt;
Das Ziel dieses Projektes ist die erfolgreiche Umsetzung einer Webanwendung, die alle Prüfungen von Prüfern verwaltet. Die Prüfer sollen Fragen und mögliche Antworten eintragen können. Die Prüfungen sollen von Prüflingen durchgeführt werden und anschließend ein Ergebnis der Prüfung präsentiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Phasen des Projekts===&lt;br /&gt;
==Startphase==&lt;br /&gt;
===Ist-Zustand===&lt;br /&gt;
===Wirtschaftlichkeitsanalyse===&lt;br /&gt;
===Anwendungsfälle===&lt;br /&gt;
===Lastenheft===&lt;br /&gt;
* Beschreibung des Lastenhefts(Nicht das Lastenheft selber! Auszugsweise im Anhang!)&lt;br /&gt;
* Soll nach der MoSCoW-Methode(Must, Should, Could, Won´t) formuliert werden.&lt;br /&gt;
&lt;br /&gt;
==Entwurf==&lt;br /&gt;
&lt;br /&gt;
===Datenbank===&lt;br /&gt;
[[Datei:Er-modell testtool.png|1000px]]&lt;br /&gt;
*Damit keine Redundanzen entstehen bei den Fragen, wird auf fg_fragetext ein UNIQUE KEY gesetzt.&lt;br /&gt;
*&#039;&#039;Hilft nicht 100%, da ähnliche Fragen trotzdem in die Datenbank geschrieben werden können.&#039;&#039;&lt;br /&gt;
*&#039;&#039;Macht keinen Unterschied, ob die Frage Groß- oder kleingeschrieben ist. Ist die Frage identisch, wird sie verworfen.&#039;&#039;&lt;br /&gt;
*Ebenfalls UNIQUE KEY gesetzt:&lt;br /&gt;
**fg_fachgebiet&lt;br /&gt;
**pr_titel&lt;br /&gt;
**tn_username&lt;br /&gt;
**ro_rolle&lt;br /&gt;
**gr_gruppe&lt;br /&gt;
**sc_level&lt;br /&gt;
**fa_frageart&lt;br /&gt;
&lt;br /&gt;
===Benutzeroberfläche===&lt;br /&gt;
&lt;br /&gt;
===Funktionen===&lt;br /&gt;
&lt;br /&gt;
===Pflichtenheft===&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Kurze Beschreibung des Pflichtenhefts(Nicht das Pflichtenheft selber, höchstens Auszüge davon im Anhang!&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Implementierungsphase==&lt;br /&gt;
===Erstellung der Datenbank===&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE c8testtool;&lt;br /&gt;
 USE c8testtool;&lt;br /&gt;
&lt;br /&gt;
Fragentabelle erstellen mit Primärschlüssel und NOT NULL auf Fragetext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE fragen (fr_id INT AUTO_INCREMENT PRIMARY KEY, fr_fragetext TEXT NOT NULL, fr_th_id INT, fr_sc_id INT, fr_fa_id INT, fr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Antworttabelle erstellen mit Primärschlüssel und UNIQUE-Index auf Antworttext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE antworten (an_id INT AUTO_INCREMENT PRIMARY KEY, an_antworttext TEXT UNIQUE, an_fr_id int, an_richtig boolean, an_delete boolean);&lt;br /&gt;
&lt;br /&gt;
Im Nachhinein Beziehung aufsetzen zwischen Antworten und Fragen. Jede Frage hat mehrere Antworten, jede Antwort gehört zu einer Frage.&lt;br /&gt;
&lt;br /&gt;
 ALTER TABLE antworten ADD FOREIGN KEY(an_fr_id) REFERENCES fragen(fr_id);&lt;br /&gt;
&lt;br /&gt;
Im Nachhinein einen UNIQUE-KEY aufsetzen auf &#039;&#039;fr_fragetext&#039;&#039; in &#039;&#039;Fragen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 ALTER TABLE fragen ADD UNIQUE KEY(fr_fragetext);&lt;br /&gt;
&lt;br /&gt;
Leider führt dies zu einem Fehler:&lt;br /&gt;
&lt;br /&gt;
 ERROR 1170:BLOB/TEXT column &#039;fr_fragetext&#039; used in key specification without a key length&lt;br /&gt;
&lt;br /&gt;
===Implementierung der Entitäten===&lt;br /&gt;
===Implementierung der Programmierlogik===&lt;br /&gt;
===Testphase===&lt;br /&gt;
==Abschlussphase==&lt;br /&gt;
&lt;br /&gt;
===Abnahme===&lt;br /&gt;
&lt;br /&gt;
===Einführung===&lt;br /&gt;
&lt;br /&gt;
===Dokumentation===&lt;br /&gt;
&lt;br /&gt;
==Fazit==&lt;br /&gt;
&lt;br /&gt;
===Soll/Ist-Vergleich===&lt;br /&gt;
&lt;br /&gt;
===Ausblick/Verbesserungen===&lt;br /&gt;
&lt;br /&gt;
==Quellen==&lt;br /&gt;
&lt;br /&gt;
=Anhang=&lt;br /&gt;
#Auszug aus dem Lastenheft&lt;br /&gt;
#Auszug aus dem Pflichtenheft&lt;br /&gt;
#Use-Case-Szenarien&lt;br /&gt;
#Use-Case-Diagramm&lt;br /&gt;
#Aktivitätsdiagramm&lt;br /&gt;
#Auszug aus der Funktion &amp;quot;Bewerten einer Prüfung&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Formalien ==&lt;br /&gt;
=== Deckblatt ===&lt;br /&gt;
*Projektbezeichnung: Datenbankbasierte Webanwendung zur Verwaltung und Durchführung von Prüfungen&lt;br /&gt;
*Namen und Vornamen: Rogers, Alexander&lt;br /&gt;
*Prüfungsausschuss&lt;br /&gt;
*Ausbildungsberuf: Fachinformatiker Anwendungsentwicklung&lt;br /&gt;
*Ausbildungsstätte bzw. Praktikumsbetrieb: itw gGmbH, Groninger Straße 25, 13347 Berlin bzw. Dirk Wagner Berlin, Carstennstraße 6, 12205 Berlin&lt;br /&gt;
&lt;br /&gt;
===Eidesstattliche Erklärung===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Abkürzungsverzeichnis===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekt:TestTool]]&lt;/div&gt;</summary>
		<author><name>Alexanderrogers</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=17915</id>
		<title>TestTool/Dokumentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=17915"/>
		<updated>2020-11-04T07:48:00Z</updated>

		<summary type="html">&lt;p&gt;Alexanderrogers: /* Datenbank */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projektdokumentation zur Webanwendung&lt;br /&gt;
&lt;br /&gt;
=Einleitung=&lt;br /&gt;
In dieser Projektdokumentation wird der Ablauf des Abschlussprojektes erläutert, das der Autor im Rahmen seiner Abschlussprüfung zum Fachinformatiker für Anwendungsentwicklung durchführt.&lt;br /&gt;
&lt;br /&gt;
==Projektbeschreibung==&lt;br /&gt;
Für die Dirk Wagner Berlin soll eine Webanwendung mit HTML und PHP entwickelt werden. Diese Webanwendung soll bestimmte Anforderungen erfüllen, die das Erstellen von Prüfungen erleichtern sollen.&lt;br /&gt;
==Projektziel==&lt;br /&gt;
Das Ziel dieses Projektes ist die erfolgreiche Umsetzung einer Webanwendung, die alle Prüfungen von Prüfern verwaltet. Die Prüfer sollen Fragen und mögliche Antworten eintragen können. Die Prüfungen sollen von Prüflingen durchgeführt werden und anschließend ein Ergebnis der Prüfung präsentiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Phasen des Projekts===&lt;br /&gt;
==Startphase==&lt;br /&gt;
===Ist-Zustand===&lt;br /&gt;
===Wirtschaftlichkeitsanalyse===&lt;br /&gt;
===Anwendungsfälle===&lt;br /&gt;
===Lastenheft===&lt;br /&gt;
* Beschreibung des Lastenhefts(Nicht das Lastenheft selber! Auszugsweise im Anhang!)&lt;br /&gt;
* Soll nach der MoSCoW-Methode(Must, Should, Could, Won´t) formuliert werden.&lt;br /&gt;
&lt;br /&gt;
==Entwurf==&lt;br /&gt;
&lt;br /&gt;
===Datenbank===&lt;br /&gt;
[[Datei:Er-modell testtool.png|1000px]]&lt;br /&gt;
*Damit keine Redundanzen entstehen bei den Fragen, wird auf fg_fragetext ein UNIQUE KEY gesetzt.&lt;br /&gt;
*&#039;&#039;Hilft nicht 100%, da ähnliche Fragen trotzdem in die Datenbank geschrieben werden können.&#039;&#039;&lt;br /&gt;
*&#039;&#039;Macht keinen Unterschied, ob die Frage Groß- oder kleingeschrieben ist. Ist die Frage identisch, wird sie verworfen.&#039;&#039;&lt;br /&gt;
*Ebenfalls UNIQUE KEY gesetzt:&lt;br /&gt;
**fg_fachgebiet&lt;br /&gt;
**pr_titel&lt;br /&gt;
**tn_username&lt;br /&gt;
**ro_rolle&lt;br /&gt;
**gr_gruppe&lt;br /&gt;
**sc_level&lt;br /&gt;
**fa_frageart&lt;br /&gt;
&lt;br /&gt;
===Benutzeroberfläche===&lt;br /&gt;
&lt;br /&gt;
===Funktionen===&lt;br /&gt;
&lt;br /&gt;
===Pflichtenheft===&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Kurze Beschreibung des Pflichtenhefts(Nicht das Pflichtenheft selber, höchstens Auszüge davon im Anhang!&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Implementierungsphase==&lt;br /&gt;
===Erstellung der Datenbank===&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE c8testtool;&lt;br /&gt;
 USE c8testtool;&lt;br /&gt;
&lt;br /&gt;
Fragentabelle erstellen mit Primärschlüssel und UNIQUE-Index und NOT NULL auf Fragetext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE fragen (fr_id INT AUTO_INCREMENT PRIMARY KEY, fr_fragetext TEXT UNIQUE NOT NULL, fr_th_id INT, fr_sc_id INT, fr_fa_id INT, fr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Antworttabelle erstellen mit Primärschlüssel und UNIQUE-Index auf Antworttext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE antworten (an_id INT AUTO_INCREMENT PRIMARY KEY, an_antworttext TEXT UNIQUE, an_fr_id int, an_richtig boolean, an_delete boolean);&lt;br /&gt;
&lt;br /&gt;
Im Nachhinein Beziehung aufsetzen zwischen Antworten und Fragen. Jede Frage hat mehrere Antworten, jede Antwort gehört zu einer Frage.&lt;br /&gt;
&lt;br /&gt;
 ALTER TABLE antworten ADD FOREIGN KEY(an_fr_id) REFERENCES fragen(fr_id);&lt;br /&gt;
&lt;br /&gt;
===Implementierung der Entitäten===&lt;br /&gt;
===Implementierung der Programmierlogik===&lt;br /&gt;
===Testphase===&lt;br /&gt;
==Abschlussphase==&lt;br /&gt;
&lt;br /&gt;
===Abnahme===&lt;br /&gt;
&lt;br /&gt;
===Einführung===&lt;br /&gt;
&lt;br /&gt;
===Dokumentation===&lt;br /&gt;
&lt;br /&gt;
==Fazit==&lt;br /&gt;
&lt;br /&gt;
===Soll/Ist-Vergleich===&lt;br /&gt;
&lt;br /&gt;
===Ausblick/Verbesserungen===&lt;br /&gt;
&lt;br /&gt;
==Quellen==&lt;br /&gt;
&lt;br /&gt;
=Anhang=&lt;br /&gt;
#Auszug aus dem Lastenheft&lt;br /&gt;
#Auszug aus dem Pflichtenheft&lt;br /&gt;
#Use-Case-Szenarien&lt;br /&gt;
#Use-Case-Diagramm&lt;br /&gt;
#Aktivitätsdiagramm&lt;br /&gt;
#Auszug aus der Funktion &amp;quot;Bewerten einer Prüfung&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Formalien ==&lt;br /&gt;
=== Deckblatt ===&lt;br /&gt;
*Projektbezeichnung: Datenbankbasierte Webanwendung zur Verwaltung und Durchführung von Prüfungen&lt;br /&gt;
*Namen und Vornamen: Rogers, Alexander&lt;br /&gt;
*Prüfungsausschuss&lt;br /&gt;
*Ausbildungsberuf: Fachinformatiker Anwendungsentwicklung&lt;br /&gt;
*Ausbildungsstätte bzw. Praktikumsbetrieb: itw gGmbH, Groninger Straße 25, 13347 Berlin bzw. Dirk Wagner Berlin, Carstennstraße 6, 12205 Berlin&lt;br /&gt;
&lt;br /&gt;
===Eidesstattliche Erklärung===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Abkürzungsverzeichnis===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekt:TestTool]]&lt;/div&gt;</summary>
		<author><name>Alexanderrogers</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=17914</id>
		<title>TestTool/Dokumentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=17914"/>
		<updated>2020-11-04T07:42:48Z</updated>

		<summary type="html">&lt;p&gt;Alexanderrogers: /* Datenbank */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projektdokumentation zur Webanwendung&lt;br /&gt;
&lt;br /&gt;
=Einleitung=&lt;br /&gt;
In dieser Projektdokumentation wird der Ablauf des Abschlussprojektes erläutert, das der Autor im Rahmen seiner Abschlussprüfung zum Fachinformatiker für Anwendungsentwicklung durchführt.&lt;br /&gt;
&lt;br /&gt;
==Projektbeschreibung==&lt;br /&gt;
Für die Dirk Wagner Berlin soll eine Webanwendung mit HTML und PHP entwickelt werden. Diese Webanwendung soll bestimmte Anforderungen erfüllen, die das Erstellen von Prüfungen erleichtern sollen.&lt;br /&gt;
==Projektziel==&lt;br /&gt;
Das Ziel dieses Projektes ist die erfolgreiche Umsetzung einer Webanwendung, die alle Prüfungen von Prüfern verwaltet. Die Prüfer sollen Fragen und mögliche Antworten eintragen können. Die Prüfungen sollen von Prüflingen durchgeführt werden und anschließend ein Ergebnis der Prüfung präsentiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Phasen des Projekts===&lt;br /&gt;
==Startphase==&lt;br /&gt;
===Ist-Zustand===&lt;br /&gt;
===Wirtschaftlichkeitsanalyse===&lt;br /&gt;
===Anwendungsfälle===&lt;br /&gt;
===Lastenheft===&lt;br /&gt;
* Beschreibung des Lastenhefts(Nicht das Lastenheft selber! Auszugsweise im Anhang!)&lt;br /&gt;
* Soll nach der MoSCoW-Methode(Must, Should, Could, Won´t) formuliert werden.&lt;br /&gt;
&lt;br /&gt;
==Entwurf==&lt;br /&gt;
&lt;br /&gt;
===Datenbank===&lt;br /&gt;
[[Datei:Er-modell testtool.png|1000px]]&lt;br /&gt;
*Damit keine Fragen doppelt auftauchen, wird auf fg_fragetext ein UNIQUE KEY gesetzt.&lt;br /&gt;
*Ebenfalls UNIQUE KEY gesetzt:&lt;br /&gt;
**fg_fachgebiet&lt;br /&gt;
**pr_titel&lt;br /&gt;
**tn_username&lt;br /&gt;
**ro_rolle&lt;br /&gt;
**gr_gruppe&lt;br /&gt;
&lt;br /&gt;
===Benutzeroberfläche===&lt;br /&gt;
&lt;br /&gt;
===Funktionen===&lt;br /&gt;
&lt;br /&gt;
===Pflichtenheft===&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Kurze Beschreibung des Pflichtenhefts(Nicht das Pflichtenheft selber, höchstens Auszüge davon im Anhang!&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Implementierungsphase==&lt;br /&gt;
===Erstellung der Datenbank===&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE c8testtool;&lt;br /&gt;
 USE c8testtool;&lt;br /&gt;
&lt;br /&gt;
Fragentabelle erstellen mit Primärschlüssel und UNIQUE-Index und NOT NULL auf Fragetext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE fragen (fr_id INT AUTO_INCREMENT PRIMARY KEY, fr_fragetext TEXT UNIQUE NOT NULL, fr_th_id INT, fr_sc_id INT, fr_fa_id INT, fr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Antworttabelle erstellen mit Primärschlüssel und UNIQUE-Index auf Antworttext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE antworten (an_id INT AUTO_INCREMENT PRIMARY KEY, an_antworttext TEXT UNIQUE, an_fr_id int, an_richtig boolean, an_delete boolean);&lt;br /&gt;
&lt;br /&gt;
Im Nachhinein Beziehung aufsetzen zwischen Antworten und Fragen. Jede Frage hat mehrere Antworten, jede Antwort gehört zu einer Frage.&lt;br /&gt;
&lt;br /&gt;
 ALTER TABLE antworten ADD FOREIGN KEY(an_fr_id) REFERENCES fragen(fr_id);&lt;br /&gt;
&lt;br /&gt;
===Implementierung der Entitäten===&lt;br /&gt;
===Implementierung der Programmierlogik===&lt;br /&gt;
===Testphase===&lt;br /&gt;
==Abschlussphase==&lt;br /&gt;
&lt;br /&gt;
===Abnahme===&lt;br /&gt;
&lt;br /&gt;
===Einführung===&lt;br /&gt;
&lt;br /&gt;
===Dokumentation===&lt;br /&gt;
&lt;br /&gt;
==Fazit==&lt;br /&gt;
&lt;br /&gt;
===Soll/Ist-Vergleich===&lt;br /&gt;
&lt;br /&gt;
===Ausblick/Verbesserungen===&lt;br /&gt;
&lt;br /&gt;
==Quellen==&lt;br /&gt;
&lt;br /&gt;
=Anhang=&lt;br /&gt;
#Auszug aus dem Lastenheft&lt;br /&gt;
#Auszug aus dem Pflichtenheft&lt;br /&gt;
#Use-Case-Szenarien&lt;br /&gt;
#Use-Case-Diagramm&lt;br /&gt;
#Aktivitätsdiagramm&lt;br /&gt;
#Auszug aus der Funktion &amp;quot;Bewerten einer Prüfung&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Formalien ==&lt;br /&gt;
=== Deckblatt ===&lt;br /&gt;
*Projektbezeichnung: Datenbankbasierte Webanwendung zur Verwaltung und Durchführung von Prüfungen&lt;br /&gt;
*Namen und Vornamen: Rogers, Alexander&lt;br /&gt;
*Prüfungsausschuss&lt;br /&gt;
*Ausbildungsberuf: Fachinformatiker Anwendungsentwicklung&lt;br /&gt;
*Ausbildungsstätte bzw. Praktikumsbetrieb: itw gGmbH, Groninger Straße 25, 13347 Berlin bzw. Dirk Wagner Berlin, Carstennstraße 6, 12205 Berlin&lt;br /&gt;
&lt;br /&gt;
===Eidesstattliche Erklärung===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Abkürzungsverzeichnis===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekt:TestTool]]&lt;/div&gt;</summary>
		<author><name>Alexanderrogers</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=17881</id>
		<title>TestTool/Dokumentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=17881"/>
		<updated>2020-11-03T15:02:11Z</updated>

		<summary type="html">&lt;p&gt;Alexanderrogers: /* Erstellung der Datenbank */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projektdokumentation zur Webanwendung&lt;br /&gt;
&lt;br /&gt;
=Einleitung=&lt;br /&gt;
In dieser Projektdokumentation wird der Ablauf des Abschlussprojektes erläutert, das der Autor im Rahmen seiner Abschlussprüfung zum Fachinformatiker für Anwendungsentwicklung durchführt.&lt;br /&gt;
&lt;br /&gt;
==Projektbeschreibung==&lt;br /&gt;
Für die Dirk Wagner Berlin soll eine Webanwendung mit HTML und PHP entwickelt werden. Diese Webanwendung soll bestimmte Anforderungen erfüllen, die das Erstellen von Prüfungen erleichtern sollen.&lt;br /&gt;
==Projektziel==&lt;br /&gt;
Das Ziel dieses Projektes ist die erfolgreiche Umsetzung einer Webanwendung, die alle Prüfungen von Prüfern verwaltet. Die Prüfer sollen Fragen und mögliche Antworten eintragen können. Die Prüfungen sollen von Prüflingen durchgeführt werden und anschließend ein Ergebnis der Prüfung präsentiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Phasen des Projekts===&lt;br /&gt;
==Startphase==&lt;br /&gt;
===Ist-Zustand===&lt;br /&gt;
===Wirtschaftlichkeitsanalyse===&lt;br /&gt;
===Anwendungsfälle===&lt;br /&gt;
===Lastenheft===&lt;br /&gt;
* Beschreibung des Lastenhefts(Nicht das Lastenheft selber! Auszugsweise im Anhang!)&lt;br /&gt;
* Soll nach der MoSCoW-Methode(Must, Should, Could, Won´t) formuliert werden.&lt;br /&gt;
&lt;br /&gt;
==Entwurf==&lt;br /&gt;
&lt;br /&gt;
===Datenbank===&lt;br /&gt;
[[Datei:Er-modell testtool.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
===Benutzeroberfläche===&lt;br /&gt;
&lt;br /&gt;
===Funktionen===&lt;br /&gt;
&lt;br /&gt;
===Pflichtenheft===&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Kurze Beschreibung des Pflichtenhefts(Nicht das Pflichtenheft selber, höchstens Auszüge davon im Anhang!&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Implementierungsphase==&lt;br /&gt;
===Erstellung der Datenbank===&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE c8testtool;&lt;br /&gt;
 USE c8testtool;&lt;br /&gt;
&lt;br /&gt;
Fragentabelle erstellen mit Primärschlüssel und UNIQUE-Index und NOT NULL auf Fragetext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE fragen (fr_id INT AUTO_INCREMENT PRIMARY KEY, fr_fragetext TEXT UNIQUE NOT NULL, fr_th_id INT, fr_sc_id INT, fr_fa_id INT, fr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Antworttabelle erstellen mit Primärschlüssel und UNIQUE-Index auf Antworttext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE antworten (an_id INT AUTO_INCREMENT PRIMARY KEY, an_antworttext TEXT UNIQUE, an_fr_id int, an_richtig boolean, an_delete boolean);&lt;br /&gt;
&lt;br /&gt;
Im Nachhinein Beziehung aufsetzen zwischen Antworten und Fragen. Jede Frage hat mehrere Antworten, jede Antwort gehört zu einer Frage.&lt;br /&gt;
&lt;br /&gt;
 ALTER TABLE antworten ADD FOREIGN KEY(an_fr_id) REFERENCES fragen(fr_id);&lt;br /&gt;
&lt;br /&gt;
===Implementierung der Entitäten===&lt;br /&gt;
===Implementierung der Programmierlogik===&lt;br /&gt;
===Testphase===&lt;br /&gt;
==Abschlussphase==&lt;br /&gt;
&lt;br /&gt;
===Abnahme===&lt;br /&gt;
&lt;br /&gt;
===Einführung===&lt;br /&gt;
&lt;br /&gt;
===Dokumentation===&lt;br /&gt;
&lt;br /&gt;
==Fazit==&lt;br /&gt;
&lt;br /&gt;
===Soll/Ist-Vergleich===&lt;br /&gt;
&lt;br /&gt;
===Ausblick/Verbesserungen===&lt;br /&gt;
&lt;br /&gt;
==Quellen==&lt;br /&gt;
&lt;br /&gt;
=Anhang=&lt;br /&gt;
#Auszug aus dem Lastenheft&lt;br /&gt;
#Auszug aus dem Pflichtenheft&lt;br /&gt;
#Use-Case-Szenarien&lt;br /&gt;
#Use-Case-Diagramm&lt;br /&gt;
#Aktivitätsdiagramm&lt;br /&gt;
#Auszug aus der Funktion &amp;quot;Bewerten einer Prüfung&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Formalien ==&lt;br /&gt;
=== Deckblatt ===&lt;br /&gt;
*Projektbezeichnung: Datenbankbasierte Webanwendung zur Verwaltung und Durchführung von Prüfungen&lt;br /&gt;
*Namen und Vornamen: Rogers, Alexander&lt;br /&gt;
*Prüfungsausschuss&lt;br /&gt;
*Ausbildungsberuf: Fachinformatiker Anwendungsentwicklung&lt;br /&gt;
*Ausbildungsstätte bzw. Praktikumsbetrieb: itw gGmbH, Groninger Straße 25, 13347 Berlin bzw. Dirk Wagner Berlin, Carstennstraße 6, 12205 Berlin&lt;br /&gt;
&lt;br /&gt;
===Eidesstattliche Erklärung===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Abkürzungsverzeichnis===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekt:TestTool]]&lt;/div&gt;</summary>
		<author><name>Alexanderrogers</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=17880</id>
		<title>TestTool/Dokumentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=17880"/>
		<updated>2020-11-03T15:00:24Z</updated>

		<summary type="html">&lt;p&gt;Alexanderrogers: /* Erstellung der Datenbank */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projektdokumentation zur Webanwendung&lt;br /&gt;
&lt;br /&gt;
=Einleitung=&lt;br /&gt;
In dieser Projektdokumentation wird der Ablauf des Abschlussprojektes erläutert, das der Autor im Rahmen seiner Abschlussprüfung zum Fachinformatiker für Anwendungsentwicklung durchführt.&lt;br /&gt;
&lt;br /&gt;
==Projektbeschreibung==&lt;br /&gt;
Für die Dirk Wagner Berlin soll eine Webanwendung mit HTML und PHP entwickelt werden. Diese Webanwendung soll bestimmte Anforderungen erfüllen, die das Erstellen von Prüfungen erleichtern sollen.&lt;br /&gt;
==Projektziel==&lt;br /&gt;
Das Ziel dieses Projektes ist die erfolgreiche Umsetzung einer Webanwendung, die alle Prüfungen von Prüfern verwaltet. Die Prüfer sollen Fragen und mögliche Antworten eintragen können. Die Prüfungen sollen von Prüflingen durchgeführt werden und anschließend ein Ergebnis der Prüfung präsentiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Phasen des Projekts===&lt;br /&gt;
==Startphase==&lt;br /&gt;
===Ist-Zustand===&lt;br /&gt;
===Wirtschaftlichkeitsanalyse===&lt;br /&gt;
===Anwendungsfälle===&lt;br /&gt;
===Lastenheft===&lt;br /&gt;
* Beschreibung des Lastenhefts(Nicht das Lastenheft selber! Auszugsweise im Anhang!)&lt;br /&gt;
* Soll nach der MoSCoW-Methode(Must, Should, Could, Won´t) formuliert werden.&lt;br /&gt;
&lt;br /&gt;
==Entwurf==&lt;br /&gt;
&lt;br /&gt;
===Datenbank===&lt;br /&gt;
[[Datei:Er-modell testtool.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
===Benutzeroberfläche===&lt;br /&gt;
&lt;br /&gt;
===Funktionen===&lt;br /&gt;
&lt;br /&gt;
===Pflichtenheft===&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Kurze Beschreibung des Pflichtenhefts(Nicht das Pflichtenheft selber, höchstens Auszüge davon im Anhang!&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Implementierungsphase==&lt;br /&gt;
===Erstellung der Datenbank===&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE c8testtool;&lt;br /&gt;
 USE c8testtool;&lt;br /&gt;
&lt;br /&gt;
Fragentabelle erstellen mit Primärschlüssel und UNIQUE-Index und NOT NULL auf Fragetext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE fragen (fr_id INT AUTO_INCREMENT PRIMARY KEY, fr_fragetext TEXT UNIQUE NOT NULL, fr_th_id INT, fr_sc_id INT, fr_fa_id INT, fr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Antworttabelle erstellen mit Primärschlüssel und UNIQUE-Index auf Antworttext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE antworten (an_id INT AUTO_INCREMENT PRIMARY KEY, an_antworttext TEXT UNIQUE, an_fr_id int, an_richtig boolean, an_delete boolean);&lt;br /&gt;
&lt;br /&gt;
Im Nachhinein Beziehung aufsetzen zwischen Antworten und Fragen. Jede Frage hat mehrere Antworten, jede Antwort gehört zu einer Frage.&lt;br /&gt;
&lt;br /&gt;
 ALTER TABLE antworten SET FOREIGN KEY(an_fr_id) REFERENCES fragen(fr_id);&lt;br /&gt;
&lt;br /&gt;
===Implementierung der Entitäten===&lt;br /&gt;
===Implementierung der Programmierlogik===&lt;br /&gt;
===Testphase===&lt;br /&gt;
==Abschlussphase==&lt;br /&gt;
&lt;br /&gt;
===Abnahme===&lt;br /&gt;
&lt;br /&gt;
===Einführung===&lt;br /&gt;
&lt;br /&gt;
===Dokumentation===&lt;br /&gt;
&lt;br /&gt;
==Fazit==&lt;br /&gt;
&lt;br /&gt;
===Soll/Ist-Vergleich===&lt;br /&gt;
&lt;br /&gt;
===Ausblick/Verbesserungen===&lt;br /&gt;
&lt;br /&gt;
==Quellen==&lt;br /&gt;
&lt;br /&gt;
=Anhang=&lt;br /&gt;
#Auszug aus dem Lastenheft&lt;br /&gt;
#Auszug aus dem Pflichtenheft&lt;br /&gt;
#Use-Case-Szenarien&lt;br /&gt;
#Use-Case-Diagramm&lt;br /&gt;
#Aktivitätsdiagramm&lt;br /&gt;
#Auszug aus der Funktion &amp;quot;Bewerten einer Prüfung&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Formalien ==&lt;br /&gt;
=== Deckblatt ===&lt;br /&gt;
*Projektbezeichnung: Datenbankbasierte Webanwendung zur Verwaltung und Durchführung von Prüfungen&lt;br /&gt;
*Namen und Vornamen: Rogers, Alexander&lt;br /&gt;
*Prüfungsausschuss&lt;br /&gt;
*Ausbildungsberuf: Fachinformatiker Anwendungsentwicklung&lt;br /&gt;
*Ausbildungsstätte bzw. Praktikumsbetrieb: itw gGmbH, Groninger Straße 25, 13347 Berlin bzw. Dirk Wagner Berlin, Carstennstraße 6, 12205 Berlin&lt;br /&gt;
&lt;br /&gt;
===Eidesstattliche Erklärung===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Abkürzungsverzeichnis===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekt:TestTool]]&lt;/div&gt;</summary>
		<author><name>Alexanderrogers</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=17879</id>
		<title>TestTool/Dokumentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=17879"/>
		<updated>2020-11-03T14:58:03Z</updated>

		<summary type="html">&lt;p&gt;Alexanderrogers: /* Erstellung der Datenbank */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projektdokumentation zur Webanwendung&lt;br /&gt;
&lt;br /&gt;
=Einleitung=&lt;br /&gt;
In dieser Projektdokumentation wird der Ablauf des Abschlussprojektes erläutert, das der Autor im Rahmen seiner Abschlussprüfung zum Fachinformatiker für Anwendungsentwicklung durchführt.&lt;br /&gt;
&lt;br /&gt;
==Projektbeschreibung==&lt;br /&gt;
Für die Dirk Wagner Berlin soll eine Webanwendung mit HTML und PHP entwickelt werden. Diese Webanwendung soll bestimmte Anforderungen erfüllen, die das Erstellen von Prüfungen erleichtern sollen.&lt;br /&gt;
==Projektziel==&lt;br /&gt;
Das Ziel dieses Projektes ist die erfolgreiche Umsetzung einer Webanwendung, die alle Prüfungen von Prüfern verwaltet. Die Prüfer sollen Fragen und mögliche Antworten eintragen können. Die Prüfungen sollen von Prüflingen durchgeführt werden und anschließend ein Ergebnis der Prüfung präsentiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Phasen des Projekts===&lt;br /&gt;
==Startphase==&lt;br /&gt;
===Ist-Zustand===&lt;br /&gt;
===Wirtschaftlichkeitsanalyse===&lt;br /&gt;
===Anwendungsfälle===&lt;br /&gt;
===Lastenheft===&lt;br /&gt;
* Beschreibung des Lastenhefts(Nicht das Lastenheft selber! Auszugsweise im Anhang!)&lt;br /&gt;
* Soll nach der MoSCoW-Methode(Must, Should, Could, Won´t) formuliert werden.&lt;br /&gt;
&lt;br /&gt;
==Entwurf==&lt;br /&gt;
&lt;br /&gt;
===Datenbank===&lt;br /&gt;
[[Datei:Er-modell testtool.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
===Benutzeroberfläche===&lt;br /&gt;
&lt;br /&gt;
===Funktionen===&lt;br /&gt;
&lt;br /&gt;
===Pflichtenheft===&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Kurze Beschreibung des Pflichtenhefts(Nicht das Pflichtenheft selber, höchstens Auszüge davon im Anhang!&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Implementierungsphase==&lt;br /&gt;
===Erstellung der Datenbank===&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE c8testtool;&lt;br /&gt;
 USE c8testtool;&lt;br /&gt;
&lt;br /&gt;
Fragentabelle erstellen mit Primärschlüssel und UNIQUE-Index und NOT NULL auf Fragetext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE fragen (fr_id INT AUTO_INCREMENT PRIMARY KEY, fr_fragetext TEXT UNIQUE NOT NULL, fr_th_id INT, fr_sc_id INT, fr_fa_id INT, fr_delete BOOLEAN);&lt;br /&gt;
&lt;br /&gt;
Antworttabelle erstellen mit Primärschlüssel und UNIQUE-Index auf Antworttext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE antworten (an_id INT AUTO_INCREMENT PRIMARY KEY, an_antworttext TEXT UNIQUE, an_fr_id int, an_richtig boolean, an_delete boolean);&lt;br /&gt;
&lt;br /&gt;
===Implementierung der Entitäten===&lt;br /&gt;
===Implementierung der Programmierlogik===&lt;br /&gt;
===Testphase===&lt;br /&gt;
==Abschlussphase==&lt;br /&gt;
&lt;br /&gt;
===Abnahme===&lt;br /&gt;
&lt;br /&gt;
===Einführung===&lt;br /&gt;
&lt;br /&gt;
===Dokumentation===&lt;br /&gt;
&lt;br /&gt;
==Fazit==&lt;br /&gt;
&lt;br /&gt;
===Soll/Ist-Vergleich===&lt;br /&gt;
&lt;br /&gt;
===Ausblick/Verbesserungen===&lt;br /&gt;
&lt;br /&gt;
==Quellen==&lt;br /&gt;
&lt;br /&gt;
=Anhang=&lt;br /&gt;
#Auszug aus dem Lastenheft&lt;br /&gt;
#Auszug aus dem Pflichtenheft&lt;br /&gt;
#Use-Case-Szenarien&lt;br /&gt;
#Use-Case-Diagramm&lt;br /&gt;
#Aktivitätsdiagramm&lt;br /&gt;
#Auszug aus der Funktion &amp;quot;Bewerten einer Prüfung&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Formalien ==&lt;br /&gt;
=== Deckblatt ===&lt;br /&gt;
*Projektbezeichnung: Datenbankbasierte Webanwendung zur Verwaltung und Durchführung von Prüfungen&lt;br /&gt;
*Namen und Vornamen: Rogers, Alexander&lt;br /&gt;
*Prüfungsausschuss&lt;br /&gt;
*Ausbildungsberuf: Fachinformatiker Anwendungsentwicklung&lt;br /&gt;
*Ausbildungsstätte bzw. Praktikumsbetrieb: itw gGmbH, Groninger Straße 25, 13347 Berlin bzw. Dirk Wagner Berlin, Carstennstraße 6, 12205 Berlin&lt;br /&gt;
&lt;br /&gt;
===Eidesstattliche Erklärung===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Abkürzungsverzeichnis===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekt:TestTool]]&lt;/div&gt;</summary>
		<author><name>Alexanderrogers</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=17878</id>
		<title>TestTool/Dokumentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=17878"/>
		<updated>2020-11-03T14:50:09Z</updated>

		<summary type="html">&lt;p&gt;Alexanderrogers: /* Erstellung der Datenbank */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projektdokumentation zur Webanwendung&lt;br /&gt;
&lt;br /&gt;
=Einleitung=&lt;br /&gt;
In dieser Projektdokumentation wird der Ablauf des Abschlussprojektes erläutert, das der Autor im Rahmen seiner Abschlussprüfung zum Fachinformatiker für Anwendungsentwicklung durchführt.&lt;br /&gt;
&lt;br /&gt;
==Projektbeschreibung==&lt;br /&gt;
Für die Dirk Wagner Berlin soll eine Webanwendung mit HTML und PHP entwickelt werden. Diese Webanwendung soll bestimmte Anforderungen erfüllen, die das Erstellen von Prüfungen erleichtern sollen.&lt;br /&gt;
==Projektziel==&lt;br /&gt;
Das Ziel dieses Projektes ist die erfolgreiche Umsetzung einer Webanwendung, die alle Prüfungen von Prüfern verwaltet. Die Prüfer sollen Fragen und mögliche Antworten eintragen können. Die Prüfungen sollen von Prüflingen durchgeführt werden und anschließend ein Ergebnis der Prüfung präsentiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Phasen des Projekts===&lt;br /&gt;
==Startphase==&lt;br /&gt;
===Ist-Zustand===&lt;br /&gt;
===Wirtschaftlichkeitsanalyse===&lt;br /&gt;
===Anwendungsfälle===&lt;br /&gt;
===Lastenheft===&lt;br /&gt;
* Beschreibung des Lastenhefts(Nicht das Lastenheft selber! Auszugsweise im Anhang!)&lt;br /&gt;
* Soll nach der MoSCoW-Methode(Must, Should, Could, Won´t) formuliert werden.&lt;br /&gt;
&lt;br /&gt;
==Entwurf==&lt;br /&gt;
&lt;br /&gt;
===Datenbank===&lt;br /&gt;
[[Datei:Er-modell testtool.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
===Benutzeroberfläche===&lt;br /&gt;
&lt;br /&gt;
===Funktionen===&lt;br /&gt;
&lt;br /&gt;
===Pflichtenheft===&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Kurze Beschreibung des Pflichtenhefts(Nicht das Pflichtenheft selber, höchstens Auszüge davon im Anhang!&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Implementierungsphase==&lt;br /&gt;
===Erstellung der Datenbank===&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE c8testtool;&lt;br /&gt;
 USE c8testtool;&lt;br /&gt;
&lt;br /&gt;
Fragentabelle erstellen mit Primärschlüssel und UNIQUE-Index auf Fragetext.&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE fragen (fr_id int auto_increment primary key, fr_fragetext text unique, fr_th_id int, fr_sc_id int, fr_fa_id int, fr_delete boolean);&lt;br /&gt;
&lt;br /&gt;
===Implementierung der Entitäten===&lt;br /&gt;
===Implementierung der Programmierlogik===&lt;br /&gt;
===Testphase===&lt;br /&gt;
==Abschlussphase==&lt;br /&gt;
&lt;br /&gt;
===Abnahme===&lt;br /&gt;
&lt;br /&gt;
===Einführung===&lt;br /&gt;
&lt;br /&gt;
===Dokumentation===&lt;br /&gt;
&lt;br /&gt;
==Fazit==&lt;br /&gt;
&lt;br /&gt;
===Soll/Ist-Vergleich===&lt;br /&gt;
&lt;br /&gt;
===Ausblick/Verbesserungen===&lt;br /&gt;
&lt;br /&gt;
==Quellen==&lt;br /&gt;
&lt;br /&gt;
=Anhang=&lt;br /&gt;
#Auszug aus dem Lastenheft&lt;br /&gt;
#Auszug aus dem Pflichtenheft&lt;br /&gt;
#Use-Case-Szenarien&lt;br /&gt;
#Use-Case-Diagramm&lt;br /&gt;
#Aktivitätsdiagramm&lt;br /&gt;
#Auszug aus der Funktion &amp;quot;Bewerten einer Prüfung&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Formalien ==&lt;br /&gt;
=== Deckblatt ===&lt;br /&gt;
*Projektbezeichnung: Datenbankbasierte Webanwendung zur Verwaltung und Durchführung von Prüfungen&lt;br /&gt;
*Namen und Vornamen: Rogers, Alexander&lt;br /&gt;
*Prüfungsausschuss&lt;br /&gt;
*Ausbildungsberuf: Fachinformatiker Anwendungsentwicklung&lt;br /&gt;
*Ausbildungsstätte bzw. Praktikumsbetrieb: itw gGmbH, Groninger Straße 25, 13347 Berlin bzw. Dirk Wagner Berlin, Carstennstraße 6, 12205 Berlin&lt;br /&gt;
&lt;br /&gt;
===Eidesstattliche Erklärung===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Abkürzungsverzeichnis===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekt:TestTool]]&lt;/div&gt;</summary>
		<author><name>Alexanderrogers</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=17861</id>
		<title>TestTool/Dokumentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=TestTool/Dokumentation&amp;diff=17861"/>
		<updated>2020-11-03T10:20:36Z</updated>

		<summary type="html">&lt;p&gt;Alexanderrogers: /* Datenbank */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projektdokumentation zur Webanwendung&lt;br /&gt;
&lt;br /&gt;
=Einleitung=&lt;br /&gt;
In dieser Projektdokumentation wird der Ablauf des Abschlussprojektes erläutert, das der Autor im Rahmen seiner Abschlussprüfung zum Fachinformatiker für Anwendungsentwicklung durchführt.&lt;br /&gt;
&lt;br /&gt;
==Projektbeschreibung==&lt;br /&gt;
Für die Dirk Wagner Berlin soll eine Webanwendung mit HTML und PHP entwickelt werden. Diese Webanwendung soll bestimmte Anforderungen erfüllen, die das Erstellen von Prüfungen erleichtern sollen.&lt;br /&gt;
==Projektziel==&lt;br /&gt;
Das Ziel dieses Projektes ist die erfolgreiche Umsetzung einer Webanwendung, die alle Prüfungen von Prüfern verwaltet. Die Prüfer sollen Fragen und mögliche Antworten eintragen können. Die Prüfungen sollen von Prüflingen durchgeführt werden und anschließend ein Ergebnis der Prüfung präsentiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Phasen des Projekts===&lt;br /&gt;
==Startphase==&lt;br /&gt;
===Ist-Zustand===&lt;br /&gt;
===Wirtschaftlichkeitsanalyse===&lt;br /&gt;
===Anwendungsfälle===&lt;br /&gt;
===Lastenheft===&lt;br /&gt;
* Beschreibung des Lastenhefts(Nicht das Lastenheft selber! Auszugsweise im Anhang!)&lt;br /&gt;
* Soll nach der MoSCoW-Methode(Must, Should, Could, Won´t) formuliert werden.&lt;br /&gt;
&lt;br /&gt;
==Entwurf==&lt;br /&gt;
&lt;br /&gt;
===Datenbank===&lt;br /&gt;
[[Datei:Er-modell testtool.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
===Benutzeroberfläche===&lt;br /&gt;
&lt;br /&gt;
===Funktionen===&lt;br /&gt;
&lt;br /&gt;
===Pflichtenheft===&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Kurze Beschreibung des Pflichtenhefts(Nicht das Pflichtenheft selber, höchstens Auszüge davon im Anhang!&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Implementierungsphase==&lt;br /&gt;
===Erstellung der Datenbank===&lt;br /&gt;
===Implementierung der Entitäten===&lt;br /&gt;
===Implementierung der Programmierlogik===&lt;br /&gt;
===Testphase===&lt;br /&gt;
==Abschlussphase==&lt;br /&gt;
&lt;br /&gt;
===Abnahme===&lt;br /&gt;
&lt;br /&gt;
===Einführung===&lt;br /&gt;
&lt;br /&gt;
===Dokumentation===&lt;br /&gt;
&lt;br /&gt;
==Fazit==&lt;br /&gt;
&lt;br /&gt;
===Soll/Ist-Vergleich===&lt;br /&gt;
&lt;br /&gt;
===Ausblick/Verbesserungen===&lt;br /&gt;
&lt;br /&gt;
==Quellen==&lt;br /&gt;
&lt;br /&gt;
=Anhang=&lt;br /&gt;
#Auszug aus dem Lastenheft&lt;br /&gt;
#Auszug aus dem Pflichtenheft&lt;br /&gt;
#Use-Case-Szenarien&lt;br /&gt;
#Use-Case-Diagramm&lt;br /&gt;
#Aktivitätsdiagramm&lt;br /&gt;
#Auszug aus der Funktion &amp;quot;Bewerten einer Prüfung&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Formalien ==&lt;br /&gt;
=== Deckblatt ===&lt;br /&gt;
*Projektbezeichnung: Datenbankbasierte Webanwendung zur Verwaltung und Durchführung von Prüfungen&lt;br /&gt;
*Namen und Vornamen: Rogers, Alexander&lt;br /&gt;
*Prüfungsausschuss&lt;br /&gt;
*Ausbildungsberuf: Fachinformatiker Anwendungsentwicklung&lt;br /&gt;
*Ausbildungsstätte bzw. Praktikumsbetrieb: itw gGmbH, Groninger Straße 25, 13347 Berlin bzw. Dirk Wagner Berlin, Carstennstraße 6, 12205 Berlin&lt;br /&gt;
&lt;br /&gt;
===Eidesstattliche Erklärung===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Abkürzungsverzeichnis===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekt:TestTool]]&lt;/div&gt;</summary>
		<author><name>Alexanderrogers</name></author>
	</entry>
</feed>