web_AI-5/presentation/presentation.org

159 lines
3.6 KiB
Org Mode
Raw Normal View History

2018-03-04 12:44:37 +01:00
#+TITLE: Case-Study
#+AUTHOR: Ivan Hörler und Andreas Zweili
#+OPTIONS: toc:1 num:nil
#+REVEAL_TRANS: linear
#+REVEAL_THEME: solarized
#+REVEAL_ROOT: https://cdn.jsdelivr.net/reveal.js/3.0.0/
#+LANGUAGE: de
2018-03-04 18:48:30 +01:00
* Ausgangslage
2018-03-14 14:51:17 +01:00
- Freie Software in Bezug auf Open-Source Code.
2018-03-04 18:48:30 +01:00
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:
2018-03-04 12:44:37 +01:00
#+ATTR_HTML: :width 70%
2018-03-04 12:44:37 +01:00
[[file:pictures/webshop.png]]
2018-03-07 21:35:49 +01:00
** Vision - Artikel
#+ATTR_HTML: :width 80%
[[file:pictures/Vision-Artikel.png]]
** Vision - Warenkorb
#+ATTR_HTML: :width 80%
[[file:pictures/Vision-Warenkorb.png]]
** Vision - Abgaben
#+ATTR_HTML: :width 80%
[[file:pictures/Vision-Abgaben.png]]
* Varianten
** C# und SQL Server
[[file:pictures/csharp.png]]
** Laravel und MySQL
[[file:pictures/laravel.png]]
** Django und MariaDB
[[file:pictures/django.png]]
2018-03-04 18:48:30 +01:00
** 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 |
|------------------------+-----------------------|
2018-03-04 18:48:30 +01:00
** Auswahl
* Kosten
** Laravel Webshop
| Sprache | Codezeilen |
|---------+------------|
| PHP | 8679 |
|---------+------------|
| *Total* | *8679* |
|---------+------------|
#+TBLFM: @>$2=vsum(@2..@-1);%.0f
** Django Webshop
| Sprache | Codezeilen |
|---------+------------|
| Python | 1460 |
| SQL | 4639 |
|---------+------------|
| *Total* | *6099* |
|---------+------------|
#+TBLFM: @>$2=vsum(@2..@-1);%.0f
2018-03-04 18:48:30 +01:00
* Vorgehen
** Currencies - App
2018-03-09 11:12:23 +01:00
- Wurde in Django als eigenen App entwickelt und sollte daher problemloos in
andere Applikationen eingebunden werden können.
2018-03-09 11:12:23 +01:00
- 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
#+ATTR_HTML: :width 80%
[[file:pictures/currencies-rss-reader.png]]
** Currencies - Quelle
#+ATTR_HTML: :width 80%
[[file: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
#+ATTR_HTML: :width 55%
[[file:pictures/currencies.png]]
2018-03-04 18:48:30 +01:00
** Infrastruktur
2018-03-14 14:51:17 +01:00
#+BEGIN_NOTES
2018-03-04 18:48:30 +01:00
Andreas erzählt wie die infrastruktur aufgebaut ist.
2018-03-14 14:51:17 +01:00
#+END_NOTES
#+ATTR_HTML: :width 60%
[[file:pictures/Server-Architecture.png]]
2018-03-04 18:48:30 +01:00
** Programmierung
vieleicht zwei Schwierigkeiten
2018-03-09 11:12:23 +01:00
** 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.
2018-03-09 11:15:46 +01:00
- Es stellte sich heraus dass das Feld ein Key: Value paar benötigte um zu wissen wohin es
2018-03-09 11:12:23 +01:00
den wert schreiben soll....
Note: hier den code higlighter einfügen:
amount_form = CartForm(
initial={'amount_form': cart_position.amount}
)
2018-03-04 18:48:30 +01:00
* Fazit
2018-03-09 11:15:46 +01:00
special thanks to:
- draw.io,
- Python,
- Django,
- stackexchange and
- Beer.