Various Documenting. Adopting from code to doc and vice versa…

This commit is contained in:
Ivan Hörler 2017-03-13 06:45:31 +01:00
parent 8221375561
commit 2b26efce09
14 changed files with 417 additions and 76 deletions

View File

@ -20,6 +20,47 @@
\setcounter{parentequation}{0}
\setcounter{float@type}{4}
\setcounter{r@tfl@t}{0}
\setcounter{tikzumlPackageLayers}{3}
\setcounter{tikzumlFragmentLayers}{3}
\setcounter{tikzumlStateLayers}{3}
\setcounter{tikzumlComponentLayers}{3}
\setcounter{tikzumlPackageClassNum}{0}
\setcounter{tikzumlPackageSubPackageNum}{0}
\setcounter{tikzumlRelationNum}{1}
\setcounter{tikzumlNoteNum}{1}
\setcounter{pos}{0}
\setcounter{posT}{0}
\setcounter{posStereo}{0}
\setcounter{tikzumlPackageLevel}{0}
\setcounter{tikzumlSystemUseCaseNum}{0}
\setcounter{tikzumlSystemLevel}{0}
\setcounter{tikzumlUseCaseNum}{0}
\setcounter{tikzumlActorNum}{0}
\setcounter{tikzumlStateJoinNum}{0}
\setcounter{tikzumlStateDecisionNum}{0}
\setcounter{tikzumlStateInitialNum}{0}
\setcounter{tikzumlStateFinalNum}{0}
\setcounter{tikzumlStateEnterNum}{0}
\setcounter{tikzumlStateExitNum}{0}
\setcounter{tikzumlStateEndNum}{0}
\setcounter{tikzumlStateHistoryNum}{0}
\setcounter{tikzumlStateDeepHistoryNum}{0}
\setcounter{tikzumlStateLevel}{0}
\setcounter{tikzumlStateSubStateNum}{0}
\setcounter{tikzumlStateText}{0}
\setcounter{tikzumlObjectNum}{0}
\setcounter{tikzumlCallLevel}{0}
\setcounter{tikzumlCallNum}{0}
\setcounter{tikzumlFragmentLevel}{0}
\setcounter{tikzumlFragmentLevelNum}{0}
\setcounter{tikzumlFragmentNum}{0}
\setcounter{tikzumlFragmentPartNum}{0}
\setcounter{tikzumlCallStartFragmentNum}{0}
\setcounter{tikzumlCallEndFragmentNum}{0}
\setcounter{tikzumlSDNodeNum}{0}
\setcounter{tikzumlComponentLevel}{0}
\setcounter{tikzumlComponentSubComponentNum}{0}
\setcounter{tikzumlConnectorNum}{1}
\setcounter{Item}{0}
\setcounter{Hfootnote}{0}
\setcounter{bookmark@seq@number}{0}

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

View File

@ -0,0 +1,118 @@
<?xml version="1.0" encoding="UTF-8"?><project name="B2BTimetable" company="BusinessStreamline" webLink="http://wt1cs1.hoerler.email" view-date="2016-11-14" view-index="0" gantt-divider-location="552" resource-divider-location="300" version="2.8.3" locale="de">
<description/>
<view zooming-state="default:6" id="gantt-chart">
<field id="tpd3" name="Vorgang" width="265" order="0"/>
<field id="tpd4" name="Anfang" width="141" order="1"/>
<field id="tpd5" name="Ende" width="140" order="2"/>
<option id="color.recent"><![CDATA[#000000]]></option>
</view>
<view id="resource-table">
<field id="0" name="Ressource" width="209" order="0"/>
<field id="1" name="Rolle" width="85" order="1"/>
</view>
<!-- -->
<calendars>
<day-types>
<day-type id="0"/>
<day-type id="1"/>
<default-week id="1" name="default" sun="0" mon="0" tue="0" wed="0" thu="0" fri="0" sat="0"/>
<only-show-weekends value="false"/>
<overriden-day-types/>
<days/>
</day-types>
</calendars>
<tasks empty-milestones="true">
<taskproperties>
<taskproperty id="tpd0" name="type" type="default" valuetype="icon"/>
<taskproperty id="tpd1" name="priority" type="default" valuetype="icon"/>
<taskproperty id="tpd2" name="info" type="default" valuetype="icon"/>
<taskproperty id="tpd3" name="name" type="default" valuetype="text"/>
<taskproperty id="tpd4" name="begindate" type="default" valuetype="date"/>
<taskproperty id="tpd5" name="enddate" type="default" valuetype="date"/>
<taskproperty id="tpd6" name="duration" type="default" valuetype="int"/>
<taskproperty id="tpd7" name="completion" type="default" valuetype="int"/>
<taskproperty id="tpd8" name="coordinator" type="default" valuetype="text"/>
<taskproperty id="tpd9" name="predecessorsr" type="default" valuetype="text"/>
</taskproperties>
<task id="0" name="Vision" meeting="false" start="2016-11-19" duration="21" complete="0" expand="true">
<depend id="17" type="2" difference="0" hardness="Strong"/>
<depend id="34" type="2" difference="0" hardness="Strong"/>
<task id="1" name="Schreiben" color="#8cb6ce" meeting="false" start="2016-11-19" duration="21" complete="0" expand="true">
<depend id="2" type="2" difference="0" hardness="Strong"/>
</task>
<task id="2" name="Abgabe" color="#8cb6ce" meeting="true" start="2016-12-10" duration="0" complete="0" expand="true"/>
</task>
<task id="130" name="Analyse" meeting="false" start="2016-12-10" duration="40" complete="0" expand="true">
<task id="6" name="UserStorys" meeting="false" start="2016-12-10" duration="14" complete="0" expand="true">
<depend id="34" type="2" difference="0" hardness="Strong"/>
<depend id="49" type="2" difference="0" hardness="Strong"/>
<task id="9" name="Schreiben" color="#8cb6ce" meeting="false" start="2016-12-10" duration="14" complete="0" expand="true">
<task id="13" name="StreamlineBusiness" color="#8cb6ce" meeting="false" start="2016-12-10" duration="14" complete="0" expand="true"/>
<task id="11" name="Nachfragerfirma" color="#8cb6ce" meeting="false" start="2016-12-10" duration="14" complete="0" expand="true"/>
<task id="12" name="Anbieterfirma" color="#8cb6ce" meeting="false" start="2016-12-10" duration="14" complete="0" expand="true"/>
</task>
<task id="7" name="Abgabe" color="#8cb6ce" meeting="true" start="2016-12-23" duration="0" complete="0" expand="true"/>
</task>
<task id="17" name="UseCase Diagramme" color="#000000" meeting="false" start="2017-01-07" duration="6" complete="0" expand="true">
<depend id="34" type="2" difference="0" hardness="Strong"/>
<depend id="49" type="2" difference="0" hardness="Strong"/>
<task id="18" name="UseCase Login" color="#8cb6ce" meeting="false" start="2017-01-07" duration="1" complete="0" expand="true"/>
<task id="19" name="UserCase Angebot" color="#8cb6ce" meeting="false" start="2017-01-09" duration="1" complete="0" expand="true"/>
<task id="23" name="UseCase Suche" color="#8cb6ce" meeting="false" start="2017-01-10" duration="1" complete="0" expand="true"/>
<task id="20" name="UseCase Profile" color="#8cb6ce" meeting="false" start="2017-01-11" duration="1" complete="0" expand="true"/>
<task id="21" name="UseCase XML" color="#8cb6ce" meeting="false" start="2017-01-12" duration="1" complete="0" expand="true"/>
</task>
<task id="34" name="Datenbankdesign" color="#000000" meeting="false" start="2017-01-14" duration="5" complete="0" expand="true">
<depend id="49" type="2" difference="0" hardness="Strong"/>
<task id="35" name="RM" color="#8cb6ce" meeting="false" start="2017-01-14" duration="1" complete="0" expand="true"/>
<task id="36" name="ERM" color="#8cb6ce" meeting="false" start="2017-01-18" duration="1" complete="0" expand="true"/>
</task>
</task>
<task id="129" name="Realisierung" meeting="false" start="2017-01-19" duration="50" complete="0" expand="true">
<task id="48" name="Sprint Login" meeting="false" start="2017-01-19" duration="10" complete="0" expand="true">
<depend id="58" type="2" difference="0" hardness="Strong"/>
<task id="49" name="Programmierung" color="#8cb6ce" meeting="false" start="2017-01-19" duration="5" complete="0" expand="true">
<depend id="50" type="2" difference="0" hardness="Strong"/>
</task>
<task id="50" name="Revision" color="#8cb6ce" meeting="false" start="2017-01-24" duration="5" complete="0" expand="true"/>
</task>
<task id="58" name="Sprint Angebot" color="#000000" meeting="false" start="2017-01-29" duration="10" complete="0" expand="true">
<depend id="69" type="2" difference="0" hardness="Strong"/>
<task id="61" name="Programmierung" color="#8cb6ce" meeting="false" start="2017-01-29" duration="5" complete="0" expand="true">
<depend id="62" type="2" difference="0" hardness="Strong"/>
</task>
<task id="62" name="Revision" color="#8cb6ce" meeting="false" start="2017-02-03" duration="5" complete="0" expand="true"/>
</task>
<task id="69" name="Sprint Suche" color="#000000" meeting="false" start="2017-02-08" duration="10" complete="0" expand="true">
<depend id="82" type="2" difference="0" hardness="Strong"/>
<task id="73" name="Programmierung" color="#8cb6ce" meeting="false" start="2017-02-08" duration="5" complete="0" expand="true">
<depend id="75" type="2" difference="0" hardness="Strong"/>
</task>
<task id="75" name="Revision" color="#8cb6ce" meeting="false" start="2017-02-13" duration="5" complete="0" expand="true"/>
</task>
<task id="82" name="Sprint Profile" color="#000000" meeting="false" start="2017-02-18" duration="10" complete="0" expand="true">
<depend id="94" type="2" difference="0" hardness="Strong"/>
<task id="83" name="Programmierung" color="#8cb6ce" meeting="false" start="2017-02-18" duration="5" complete="0" expand="true">
<depend id="84" type="2" difference="0" hardness="Strong"/>
</task>
<task id="84" name="Revision" color="#8cb6ce" meeting="false" start="2017-02-23" duration="5" complete="0" expand="true"/>
</task>
<task id="94" name="Sprint XML" color="#000000" meeting="false" start="2017-02-28" duration="10" complete="0" expand="true">
<task id="95" name="Programmierung" color="#8cb6ce" meeting="false" start="2017-02-28" duration="5" complete="0" expand="true">
<depend id="96" type="2" difference="0" hardness="Strong"/>
</task>
<task id="96" name="Revision" color="#8cb6ce" meeting="false" start="2017-03-05" duration="5" complete="0" expand="true"/>
</task>
</task>
<task id="137" name="Doku Styling" color="#8cb6ce" meeting="false" start="2017-03-10" duration="5" complete="0" expand="true"/>
<task id="136" name="Doku Präsentabel aufbereiten" color="#8cb6ce" meeting="false" start="2017-03-17" duration="1" complete="0" expand="true"/>
<task id="131" name="Abgabetermin" color="#8cb6ce" meeting="true" start="2017-03-24" duration="0" complete="0" expand="true"/>
<task id="134" name="Vortrag" color="#8cb6ce" meeting="true" start="2017-04-01" duration="0" complete="0" expand="true"/>
</tasks>
<resources/>
<allocations/>
<vacations/>
<previous/>
<roles roleset-name="Default"/>
<roles roleset-name="SoftwareDevelopment"/>
</project>

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 216 KiB

View File

@ -80,8 +80,28 @@ bottom=3cm
%\RequirePackage{graphicx} % is included in tikz
%Support for Graphics
\RequirePackage{tikz}
\usetikzlibrary{matrix}
\RequirePackage{pgf,tikz}
\usetikzlibrary{%
arrows.meta,
arrows,
shapes,
shapes.misc,
shapes.symbols,
shapes.geometric,
chains,
matrix,
positioning,
shapes.multipart,
calc,
spy,
decorations,
backgrounds,
scopes}
\RequirePackage{tikz-uml}
\RequirePackage{ifthen}
\RequirePackage{xstring}
\RequirePackage{pgfkeys}
\RequirePackage{pgfplots}
%Enable URL highlighting
\RequirePackage{hyperref}

Binary file not shown.

View File

@ -50,8 +50,59 @@
% 3 Seite - Hier beginnt die Arbeit
%-------------------------------------------------------------------
\setcounter{page}{1} %hier beginnt die Seitenzahl
\section{Ausgangslage}
\subsection{Zielsetzung dan die Fallstudie}
Die Webtech Case Study im dritten Semester der Ausbildung zum Dipl. Techniker IT befasst sich mit den Technologien HTML, PHP und SQL aus den Fächern Webtechnologie und Datenbanken.
Die Zielsetzung ist vom Fachgruppenleiter dokumentiert und wird gemäss diesem umgesetzt.
Es sind vier Ziele zu verfolgen:\\
\section{Vision}
\begin{minipage}{0.6\linewidth}
\begin{itemize}
\item Der Studierende hat ein Geschäftsmodell in eine einfache dynamische Weblösung abgebildet
\item Der Studierende hat einen sinnvollen Testplan entworfen und diesen auf seine Lösung angewendet
\item Der Studierende hat die zur Verfügung stehenden Stunden in einer Planung den aufgaben zugeordnet und eine Abweichungsanalyse erstellt
\item Der Studierende hat die Lösung dokumentiert
\end{itemize}
\end{minipage}
\subsection{Rahmenbedingungen}
\begin{tabular}{l|l}
Thema & Festlegung\\\hline
Art der Arbeit & Gruppenarbeit zu dritt\\
Umfang & 80 Stunden\\
Präsentation & 15min. vor der Klasse \\
Abgabe & Elektronisch\\
Benotung & gemäss Beurteilungsschema\\
\end{tabular}
\subsection{Umschreibung der Aufgabenstellung}
Folgendes Geschäftsmodel ist umzusetzen:\\
\begin{minipage}{0.96\linewidth}
\begin{itemize}
\item Firmen (Nachfrager), welche Teile zur Herstellung Ihrer Produkte benötigen (Schrauben, Muttern, Nieten...) können diese auf unserer Plattform erfassen.
\item Erfasst werden dabei die genaue Bezeichnung, die benötigte Menge und Qualität und der gewünschte Lieferzeitpunkt.
\item Anbieter solcher Teile können nun nach gewissen Teilen suchen (z.B. sucht jemand Schrauben des Typ II-C ?)
\item Findet der Anbieter einen Eintrag, so kann er, anonymisiert, ein Angebot hinterlegen (ich biete Schraube II-C zu 12 Fr. per 100 Stück an)
\item Die Nachfrager können anschliessend alle Angebote, welche zu einem bestimmten Teil abgegeben worden sind auflisten und das Ihnen passende auswählen.
\item Ein so ausgewähltes Angebot wird dem Anbieter als Bestellung im XML- Format übermittelt
\end{itemize}
\end{minipage}
\section{Projektorganisation}
Wir entscheiden uns für eine Agile Entwicklung nach SCRUM.
\subsection{Personen, Aufgaben und Werkzeuge}
Prashath Harayanamoorthy wird die Aufgabe des SCRUM Masters übernehmen während sich Ivan Hörler als Developer integriert und Alessio Ciullo übernimmt die Sprint Reviews. \\
Dabei wurde die Daily auf Weekly meetings ausgedehnt um den Ansprüchen der Aufgabe und der Nebenberuflichen erledigung der Case Study gerecht zu werden.\\
Die Dokumentation wird jeweils aktuell mitgeführt und über die gleiche Versioning Software verteilt wie der Code. Geschrieben wird in Latex um die Mitarbeit aller, direkt über commits ins ''Git'' Repository sicherzustellen. Programmiert wird ausschliesslich in HTML, PHP und MYSQL Sprache.\\
Der SCRUM Master erstellt die zu erledigenden Arbeitspaket (nachfollgend ''AP'' genannt), dazu Usecase Diagramm und User Storys und übergibt diese dem Developer der den Sprint damit beginnt. Durch den Revisor wird die jeweilige itteration beglaubigt bevor zum nächsten AP übergegangen wird.
\subsection{Kommunikationsstrukturen}
Zur Kommunikation untereinander wird ein Telegramm Messenger eingesetzt.
AP und Diagramme werden direkt im Dokument eingefügt und stehen somit mit dem nachgehenden Bericht des Developers im Selben allen zur Einsicht zur verfügung.
\subsection{Qualitätsmanagement}
Nach jedem AP wird das geleistete untersucht und eventuelle Abschweiffer von der Aufgabenstellung gleich behoben.
Untersucht wird anhand von User Stories und Usecase Diagramme ob die Lösung den Vorgaben entspricht.
\section{Analyse}
\subsection{Vision}
Die Vision beschreibt den Vorgang von Anwendern auf der Website der Firma BusinessStreamline graphisch als Kundenbeziehung.
\begin{figure}[h]
@ -61,22 +112,14 @@ Die Vision beschreibt den Vorgang von Anwendern auf der Website der Firma Busine
\label{fig:Kundenbeziehung}
\end{figure}
% \begin{figure}[h]
% \subsection{Meilensteine}
% \includegraphics[width=\textwidth]{bilder/vision/Millestones.pdf}
% \label{fig:Meilensteine}
% \caption{Meilensteine}
% \end{figure}
\section{User Stories}
\subsection{User Stories}
Ausgangspunkt ist diese Syntax:
\begin{center}%
%\begin{Small}%
\textsc{Als } \textsc{\texttt{<Benutzerrolle> }}\textsc{will ich } \textsc{\texttt{<das Ziel>, }}\textsc{so dass } \textsc{\texttt{<Grund für das Ziel>.}}
%\end{Small}%
\end{center}%
\subsection{BusinessStreamline}
\subsubsection{BusinessStreamline}
\begin{itemize}
\item Als Dienstleister firma will ich, dass der Kunde sich Anmelden muss, so dass kein unbefugter Zugang besteht.
\item Als Dienstleister firma will ich Kontrolle über die Kundenanmeldung haben, so dass kein Kunde zweimal registriert sein kann.
@ -84,7 +127,7 @@ Die Vision beschreibt den Vorgang von Anwendern auf der Website der Firma Busine
\item Als Dienstleister firma will ich die Angebote überprüfen können.
\item Als Dienstleister firma will ich, dass alle Nachfrager und Anbieter anonym verhandeln können.
\end{itemize}
\subsection{Nachfragerfirma}
\subsubsection{Nachfragerfirma}
\begin{itemize}
\item Als Nachfrager firma will ich eine Bezeichnung eines gesuchten Teils hinterlegen können so dass ein Anbieter das Teil spezifisch suchen kann.
\item Als Nachfrager firma will ich die Qualität eines gesuchten Teils hinterlegt haben, sodass ich mich an Qualitätsmerkmalen orientieren kann.
@ -93,7 +136,7 @@ Die Vision beschreibt den Vorgang von Anwendern auf der Website der Firma Busine
\item Als Nachfrager firma will ich ein Angebot annehmen können, so dass dem Anbieter eine Bestellung zugesandt wird.
\item Als Nachfrager firma will ich das Teil innerhalb der Lieferzeit zugesandt bekommen.
\end{itemize}
\subsection{Anbieterfirma}
\subsubsection{Anbieterfirma}
\begin{itemize}
\item Als Anbieter firma will ich abfragen welche Teile gesucht sind, so dass ein Angebot erstellt werden kann.
\item Als Anbieter firma will ich, dass alle Eckpunkte geklärt sind, so dass keine unvorhergesehenen Kosten entstehen.
@ -101,52 +144,118 @@ Die Vision beschreibt den Vorgang von Anwendern auf der Website der Firma Busine
\item Als Anbieter firma will ich anonym bleiben, so dass die Nachfragefirma nur anhand des Preises entscheidet wer sie berücksichtigt.
\item Als Anbieter firma will ich bei der Bestellung eine schriftliche Antwort erhalten, so dass der Vertrag gültig ist.
\end{itemize}
\section{Benutzerführung}
Damit der Kunde sieht wie seine Webseite funktioniert wurde eine Benutzerführung in form von Flowdiagrammen zu jedem Typ von Kunden erstellt.
\subsection{Nachfrage Firma}
\subsection{Usecase Diagramme}
\subsubsection{Login}
\scalebox{0.8}{
\begin{tikzpicture}
\begin{umlsystem}[x=4, fill=red!10]{The System}
\umlusecase[x=0,y=-5,name=case1, width=20mm]{Rechnung erstellen}
\umlusecase[x=5.5,y=-5, name=case2, width=20mm]{Zusätzliche Prüfung durch vorgesetzten auslösen.}
\umlusecase[x=0, y=-7, name=case3, width=30mm]{Rechnungsversand auslösen.}
\umlinclude[name=incl]{case1}{case3}
\umlextend[name=exte]{case2}{case1}
\end{umlsystem}
\umlactor[x=0,y=-5]{Sachb}
\umlactor[x=0,y=-7]{Kunde}
\umlinherit{case3}{Kunde}
\umlassoc{Sachb}{case1}
\umlnote[x=9,y=-7, width=4cm]{exte-1}{condition: [ betrag >= 5000 ] }
\end{tikzpicture}
}
\begin{figure}[H]
\begin{center}
\includegraphics[scale=0.5]{bilder/Benutzerfuehrung/Nachfrager.png}
\end{center}
\caption{Benutzerführung des Nachfragers}
\label{fig:BenutzerführungNachfrager}
\end{figure}
\subsection{Anbieter Firma}
\begin{figure}[H]
\begin{center}
\includegraphics[scale=0.6]{bilder/Benutzerfuehrung/Anbieter.png}
%\includegraphics[scale=0.6]{bilder/usecase/login.png}
\end{center}
\caption{Benutzerführung des Anbieters}
\label{fig:BenutzerführungAnbieters}
\caption{Login Vorgang}
\label{fig:LoginVorgang}
\end{figure}
\section{Datenbank}
Die Gruppe hat sich entschieden das Projekt auf Basis einer MySQL Datenbank mit PHP zu erstellen.
\subsubsection{Angebot}
\begin{figure}[H]
\begin{center}
%\includegraphics[scale=0.6]{bilder/usecase/angebot.png}
\end{center}
\caption{Angebots Vorgang}
\label{fig:AngebotVorgang}
\end{figure}
\subsubsection{Suche}
\begin{figure}[H]
\begin{center}
%\includegraphics[scale=0.6]{bilder/usecase/suche.png}
\end{center}
\caption{Suche Vorgang}
\label{fig:SucheVorgang}
\end{figure}
\subsubsection{Profile}
\begin{figure}[H]
\begin{center}
%\includegraphics[scale=0.6]{bilder/usecase/profile.png}
\end{center}
\caption{Profile Vorgang}
\label{fig:ProfileVorgang}
\end{figure}
\subsubsection{XML}
\begin{figure}[H]
\begin{center}
%\includegraphics[scale=0.6]{bilder/usecase/xml.png}
\end{center}
\caption{XML Vorgang}
\label{fig:XMLVorgang}
\end{figure}
\subsection{Datenbank}
Die Gruppe hat sich entschieden das Projekt auf Basis einer MySQL Datenbank mit PHP zu erstellen. Da ein Hoster über ein Team-Mitglied zur verfügung stand.
Zur Visualisierung wurden RM und ERM mit Dia erstellt:
\subsection{ERM}
\subsubsection{ERM}
\begin{figure}[H]
\begin{center}
\includegraphics[scale=0.4]{bilder/DB/DB-ERM.png}
\includegraphics[scale=0.4]{bilder/DB/DB-ERM2.png}
\end{center}
\caption{ERM zur Datenbank für BusinessStreamline}
\label{fig:ERM}
\end{figure}
\subsection{RM}
\subsubsection{RM}
\begin{figure}[H]
\begin{center}
\includegraphics[scale=0.5]{bilder/DB/DB-RM.png}
\includegraphics[scale=0.5]{bilder/DB/DB-RM2.png}
\end{center}
\caption{RM zur Datenbank für BusinessStreamline}
\label{fig:RM}
\end{figure}
\section{Detailplanung}
\subsection{Benutzerführung}
Damit der Kunde sieht wie seine Webseite funktioniert wurde eine Benutzerführung in form von Flowdiagrammen zu jedem Typ von Kunden erstellt.
\subsubsection{Nachfrage Firma}
\begin{figure}[H]
\begin{center}
\includegraphics[scale=0.45]{bilder/Benutzerfuehrung/Nachfrager.png}
\end{center}
\caption{Benutzerführung des Nachfragers}
\label{fig:BenutzerführungNachfrager}
\end{figure}
\subsubsection{Anbieter Firma}
\begin{figure}[H]
\begin{center}
\includegraphics[scale=0.48]{bilder/Benutzerfuehrung/Anbieter.png}
\end{center}
\caption{Benutzerführung des Anbieters}
\label{fig:BenutzerführungAnbieters}
\end{figure}
\newpage %-------------------------------------------------------------------
\section{Coding}
\begin{landscape}
\subsection{Termine und Meilensteine}
\begin{figure}[H]
\subsection{Zeitplan}
\includegraphics[scale=0.29]{bilder/Zeitplan/Zeitplanganz.png}
\caption{Zeitplanung}
\label{fig:Zeitplanung}
\end{figure}
\end{landscape}
\newpage %-------------------------------------------------------------------
\section{Realisation/Dokumentation}
\subsection{erstes Login}
Nach dem wir einige Tutorials durchgearbeitet hatten, fanden wir mit codeingcage \cite{ref1} ein Tutorial dass die Abläufe
genügend einfach gestaltet hatte. So dass wir auch in der Lage waren es zu verstehen, verändern und unseren Bedürfnissen anzupassen.
@ -172,18 +281,11 @@ Da XML eine eigene Skript art ist mussten wir uns erst damit auseinandersetzen.
\subsection{Filedownload}
Diese Problemstellung haben wir komplett unterschätzt. Die Art und Programmierung für den Trigger eines Downloads mit PHP ist kompliziert. Durch ausprobieren und der Kombination von verschiedenen Lösungen aus dem Internet konnte es dann bewerkstelligt werden. \cite{ref5}
\begin{landscape}
\section{Projektplanung}
\subsection{Testing}
\begin{figure}[H]
\subsection{Zeitplan}
\includegraphics[scale=0.4]{bilder/Zeitplan/Zeitplan.png}
\caption{Zeitplanung}
\label{fig:Zeitplanung}
\end{figure}
\end{landscape}
\newpage %-------------------------------------------------------------------
\begin{figure}[H]
\subsection{Zeitaufwand}
\section{Zeitaufwandsliste}
\begin{footnotesize}
\begin{center}
\begin{spreadtab}{{tabular}{ | l | c | c | c | l | }} \hline
@ -212,6 +314,11 @@ Diese Problemstellung haben wir komplett unterschätzt. Die Art und Programmieru
\end{footnotesize}
\end{figure}
\subsection{Abweichungsanalyse}
% Etwas Hilfe zu Latex:
%-------------------------------------------------------------------

View File

@ -9,7 +9,7 @@ COLLATE utf8_general_ci;
use bsldb;
grant all on bsldb.* to
'WT1CS1usr'@'%'
'WT1CS1usr'@'localhost'
identified by 'ibz4life-WT1CS1';
flush privileges;
SHOW GRANTS FOR 'WT1CS1usr';
@ -20,8 +20,8 @@ SHOW GRANTS FOR 'WT1CS1usr';
CREATE TABLE IF NOT EXISTS `bsldb`.`benutzer` (
`benutzer_id` int(11) NOT NULL AUTO_INCREMENT,
`benutzer_name` varchar(15) NOT NULL,
`benutzer_pass` varchar(255) NOT NULL,
`benutzer_name` varchar(30) NOT NULL,
`benutzer_pass` varchar(30) NOT NULL,
`anmelde_datum` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
UNIQUE (`benutzer_name`),
PRIMARY KEY (`benutzer_id`)

View File

@ -60,7 +60,7 @@
<p>Suchen Sie ein Teil? Dann erfassen Sie es hier!</p>
</div>
<div class="inhalt">
<form method="post" action="<?= $_SERVER['PHP_SELF'] ?>">
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
<table class="table table-unvsible"
<tr>
<td>Typ:</td>

View File

@ -47,30 +47,29 @@
"<td>" . htmlentities($row['nachfr_quali']) . "&nbsp;" . "</td>" .
"<td>" . htmlentities($row['nachfr_lieferdatum']) . "&nbsp;" . "</td>" .
"<td>" . substr(htmlentities($row['angebot_datum']),0,10) . "&nbsp;" . "</td>" .
"<td>"; if (!empty(htmlentities($row['angebot_preis'])))
{echo
"Fr. " . htmlentities($row['angebot_preis']) . "&nbsp;" . "</td>";
}else{echo
"k.A." . "&nbsp;" . "</td>";
}
if (!empty(htmlentities($row['angebot_file']))) {
// $pathtofile="xml/"; geht nicht weil der slash wird nicht mitgenommen wenn die variable abgerufenwird...
echo
"<td>" .
"<form method='GET' action='". "download.php" ."'>" .
"<input type='hidden' name='angebot_id' value='".htmlentities($row['angebot_id'])."'/>" .
"<input class='sbtn' type='submit' name='download' value='Download' />" .
"</form>" .
"</td>";
}
if (!empty(htmlentities($row['angebot_preis'])) AND empty(htmlentities($row['angebot_file']))) {
"<td>";
if (!empty(htmlentities($row['angebot_preis']))) {
echo
"Fr. " . htmlentities($row['angebot_preis']) . "&nbsp;" . "</td>";
} else {
echo
"kein Angebot bisher." . "&nbsp;" . "</td>";
}
if (!empty(htmlentities($row['angebot_file']))) {
echo
"<td>" .
"<form method='GET' action='". "xml2.php" ."'>" .
"<input type='hidden' name='angebot_id' value='".htmlentities($row['angebot_id'])."'/>" .
"<input class='sbtn' type='submit' name='annehmen' value='Angebot annehmen' />" .
"</form>" .
"dieses Angebot wurde von dir Angenommen" .
"</td>";
} else {
if (!empty(htmlentities($row['angebot_preis']))){
echo
"<td>" .
"<form method='GET' action='". "xml2.php" ."'>" .
"<input type='hidden' name='angebot_id' value='".htmlentities($row['angebot_id'])."'/>" .
"<input class='sbtn' type='submit' name='annehmen' value='Angebot annehmen' />" .
"</form>" .
"</td>";
}
}
"</tr>";
}
@ -82,6 +81,60 @@
}
?>
</table>
<br />
<table class="table">
<caption>Deine Angebote:</caption>
<th>Eintrag</th>
<th>Typ</th>
<th>Menge</th>
<th>Qualität</th>
<th>Lieferung</th>
<th>A.Datum</th>
<th>Angebot</th>
<th colspan="2">Aufträge:</th>
<?php try {
foreach ($db->query("
SELECT * FROM nachfrager
LEFT JOIN anbieter
ON nachfrager.erfassungs_id = anbieter.erfassungs_id
WHERE anbieter.benutzer_id = $user_id
ORDER BY nachfrager.nachfr_typ ASC, anbieter.angebot_preis ASC
") as $row) {
echo
"<tr>" .
"<td>" . substr(htmlentities($row['nachfr_datum']),0,10) . "&nbsp;" . "</td>" .
"<td>" . htmlentities($row['nachfr_typ']) . "&nbsp;" . "</td>" .
"<td>" . htmlentities($row['nachfr_menge']) . "&nbsp;" . "</td>" .
"<td>" . htmlentities($row['nachfr_quali']) . "&nbsp;" . "</td>" .
"<td>" . htmlentities($row['nachfr_lieferdatum']) . "&nbsp;" . "</td>" .
"<td>" . substr(htmlentities($row['angebot_datum']),0,10) . "&nbsp;" . "</td>" .
"<td>" . htmlentities($row['angebot_preis']) . "&nbsp;" . "</td>";
if (!empty(htmlentities($row['angebot_file']))) {
echo
"<td>" .
"<form method='GET' action='". "download.php" ."'>" .
"<input type='hidden' name='angebot_id' value='".htmlentities($row['angebot_id'])."'/>" .
"<input class='sbtn' type='submit' name='download' value='Download' />" .
"</form>" .
"</td>";
} else {
echo
"<td>" .
"dein Angebot wurde noch nicht bestätigt" .
"</td>";
}
"</tr>";
}
} catch (Exception $e) {
echo $e->getMessage();
echo $e;
}
?>
</table>
<p>sobald ein Angebot angenommen wird wird dir ein Link mit den Informationen bereitgestellt.</p>
<br />
</div>
</body>
</html>

View File

@ -91,6 +91,7 @@ caption{
top: 20;
left: 20;
width: 100%;
height: 80%;
border-spacing: 0px;
text-align: left;
max-width: 800px;
@ -110,6 +111,7 @@ caption{
font-family:Tahoma, Geneva, sans-serif;
color:#222;
font-weight:lighter;
overflow: scroll;
}
th{
font-size: 16px;