# Case-Study
Author: (Ivan Hörler und Andreas Zweili)

## Ivan Hörler und Andreas Zweili

Created: 2018-03-14 Wed 14:31

## Inhaltsverzeichnis

- Ausgangslage
- Varianten
- Kosten
- Vorgehen
- Fazit

## Ausgangslage

- Freie Software in bezug auf open sourcecode.

Um einen ersten Anhaltspunkt zu haben, haben wir ein Mindmap gezeichnet in welchem wir unsere ersten Ideen erfassten.

### Vision

Die Vision wurde anhand eines Mindmaps erstmals grob umfasst:

### Vision - Artikel

### Vision - Warenkorb

### Vision - Abgaben

## Varianten

### C# und SQL Server

### Laravel und MySQL

### Django und MariaDB

### Kriterien

- Freie Software
- Cross Plattform nutzbar
- Lesbarkeit des Codes
- Einfachheit des Setups
- Ohne spezielle Tools nutzbar
- Vorkenntnisse Lernfaktor

### Vergleich

Variante | Erreichte Punktzahl
--- | ---
ASP.NET und SQL Server | 141
PHP und MySQL | 161
Django und MariaDB | 196

### Auswahl

## Kosten

### Laravel Webshop

Sprache | Codezeilen
--- | ---
PHP | 8679
Total | 8679

### Django Webshop

Sprache | Codezeilen
--- | ---
Python | 1460
SQL | 4639
Total | 6099

## Vorgehen

### Currencies - App

- Wurde in Django als eigenen App entwickelt und sollte daher problemloos in

andere Applikationen eingebunden werden können.

- Die Quelle der Währungen ist die Schweizerische Nationalbank mit der URL:

https://www.snb.ch | resp: https://www.snb.ch/selector/de/mmr/exfeed/rss

### Currencies - Quelle

### Currencies - Parsing

- Das Konvertieren des XML’s wurde mit Python eigener Module gemacht.
- für das Herunterladen des XML’s wurde das Modul ’urllib’ verwendet (1)
- für das Parsen über die einzelnen items/nodes das Modul xml.etree.ElementTree. (2)

(1) https://docs.python.org/2/library/urllib.html (2) https://docs.python.org/2/library/xml.etree.elementtree.html

### Currencies - Ablauf

### Infrastruktur

Andreas erzählt wie die infrastruktur aufgebaut ist.

### Programmierung

vieleicht zwei Schwierigkeiten

### Programmierung - Hürde #1

- Django hat ein modul das die Forms speziell handelt so dass man mit wehnig Code

Einen HTML Button oder ein Feld erzeugen kann.

- Die schwierigkeit war nun heraus zu finden wie man dem Feld ein von der DB stammenden

default wert mitgeben konnte.

- Es stellte sich heraus dass das Feld ein Key: Value paar benötigte um zu wissen wohin es

den wert schreiben soll….

Note: hier den code higlighter einfügen: amount_form = CartForm( initial={’amount_form’: cart_position.amount} )

## Fazit

special thanks to:

- draw.io,
- Python,
- Django,
- stackexchange and
- Beer.