web_AI-5/presentation/presentation.org

3.6 KiB

Case-Study

Ausgangslage

  • Freie Software in Bezug auf Open-Source Code.

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:

/ibz/web_AI-5/media/commit/d43920c552952a43209a0462c7f4e91a80f6b3d5/presentation/pictures/webshop.png

Vision - Artikel

/ibz/web_AI-5/media/commit/d43920c552952a43209a0462c7f4e91a80f6b3d5/presentation/pictures/Vision-Artikel.png

Vision - Warenkorb

/ibz/web_AI-5/media/commit/d43920c552952a43209a0462c7f4e91a80f6b3d5/presentation/pictures/Vision-Warenkorb.png

Vision - Abgaben

/ibz/web_AI-5/media/commit/d43920c552952a43209a0462c7f4e91a80f6b3d5/presentation/pictures/Vision-Abgaben.png

Varianten

C# und SQL Server

/ibz/web_AI-5/media/commit/d43920c552952a43209a0462c7f4e91a80f6b3d5/presentation/pictures/csharp.png

Laravel und MySQL

/ibz/web_AI-5/media/commit/d43920c552952a43209a0462c7f4e91a80f6b3d5/presentation/pictures/laravel.png

Django und MariaDB

/ibz/web_AI-5/media/commit/d43920c552952a43209a0462c7f4e91a80f6b3d5/presentation/pictures/django.png

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

/ibz/web_AI-5/media/commit/d43920c552952a43209a0462c7f4e91a80f6b3d5/presentation/pictures/currencies-rss-reader.png

Currencies - Quelle

/ibz/web_AI-5/media/commit/d43920c552952a43209a0462c7f4e91a80f6b3d5/presentation/pictures/currencies-rss-xml.png

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

/ibz/web_AI-5/media/commit/d43920c552952a43209a0462c7f4e91a80f6b3d5/presentation/pictures/currencies.png

Infrastruktur

Andreas erzählt wie die infrastruktur aufgebaut ist.

/ibz/web_AI-5/media/commit/d43920c552952a43209a0462c7f4e91a80f6b3d5/presentation/pictures/Server-Architecture.png

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.