Browse Source

added figures to framework and

newsletter
Esther Kleinhenz 5 years ago
parent
commit
5dc4b05a8f
21 changed files with 371 additions and 224 deletions
  1. 3
    1
      doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.aux
  2. 13
    0
      doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.bbl
  3. 36
    34
      doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.blg
  4. 5
    3
      doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.lof
  5. 176
    124
      doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.log
  6. 1
    1
      doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.out
  7. BIN
      doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.synctex.gz
  8. 15
    15
      doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.toc
  9. 1
    1
      doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/ausblick.aux
  10. 4
    4
      doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/ergebnis.aux
  11. 3
    3
      doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/fazit.aux
  12. 10
    8
      doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/framework.aux
  13. 10
    10
      doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/prototyp.aux
  14. 20
    0
      doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/preambule/thesis.preamble.tex.aux
  15. BIN
      doc/bachelorarbeit_EstherKleinhenz/bachelorabeit_EstherKleinhenz.pdf
  16. 2
    1
      doc/bachelorarbeit_EstherKleinhenz/chapters/einleitung.tex
  17. 40
    15
      doc/bachelorarbeit_EstherKleinhenz/chapters/framework.tex
  18. 17
    1
      doc/bachelorarbeit_EstherKleinhenz/chapters/prototyp.tex
  19. BIN
      doc/bachelorarbeit_EstherKleinhenz/figures/ldap-tree.png
  20. BIN
      doc/bachelorarbeit_EstherKleinhenz/figures/virt-env-terminal.png
  21. 15
    3
      doc/bachelorarbeit_EstherKleinhenz/references/References_2.bib

+ 3
- 1
doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.aux View File

@@ -35,6 +35,8 @@
\bibstyle{alpha}
\citation{*}
\bibdata{references/References_2}
\bibcite{Dixit}{{Dix18}{}{{}}{{}}}
\bibcite{Python}{{Fou18}{}{{}}{{}}}
\bibcite{Gaynor}{{Gay10}{}{{}}{{}}}
\bibcite{Herzog}{{Her16}{}{{}}{{}}}
\bibcite{King}{{Kin17}{}{{}}{{}}}
@@ -42,4 +44,4 @@
\bibcite{Ndukwe}{{Ndu17}{}{{}}{{}}}
\bibcite{Shelest}{{She09}{}{{}}{{}}}
\providecommand\NAT@force@numbers{}\NAT@force@numbers
\@writefile{toc}{\contentsline {chapter}{Referenzen}{17}{chapter*.9}}
\@writefile{toc}{\contentsline {chapter}{Referenzen}{19}{chapter*.11}}

+ 13
- 0
doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.bbl View File

@@ -1,5 +1,18 @@
\begin{thebibliography}{Ndu17}

\bibitem[Dix18]{Dixit}
Chitrank Dixit.
\newblock Pep-8 tutorial: Code standards in python.
\newblock 2018.
\newblock
https://www.datacamp.com/community/tutorials/pep8-tutorial-python-code.

\bibitem[Fou18]{Python}
Python~Software Foundation.
\newblock Virtual environments and packages.
\newblock 2018.
\newblock https://docs.python.org/3/tutorial/venv.html.

\bibitem[Gay10]{Gaynor}
Alex Gaynor.
\newblock Exploring django-taggit’s data model.

+ 36
- 34
doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.blg View File

@@ -11,51 +11,53 @@ A level-1 auxiliary file: chapters/ausblick.aux
A level-1 auxiliary file: chapters/fazit.aux
The style file: alpha.bst
Database file #1: ../references/References_2.bib
Warning--empty journal in Dixit
Warning--empty journal in Python
Warning--empty journal in Gaynor
Warning--empty journal in Herzog
Warning--empty journal in King
Warning--empty journal in Leipner
Warning--empty journal in Ndukwe
Warning--empty journal in Shelest
You've used 6 entries,
You've used 8 entries,
2543 wiz_defined-function locations,
600 strings with 5832 characters,
and the built_in function-call counts, 1654 in all, are:
= -- 162
> -- 48
< -- 6
+ -- 12
- -- 12
* -- 80
:= -- 296
add.period$ -- 24
call.type$ -- 6
change.case$ -- 30
chr.to.int$ -- 6
cite$ -- 12
duplicate$ -- 84
empty$ -- 121
format.name$ -- 24
if$ -- 320
611 strings with 6085 characters,
and the built_in function-call counts, 2196 in all, are:
= -- 216
> -- 64
< -- 8
+ -- 16
- -- 16
* -- 106
:= -- 390
add.period$ -- 32
call.type$ -- 8
change.case$ -- 40
chr.to.int$ -- 8
cite$ -- 16
duplicate$ -- 112
empty$ -- 161
format.name$ -- 32
if$ -- 426
int.to.chr$ -- 1
int.to.str$ -- 0
missing$ -- 6
newline$ -- 39
num.names$ -- 18
pop$ -- 36
missing$ -- 8
newline$ -- 51
num.names$ -- 24
pop$ -- 48
preamble$ -- 1
purify$ -- 36
purify$ -- 48
quote$ -- 0
skip$ -- 66
skip$ -- 88
stack$ -- 0
substring$ -- 42
substring$ -- 56
swap$ -- 0
text.length$ -- 6
text.prefix$ -- 6
text.length$ -- 8
text.prefix$ -- 8
top$ -- 0
type$ -- 48
warning$ -- 6
while$ -- 12
width$ -- 8
write$ -- 80
(There were 6 warnings)
type$ -- 64
warning$ -- 8
while$ -- 16
width$ -- 10
write$ -- 106
(There were 8 warnings)

+ 5
- 3
doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.lof View File

@@ -3,9 +3,11 @@
\addvspace {10\p@ }
\addvspace {10\p@ }
\contentsline {figure}{\numberline {2.1}{\ignorespaces Vereinfachter MVP\relax }}{6}{figure.caption.5}
\contentsline {figure}{\numberline {2.2}{\ignorespaces Request-Response-Kreislauf des Django Frameworks\relax }}{6}{figure.caption.6}
\contentsline {figure}{\numberline {2.3}{\ignorespaces Einbindung von Bootstrap in einer HTML-Datei\relax }}{9}{figure.caption.7}
\contentsline {figure}{\numberline {2.4}{\ignorespaces Bootstrap-Klassen in HTML-Tag\relax }}{10}{figure.caption.8}
\contentsline {figure}{\numberline {2.2}{\ignorespaces Request-Response-Kreislauf des Django Frameworks\relax }}{7}{figure.caption.6}
\contentsline {figure}{\numberline {2.3}{\ignorespaces Erstellen der virtuelle Umgebung im Terminal\relax }}{8}{figure.caption.7}
\contentsline {figure}{\numberline {2.4}{\ignorespaces Beispiel eines LDAP-Trees\relax }}{9}{figure.caption.8}
\contentsline {figure}{\numberline {2.5}{\ignorespaces Einbindung von Bootstrap in einer HTML-Datei\relax }}{11}{figure.caption.9}
\contentsline {figure}{\numberline {2.6}{\ignorespaces Bootstrap-Klassen in HTML-Tag\relax }}{12}{figure.caption.10}
\addvspace {10\p@ }
\addvspace {10\p@ }
\addvspace {10\p@ }

+ 176
- 124
doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.log View File

@@ -1,4 +1,4 @@
This is XeTeX, Version 3.14159265-2.6-0.99999 (TeX Live 2018) (preloaded format=xelatex 2018.6.7) 10 OCT 2018 10:48
This is XeTeX, Version 3.14159265-2.6-0.99999 (TeX Live 2018) (preloaded format=xelatex 2018.6.7) 15 OCT 2018 21:49
entering extended mode
\write18 enabled.
file:line:error style messages enabled.
@@ -1189,11 +1189,11 @@ Package babel Info: Redefining german shorthand "|
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 1.
Package babel Info: Redefining german shorthand "f
(babel) in language on input line 5.
(babel) in language on input line 6.
Package babel Info: Redefining german shorthand "|
(babel) in language on input line 5.
(babel) in language on input line 6.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 5.
(babel) in language on input line 6.
Missing character: There is no ̈ in font aer12!
Missing character: There is no ̈ in font aer12!
Missing character: There is no ̈ in font aer12!
@@ -1212,27 +1212,27 @@ Missing character: There is no ̈ in font aer12!
Missing character: There is no ̈ in font aer12!
Missing character: There is no ̈ in font aer12!
Package babel Info: Redefining german shorthand "f
(babel) in language on input line 10.
(babel) in language on input line 11.
Package babel Info: Redefining german shorthand "|
(babel) in language on input line 10.
(babel) in language on input line 11.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 10.
Missing character: There is no ̈ in font aer12!
Missing character: There is no ̈ in font aer12!
)
(babel) in language on input line 11.
Package babel Info: Redefining german shorthand "f
(babel) in language on input line 57.
(babel) in language on input line 11.
Package babel Info: Redefining german shorthand "|
(babel) in language on input line 57.
(babel) in language on input line 11.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 57.
(babel) in language on input line 11.
[3]
Package babel Info: Redefining german shorthand "f
(babel) in language on input line 57.
(babel) in language on input line 11.
Package babel Info: Redefining german shorthand "|
(babel) in language on input line 57.
(babel) in language on input line 11.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 57.
[3]
(babel) in language on input line 11.
Missing character: There is no ̈ in font aer12!
Missing character: There is no ̈ in font aer12!
)

Package Fancyhdr Warning: \headheight is too small (12.0pt):
Make it at least 14.49998pt.
@@ -1273,99 +1273,135 @@ File: figures/MVP.png Graphic file (type bmp)

LaTeX Warning: `!h' float specifier changed to `!ht'.

File: figures/request-response-cycle.png Graphic file (type bmp)
<figures/request-response-cycle.png>

LaTeX Warning: `!h' float specifier changed to `!ht'.

LaTeX Font Info: Try loading font information for TS1+aer on input line 28.
LaTeX Font Info: No file TS1aer.fd. on input line 28.
LaTeX Font Info: Try loading font information for TS1+aer on input line 21.
LaTeX Font Info: No file TS1aer.fd. on input line 21.

LaTeX Font Warning: Font shape `TS1/aer/m/n' undefined
(Font) using `TS1/cmr/m/n' instead
(Font) for symbol `textbullet' on input line 28.
(Font) for symbol `textbullet' on input line 21.

Package babel Info: Redefining german shorthand "f
(babel) in language on input line 30.
(babel) in language on input line 22.
Package babel Info: Redefining german shorthand "|
(babel) in language on input line 30.
(babel) in language on input line 22.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 30.
(babel) in language on input line 22.
Package babel Info: Redefining german shorthand "f
(babel) in language on input line 30.
(babel) in language on input line 22.
Package babel Info: Redefining german shorthand "|
(babel) in language on input line 30.
(babel) in language on input line 22.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 30.
(babel) in language on input line 22.
[5




]
File: figures/request-response-cycle.png Graphic file (type bmp)
<figures/request-response-cycle.png>


LaTeX Warning: `!h' float specifier changed to `!ht'.

Package babel Info: Redefining german shorthand "f
(babel) in language on input line 35.
(babel) in language on input line 36.
Package babel Info: Redefining german shorthand "|
(babel) in language on input line 35.
(babel) in language on input line 36.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 35.
(babel) in language on input line 36.
Package babel Info: Redefining german shorthand "f
(babel) in language on input line 35.
(babel) in language on input line 51.
Package babel Info: Redefining german shorthand "|
(babel) in language on input line 35.
(babel) in language on input line 51.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 35.
[6]
(babel) in language on input line 51.
Package babel Info: Redefining german shorthand "f
(babel) in language on input line 38.
(babel) in language on input line 51.
Package babel Info: Redefining german shorthand "|
(babel) in language on input line 38.
(babel) in language on input line 51.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 38.
(babel) in language on input line 51.
[6]
Underfull \vbox (badness 10000) has occurred while \output is active []

Package babel Info: Redefining german shorthand "f
(babel) in language on input line 60.
(babel) in language on input line 53.
Package babel Info: Redefining german shorthand "|
(babel) in language on input line 60.
(babel) in language on input line 53.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 60.
(babel) in language on input line 53.
Package babel Info: Redefining german shorthand "f
(babel) in language on input line 53.
Package babel Info: Redefining german shorthand "|
(babel) in language on input line 53.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 53.
[7]
Package babel Info: Redefining german shorthand "f
(babel) in language on input line 63.
(babel) in language on input line 58.
Package babel Info: Redefining german shorthand "|
(babel) in language on input line 63.
(babel) in language on input line 58.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 63.
(babel) in language on input line 58.
File: figures/virt-env-terminal.png Graphic file (type bmp)
<figures/virt-env-terminal.png>
Package babel Info: Redefining german shorthand "f
(babel) in language on input line 63.
(babel) in language on input line 80.
Package babel Info: Redefining german shorthand "|
(babel) in language on input line 63.
(babel) in language on input line 80.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 63.
[7]
(babel) in language on input line 80.
Package babel Info: Redefining german shorthand "f
(babel) in language on input line 70.
(babel) in language on input line 80.
Package babel Info: Redefining german shorthand "|
(babel) in language on input line 70.
(babel) in language on input line 80.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 70.
(babel) in language on input line 80.
[8]
File: figures/ldap-tree.png Graphic file (type bmp)
<figures/ldap-tree.png>
Package babel Info: Redefining german shorthand "f
(babel) in language on input line 89.
(babel) in language on input line 95.
Package babel Info: Redefining german shorthand "|
(babel) in language on input line 89.
(babel) in language on input line 95.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 89.
(babel) in language on input line 95.
Package babel Info: Redefining german shorthand "f
(babel) in language on input line 89.
(babel) in language on input line 97.
Package babel Info: Redefining german shorthand "|
(babel) in language on input line 89.
(babel) in language on input line 97.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 89.
[8]
(babel) in language on input line 97.
Package babel Info: Redefining german shorthand "f
(babel) in language on input line 93.
(babel) in language on input line 97.
Package babel Info: Redefining german shorthand "|
(babel) in language on input line 93.
(babel) in language on input line 97.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 93.
(babel) in language on input line 97.
[9]
Package babel Info: Redefining german shorthand "f
(babel) in language on input line 118.
Package babel Info: Redefining german shorthand "|
(babel) in language on input line 118.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 118.

Underfull \vbox (badness 10000) has occurred while \output is active []

Package babel Info: Redefining german shorthand "f
(babel) in language on input line 120.
Package babel Info: Redefining german shorthand "|
(babel) in language on input line 120.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 120.
Package babel Info: Redefining german shorthand "f
(babel) in language on input line 120.
Package babel Info: Redefining german shorthand "|
(babel) in language on input line 120.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 120.
[10]
File: figures/bootstrap-head-tag.png Graphic file (type bmp)
<figures/bootstrap-head-tag.png>
File: figures/bootstrap-class-example.png Graphic file (type bmp)
@@ -1374,19 +1410,20 @@ File: figures/bootstrap-class-example.png Graphic file (type bmp)

LaTeX Warning: `!h' float specifier changed to `!ht'.

)
Package babel Info: Redefining german shorthand "f
(babel) in language on input line 115.
(babel) in language on input line 58.
Package babel Info: Redefining german shorthand "|
(babel) in language on input line 115.
(babel) in language on input line 58.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 115.
(babel) in language on input line 58.
Package babel Info: Redefining german shorthand "f
(babel) in language on input line 115.
(babel) in language on input line 58.
Package babel Info: Redefining german shorthand "|
(babel) in language on input line 115.
(babel) in language on input line 58.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 115.
[9])
(babel) in language on input line 58.
[11]
Package babel Info: Redefining german shorthand "f
(babel) in language on input line 58.
Package babel Info: Redefining german shorthand "|
@@ -1399,7 +1436,7 @@ Package babel Info: Redefining german shorthand "|
(babel) in language on input line 58.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 58.
[10]
[12]
\openout2 = `chapters/prototyp.aux'.

(./chapters/prototyp.tex
@@ -1411,47 +1448,57 @@ Package babel Info: Redefining german shorthand "|
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 1.
Package babel Info: Redefining german shorthand "f
(babel) in language on input line 3.
(babel) in language on input line 5.
Package babel Info: Redefining german shorthand "|
(babel) in language on input line 3.
(babel) in language on input line 5.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 3.
(babel) in language on input line 5.

Overfull \hbox (6.80373pt too wide) in paragraph at lines 6--7
\T1/aer/m/n/12 Grundlegender Auf-bau der Web-site, Ver-wal-tung der Da-ten evlt auf noch-mal Taggable-
[]

Package babel Info: Redefining german shorthand "f
(babel) in language on input line 4.
(babel) in language on input line 8.
Package babel Info: Redefining german shorthand "|
(babel) in language on input line 4.
(babel) in language on input line 8.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 4.
(babel) in language on input line 8.
Package babel Info: Redefining german shorthand "f
(babel) in language on input line 5.
(babel) in language on input line 11.
Package babel Info: Redefining german shorthand "|
(babel) in language on input line 5.
(babel) in language on input line 11.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 5.
(babel) in language on input line 11.
Package babel Info: Redefining german shorthand "f
(babel) in language on input line 6.
(babel) in language on input line 15.
Package babel Info: Redefining german shorthand "|
(babel) in language on input line 6.
(babel) in language on input line 15.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 6.
(babel) in language on input line 15.
Package babel Info: Redefining german shorthand "f
(babel) in language on input line 7.
(babel) in language on input line 18.
Package babel Info: Redefining german shorthand "|
(babel) in language on input line 7.
(babel) in language on input line 18.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 7.
(babel) in language on input line 18.

Overfull \hbox (1.12642pt too wide) in paragraph at lines 19--20
\T1/aer/m/n/12 Tags als ein-ge-logg-ter User abon-nie-ren und ver-wal-ten Front-end und Admin-Backend?
[]

Package babel Info: Redefining german shorthand "f
(babel) in language on input line 8.
(babel) in language on input line 21.
Package babel Info: Redefining german shorthand "|
(babel) in language on input line 8.
(babel) in language on input line 21.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 8.
(babel) in language on input line 21.
Package babel Info: Redefining german shorthand "f
(babel) in language on input line 9.
(babel) in language on input line 24.
Package babel Info: Redefining german shorthand "|
(babel) in language on input line 9.
(babel) in language on input line 24.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 9.
(babel) in language on input line 24.
)
Package babel Info: Redefining german shorthand "f
(babel) in language on input line 59.
@@ -1465,33 +1512,28 @@ Package babel Info: Redefining german shorthand "|
(babel) in language on input line 59.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 59.
[11
[13




]
\openout2 = `chapters/ergebnis.aux'.

(./chapters/ergebnis.tex
Package babel Info: Redefining german shorthand "f
(babel) in language on input line 1.
(babel) in language on input line 59.
Package babel Info: Redefining german shorthand "|
(babel) in language on input line 1.
(babel) in language on input line 59.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 1.
(babel) in language on input line 59.
Package babel Info: Redefining german shorthand "f
(babel) in language on input line 1.
(babel) in language on input line 59.
Package babel Info: Redefining german shorthand "|
(babel) in language on input line 1.
(babel) in language on input line 59.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 1.
[12



(babel) in language on input line 59.
[14]
\openout2 = `chapters/ergebnis.aux'.

]
(./chapters/ergebnis.tex
Kapitel 4.
Package babel Info: Redefining german shorthand "f
(babel) in language on input line 1.
@@ -1522,7 +1564,12 @@ Package babel Info: Redefining german shorthand "|
(babel) in language on input line 60.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 60.
[13]
[15




]
\openout2 = `chapters/ausblick.aux'.

(./chapters/ausblick.tex)
@@ -1541,7 +1588,7 @@ Package babel Info: Redefining german shorthand "|
(babel) in language on input line 1.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 1.
[14
[16



@@ -1569,7 +1616,7 @@ Package babel Info: Redefining german shorthand "|
(babel) in language on input line 62.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 62.
[15] (/Users/Esthi/thesis_ek/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.bbl
[17] (/Users/Esthi/thesis_ek/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.bbl
Package babel Info: Redefining german shorthand "f
(babel) in language on input line 1.
Package babel Info: Redefining german shorthand "|
@@ -1582,7 +1629,7 @@ Package babel Info: Redefining german shorthand "|
(babel) in language on input line 1.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 1.
[16
[18



@@ -1593,9 +1640,14 @@ Package babel Info: Redefining german shorthand "|
(babel) in language on input line 1.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 1.

Underfull \hbox (badness 10000) in paragraph at lines 4--9
\T1/aer/m/n/12 https://www.datacamp.com/community/tutorials/pep8-tutorial-python-
[]

Missing character: There is no ’ in font aer12!

Underfull \hbox (badness 1521) in paragraph at lines 18--23
Underfull \hbox (badness 1521) in paragraph at lines 31--36
[]\T1/aer/m/n/12 Adam King. Djan-go midd-le-wa-res and the re-quest/-re-spon-se cy-cle.
[]

@@ -1604,22 +1656,22 @@ Missing character: There is no ̈ in font aer12!
Missing character: There is no ̈ in font aer12!
Missing character: There is no ’ in font aer12!

Underfull \hbox (badness 10000) in paragraph at lines 33--39
Underfull \hbox (badness 10000) in paragraph at lines 46--52
\T1/aer/m/n/12 medium-com-nnennandukwe-python-is-the-back-end-programming-
[]


Underfull \hbox (badness 10000) in paragraph at lines 41--47
Underfull \hbox (badness 10000) in paragraph at lines 54--60
[]\T1/aer/m/n/12 Alexy She-lest. Mo-del view con-trol-ler, mo-del view pre-
[]


Underfull \hbox (badness 10000) in paragraph at lines 41--47
Underfull \hbox (badness 10000) in paragraph at lines 54--60
\T1/aer/m/n/12 sen-ter, and mo-del view view-mo-del de-sign pat-terns. 2009.
[]


Underfull \hbox (badness 10000) in paragraph at lines 41--47
Underfull \hbox (badness 10000) in paragraph at lines 54--60
\T1/aer/m/n/12 https://www.codeproject.com/Articles/42830/Model-View-Controller-
[]

@@ -1637,7 +1689,7 @@ Package babel Info: Redefining german shorthand "|
(babel) in language on input line 77.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 77.
[17]
[19]
Package atveryend Info: Empty hook `AfterLastShipout' on input line 77.
(/Users/Esthi/thesis_ek/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.aux (/Users/Esthi/thesis_ek/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/titlepage/titlepage.aux) (/Users/Esthi/thesis_ek/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/abstract/abstract.aux) (/Users/Esthi/thesis_ek/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/einleitung.aux) (/Users/Esthi/thesis_ek/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/framework.aux) (/Users/Esthi/thesis_ek/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/prototyp.aux) (/Users/Esthi/thesis_ek/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/ergebnis.aux) (/Users/Esthi/thesis_ek/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/ausblick.aux) (/Users/Esthi/thesis_ek/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/fazit.aux))
Package atveryend Info: Empty hook `AtVeryEndDocument' on input line 77.
@@ -1652,12 +1704,12 @@ Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 77.
)
(\end occurred when \ifnum on line 5 was incomplete)
Here is how much of TeX's memory you used:
26546 strings out of 492970
476176 string characters out of 6133939
546355 words of memory out of 5000000
30162 multiletter control sequences out of 15000+600000
26561 strings out of 492970
476474 string characters out of 6133939
547394 words of memory out of 5000000
30175 multiletter control sequences out of 15000+600000
554220 words of font info for 61 fonts, out of 8000000 for 9000
1348 hyphenation exceptions out of 8191
58i,12n,50p,10437b,894s stack positions out of 5000i,500n,10000p,200000b,80000s
58i,11n,50p,10437b,892s stack positions out of 5000i,500n,10000p,200000b,80000s

Output written on /Users/Esthi/thesis_ek/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.pdf (23 pages).
Output written on /Users/Esthi/thesis_ek/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.pdf (25 pages).

+ 1
- 1
doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.out View File

@@ -20,4 +20,4 @@
\BOOKMARK [0][-]{chapter.4}{Ergebnis}{}% 20
\BOOKMARK [1][-]{subsection.4.0.1}{Evaluierung}{chapter.4}% 21
\BOOKMARK [0][-]{chapter.5}{Zusammenfassung\040und\040Ausblick}{}% 22
\BOOKMARK [0][-]{chapter*.9}{Referenzen}{}% 23
\BOOKMARK [0][-]{chapter*.11}{Referenzen}{}% 23

BIN
doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.synctex.gz View File


+ 15
- 15
doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.toc View File

@@ -7,19 +7,19 @@
\contentsline {section}{\numberline {1.2}Ziel der Arbeit}{4}{section.1.2}
\contentsline {chapter}{\numberline {2}Framework}{5}{chapter.2}
\contentsline {section}{\numberline {2.1}Django}{5}{section.2.1}
\contentsline {subsection}{\numberline {2.1.1}Besonderheiten}{7}{subsection.2.1.1}
\contentsline {subsection}{\numberline {2.1.1}Besonderheiten}{6}{subsection.2.1.1}
\contentsline {section}{\numberline {2.2}Erweiterungen}{8}{section.2.2}
\contentsline {subsection}{\numberline {2.2.1}Taggable-Manager}{8}{subsection.2.2.1}
\contentsline {section}{\numberline {2.3}Bootstrap}{9}{section.2.3}
\contentsline {chapter}{\numberline {3}Prototyp}{11}{chapter.3}
\contentsline {section}{\numberline {3.1}Organisation}{11}{section.3.1}
\contentsline {subsection}{\numberline {3.1.1}Verwaltung im Administrator-Backend}{11}{subsection.3.1.1}
\contentsline {subsection}{\numberline {3.1.2}Berechtigung der User}{11}{subsection.3.1.2}
\contentsline {section}{\numberline {3.2}Funktion}{11}{section.3.2}
\contentsline {subsection}{\numberline {3.2.1}Abonnieren}{11}{subsection.3.2.1}
\contentsline {subsection}{\numberline {3.2.2}Filtern}{11}{subsection.3.2.2}
\contentsline {subsection}{\numberline {3.2.3}Benachrichtigung}{11}{subsection.3.2.3}
\contentsline {chapter}{\numberline {4}Ergebnis}{13}{chapter.4}
\contentsline {subsection}{\numberline {4.0.1}Evaluierung}{13}{subsection.4.0.1}
\contentsline {chapter}{\numberline {5}Zusammenfassung und Ausblick}{15}{chapter.5}
\contentsline {chapter}{Referenzen}{17}{chapter*.9}
\contentsline {subsection}{\numberline {2.2.1}Taggable-Manager}{10}{subsection.2.2.1}
\contentsline {section}{\numberline {2.3}Bootstrap}{11}{section.2.3}
\contentsline {chapter}{\numberline {3}Prototyp}{13}{chapter.3}
\contentsline {section}{\numberline {3.1}Organisation}{13}{section.3.1}
\contentsline {subsection}{\numberline {3.1.1}Verwaltung im Administrator-Backend}{13}{subsection.3.1.1}
\contentsline {subsection}{\numberline {3.1.2}Berechtigung der User}{13}{subsection.3.1.2}
\contentsline {section}{\numberline {3.2}Funktion}{13}{section.3.2}
\contentsline {subsection}{\numberline {3.2.1}Abonnieren}{13}{subsection.3.2.1}
\contentsline {subsection}{\numberline {3.2.2}Filtern}{13}{subsection.3.2.2}
\contentsline {subsection}{\numberline {3.2.3}Benachrichtigung}{14}{subsection.3.2.3}
\contentsline {chapter}{\numberline {4}Ergebnis}{15}{chapter.4}
\contentsline {subsection}{\numberline {4.0.1}Evaluierung}{15}{subsection.4.0.1}
\contentsline {chapter}{\numberline {5}Zusammenfassung und Ausblick}{17}{chapter.5}
\contentsline {chapter}{Referenzen}{19}{chapter*.11}

+ 1
- 1
doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/ausblick.aux View File

@@ -1,7 +1,7 @@
\relax
\providecommand\hyper@newdestlabel[2]{}
\@setckpt{chapters/ausblick}{
\setcounter{page}{14}
\setcounter{page}{16}
\setcounter{equation}{0}
\setcounter{enumi}{0}
\setcounter{enumii}{0}

+ 4
- 4
doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/ergebnis.aux View File

@@ -1,12 +1,12 @@
\relax
\providecommand\hyper@newdestlabel[2]{}
\@writefile{toc}{\contentsline {chapter}{\numberline {4}Ergebnis}{13}{chapter.4}}
\@writefile{toc}{\contentsline {chapter}{\numberline {4}Ergebnis}{15}{chapter.4}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\newlabel{ch:ergebnis}{{4}{13}{Ergebnis}{chapter.4}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.0.1}Evaluierung}{13}{subsection.4.0.1}}
\newlabel{ch:ergebnis}{{4}{15}{Ergebnis}{chapter.4}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.0.1}Evaluierung}{15}{subsection.4.0.1}}
\@setckpt{chapters/ergebnis}{
\setcounter{page}{14}
\setcounter{page}{16}
\setcounter{equation}{0}
\setcounter{enumi}{0}
\setcounter{enumii}{0}

+ 3
- 3
doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/fazit.aux View File

@@ -1,11 +1,11 @@
\relax
\providecommand\hyper@newdestlabel[2]{}
\@writefile{toc}{\contentsline {chapter}{\numberline {5}Zusammenfassung und Ausblick}{15}{chapter.5}}
\@writefile{toc}{\contentsline {chapter}{\numberline {5}Zusammenfassung und Ausblick}{17}{chapter.5}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\newlabel{ch:zusammenfassung}{{5}{15}{Zusammenfassung und Ausblick}{chapter.5}{}}
\newlabel{ch:zusammenfassung}{{5}{17}{Zusammenfassung und Ausblick}{chapter.5}{}}
\@setckpt{chapters/fazit}{
\setcounter{page}{16}
\setcounter{page}{18}
\setcounter{equation}{0}
\setcounter{enumi}{0}
\setcounter{enumii}{0}

+ 10
- 8
doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/framework.aux View File

@@ -6,15 +6,17 @@
\newlabel{ch:framework}{{2}{5}{Framework}{chapter.2}{}}
\@writefile{toc}{\contentsline {section}{\numberline {2.1}Django}{5}{section.2.1}}
\@writefile{lof}{\contentsline {figure}{\numberline {2.1}{\ignorespaces Vereinfachter MVP\relax }}{6}{figure.caption.5}}
\@writefile{lof}{\contentsline {figure}{\numberline {2.2}{\ignorespaces Request-Response-Kreislauf des Django Frameworks\relax }}{6}{figure.caption.6}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.1.1}Besonderheiten}{7}{subsection.2.1.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.1.1}Besonderheiten}{6}{subsection.2.1.1}}
\@writefile{lof}{\contentsline {figure}{\numberline {2.2}{\ignorespaces Request-Response-Kreislauf des Django Frameworks\relax }}{7}{figure.caption.6}}
\@writefile{toc}{\contentsline {section}{\numberline {2.2}Erweiterungen}{8}{section.2.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.2.1}Taggable-Manager}{8}{subsection.2.2.1}}
\@writefile{toc}{\contentsline {section}{\numberline {2.3}Bootstrap}{9}{section.2.3}}
\@writefile{lof}{\contentsline {figure}{\numberline {2.3}{\ignorespaces Einbindung von Bootstrap in einer HTML-Datei\relax }}{9}{figure.caption.7}}
\@writefile{lof}{\contentsline {figure}{\numberline {2.4}{\ignorespaces Bootstrap-Klassen in HTML-Tag\relax }}{10}{figure.caption.8}}
\@writefile{lof}{\contentsline {figure}{\numberline {2.3}{\ignorespaces Erstellen der virtuelle Umgebung im Terminal\relax }}{8}{figure.caption.7}}
\@writefile{lof}{\contentsline {figure}{\numberline {2.4}{\ignorespaces Beispiel eines LDAP-Trees\relax }}{9}{figure.caption.8}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.2.1}Taggable-Manager}{10}{subsection.2.2.1}}
\@writefile{toc}{\contentsline {section}{\numberline {2.3}Bootstrap}{11}{section.2.3}}
\@writefile{lof}{\contentsline {figure}{\numberline {2.5}{\ignorespaces Einbindung von Bootstrap in einer HTML-Datei\relax }}{11}{figure.caption.9}}
\@writefile{lof}{\contentsline {figure}{\numberline {2.6}{\ignorespaces Bootstrap-Klassen in HTML-Tag\relax }}{12}{figure.caption.10}}
\@setckpt{chapters/framework}{
\setcounter{page}{11}
\setcounter{page}{13}
\setcounter{equation}{0}
\setcounter{enumi}{0}
\setcounter{enumii}{0}
@@ -29,7 +31,7 @@
\setcounter{subsubsection}{0}
\setcounter{paragraph}{0}
\setcounter{subparagraph}{0}
\setcounter{figure}{4}
\setcounter{figure}{6}
\setcounter{table}{0}
\setcounter{float@type}{8}
\setcounter{parentequation}{0}

+ 10
- 10
doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/prototyp.aux View File

@@ -1,18 +1,18 @@
\relax
\providecommand\hyper@newdestlabel[2]{}
\@writefile{toc}{\contentsline {chapter}{\numberline {3}Prototyp}{11}{chapter.3}}
\@writefile{toc}{\contentsline {chapter}{\numberline {3}Prototyp}{13}{chapter.3}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\newlabel{ch:prototyp}{{3}{11}{Prototyp}{chapter.3}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3.1}Organisation}{11}{section.3.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1.1}Verwaltung im Administrator-Backend}{11}{subsection.3.1.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1.2}Berechtigung der User}{11}{subsection.3.1.2}}
\@writefile{toc}{\contentsline {section}{\numberline {3.2}Funktion}{11}{section.3.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.1}Abonnieren}{11}{subsection.3.2.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.2}Filtern}{11}{subsection.3.2.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.3}Benachrichtigung}{11}{subsection.3.2.3}}
\newlabel{ch:prototyp}{{3}{13}{Prototyp}{chapter.3}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3.1}Organisation}{13}{section.3.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1.1}Verwaltung im Administrator-Backend}{13}{subsection.3.1.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1.2}Berechtigung der User}{13}{subsection.3.1.2}}
\@writefile{toc}{\contentsline {section}{\numberline {3.2}Funktion}{13}{section.3.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.1}Abonnieren}{13}{subsection.3.2.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.2}Filtern}{13}{subsection.3.2.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.3}Benachrichtigung}{14}{subsection.3.2.3}}
\@setckpt{chapters/prototyp}{
\setcounter{page}{12}
\setcounter{page}{15}
\setcounter{equation}{0}
\setcounter{enumi}{0}
\setcounter{enumii}{0}

+ 20
- 0
doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/preambule/thesis.preamble.tex.aux View File

@@ -0,0 +1,20 @@
\relax
\@setckpt{preambule/thesis.preamble.tex}{
\setcounter{page}{1}
\setcounter{equation}{0}
\setcounter{enumi}{0}
\setcounter{enumii}{0}
\setcounter{enumiii}{0}
\setcounter{enumiv}{0}
\setcounter{footnote}{0}
\setcounter{mpfootnote}{0}
\setcounter{part}{0}
\setcounter{chapter}{0}
\setcounter{section}{0}
\setcounter{subsection}{0}
\setcounter{subsubsection}{0}
\setcounter{paragraph}{0}
\setcounter{subparagraph}{0}
\setcounter{figure}{0}
\setcounter{table}{0}
}

BIN
doc/bachelorarbeit_EstherKleinhenz/bachelorabeit_EstherKleinhenz.pdf View File


+ 2
- 1
doc/bachelorarbeit_EstherKleinhenz/chapters/einleitung.tex View File

@@ -1,6 +1,7 @@
\chapter{Einleitung}
\textcolor{red}{Die vorliegende Arbeit beschäftigt sich mit der wachsenden E-Mail-Flut in den Postfächern der Studierenden und wie man diese reduzieren kann.}
Schon seit geraumer Zeit ist bekannt, dass das Versenden von Informationen über elektronische Post nicht nur Vorteile mit sich bringt. Wie der Spezialist für Gesundheitsprozessberatung in einem Bericht der Mitteldeutschen Zeitung erwähnt, "macht es die stets wachsende E-Mail-Menge unmöglich sich vernünftig mit den Informationen zu befassen"([Ver13]). Nicht nur am Arbeitsplatz sondern auch in Hochschulen wird Gebrauch gemacht, weitere Empfänger oder sogar ganze Verteiler mit in die Kopie einer E-Mail zu integrieren. Um die Prioritäten der Informationen besser bilden zu können, sollen Studierende selbst entscheiden, welche Nachrichten relevant sind. Hierfür wird eine Social Media Plattform mit personalisierbarem Dashboard implementiert.

Schon seit geraumer Zeit ist bekannt, dass das Versenden von Informationen über elektronische Post nicht nur Vorteile mit sich bringt. Wie der Spezialist für Gesundheitsprozessberatung in einem Bericht der Mitteldeutschen Zeitung erwähnt, \glqq macht es die stets wachsende E-Mail-Menge unmöglich sich vernünftig mit den Informationen zu befassen"([Ver13]). Nicht nur am Arbeitsplatz sondern auch in Hochschulen wird Gebrauch gemacht, weitere Empfänger oder sogar ganze Verteiler mit in die Kopie einer E-Mail zu integrieren. Um die Prioritäten der Informationen besser bilden zu können, sollen Studierende selbst entscheiden, welche Nachrichten relevant sind. Hierfür wird eine Social Media Plattform mit personalisierbarem Dashboard implementiert.

\section{Ausgangssituation}
Alle Informationen der Fakultät Elektrotechnik Feinwerktechnik Informationstechnik, kurz efi, werden über die globalen Verteiler des Hochschulinternen Postfaches versendet. Viele dieser Daten sind jedoch nur für eine geringe Schnittmenge der Empfänger relevant und lassen sich nur schwer priorisieren. Das ständig überlastete Postfach muss somit regelmä"sig gepflegt werden. Einen massiven Administrativen Aufwand bedeutet es, E-Mails zu filtern und nach persönlichem Ermessen zu verwalten.

+ 40
- 15
doc/bachelorarbeit_EstherKleinhenz/chapters/framework.tex View File

@@ -1,7 +1,7 @@
\chapter{Framework}
\label{ch:framework}
Um die Website-Erweiterung realisieren zu können, wird zunächst festgelegt welche Programmierschnittstellen verwendet werden. Im Web-Backend fällt die Wahl auf die objektorientierte Sprache Python, die ausschlie"slich Serverseitig anwendbar ist. Der Programmaufbau Pythons macht den Code leicht lesbar und der einfache Syntax ermöglicht einen strukturierte Implementierung der Website([Ndu17]). Ein entscheidender Vorteil hierbei ist das dazugehörige Framework Django, auf das im folgenden Kapitel genauer eingegangen wird.
Um die Website-Erweiterung realisieren zu können, wird zunächst festgelegt welche Programmierschnittstellen verwendet werden. Im Web-Backend fällt die Wahl auf die objektorientierte Sprache Python, die ausschlie"slich Serverseitig anwendbar ist. Der Programmaufbau Pythons macht den Code leicht lesbar und der einfache Syntax ermöglicht einen strukturierte Implementierung der Website([Ndu17]). Die vielen abstrakten Datentypen, wie dynamische Arrays und Wörterbücher, sind gro"sflächig einsetzbar.
Ein entscheidender Vorteil hierbei ist das dazugehörige Framework Django, auf das im folgenden Kapitel genauer eingegangen wird.


\section{Django}
@@ -16,13 +16,6 @@ Django ist ein Web-Framework, das auf einer Model-View-Presenter (MVP) Architekt

Der Prozess vom Anfragen der URL über den Server, bis hin zur fertig gerenderten Website kann wie folgt vereinfacht darstellen. Der User gibt eine URL im Browser ein und sendet sie an den Web-Server.

\begin{figure}[!h]
\centering
\includegraphics[width=0.5\textwidth]{figures/request-response-cycle}
\caption{Request-Response-Kreislauf des Django Frameworks}
\hfill
\end{figure}

Das Interface WSGI am Web-Server verbindet diesen mit dem Web-Framework, indem es den Request zum passenden Objekt weiterleitet. Hier wird der Applikation eine Callback-Funktion zur Verfügung gestellt [Kin17]. Au"serdem werden folgende Schritte durchgeführt:
\begin{itemize}
\item Die Middleware-Klassen aus der settings.py werden geladen
@@ -31,9 +24,14 @@ Das Interface WSGI am Web-Server verbindet diesen mit dem Web-Framework, indem e
\end{itemize}

Der WSGI-Handler fungiert also als Pförtner und Manager zwischen dem Web-Server und dem Django-Projekt.
Um die URL, wie weiter oben erwähnt, aufzulösen, benötigt WSGI einen urlresolver. Durch die explizite Zuweisung der vorhandenen Seiten, kann dieser über die regulären Ausdrücke der url.py-Datei iterieren. Gibt es eine Übereinstimmung, wird die damit verknüpfte Funktion in der View (view.py) aufgerufen. Hier ist die gesamte Logik der Website lokalisiert. Wie bereits erwähnt, ist es möglich unter Anderem auf die Datenbank der Applikation zuzugreifen und Eingaben des Users über eine Form zu verarbeiten. Nachdem werden die Informationen der View an das Template weitergereicht. Es handelt sich dabei um eine einfache HTML-Seite in der der strukturelle Aufbau im Frontend festgelegt wird. Die Informationen der View können hier zwischen doppelt-geschweiften Klammern eingebunden und, wenn nötig, mit einfachen Python-Befehlen angepasst werden. Nun kann das Template, die vom WSGI-Framework zur Verfügung gestellte Callback-Funktion befüllen und einen Response an den Web-Server schicken. Die fertige Seite ist beim Klienten im Browserfenster zum rendern bereit (vgl. Abbildung 2.1).

Um die URL, wie weiter oben erwähnt, aufzulösen, benötigt WSGI einen urlresolver. Durch die explizite Zuweisung der vorhandenen Seiten, kann dieser über die regulären Ausdrücke der url.py-Datei iterieren. Gibt es eine Übereinstimmung, wird die damit verknüpfte Funktion in der View (view.py) aufgerufen. Hier ist die gesamte Logik der Website lokalisiert. Wie bereits erwähnt, ist es möglich unter Anderem auf die Datenbank der Applikation zuzugreifen und Eingaben des Users über eine Form zu verarbeiten. Nachdem werden die Informationen der View an das Template weitergereicht. Es handelt sich dabei um eine einfache HTML-Seite in der der strukturelle Aufbau im Frontend festgelegt wird. Die Informationen der View können hier zwischen doppelt-geschweiften Klammern eingebunden und, wenn nötig, mit einfachen Python-Befehlen angepasst werden. Nun kann das Template, die vom WSGI-Framework zur Verfügung gestellte Callback-Funktion befüllen und einen Response an den Web-Server schicken. Die fertige Seite ist beim Klienten im Browserfenster zum rendern bereit (vgl. Abbildung 2.2.).

\begin{figure}[!h]
\centering
\includegraphics[width=0.5\textwidth]{figures/request-response-cycle}
\caption{Request-Response-Kreislauf des Django Frameworks}
\hfill
\end{figure}

\subsection {Besonderheiten}
Das Django-Framework bringt einige Besonderheiten mit sich, die beim implementiern des Prototypen von Bedeutung sind. Diese werden im Folgenden beschrieben.
@@ -58,14 +56,41 @@ Benutzerdefinierte Decorator sind im Django-Framework möglich, darauf wird hier


\section{Erweiterungen}
Durch das hohe Ansehen, dass Django in der Branche genie"st ist der Pool an Erweiterungen gro"s.

pip?
Die Programmiersprache Python bringt viele hilfreiche Erweiterungen mit sich. Die im folgenden aufgeführten sind hauptsächlich für die Paketverwaltung der Applikation zuständig.

Wird ein neues Projekt gestartet, ist es üblich, verschiedensten Programme und Module dafür zu verwenden. Die Versionen dieser spielen hierbei eine entscheidende Rolle, um Konflikte zu vermeiden [Fou18]. Um diesem Problem vorzubeugen, wird eine virtuelle Umgebung implementiert. Diese besitzt einen eigenen Projektpfad, beinhaltet alle nötigen Pakete und Bibliotheken, und lässt sich nach dem Einrichten im Terminal benutzten. Die folgende Abbildung (2.3) zeigt das Erstellen eines neunen Ordners, das Erstellen der virtuellen Umgebung und den Aktivierungsbefehl. Ist der Name des Environment in Klammern am Anfang der Zeile, bedeutet das, diese ist jetzt aktiv.

\begin{figure}[!h]
\centering
\includegraphics[width=0.7\textwidth]{figures/virt-env-terminal}
\caption{Erstellen der virtuelle Umgebung im Terminal}
\hfill
\end{figure}

Die Umgebung ist jetzt bereit befüllt zu werden. Um die Pakete und Module kollisionsfrei zu installieren ist es empfehlenswert einen Package-Manager zu verwenden. Mit pip können diese installiert, geupdated und gelöscht werden. Au"serdem kann der Manager Abhängigkeiten, wenn nötig, überschreiben und optimieren. Falls ein, sich von der neuesten Version unterscheidendes, Programm installiert werden soll, so ist dies ebenso möglich.

allg Erweiterungen und dann genauer Taggable Manager
Eine weitere hilfreiche Erweiterung ist pylint. Das Tool sucht nicht nur nach Fehlern im Code, sondern versucht diesen sauber und einheitlich zu gestalten. Hierbei wird auf den Code-Standard PEP-8 geprüft [Dix18]. Die folgende Liste zeigt eine Kurzfassung der wichtigsten Regeln:

\begin{itemize}
\item Einrückung, meist 4 Leerzeichen
\item Maximale Zeichenanzahl pro Zeile
\item Zwei Leerzeile zwischen Klassen und Funktionen
\item Eine Leerzeile zwischen Methoden innerhalb einer Klasse
\item Leerzeichen in Ausdrücke und Anweisungen vermeiden
\item Die Reihenfolge der Importe: Standartbibliotheken, Drittanbieterbibliotheken, Lokale Anwendungen
\item Konventionen der Namensgebung von Funktionen, Modulen usw.
\end{itemize}
Natürlich sind dies Vorgaben, die eingehalten werden können, aber nicht notwendig sind um den Code fertig kompilieren und ausgeben zu lassen.

Das ldap, Lightweight Directory Access Protocol, muss als Erweiterung in die hier bearbeitende Bachelor-Arbeit eingebunden werden. Dies ist ein Internetprotokoll, welches die Kommunikation mit dem Hochschulinternen Active Directory verwaltet. Es wird eingesetzt um Benutzer so schnell und effizient wie möglich durch eine bereits existierende Datenbank abzufragen und zu authentifizieren. Der Aufbau ist mit einem Baum zu vergleichen (vgl. Abbildung 2.4.). Die Wurzel besteht aus sehr allgemeinen Informationen, umso näher man den Blättern kommt, umso spezifischer werden diese. Ein Objekt in der Struktur wird durch einen einmaligen Namen identifiziert, der aus den gesamten hinterlegten Informationen besteht. Der Name für den in der Abbildung 2.4 dargestellten Baum wäre \glqq cn=John Doe, ou=People, dc=sun.com\grqq.

\begin{figure}[!h]
\centering
\includegraphics[width=0.5\textwidth]{figures/ldap-tree}
\caption{Beispiel eines LDAP-Trees}
\hfill
\end{figure}

\subsection {Taggable-Manager}
Django-taggit ist eine Erweiterung von Alex Gaynor, einem Entwickler aus Washingtion DC. Das Add-on ermöglicht das Verwenden von Tags die automatisch mit einem eindeutigen Slug versehen werden. Der darin enthaltene Taggable Manager verwendet Django's Contenttype Framework, welches per Default verwendet wird, um die Modelle der Applikation zu verfolgen und diese durch generische Beziehungen zu verknüpfen. Die Felder app\_label und model machen die Modelle eindeutig zuweisbar. Instanzen des Contenttypes präsentieren und speichern die Informationen und Erstellen automatisch neue Instanzen, wenn Modelle hinzugefügt werden. Zudem stehen Methoden zur Verfügung, die das Abrufen und Arbeiten mit Instanzen der einzelnen Modelle erleichtern.
@@ -93,7 +118,7 @@ Im Admin-Backend kann nun geprüft werden, ob das neue Feld in die Datenbank int
\section{Bootstrap}
Eine umfangreiche Website einheitlich zu gestalten ist oft sehr komplex und zeitaufwendig. Die Entwickler von Twitter haben deshalb, zunächst Firmenintern, an einem neuen Verwaltungswerkzeug gearbeitet, das mehrere Bibliotheken zusammenführen sollte. Sie merkten, das die neue Bibliothek, die daraus entstand, nicht nur auf Ihre eigene Website anwendbar, sondern so flexible ist, dass jede Art von Website davon profitieren könnte. 2011 entschieden Sie sich Bootstrap für die Öffentlichkeit frei zugänglich zu machen. Die Open-Source-Bibliothek, die auf GitHub abrufbar ist, wird seitdem von vielen interessierten Programmierern weiterentwickelt und ist somit stark gewachsen. Version 2.0 verfügt au"serdem über die Fähigkeit Websites responsive auf verschiedenste mobile Endgeräte anzupassen.

Das Bootstrap-Paket beinhaltet vorgefertigte Cascading Stylesheets, kurz CSS, die Farben, Schriftarten und viele weitere Stildefinitionen. Zudem befinden sich auch Erweiterungen des JavaScript-Frameworks jQuery in der Bibliothek, die weiterführende Funktionen beinhalten wie zum Beispiel Filter oder Dropdown-Menüs. Das Paket kann einfach eingebunden werden im head-tag einer HTML-Datei (vgl. Abbildung 2.3).
Das Bootstrap-Paket beinhaltet vorgefertigte Cascading Stylesheets, kurz CSS, die Farben, Schriftarten und viele weitere Stildefinitionen. Zudem befinden sich auch Erweiterungen des JavaScript-Frameworks jQuery in der Bibliothek, die weiterführende Funktionen beinhalten wie zum Beispiel Filter oder Dropdown-Menüs. Das Paket kann einfach eingebunden werden im head-tag einer HTML-Datei (vgl. Abbildung 2.3). Das bedeutet, dass Medie-Queries oder ähnliche Methoden nicht mehr nötig sind, nicht nur um eine Website mobilfähig zu machen, sondern auch kompatibel für die verschiedensten Browser.

\begin{figure}[!h]
\centering

+ 17
- 1
doc/bachelorarbeit_EstherKleinhenz/chapters/prototyp.tex View File

@@ -1,9 +1,25 @@
\chapter{Prototyp}
\label{ch:prototyp}
Um zu beweisen, wie eine Spcial Media Plattform die Mail-Flut der Efi-Fakultät reduzieren kann, wird ein Prototyp implementiert.

\section{Organisation}
Grundlegender Aufbau der Website, Verwaltung der Daten evlt auf nochmal Taggable-Manager (ManyToMany) ...

\subsection{Verwaltung im Administrator-Backend}
Näher auf CustomUserModel eingehen, Diagramm erstellen und einbinden

\subsection{Berechtigung der User}
Welche Berechtigungen gibt es im Prototyp, welche werden vom Active Directory übernommen?


\section{Funktion}
Nötige Funktionen

\subsection{Abonnieren}
Tags als eingeloggter User abonnieren und verwalten Front-end und Admin-Backend?

\subsection{Filtern}
\subsection{Benachrichtigung}
Tag-map? Filtern nach abonnierten Posts, alle Posts und Posts mit bestimmten Tags

\subsection{Benachrichtigung}
Mail-Benachrichtigung wöchentlich

BIN
doc/bachelorarbeit_EstherKleinhenz/figures/ldap-tree.png View File


BIN
doc/bachelorarbeit_EstherKleinhenz/figures/virt-env-terminal.png View File


+ 15
- 3
doc/bachelorarbeit_EstherKleinhenz/references/References_2.bib View File

@@ -26,18 +26,30 @@
note = "https://django-taggit.readthedocs.io/en/latest/getting\_started"
}
@article{Herzog,
@article{Herzog,
author = "Stephan Herzog",
title = "Model View Controller, Model View Presenter, and Model View ViewModel Design Patterns",
year = "2016",
note = "https://medium.com/sthzg/a-short-exploration-of-django-taggit-bb869ea5051f"
}
@article{King,
@article{King,
author = "Adam King",
title = "Django Middlewares and the Request/Response Cycle",
year = "2017",
note = "https://medium.com/zeitcode/django-middlewares-and-the-request-response-cycle-fcbf8efb903f"
}
@article{Python,
author = "Python Software Foundation",
title = "Virtual Environments and Packages",
year = "2018",
note = "https://docs.python.org/3/tutorial/venv.html"
}
@article{Dixit,
author = "Chitrank Dixit",
title = "PEP-8 Tutorial: Code Standards in Python",
year = "2018",
note = "https://www.datacamp.com/community/tutorials/pep8-tutorial-python-code"
}

Loading…
Cancel
Save