From 9b31f2a20f456f1aaa2e2aa0189a22987cc66740 Mon Sep 17 00:00:00 2001 From: Andreas Zweili Date: Tue, 13 Feb 2018 20:00:15 +0100 Subject: [PATCH 1/7] add the currency name to all the prices --- django/didgeridoo/webshop/templates/webshop/cart.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/django/didgeridoo/webshop/templates/webshop/cart.html b/django/didgeridoo/webshop/templates/webshop/cart.html index d54c385..cbfe4e3 100644 --- a/django/didgeridoo/webshop/templates/webshop/cart.html +++ b/django/didgeridoo/webshop/templates/webshop/cart.html @@ -28,12 +28,12 @@ {{ article.article.price_in_chf }} {{ currency_name }} - {{ article.position_price }} + {{ article.position_price }} {{ currency_name }} {% endfor %} - Total: {{ total }} + Total: {{ total }} {{ currency_name }} From a616a709a22289116b1272fb656f70473fd8fdad Mon Sep 17 00:00:00 2001 From: Andreas Zweili Date: Thu, 15 Feb 2018 20:17:52 +0100 Subject: [PATCH 2/7] remove a comment and some todo tags --- docs/doku.org | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/docs/doku.org b/docs/doku.org index 761e645..a9937eb 100644 --- a/docs/doku.org +++ b/docs/doku.org @@ -9,16 +9,12 @@ #+STARTUP: align -* TODO Über dieses Dokument +* Über dieses Dokument Im nachfolgenden Abschnitt finden Sie allgemeine Informationen zu diesem Dokument. -** TODO Titel der Dokumentation - -- Note taken on [2018-01-03 Mit 16:30] \\ - Müssen wir wohl überarbeiten da wir mal angedacht haben das ein - Musikinstrumene-Shop allenfalls einfacher ist. +** Titel der Dokumentation Die Gruppe hat verschiedene Varianten gelistet und sich für die lustigste entschieden. From 1fbdd83bb06c21e3aa0090b68257deffee2dbcc3 Mon Sep 17 00:00:00 2001 From: Andreas Zweili Date: Thu, 15 Feb 2018 20:19:50 +0100 Subject: [PATCH 3/7] move a section --- docs/doku.org | 397 +++++++++++++++++++++++++------------------------- 1 file changed, 199 insertions(+), 198 deletions(-) diff --git a/docs/doku.org b/docs/doku.org index a9937eb..a9ec227 100644 --- a/docs/doku.org +++ b/docs/doku.org @@ -81,201 +81,7 @@ nach Prioritäten gewichtet. | 7. | Die Punkte der Bewertung werden erfüllt. | Hoch | |-------+--------------------------------------------------------------------+----------------------| -** Mittel und Methoden -*** Werkzeuge - -Während dem Erstellen dieser Arbeit wurde eine Vielzahl an Werkzeugen -eingesetzt. Nachfolgend werden diese Werkzeuge kurz beschrieben sowie -ihre Verwendung begründet. Wir haben dabei darauf geachtet soviel Open -Source Software wie möglich zu verwenden. Nicht nur für den Web-Shop an -sich sondern generell für alle Tasks im Projekt. - -**** Versionkontrolle - -Eine Versionskontrollsoftware erschien uns als notwendig um den Code -auf einfache und zuverlässige Weise untereinander austauschen zu -können. Andere Lösungen wie Dropbox, etc. hätten es uns nicht erlaubt -Konflikte zu vermeinden. - -Als Software für die Versionskontrolle wurde Git \footcite{git} gewählt. -Git wurde aus diversen Gründen gewählt: - -- Ist der de facto Standard bei Versionskontrollsoftware -- Läuft auf allen gängigen Betriebsystemen -- Es gäbe gratis Services die man nutzen könnte (Github, Gitlab) -- Man kann offline arbeiten und Commits erstellen -- Das Team hat bereits einen eigenen Git Server zur Verfügung -- Das Team ist bereits mit Git aus vorhergehenden Projekten vertraut - dadurch muss man keine Ressourcen aufwenden eine neue Software zu lernen. - Zusätzlich hat sich Git in den vorhergehenden Projekten als robuste - und schnelle Software erwiesen. -- Git ist freie Software unter GNU Public License v2. - -**** Entwicklungsumgebung - -Damit beide Studenten auf der gleichen Basis arbeiten haben wir uns -dazu entschieden den Web-Shop in einer virtuellen Maschine zu -entwickeln. Dies führt jedoch in der Regel zum Problem das die -Änderungen in der virtuellen Maschine miteinander abgesprochen und -ausgetauscht werden müssen. Um dieses Problem zu beheben haben wir uns -dazu entschieden Vagrant\footcite{vagrant} zu verwenden. -Vagrant ist freie Software unter der MIT Lizenz. - -Vagrant erlaubt es einem den Zustand einer virtuellen Maschine in -einer Text Datei zu beschreiben und diese dann gemäss der Beschreibung -automatisiert aufzusetzen. Dies hat den Vorteil das die Konfiguration -der virtuellen Maschine auch ohne weiteres mit dem restlichen Code in -der Versionskontrollsoftware gepflegt werden kann. - -Desweiteren hilft das automatisierte Aufsetzen das vermeiden von -menschlichen Fehlern. Somit kann davon ausgegangen werden dass, das -System in der virtuellen Maschine immer den korrekten Stand zum -entwickeln sein. Sollte dies nicht mehr der Fall sein lässt sich die -virtuelle Maschine mit einem maxmimal zwei Befehlen wieder in den -Ursprungszustand zurücksetzen. - -Als Hypervisor der virtuellen Maschine wurde -Virtualbox\footcite{virtualbox} eingesetzt. Virtualbox ist im Kern -freie Software unter der GNU Public License v2. Das unter einer -proprietären Lizenz erhältliche Erweiterungspacket ist für unser Setup -nicht notwendig. - -**** Hostsystem - -Als Hostsystem für unseren Web-Shop haben wir uns für die Linux -Distribution Debian\footcite{debian} in der Version 9 (Stretch) -entschieden. Für Debian haben wir uns vor allem aus folgenden Gründen -entschieden: - -- Stabiles System -- Sehr guter Packetmanager was einem das Scripting vereinfacht. -- Gilt als sehr sicher -- Hat sich in vorhergehenden Projekten bereits als gute Basis bewiesen -- Enthält in der Grundkonfiguration nur freie Software (nicht freie - Software muss aktiv hinzugefügt werden) -- In der Linux Welt sehr verbreitet -- Im Gegensatz zu Ubuntu nicht von einer Firma abhängig - -**** Deployment Software für Produktionsserver - -Auch auf dem produktiven Server haben wir uns für Debian entschieden. -Um diesen aufzusetzen hatten wir in etwa die ähnlichen Anforderungen -wie für die Entwicklungsumgebung. Also einen Weg um das System -möglichst automatisch und reproduzierbar aufzusetzen. Die für die -Entwicklungsumgebung verwendete Software Vagrant ist für produktive -System allerdings eher weniger geeignet. - -Für solche Fälle bietet sich eine Software Namens -"Ansible"\footcite{ansible} an. Diese bietet einem ähnlich wie Vagrant -die Möglichkeit den Zustand eines Systems in Text Dateien zu -beschreiben. Allerdings bietet einem Ansible noch zusätzliche -Möglichkeiten und bietet einem ein standardisiertes Interface um -unterschiedliche Systeme auf die selbe Weise zu konfigurieren. - -Der Vorteil gegenüber anderen System ist vorallem das Ansible mit sehr -wenig Abhängigkeiten für das zu konfigurierende System daherkommt. Auf -einem Linux System ist nur SSH Zugriff und Python notwendig. Einen -Client braucht man nicht zu installieren. -Ansible ist freie Software unter der GNU Public License v3. - -**** Framework - -Um die Entwicklung der Applikation zu vereinfachen haben wir uns dazu -entschlossen ein Framework einzusetzen. Frameworks bringen einem in -der Entwicklung diverse Vorteile. Unter anderem bieten sie Hilfen bei -sich wiederholenden Programmieraufgaben und bieten je nachdem die -Möglichkeit die Applikation in einer einzigen Sprache zu schreiben da -sich das Framework auch um die Datenbank kümmert. In der -Webentwicklung helfen sie einem insbesondere auch dabei -Sicherheitslücken wie Cross Site Scripting und SQL Injections -abzufangen. - -Wir haben uns dabei für das Framework Django\footcite{django} -entschieden. Django ist ein Python basiertest Framework. Django ist -freie Software unter der drei Klausen BSD Lizenz. Wir haben uns aus -folgenden Gründen für ein Python basiertes Framework gegenüber einem -PHP basierten Framework entschieden: - -- Python gilt als die Sprache mit der schöneren Syntax -- Wir wollten im Bezug auf das Programmieren etwas neues ausprobieren - was sich im Rahmen einer Case Study sehr gut machen lässt. Da man - ein "realistisches" Szenarium erhält und dieses in einem relativ - kontrollierten Rahmen ausführen kann. -- Python ist in dem von uns gewählten Hostsystem wie in den meisten - Linux Distributionen bereits integriert. - -Die verwendete Version war dabei 1.10.7-2 aus dem Debian Stretch Repository. - -**** Webserver - -Als Webserver verwenden wir ganz klassisch Apache\footcite{apache}. -Dies vorallem aus dem Grund das wir Apache aus diversen vorhergehenden -Projekten bereits sehr gut kennen und sich der Webserver dort sehr gut -bewährt hat. Apache wird dabei auch noch gut von Django unterstützt. -Der Apache Webserver ist freie Software unter der Apache License 2.0 -und gehört der gemeinnützigen Organisation "Apache Foundation". - -**** Datenbank - -Bei der Datenbank haben wir uns für MariaDB\footcite{mariadb} -entschieden. Auch hier hauptsächlich weil wir MariaDB bereits aus -vorhergehenden Projekt kennen. MariaDB ist ein Fork von MySQL welcher -gegenüber MySQL rückwärtskompatibel ist. MariaDB ist dabei jedoch viel -Community näher als MySQL und wird dabei auch sehr demokratisch -entwickelt\footcite{mariadbgov}. MariaDB gehört dabei keiner einzelnen -Firma oder Person sonder der gemeinnützigen Organisation "MariaDB -Foundation". Was für zusätzliche Stabilität sorgen sollte. -MariaDB ist freie Software unter GNU Public License v2. - -**** Editoren - -Das Hauptwerkzeug von jedem Entwickler ist sein Text Editor. Dabei -hat jeder meistens seine ganz eigene Präferenzen wenn es um die Wahl -des Editors geht. - -- Atom :: Ivan hat während der Case Study hauptsächlich mit - Atom\footcite{atom} gearbeitet. Atom wird von Github Inc. - entwickelt und basiert auf dem Electron Framework welches - seinerseit auf Webtechnologien wie Node.js und Chromium - basiert. Atom ist freie Software unter der MIT Lizenz. - -- GNU Emacs :: Andreas arbeitet hauptsächlich mit dem Editor GNU - Emacs\footcite{emacs}. GNU Emacs ist mit 32 Jahren - (obwohl seine Wurzeln bis ins Jahre 1976 zurückgehen) - wohl eines der ältesten noch "aktiven" Software - Projekte. Emacs ist freie Software unter der GNU Public - License v3. - -**** Dokumentation - -Diese Dokumentation wurde in Org-mode\footcite{orgmode} einer -Erweiterung für den Text Editor Emacs geschrieben. Anschliessend wurde -die Dokumentation in LaTeX\footcite{latex} Code konvertiert und -finalisiert. Der Zwischenschritt über Org-mode wurde gewählt weil -Org-mode etwas einfacher zu schreiben ist als reines LaTeX. - -LaTeX ist eine Software welche einem die Benutzung des Textsatzsystems -TeXs vereinfacht. Wir haben LaTeX gegenüber einem "What You See Is -What You Get" Editor gewählt weil es einem mit seiner Markup Sprache -erlaubt das Dokument in Text Dateien zu erstellen. Was wir als -Programmierer sehr angenehm finden. Dadurch das LaTeX auch nur aus -reinen Textdateien besteht kann man die Dokumente auch ohne weiteres -in die Versionskontrollsoftware einchecken und somit auf einfache -Weise zusammen daran arbeiten und die Entwicklung im Log -zurückverfolgen kann. -LaTeX ist freie Software unter der LaTeX Project Public License. - -Die Grafiken in diesem Dokument wurden hauptächlich mit dem Vektor -Grafik Editor Inkscape\footcite{inkscape} erstellt. Inkscape ist freie -Software unter der GNU Public License v3. Für das Entity Relation -Diagramm in [[Models]] haben wir jedoch Dia\footcite{dia} verwendet. Dia -ist freie Software unter der GNU Public License v2. - -Die Klassen Diagramme haben wir mit der Django Erweiterung -"Django-Extensions"\footcite{django_extensions} erstellt. -Django-Extensions ist freie Software unter der MIT Lizenz. - -*** Methoden +** Methoden Die Methodik die die Gruppe wählt ist Aufgrund der nur zwei Personen im Team beschränkt. Da jedoch Fehler und Rückschläge erwartet werden @@ -286,7 +92,7 @@ eingenommen und die Backlog-Tasks dementsprechend erstellt resp. verteilt. Während der Woche arbeiten beide Team-Mitglieder an der Arbeit als Team-Kolegen. -*** Vorkenntnisse +** Vorkenntnisse Die benötigten Vorkenntnisse wurden in den vorangeganenen Semestern erarbeitet und sind in der Basis gefestigt. Diese Arbeit wird @@ -418,11 +224,206 @@ Am ende des Projekts die nicht lauffähigen teile ausgrenzen. :-) * Projektmanagement ** Organigram ** Projektstrukturplan -** Varianten erarbeiten -** Architektur vorbereiten ** Arbeitspakete definieren * TODO Umsetzung +** Werkzeuge + +Während dem Erstellen dieser Arbeit wurde eine Vielzahl an Werkzeugen +eingesetzt. Nachfolgend werden diese Werkzeuge kurz beschrieben sowie +ihre Verwendung begründet. Wir haben dabei darauf geachtet soviel Open +Source Software wie möglich zu verwenden. Nicht nur für den Web-Shop an +sich sondern generell für alle Tasks im Projekt. + +*** Versionkontrolle + +Eine Versionskontrollsoftware erschien uns als notwendig um den Code +auf einfache und zuverlässige Weise untereinander austauschen zu +können. Andere Lösungen wie Dropbox, etc. hätten es uns nicht erlaubt +Konflikte zu vermeinden. + +Als Software für die Versionskontrolle wurde Git \footcite{git} gewählt. +Git wurde aus diversen Gründen gewählt: + +- Ist der de facto Standard bei Versionskontrollsoftware +- Läuft auf allen gängigen Betriebsystemen +- Es gäbe gratis Services die man nutzen könnte (Github, Gitlab) +- Man kann offline arbeiten und Commits erstellen +- Das Team hat bereits einen eigenen Git Server zur Verfügung +- Das Team ist bereits mit Git aus vorhergehenden Projekten vertraut + dadurch muss man keine Ressourcen aufwenden eine neue Software zu lernen. + Zusätzlich hat sich Git in den vorhergehenden Projekten als robuste + und schnelle Software erwiesen. +- Git ist freie Software unter GNU Public License v2. + +*** Entwicklungsumgebung + +Damit beide Studenten auf der gleichen Basis arbeiten haben wir uns +dazu entschieden den Web-Shop in einer virtuellen Maschine zu +entwickeln. Dies führt jedoch in der Regel zum Problem das die +Änderungen in der virtuellen Maschine miteinander abgesprochen und +ausgetauscht werden müssen. Um dieses Problem zu beheben haben wir uns +dazu entschieden Vagrant\footcite{vagrant} zu verwenden. +Vagrant ist freie Software unter der MIT Lizenz. + +Vagrant erlaubt es einem den Zustand einer virtuellen Maschine in +einer Text Datei zu beschreiben und diese dann gemäss der Beschreibung +automatisiert aufzusetzen. Dies hat den Vorteil das die Konfiguration +der virtuellen Maschine auch ohne weiteres mit dem restlichen Code in +der Versionskontrollsoftware gepflegt werden kann. + +Desweiteren hilft das automatisierte Aufsetzen das vermeiden von +menschlichen Fehlern. Somit kann davon ausgegangen werden dass, das +System in der virtuellen Maschine immer den korrekten Stand zum +entwickeln sein. Sollte dies nicht mehr der Fall sein lässt sich die +virtuelle Maschine mit einem maxmimal zwei Befehlen wieder in den +Ursprungszustand zurücksetzen. + +Als Hypervisor der virtuellen Maschine wurde +Virtualbox\footcite{virtualbox} eingesetzt. Virtualbox ist im Kern +freie Software unter der GNU Public License v2. Das unter einer +proprietären Lizenz erhältliche Erweiterungspacket ist für unser Setup +nicht notwendig. + +*** Hostsystem + +Als Hostsystem für unseren Web-Shop haben wir uns für die Linux +Distribution Debian\footcite{debian} in der Version 9 (Stretch) +entschieden. Für Debian haben wir uns vor allem aus folgenden Gründen +entschieden: + +- Stabiles System +- Sehr guter Packetmanager was einem das Scripting vereinfacht. +- Gilt als sehr sicher +- Hat sich in vorhergehenden Projekten bereits als gute Basis bewiesen +- Enthält in der Grundkonfiguration nur freie Software (nicht freie + Software muss aktiv hinzugefügt werden) +- In der Linux Welt sehr verbreitet +- Im Gegensatz zu Ubuntu nicht von einer Firma abhängig + +*** Deployment Software für Produktionsserver + +Auch auf dem produktiven Server haben wir uns für Debian entschieden. +Um diesen aufzusetzen hatten wir in etwa die ähnlichen Anforderungen +wie für die Entwicklungsumgebung. Also einen Weg um das System +möglichst automatisch und reproduzierbar aufzusetzen. Die für die +Entwicklungsumgebung verwendete Software Vagrant ist für produktive +System allerdings eher weniger geeignet. + +Für solche Fälle bietet sich eine Software Namens +"Ansible"\footcite{ansible} an. Diese bietet einem ähnlich wie Vagrant +die Möglichkeit den Zustand eines Systems in Text Dateien zu +beschreiben. Allerdings bietet einem Ansible noch zusätzliche +Möglichkeiten und bietet einem ein standardisiertes Interface um +unterschiedliche Systeme auf die selbe Weise zu konfigurieren. + +Der Vorteil gegenüber anderen System ist vorallem das Ansible mit sehr +wenig Abhängigkeiten für das zu konfigurierende System daherkommt. Auf +einem Linux System ist nur SSH Zugriff und Python notwendig. Einen +Client braucht man nicht zu installieren. +Ansible ist freie Software unter der GNU Public License v3. + +*** Framework + +Um die Entwicklung der Applikation zu vereinfachen haben wir uns dazu +entschlossen ein Framework einzusetzen. Frameworks bringen einem in +der Entwicklung diverse Vorteile. Unter anderem bieten sie Hilfen bei +sich wiederholenden Programmieraufgaben und bieten je nachdem die +Möglichkeit die Applikation in einer einzigen Sprache zu schreiben da +sich das Framework auch um die Datenbank kümmert. In der +Webentwicklung helfen sie einem insbesondere auch dabei +Sicherheitslücken wie Cross Site Scripting und SQL Injections +abzufangen. + +Wir haben uns dabei für das Framework Django\footcite{django} +entschieden. Django ist ein Python basiertest Framework. Django ist +freie Software unter der drei Klausen BSD Lizenz. Wir haben uns aus +folgenden Gründen für ein Python basiertes Framework gegenüber einem +PHP basierten Framework entschieden: + +- Python gilt als die Sprache mit der schöneren Syntax +- Wir wollten im Bezug auf das Programmieren etwas neues ausprobieren + was sich im Rahmen einer Case Study sehr gut machen lässt. Da man + ein "realistisches" Szenarium erhält und dieses in einem relativ + kontrollierten Rahmen ausführen kann. +- Python ist in dem von uns gewählten Hostsystem wie in den meisten + Linux Distributionen bereits integriert. +- Desweiteren hat Django bei einer Variantenbewertung das beste + Ergebnis geholt. + +Die verwendete Version war dabei 1.10.7-2 aus dem Debian Stretch Repository. + +*** Webserver + +Als Webserver verwenden wir ganz klassisch Apache\footcite{apache}. +Dies vorallem aus dem Grund das wir Apache aus diversen vorhergehenden +Projekten bereits sehr gut kennen und sich der Webserver dort sehr gut +bewährt hat. Apache wird dabei auch noch gut von Django unterstützt. +Der Apache Webserver ist freie Software unter der Apache License 2.0 +und gehört der gemeinnützigen Organisation "Apache Foundation". + +*** Datenbank + +Bei der Datenbank haben wir uns für MariaDB\footcite{mariadb} +entschieden. Auch hier hauptsächlich weil wir MariaDB bereits aus +vorhergehenden Projekt kennen. MariaDB ist ein Fork von MySQL welcher +gegenüber MySQL rückwärtskompatibel ist. MariaDB ist dabei jedoch viel +Community näher als MySQL und wird dabei auch sehr demokratisch +entwickelt\footcite{mariadbgov}. MariaDB gehört dabei keiner einzelnen +Firma oder Person sonder der gemeinnützigen Organisation "MariaDB +Foundation". Was für zusätzliche Stabilität sorgen sollte. MariaDB ist +freie Software unter GNU Public License v2. Desweiteren hat MariaDB bei +einer Variantenbewertung das beste Ergebnis geholt. + + +*** Editoren + +Das Hauptwerkzeug von jedem Entwickler ist sein Text Editor. Dabei +hat jeder meistens seine ganz eigene Präferenzen wenn es um die Wahl +des Editors geht. + +- Atom :: Ivan hat während der Case Study hauptsächlich mit + Atom\footcite{atom} gearbeitet. Atom wird von Github Inc. + entwickelt und basiert auf dem Electron Framework welches + seinerseit auf Webtechnologien wie Node.js und Chromium + basiert. Atom ist freie Software unter der MIT Lizenz. + +- GNU Emacs :: Andreas arbeitet hauptsächlich mit dem Editor GNU + Emacs\footcite{emacs}. GNU Emacs ist mit 32 Jahren + (obwohl seine Wurzeln bis ins Jahre 1976 zurückgehen) + wohl eines der ältesten noch "aktiven" Software + Projekte. Emacs ist freie Software unter der GNU Public + License v3. + +*** Dokumentation + +Diese Dokumentation wurde in Org-mode\footcite{orgmode} einer +Erweiterung für den Text Editor Emacs geschrieben. Anschliessend wurde +die Dokumentation in LaTeX\footcite{latex} Code konvertiert und +finalisiert. Der Zwischenschritt über Org-mode wurde gewählt weil +Org-mode etwas einfacher zu schreiben ist als reines LaTeX. + +LaTeX ist eine Software welche einem die Benutzung des Textsatzsystems +TeXs vereinfacht. Wir haben LaTeX gegenüber einem "What You See Is +What You Get" Editor gewählt weil es einem mit seiner Markup Sprache +erlaubt das Dokument in Text Dateien zu erstellen. Was wir als +Programmierer sehr angenehm finden. Dadurch das LaTeX auch nur aus +reinen Textdateien besteht kann man die Dokumente auch ohne weiteres +in die Versionskontrollsoftware einchecken und somit auf einfache +Weise zusammen daran arbeiten und die Entwicklung im Log +zurückverfolgen kann. +LaTeX ist freie Software unter der LaTeX Project Public License. + +Die Grafiken in diesem Dokument wurden hauptächlich mit dem Vektor +Grafik Editor Inkscape\footcite{inkscape} erstellt. Inkscape ist freie +Software unter der GNU Public License v3. Für das Entity Relation +Diagramm in [[Models]] haben wir jedoch Dia\footcite{dia} verwendet. Dia +ist freie Software unter der GNU Public License v2. + +Die Klassen Diagramme haben wir mit der Django Erweiterung +"Django-Extensions"\footcite{django_extensions} erstellt. +Django-Extensions ist freie Software unter der MIT Lizenz. + ** TODO Spezifikation *** User Stories From 588e048d9d4e90f3a37179576b1a7debbce32279 Mon Sep 17 00:00:00 2001 From: Andreas Zweili Date: Thu, 15 Feb 2018 20:20:02 +0100 Subject: [PATCH 4/7] exend the section "Varianten" --- docs/doku.org | 140 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 140 insertions(+) diff --git a/docs/doku.org b/docs/doku.org index a9ec227..38bb9ca 100644 --- a/docs/doku.org +++ b/docs/doku.org @@ -224,6 +224,146 @@ Am ende des Projekts die nicht lauffähigen teile ausgrenzen. :-) * Projektmanagement ** Organigram ** Projektstrukturplan +** Varianten + +Wir haben uns 3 mögliche Varianten überlegt im Bezug auf die zu +verwendende Software. Die Varianten wurden bewertet und die Variante +mit den meisten Punkten dann schlussendlich ausgewählt. +Bei jeder Variante wurden die gleichen Kriterien mit der gleichen +Gewichtung bewertet. Die Punktzahl pro Kriterium wird nach der +folgenden Formel berechnet: + +\begin{equation} +G * EP = KE +\end{equation} + +Also die Gewichtung(/G/) multipliziert mit der erreichten +Punktzahl(/EP/) ergibt das Kriteriumsergebnis(/KE/). + +**** ASP.NET und SQL Server + +ASP.NET und SQL Server haben vorallem viele Punkte verloren da C\# nur +in Teilen und SQL Server gar nicht unter einer freien Lizenz steht. +Desweiteren läuft .NET Core zwar auch auf Unix Systemen allerdings ist +das verhältnismässig ein relativ kleiner Teil der gesamten Sprache. +SQL Server läuft hingegen nur unter Windows und Linux. +Desweiteren ist es sehr schwierig C\# Applikationen ohne Visual Studio +zu entwickeln. Es geht in der Theorie, in der Praxis ist es jedoch +eher umständlich. Die Vorkenntnisse wurden mit 6 von Punkten bewertet +da wir C\# zwar im Rahmen der Ausbildung lernen. Allerdings noch nicht +das Gefühl haben sonderlich gut mit C\# umgehen zu können. + +#+CAPTION: Bewertung der Variante ASP.NET und SQL Server +#+ATTR_LATEX: :align |>{\columncolor[HTML]{EFEFEF}}p{4cm}|c|p{2cm}|p{2cm}|p{2cm}| +#+NAME: tab:asp\_net +|----------------------+----------------------+----------------------+----------------------+----------------------| +| <20> | <20> | <20> | <20> | <20> | +| *Kriterium*\cellcolor[HTML]{C0C0C0} | *Gewichtung*\cellcolor[HTML]{C0C0C0} | *max. Punktzahl*\cellcolor[HTML]{C0C0C0} | *erreichte Punktzahl*\cellcolor[HTML]{C0C0C0} | *Kriteriums- ergebnis*\cellcolor[HTML]{C0C0C0} | +|----------------------+----------------------+----------------------+----------------------+----------------------| +| Freie Software | 5 | 10 | 5 | 25 | +| Cross Plattform nutzbar | 5 | 10 | 6 | 30 | +| Lesbarkeit des Codes | 5 | 5 | 4 | 20 | +| Einfachheit des Setups | 3 | 5 | 5 | 15 | +| Ohne spezielle Tools nutzbar | 3 | 5 | 1 | 3 | +| Vorkenntnisse | 3 | 10 | 6 | 18 | +| Lernfaktor | 5 | 10 | 6 | 30 | +|----------------------+----------------------+----------------------+----------------------+----------------------| +| *Total* | | | | 141 | +#+TBLFM: @3$5=@3$2 * @3$4::@4$5=@4$2 * @4$4::@5$5=@5$2 * @5$4::@6$5=@6$2 * @6$4::@7$5=@7$2 * @7$4::@8$5=@8$2 * @8$4 +#+TBLFM: @9$5=@9$2 * @9$4 +#+TBLFM: @10$5=vsum(@3$5..@9$5) + +**** PHP und MySQL + +Die Variante PHP und MySQL hat insgesamt ein sehr gute Bewertung +erhalten. Beide Projekte sind zumindest teilweise unter einer freien +Lizenz verfügbar und sind sowohl unter Windows, wie auch Mac und Linux +einsetzbar. Allerdings gibt es von MySQL noch eine proprietäre +Enterprise Variante weshalb wir hier nicht die volle Punktzahl +vergeben konnten. Abstriche gab es bei der Lesbarkeit des Codes. Da +PHP insgesamt eine ziemlich inkonsistente und ausschweifende Sprache +ist. Dafür ist das Setup sehr einfach und man kann eine PHP basierte +Applikation ohne spezielle Werkzeuge entwickeln. Da wir jedoch bereits +sehr intensiv mit PHP und MySQL in Berürung kamen haben wir beim +Lernfaktor abstriche gemacht. In Zusammenhang mit einem Framework +hätten wir sich auch viel dazugelernt im Vergleich zu den anderen +Varianten jedoch sicher weniger. + +#+CAPTION: Bewertung der Variante PHP und MySQL +#+ATTR_LATEX: :align |>{\columncolor[HTML]{EFEFEF}}p{4cm}|c|p{2cm}|p{2cm}|p{2cm}| +#+NAME: tab:php +|----------------------+----------------------+----------------------+----------------------+----------------------| +| <20> | <20> | <20> | <20> | <20> | +| *Kriterium*\cellcolor[HTML]{C0C0C0} | *Gewichtung*\cellcolor[HTML]{C0C0C0} | *max. Punktzahl*\cellcolor[HTML]{C0C0C0} | *erreichte Punktzahl*\cellcolor[HTML]{C0C0C0} | *Kriteriums- ergebnis*\cellcolor[HTML]{C0C0C0} | +|----------------------+----------------------+----------------------+----------------------+----------------------| +| Freie Software | 5 | 10 | 8 | 40 | +| Cross Plattform nutzbar | 5 | 10 | 8 | 40 | +| Lesbarkeit des Codes | 5 | 5 | 2 | 10 | +| Einfachheit des Setups | 3 | 5 | 5 | 15 | +| Ohne spezielle Tools nutzbar | 3 | 5 | 5 | 15 | +| Vorkenntnisse | 3 | 10 | 7 | 21 | +| Lernfaktor | 5 | 10 | 4 | 20 | +|----------------------+----------------------+----------------------+----------------------+----------------------| +| *Total* | | | | 161 | +#+TBLFM: @3$5=@3$2 * @3$4::@4$5=@4$2 * @4$4::@5$5=@5$2 * @5$4::@6$5=@6$2 * @6$4::@7$5=@7$2 * @7$4::@8$5=@8$2 * @8$4 +#+TBLFM: @9$5=@9$2 * @9$4 +#+TBLFM: @10$5=vsum(@3$5..@9$5) + +**** Django(Python) und MariaDB + +Diese Variante hat am meisten Punkte erhalten. Wie bei der Variante "PHP +und MySQL" sind auch hier beide Komponenten freie Software. Im +Gegensatz zu der vorherigen Variante gibt es bei diesen Komponenten +nur eine mögliche Lizenz Form. Womit sie die volle Punktzahl in dieser +Kategorie erreichten. + +Beide Projekte laufen unter Windows, Linux sowie Mac. Wobei das Setup +unter für Django(Python) unter Windows etwas komplizierter ausfällt +als wir gerne hätten weshalb wir hier bei der Cross Plattform +Kompatibilität und dem Setup einen Abstrich gemacht haben. Python kann +ohne spezielle Tools programmiert werden und gilt als eine der +Sprachen mit der schönsten Syntax. Die Vorkenntnisse haben wir hier +als eher niedrig eingestuft dafür den Lernfaktor umso höher. + +#+CAPTION: Bewertung der Variante Django und MariaDB +#+ATTR_LATEX: :align |>{\columncolor[HTML]{EFEFEF}}p{4cm}|c|p{2cm}|p{2cm}|p{2cm}| +#+NAME: tab:django +|----------------------+----------------------+----------------------+----------------------+----------------------| +| <20> | <20> | <20> | <20> | <20> | +| *Kriterium*\cellcolor[HTML]{C0C0C0} | *Gewichtung*\cellcolor[HTML]{C0C0C0} | *max. Punktzahl*\cellcolor[HTML]{C0C0C0} | *erreichte Punktzahl*\cellcolor[HTML]{C0C0C0} | *Kriteriums- ergebnis*\cellcolor[HTML]{C0C0C0} | +|----------------------+----------------------+----------------------+----------------------+----------------------| +| Freie Software | 5 | 10 | 10 | 50 | +| Cross Plattform nutzbar | 5 | 10 | 9 | 45 | +| Lesbarkeit des Codes | 5 | 5 | 5 | 25 | +| Einfachheit des Setups | 3 | 5 | 3 | 9 | +| Ohne spezielle Tools nutzbar | 3 | 5 | 5 | 15 | +| Vorkenntnisse | 3 | 10 | 4 | 12 | +| Lernfaktor | 5 | 10 | 8 | 40 | +|----------------------+----------------------+----------------------+----------------------+----------------------| +| *Total* | | | | 196 | +#+TBLFM: @3$5=@3$2 * @3$4::@4$5=@4$2 * @4$4::@5$5=@5$2 * @5$4::@6$5=@6$2 * @6$4::@7$5=@7$2 * @7$4::@8$5=@8$2 * @8$4 +#+TBLFM: @9$5=@9$2 * @9$4 +#+TBLFM: @10$5=vsum(@3$5..@9$5) + +**** Ergebnis + +Aufgrund der erreichten Punktzahl haben wir uns dafür entschieden die +Variante "Django(Python) und MariaDB" umzusetzen. In der Sektion [[Werkzeuge]] +beschreiben wir noch die weiteren Mittel welche beim Erstellen der +Case Study verwendet wurden und erklären wenn möglich auch weshalb wir +uns dafür entschieden haben. + +#+CAPTION: Variantenbewertung Ergebnis +#+ATTR_LATEX: :align |>{\columncolor[HTML]{EFEFEF}}p{4.5cm}|r| +#+NAME: tab:result +|------------------------------------+-----------------------------------------------| +| *Variante*\cellcolor[HTML]{C0C0C0} | *Erreichte Punktzahl*\cellcolor[HTML]{C0C0C0} | +|------------------------------------+-----------------------------------------------| +| ASP.NET und SQL Server | 141 | +| PHP und MySQL | 161 | +| Django und MariaDB | 196 | + +** Architektur vorbereiten ** Arbeitspakete definieren * TODO Umsetzung From 7d8d8d14357d493f901809c9c81ba2ff310246dc Mon Sep 17 00:00:00 2001 From: Andreas Zweili Date: Thu, 15 Feb 2018 20:28:26 +0100 Subject: [PATCH 5/7] correct false escaping in the documentation --- docs/doku.org | 69 ++++++++++++++++++++++++++------------------------- 1 file changed, 35 insertions(+), 34 deletions(-) diff --git a/docs/doku.org b/docs/doku.org index 38bb9ca..0dfbfde 100644 --- a/docs/doku.org +++ b/docs/doku.org @@ -242,20 +242,20 @@ Punktzahl(/EP/) ergibt das Kriteriumsergebnis(/KE/). **** ASP.NET und SQL Server -ASP.NET und SQL Server haben vorallem viele Punkte verloren da C\# nur -in Teilen und SQL Server gar nicht unter einer freien Lizenz steht. -Desweiteren läuft .NET Core zwar auch auf Unix Systemen allerdings ist -das verhältnismässig ein relativ kleiner Teil der gesamten Sprache. -SQL Server läuft hingegen nur unter Windows und Linux. -Desweiteren ist es sehr schwierig C\# Applikationen ohne Visual Studio -zu entwickeln. Es geht in der Theorie, in der Praxis ist es jedoch -eher umständlich. Die Vorkenntnisse wurden mit 6 von Punkten bewertet -da wir C\# zwar im Rahmen der Ausbildung lernen. Allerdings noch nicht -das Gefühl haben sonderlich gut mit C\# umgehen zu können. +ASP.NET und SQL Server, Tabelle:([[tab:asp-net]]), haben vorallem viele +Punkte verloren da C# nur in Teilen und SQL Server gar nicht unter +einer freien Lizenz steht. Desweiteren läuft .NET Core zwar auch auf +Unix Systemen allerdings ist das verhältnismässig ein relativ kleiner +Teil der gesamten Sprache. SQL Server läuft hingegen nur unter Windows +und Linux. Desweiteren ist es sehr schwierig C# Applikationen ohne +Visual Studio zu entwickeln. Es geht in der Theorie, in der Praxis ist +es jedoch eher umständlich. Die Vorkenntnisse wurden mit 6 von Punkten +bewertet da wir C# zwar im Rahmen der Ausbildung lernen. Allerdings +noch nicht das Gefühl haben sonderlich gut mit C# umgehen zu können. #+CAPTION: Bewertung der Variante ASP.NET und SQL Server #+ATTR_LATEX: :align |>{\columncolor[HTML]{EFEFEF}}p{4cm}|c|p{2cm}|p{2cm}|p{2cm}| -#+NAME: tab:asp\_net +#+NAME: tab:asp-net |----------------------+----------------------+----------------------+----------------------+----------------------| | <20> | <20> | <20> | <20> | <20> | | *Kriterium*\cellcolor[HTML]{C0C0C0} | *Gewichtung*\cellcolor[HTML]{C0C0C0} | *max. Punktzahl*\cellcolor[HTML]{C0C0C0} | *erreichte Punktzahl*\cellcolor[HTML]{C0C0C0} | *Kriteriums- ergebnis*\cellcolor[HTML]{C0C0C0} | @@ -275,19 +275,19 @@ das Gefühl haben sonderlich gut mit C\# umgehen zu können. **** PHP und MySQL -Die Variante PHP und MySQL hat insgesamt ein sehr gute Bewertung -erhalten. Beide Projekte sind zumindest teilweise unter einer freien -Lizenz verfügbar und sind sowohl unter Windows, wie auch Mac und Linux -einsetzbar. Allerdings gibt es von MySQL noch eine proprietäre -Enterprise Variante weshalb wir hier nicht die volle Punktzahl -vergeben konnten. Abstriche gab es bei der Lesbarkeit des Codes. Da -PHP insgesamt eine ziemlich inkonsistente und ausschweifende Sprache -ist. Dafür ist das Setup sehr einfach und man kann eine PHP basierte -Applikation ohne spezielle Werkzeuge entwickeln. Da wir jedoch bereits -sehr intensiv mit PHP und MySQL in Berürung kamen haben wir beim -Lernfaktor abstriche gemacht. In Zusammenhang mit einem Framework -hätten wir sich auch viel dazugelernt im Vergleich zu den anderen -Varianten jedoch sicher weniger. +Die Variante PHP und MySQL, Tabelle:([[tab:php]]), hat insgesamt ein sehr +gute Bewertung erhalten. Beide Projekte sind zumindest teilweise unter +einer freien Lizenz verfügbar und sind sowohl unter Windows, wie auch +Mac und Linux einsetzbar. Allerdings gibt es von MySQL noch eine +proprietäre Enterprise Variante weshalb wir hier nicht die volle +Punktzahl vergeben konnten. Abstriche gab es bei der Lesbarkeit des +Codes. Da PHP insgesamt eine ziemlich inkonsistente und ausschweifende +Sprache ist. Dafür ist das Setup sehr einfach und man kann eine PHP +basierte Applikation ohne spezielle Werkzeuge entwickeln. Da wir +jedoch bereits sehr intensiv mit PHP und MySQL in Berürung kamen haben +wir beim Lernfaktor abstriche gemacht. In Zusammenhang mit einem +Framework hätten wir sich auch viel dazugelernt im Vergleich zu den +anderen Varianten jedoch sicher weniger. #+CAPTION: Bewertung der Variante PHP und MySQL #+ATTR_LATEX: :align |>{\columncolor[HTML]{EFEFEF}}p{4cm}|c|p{2cm}|p{2cm}|p{2cm}| @@ -311,11 +311,11 @@ Varianten jedoch sicher weniger. **** Django(Python) und MariaDB -Diese Variante hat am meisten Punkte erhalten. Wie bei der Variante "PHP -und MySQL" sind auch hier beide Komponenten freie Software. Im -Gegensatz zu der vorherigen Variante gibt es bei diesen Komponenten -nur eine mögliche Lizenz Form. Womit sie die volle Punktzahl in dieser -Kategorie erreichten. +Diese Variante, Tabelle:([[tab:django]]) hat am meisten Punkte erhalten. +Wie bei der Variante "PHP und MySQL" sind auch hier beide Komponenten +freie Software. Im Gegensatz zu der vorherigen Variante gibt es bei +diesen Komponenten nur eine mögliche Lizenz Form. Womit sie die volle +Punktzahl in dieser Kategorie erreichten. Beide Projekte laufen unter Windows, Linux sowie Mac. Wobei das Setup unter für Django(Python) unter Windows etwas komplizierter ausfällt @@ -347,11 +347,12 @@ als eher niedrig eingestuft dafür den Lernfaktor umso höher. **** Ergebnis -Aufgrund der erreichten Punktzahl haben wir uns dafür entschieden die -Variante "Django(Python) und MariaDB" umzusetzen. In der Sektion [[Werkzeuge]] -beschreiben wir noch die weiteren Mittel welche beim Erstellen der -Case Study verwendet wurden und erklären wenn möglich auch weshalb wir -uns dafür entschieden haben. +Aufgrund der erreichten Punktzahl, Tabelle:([[tab:result]]) bei den +vorhergehenden Variantenbewertungen haben wir uns dafür entschieden +die Variante "Django(Python) und MariaDB" umzusetzen. In der Sektion +[[Werkzeuge]] beschreiben wir noch die weiteren Mittel welche beim +Erstellen der Case Study verwendet wurden und erklären wenn möglich +auch weshalb wir uns dafür entschieden haben. #+CAPTION: Variantenbewertung Ergebnis #+ATTR_LATEX: :align |>{\columncolor[HTML]{EFEFEF}}p{4.5cm}|r| From 2b365ee1433419b7cc87d90fd869db4479717bca Mon Sep 17 00:00:00 2001 From: Andreas Zweili Date: Thu, 15 Feb 2018 20:57:03 +0100 Subject: [PATCH 6/7] correct wording --- docs/doku.org | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/doku.org b/docs/doku.org index 0dfbfde..1e8d60c 100644 --- a/docs/doku.org +++ b/docs/doku.org @@ -286,8 +286,8 @@ Sprache ist. Dafür ist das Setup sehr einfach und man kann eine PHP basierte Applikation ohne spezielle Werkzeuge entwickeln. Da wir jedoch bereits sehr intensiv mit PHP und MySQL in Berürung kamen haben wir beim Lernfaktor abstriche gemacht. In Zusammenhang mit einem -Framework hätten wir sich auch viel dazugelernt im Vergleich zu den -anderen Varianten jedoch sicher weniger. +Framework hätten wir sicher auch viel dazugelernt im Vergleich zu den +anderen Varianten jedoch auf jeden Fall weniger. #+CAPTION: Bewertung der Variante PHP und MySQL #+ATTR_LATEX: :align |>{\columncolor[HTML]{EFEFEF}}p{4cm}|c|p{2cm}|p{2cm}|p{2cm}| From 5a379d1c7d02627bc1a624b78a77cb12a7e4bd85 Mon Sep 17 00:00:00 2001 From: Andreas Zweili Date: Thu, 15 Feb 2018 21:00:30 +0100 Subject: [PATCH 7/7] fix "Varianten" heading --- docs/doku.org | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/doku.org b/docs/doku.org index 1e8d60c..11a5c52 100644 --- a/docs/doku.org +++ b/docs/doku.org @@ -240,7 +240,7 @@ G * EP = KE Also die Gewichtung(/G/) multipliziert mit der erreichten Punktzahl(/EP/) ergibt das Kriteriumsergebnis(/KE/). -**** ASP.NET und SQL Server +*** ASP.NET und SQL Server ASP.NET und SQL Server, Tabelle:([[tab:asp-net]]), haben vorallem viele Punkte verloren da C# nur in Teilen und SQL Server gar nicht unter @@ -273,7 +273,7 @@ noch nicht das Gefühl haben sonderlich gut mit C# umgehen zu können. #+TBLFM: @9$5=@9$2 * @9$4 #+TBLFM: @10$5=vsum(@3$5..@9$5) -**** PHP und MySQL +*** PHP und MySQL Die Variante PHP und MySQL, Tabelle:([[tab:php]]), hat insgesamt ein sehr gute Bewertung erhalten. Beide Projekte sind zumindest teilweise unter @@ -309,7 +309,7 @@ anderen Varianten jedoch auf jeden Fall weniger. #+TBLFM: @9$5=@9$2 * @9$4 #+TBLFM: @10$5=vsum(@3$5..@9$5) -**** Django(Python) und MariaDB +*** Django(Python) und MariaDB Diese Variante, Tabelle:([[tab:django]]) hat am meisten Punkte erhalten. Wie bei der Variante "PHP und MySQL" sind auch hier beide Komponenten @@ -345,7 +345,7 @@ als eher niedrig eingestuft dafür den Lernfaktor umso höher. #+TBLFM: @9$5=@9$2 * @9$4 #+TBLFM: @10$5=vsum(@3$5..@9$5) -**** Ergebnis +*** Ergebnis Aufgrund der erreichten Punktzahl, Tabelle:([[tab:result]]) bei den vorhergehenden Variantenbewertungen haben wir uns dafür entschieden