2018-03-04 12:44:37 +01:00
<!DOCTYPE html>
< html lang = "de" >
< head >
< meta charset = "utf-8" / >
< title > Case-Study< / title >
< meta name = "author" content = "(Ivan Hörler und Andreas Zweili)" / >
< style type = "text/css" >
.underline { text-decoration: underline; }
< / style >
< link rel = "stylesheet" href = "https://cdn.jsdelivr.net/reveal.js/3.0.0/css/reveal.css" / >
< link rel = "stylesheet" href = "https://cdn.jsdelivr.net/reveal.js/3.0.0/css/theme/solarized.css" id = "theme" / >
<!-- If the query includes 'print - pdf', include the PDF print sheet -->
< script >
if( window.location.search.match( /print-pdf/gi ) ) {
var link = document.createElement( 'link' );
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = 'https://cdn.jsdelivr.net/reveal.js/3.0.0/css/print/pdf.css';
document.getElementsByTagName( 'head' )[0].appendChild( link );
}
< / script >
< / head >
< body >
< div class = "reveal" >
< div class = "slides" >
2018-03-09 11:06:10 +01:00
< section id = "sec-title-slide" > < h1 class = "title" > Case-Study< / h1 > < h2 class = "author" > Ivan Hörler und Andreas Zweili< / h2 > < p class = "date" > Created: 2018-03-09 Fri 11:05< / p >
2018-03-04 12:44:37 +01:00
< / section >
< section id = "table-of-contents" >
2018-03-07 21:35:49 +01:00
< div id = "table-of-contents" >
2018-03-04 12:44:37 +01:00
< h2 > Inhaltsverzeichnis< / h2 >
< div id = "text-table-of-contents" >
< ul >
2018-03-09 11:06:10 +01:00
< li > < a href = "#/slide-org836fcf2" > Ausgangslage< / a > < / li >
< li > < a href = "#/slide-org5d9eb1a" > Varianten< / a > < / li >
< li > < a href = "#/slide-org48f9ba1" > Kosten< / a > < / li >
< li > < a href = "#/slide-orga0aec25" > Vorgehen< / a > < / li >
< li > < a href = "#/slide-org6e6c6ba" > Fazit< / a > < / li >
2018-03-04 12:44:37 +01:00
< / ul >
< / div >
2018-03-07 21:35:49 +01:00
< / div >
2018-03-04 12:44:37 +01:00
< / section >
< section >
2018-03-09 11:06:10 +01:00
< section id = "slide-org836fcf2" >
< h2 id = "org836fcf2" > Ausgangslage< / h2 >
2018-03-05 12:56:16 +01:00
< ul >
< li > Freie Software in bezug auf open sourcecode.< / li >
< / ul >
< p >
Um einen ersten Anhaltspunkt zu haben, haben wir ein Mindmap gezeichnet in
welchem wir unsere ersten Ideen erfassten.
< / p >
2018-03-04 12:44:37 +01:00
< / section >
2018-03-09 11:06:10 +01:00
< section id = "slide-orgc270b59" >
< h3 id = "orgc270b59" > Vision< / h3 >
2018-03-05 12:56:16 +01:00
< p >
2018-03-09 11:06:10 +01:00
Die Vision wurde anhand eines Mindmaps erstmals grob umfasst:
2018-03-05 12:56:16 +01:00
< / p >
2018-03-04 12:44:37 +01:00
2018-03-07 21:35:49 +01:00
< div class = "figure" >
2018-03-09 11:06:10 +01:00
< p > < img src = "pictures/webshop.png" alt = "webshop.png" width = "70%" / >
2018-03-07 21:35:49 +01:00
< / p >
< / div >
< / section >
2018-03-09 11:06:10 +01:00
< section id = "slide-orga4ef9e0" >
< h3 id = "orga4ef9e0" > Vision - Artikel< / h3 >
2018-03-07 21:35:49 +01:00
< div class = "figure" >
< p > < img src = "pictures/Vision-Artikel.png" alt = "Vision-Artikel.png" width = "80%" / >
< / p >
< / div >
< / section >
2018-03-09 11:06:10 +01:00
< section id = "slide-org7b33cc6" >
< h3 id = "org7b33cc6" > Vision - Warenkorb< / h3 >
2018-03-07 21:35:49 +01:00
< div class = "figure" >
< p > < img src = "pictures/Vision-Warenkorb.png" alt = "Vision-Warenkorb.png" width = "80%" / >
< / p >
< / div >
< / section >
2018-03-09 11:06:10 +01:00
< section id = "slide-orgda4fc0b" >
< h3 id = "orgda4fc0b" > Vision - Abgaben< / h3 >
2018-03-04 12:44:37 +01:00
2018-03-07 21:35:49 +01:00
< div class = "figure" >
< p > < img src = "pictures/Vision-Abgaben.png" alt = "Vision-Abgaben.png" width = "80%" / >
< / p >
< / div >
2018-03-04 12:44:37 +01:00
< / section >
< / section >
< section >
2018-03-09 11:06:10 +01:00
< section id = "slide-org5d9eb1a" >
< h2 id = "org5d9eb1a" > Varianten< / h2 >
< div class = "outline-text-2" id = "text-org5d9eb1a" >
2018-03-04 12:44:37 +01:00
< / div >
< / section >
2018-03-09 11:06:10 +01:00
< section id = "slide-org61f4b78" >
< h3 id = "org61f4b78" > C# und SQL Server< / h3 >
2018-03-05 12:56:16 +01:00
2018-03-07 21:35:49 +01:00
< div class = "figure" >
< p > < img src = "pictures/csharp.png" alt = "csharp.png" / >
< / p >
< / div >
2018-03-04 12:44:37 +01:00
< / section >
2018-03-09 11:06:10 +01:00
< section id = "slide-orgb5d1542" >
< h3 id = "orgb5d1542" > Laravel und MySQL< / h3 >
2018-03-05 12:56:16 +01:00
2018-03-07 21:35:49 +01:00
< div class = "figure" >
< p > < img src = "pictures/laravel.png" alt = "laravel.png" / >
< / p >
< / div >
2018-03-05 12:56:16 +01:00
2018-03-04 12:44:37 +01:00
< / section >
2018-03-09 11:06:10 +01:00
< section id = "slide-orgf6a7858" >
< h3 id = "orgf6a7858" > Django und MariaDB< / h3 >
2018-03-05 12:56:16 +01:00
2018-03-07 21:35:49 +01:00
< div class = "figure" >
< p > < img src = "pictures/django.png" alt = "django.png" / >
< / p >
< / div >
2018-03-05 12:56:16 +01:00
2018-03-04 12:44:37 +01:00
< / section >
2018-03-09 11:06:10 +01:00
< section id = "slide-org90b1db5" >
< h3 id = "org90b1db5" > Kriterien< / h3 >
2018-03-05 12:56:16 +01:00
< ul >
< li > Freie Software< / li >
< li > Cross Plattform nutzbar< / li >
< li > Lesbarkeit des Codes< / li >
< li > Einfachheit des Setups< / li >
< li > Ohne spezielle Tools nutzbar< / li >
< li > Vorkenntnisse Lernfaktor< / li >
< / ul >
2018-03-04 12:44:37 +01:00
< / section >
2018-03-09 11:06:10 +01:00
< section id = "slide-org49e105c" >
< h3 id = "org49e105c" > Vergleich< / h3 >
2018-03-07 21:35:49 +01:00
< table border = "2" cellspacing = "0" cellpadding = "6" rules = "groups" frame = "hsides" >
2018-03-05 12:56:16 +01:00
< colgroup >
2018-03-07 21:35:49 +01:00
< col class = "org-left" / >
2018-03-05 12:56:16 +01:00
2018-03-07 21:35:49 +01:00
< col class = "org-right" / >
2018-03-05 12:56:16 +01:00
< / colgroup >
< thead >
< tr >
< th scope = "col" class = "org-left" > < b > Variante< / b > < / th >
< th scope = "col" class = "org-right" > < b > Erreichte Punktzahl< / b > < / th >
< / tr >
< / thead >
< tbody >
< tr >
< td class = "org-left" > ASP.NET und SQL Server< / td >
< td class = "org-right" > 141< / td >
< / tr >
< tr >
< td class = "org-left" > PHP und MySQL< / td >
< td class = "org-right" > 161< / td >
< / tr >
< tr >
< td class = "org-left" > Django und MariaDB< / td >
< td class = "org-right" > 196< / td >
< / tr >
< / tbody >
< / table >
2018-03-04 12:44:37 +01:00
< / section >
2018-03-09 11:06:10 +01:00
< section id = "slide-orga63706c" >
< h3 id = "orga63706c" > Auswahl< / h3 >
2018-03-04 12:44:37 +01:00
< / section >
< / section >
< section >
2018-03-09 11:06:10 +01:00
< section id = "slide-org48f9ba1" >
< h2 id = "org48f9ba1" > Kosten< / h2 >
< div class = "outline-text-2" id = "text-org48f9ba1" >
2018-03-04 12:44:37 +01:00
< / div >
< / section >
2018-03-09 11:06:10 +01:00
< section id = "slide-orge787793" >
< h3 id = "orge787793" > Laravel Webshop< / h3 >
2018-03-07 21:35:49 +01:00
< table border = "2" cellspacing = "0" cellpadding = "6" rules = "groups" frame = "hsides" >
2018-03-05 12:56:16 +01:00
< colgroup >
2018-03-07 21:35:49 +01:00
< col class = "org-left" / >
2018-03-05 12:56:16 +01:00
2018-03-07 21:35:49 +01:00
< col class = "org-left" / >
2018-03-05 12:56:16 +01:00
< / colgroup >
< thead >
< tr >
< th scope = "col" class = "org-left" > Sprache< / th >
< th scope = "col" class = "org-left" > Codezeilen< / th >
< / tr >
< / thead >
< tbody >
< tr >
< td class = "org-left" > PHP< / td >
< td class = "org-left" > 8679< / td >
< / tr >
< / tbody >
< tbody >
< tr >
< td class = "org-left" > < b > Total< / b > < / td >
< td class = "org-left" > < b > 8679< / b > < / td >
< / tr >
< / tbody >
< / table >
2018-03-04 12:44:37 +01:00
< / section >
2018-03-09 11:06:10 +01:00
< section id = "slide-org2ce530f" >
< h3 id = "org2ce530f" > Django Webshop< / h3 >
2018-03-07 21:35:49 +01:00
< table border = "2" cellspacing = "0" cellpadding = "6" rules = "groups" frame = "hsides" >
2018-03-05 12:56:16 +01:00
< colgroup >
2018-03-07 21:35:49 +01:00
< col class = "org-left" / >
2018-03-05 12:56:16 +01:00
2018-03-07 21:35:49 +01:00
< col class = "org-right" / >
2018-03-05 12:56:16 +01:00
< / colgroup >
< thead >
< tr >
< th scope = "col" class = "org-left" > Sprache< / th >
< th scope = "col" class = "org-right" > Codezeilen< / th >
< / tr >
< / thead >
< tbody >
< tr >
< td class = "org-left" > Python< / td >
< td class = "org-right" > 1460< / td >
< / tr >
< tr >
< td class = "org-left" > SQL< / td >
< td class = "org-right" > 4639< / td >
< / tr >
< / tbody >
< tbody >
< tr >
< td class = "org-left" > < b > Total< / b > < / td >
< td class = "org-right" > < b > 6099< / b > < / td >
< / tr >
< / tbody >
< / table >
2018-03-04 12:44:37 +01:00
< / section >
< / section >
< section >
2018-03-09 11:06:10 +01:00
< section id = "slide-orga0aec25" >
< h2 id = "orga0aec25" > Vorgehen< / h2 >
< div class = "outline-text-2" id = "text-orga0aec25" >
2018-03-04 12:44:37 +01:00
< / div >
< / section >
2018-03-09 11:06:10 +01:00
< section id = "slide-orga1b1ec4" >
< h3 id = "orga1b1ec4" > Currencies - App< / h3 >
2018-03-05 12:56:16 +01:00
< p >
2018-03-09 11:06:10 +01:00
Wurde in Django als eigenen App entwickelt und sollte daher problemloos in
andere Applikationen eingebunden werden können.
2018-03-05 12:56:16 +01:00
< / p >
2018-03-09 11:06:10 +01:00
< p >
Die Quelle der Währungen ist die Schweizerische Nationalbank mit der URL:
< / p >
< p >
< a href = "https://www.snb.ch" > https://www.snb.ch< / a > | resp:
< a href = "https://www.snb.ch/selector/de/mmr/exfeed/rss" > https://www.snb.ch/selector/de/mmr/exfeed/rss< / a >
< / p >
< div class = "figure" >
< p > < img src = "pictures/currencies-rss-reader.png" alt = "currencies-rss-reader.png" width = "80%" / >
< / p >
< / div >
< / section >
< section id = "slide-orgc98113f" >
< h3 id = "orgc98113f" > Currencies - Quelle< / h3 >
< div class = "figure" >
< p > < img src = "pictures/currencies-rss-xml.png" alt = "currencies-rss-xml.png" width = "80%" / >
< / p >
< / div >
< / section >
< section id = "slide-org5289316" >
< h3 id = "org5289316" > Currencies - Parsing< / h3 >
< ul >
< li > Das Konvertieren des XML’ s wurde mit Python eigener Module gemacht.< / li >
< li > für das Herunterladen des XML’ s wurde das Modul ’ urllib’ verwendet (1)< / li >
< li > für das Parsen über die einzelnen items/nodes das Modul xml.etree.ElementTree. (2)< / li >
< / ul >
< p >
(1) < a href = "https://docs.python.org/2/library/urllib.html" > https://docs.python.org/2/library/urllib.html< / a >
(2) < a href = "https://docs.python.org/2/library/xml.etree.elementtree.html" > https://docs.python.org/2/library/xml.etree.elementtree.html< / a >
< / p >
2018-03-05 12:56:16 +01:00
< / section >
2018-03-09 11:06:10 +01:00
< section id = "slide-org6745982" >
< h3 id = "org6745982" > Currencies - Ablauf< / h3 >
< div class = "figure" >
< p > < img src = "pictures/currencies.png" alt = "currencies.png" width = "55%" / >
< / p >
< / div >
< / section >
< section id = "slide-orgbd0997e" >
< h3 id = "orgbd0997e" > Infrastruktur< / h3 >
2018-03-05 12:56:16 +01:00
< p >
Andreas erzählt wie die infrastruktur aufgebaut ist.
< / p >
2018-03-09 11:06:10 +01:00
< div class = "figure" >
< p > < img src = "pictures/Server-Architecture.png" alt = "Server-Architecture.png" width = "60%" / >
< / p >
< / div >
2018-03-05 12:56:16 +01:00
< / section >
2018-03-09 11:06:10 +01:00
< section id = "slide-org19d0586" >
< h3 id = "org19d0586" > Programmierung< / h3 >
2018-03-05 12:56:16 +01:00
< p >
vieleicht zwei Schwierigkeiten
< / p >
2018-03-04 12:44:37 +01:00
< / section >
< / section >
< section >
2018-03-09 11:06:10 +01:00
< section id = "slide-org6e6c6ba" >
< h2 id = "org6e6c6ba" > Fazit< / h2 >
2018-03-04 12:44:37 +01:00
< / section >
< / section >
< / div >
< / div >
< script src = "https://cdn.jsdelivr.net/reveal.js/3.0.0/lib/js/head.min.js" > < / script >
< script src = "https://cdn.jsdelivr.net/reveal.js/3.0.0/js/reveal.js" > < / script >
< script >
// Full list of configuration options available here:
// https://github.com/hakimel/reveal.js#configuration
Reveal.initialize({
controls: true,
progress: true,
history: false,
center: true,
slideNumber: 'c',
rollingLinks: false,
keyboard: true,
overview: true,
theme: Reveal.getQueryHash().theme, // available themes are in /css/theme
transition: Reveal.getQueryHash().transition || 'linear', // default/cube/page/concave/zoom/linear/fade/none
transitionSpeed: 'default',
multiplex: {
secret: '', // null if client
id: '', // id, obtained from socket.io server
url: '' // Location of socket.io server
},
// Optional libraries used to extend on reveal.js
dependencies: [
{ src: 'https://cdn.jsdelivr.net/reveal.js/3.0.0/lib/js/classList.js', condition: function() { return !document.body.classList; } },
{ src: 'https://cdn.jsdelivr.net/reveal.js/3.0.0/plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
{ src: 'https://cdn.jsdelivr.net/reveal.js/3.0.0/plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
{ src: 'https://cdn.jsdelivr.net/reveal.js/3.0.0/plugin/zoom-js/zoom.js', async: true, condition: function() { return !!document.body.classList; } },
{ src: 'https://cdn.jsdelivr.net/reveal.js/3.0.0/plugin/notes/notes.js', async: true, condition: function() { return !!document.body.classList; } }]
});
< / script >
< / body >
< / html >