diff --git a/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/abstract/abstract.aux b/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/abstract/abstract.aux index 3348501..e3a2c02 100644 --- a/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/abstract/abstract.aux +++ b/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/abstract/abstract.aux @@ -20,6 +20,10 @@ \setcounter{figure}{0} \setcounter{table}{0} \setcounter{float@type}{8} +\setcounter{Item}{0} +\setcounter{Hfootnote}{0} +\setcounter{Hy@AnnotLevel}{0} +\setcounter{bookmark@seq@number}{1} \setcounter{parentequation}{0} \setcounter{lstnumber}{1} \setcounter{ContinuedFloat}{0} @@ -27,11 +31,7 @@ \setcounter{subtable}{0} \setcounter{r@tfl@t}{0} \setcounter{AM@survey}{0} -\setcounter{Item}{0} -\setcounter{Hfootnote}{0} -\setcounter{Hy@AnnotLevel}{0} -\setcounter{bookmark@seq@number}{1} \setcounter{NAT@ctr}{0} -\setcounter{lstlisting}{0} \setcounter{section@level}{0} +\setcounter{lstlisting}{0} } diff --git a/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.aux b/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.aux index 4ec248b..67b080e 100644 --- a/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.aux +++ b/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.aux @@ -2,7 +2,6 @@ \providecommand\hyper@newdestlabel[2]{} \providecommand*\new@tpo@label[2]{} \catcode `"\active -\AC@reset@newl@bel \providecommand\HyperFirstAtBeginDocument{\AtBeginDocument} \HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined \global\let\oldcontentsline\contentsline @@ -18,6 +17,7 @@ \global\let\hyper@last\relax \gdef\HyperFirstAtBeginDocument#1{#1} \providecommand*\HyPL@Entry[1]{} +\AC@reset@newl@bel \@input{titlepage/titlepage.aux} \HyPL@Entry{0<>} \babel@aux{german}{} diff --git a/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.lof b/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.lof index 317cd82..b79cb05 100644 --- a/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.lof +++ b/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.lof @@ -3,26 +3,26 @@ \addvspace {10\p@ } \addvspace {10\p@ } \contentsline {figure}{\numberline {2.1}{\ignorespaces Vereinfachter MVP [She09]\relax }}{6}{figure.caption.4} -\contentsline {figure}{\numberline {2.2}{\ignorespaces Request-Response-Kreislauf des Django Frameworks [Nev15].\relax }}{7}{figure.caption.5} -\contentsline {figure}{\numberline {2.3}{\ignorespaces Erstellen der virtuelle Umgebung im Terminal.\relax }}{8}{figure.caption.6} -\contentsline {figure}{\numberline {2.4}{\ignorespaces Beispiel eines LDAP-Trees [Orc10].\relax }}{9}{figure.caption.7} -\contentsline {figure}{\numberline {2.5}{\ignorespaces Einbindung von Bootstrap in einer HTML-Datei\relax }}{13}{figure.caption.8} -\contentsline {figure}{\numberline {2.6}{\ignorespaces Bootstrap-Klassen in HTML-Tag\relax }}{13}{figure.caption.9} +\contentsline {figure}{\numberline {2.2}{\ignorespaces Request-Response-Kreislauf des Django Frameworks [Nev15]\relax }}{7}{figure.caption.5} +\contentsline {figure}{\numberline {2.3}{\ignorespaces Erstellen der virtuelle Umgebung im Terminal\relax }}{8}{figure.caption.6} +\contentsline {figure}{\numberline {2.4}{\ignorespaces Einbindung von Bootstrap in einer HTML-Datei\relax }}{12}{figure.caption.7} +\contentsline {figure}{\numberline {2.5}{\ignorespaces Bootstrap-Klassen in HTML-Tag\relax }}{12}{figure.caption.8} \addvspace {10\p@ } -\contentsline {figure}{\numberline {3.1}{\ignorespaces Forschungsdesign\relax }}{15}{figure.caption.10} -\contentsline {figure}{\numberline {3.2}{\ignorespaces Datenmodellierung von \texttt {User} und \texttt {Post}\relax }}{17}{figure.caption.11} -\contentsline {figure}{\numberline {3.3}{\ignorespaces CustomUserModel in models.py\relax }}{18}{figure.caption.12} -\contentsline {figure}{\numberline {3.4}{\ignorespaces User Stories\relax }}{19}{figure.caption.13} -\contentsline {figure}{\numberline {3.5}{\ignorespaces Prototyp Artikel-Editor.\relax }}{21}{figure.caption.14} -\contentsline {figure}{\numberline {3.6}{\ignorespaces Funktion post\_edit, Auszug aus views.py.\relax }}{22}{figure.caption.15} -\contentsline {figure}{\numberline {3.7}{\ignorespaces Prototyp Suche- und Abonnier-Seite\relax }}{23}{figure.caption.16} -\contentsline {figure}{\numberline {3.8}{\ignorespaces Funktion search\_add, Auszug aus views.py.\relax }}{24}{figure.caption.17} -\contentsline {figure}{\numberline {3.9}{\ignorespaces Prototyp Newsfeed Seite\relax }}{25}{figure.caption.18} +\contentsline {figure}{\numberline {3.1}{\ignorespaces Forschungsdesign\relax }}{15}{figure.caption.9} +\contentsline {figure}{\numberline {3.2}{\ignorespaces CustomUserModel in models.py\relax }}{17}{figure.caption.10} +\contentsline {figure}{\numberline {3.3}{\ignorespaces Datenmodellierung von \texttt {User} und \texttt {Post}\relax }}{18}{figure.caption.11} +\contentsline {figure}{\numberline {3.4}{\ignorespaces Menü für eingeloggte Benutzer mit Adminrechte\relax }}{19}{figure.caption.12} +\contentsline {figure}{\numberline {3.5}{\ignorespaces User Stories\relax }}{20}{figure.caption.13} +\contentsline {figure}{\numberline {3.6}{\ignorespaces Prototyp Artikel-Editor.\relax }}{22}{figure.caption.14} +\contentsline {figure}{\numberline {3.7}{\ignorespaces Funktion post\_edit, Auszug aus views.py.\relax }}{22}{figure.caption.15} +\contentsline {figure}{\numberline {3.8}{\ignorespaces Prototyp Suche- und Abonnier-Seite\relax }}{23}{figure.caption.16} +\contentsline {figure}{\numberline {3.9}{\ignorespaces Funktion search\_add, Auszug aus views.py.\relax }}{24}{figure.caption.17} +\contentsline {figure}{\numberline {3.10}{\ignorespaces Prototyp Newsfeed Seite\relax }}{25}{figure.caption.18} \addvspace {10\p@ } -\contentsline {figure}{\numberline {4.1}{\ignorespaces Vergleich der hochschulinternen E-Mails.\relax }}{26}{figure.caption.19} -\contentsline {figure}{\numberline {4.2}{\ignorespaces Details der relevanten E-Mails des Probanden.\relax }}{27}{figure.caption.20} -\contentsline {figure}{\numberline {4.3}{\ignorespaces Details der irrelevanten E-Mails des Probanden.\relax }}{28}{figure.caption.21} -\contentsline {figure}{\numberline {4.4}{\ignorespaces Vergleich der Anzahl von eintreffenden E-Mails zwischen aktueller Situation und unter Verwendung des Prototyps.\relax }}{28}{figure.caption.22} -\contentsline {figure}{\numberline {4.5}{\ignorespaces Vergleich relevanter und nicht relevanter E-Mails.\relax }}{30}{figure.caption.23} +\contentsline {figure}{\numberline {4.1}{\ignorespaces Vergleich der hochschulinternen E-Mails.\relax }}{27}{figure.caption.19} +\contentsline {figure}{\numberline {4.2}{\ignorespaces Details der relevanten E-Mails des Probanden.\relax }}{28}{figure.caption.20} +\contentsline {figure}{\numberline {4.3}{\ignorespaces Details der irrelevanten E-Mails des Probanden.\relax }}{29}{figure.caption.21} +\contentsline {figure}{\numberline {4.4}{\ignorespaces Vergleich der Anzahl von eintreffenden E-Mails zwischen aktueller Situation und unter Verwendung des Prototyps.\relax }}{29}{figure.caption.22} +\contentsline {figure}{\numberline {4.5}{\ignorespaces Vergleich relevanter und nicht relevanter E-Mails.\relax }}{31}{figure.caption.23} \addvspace {10\p@ } -\contentsline {figure}{\numberline {5.1}{\ignorespaces Cron-Tab der im Prototyp getesteten Benachrichtigung.\relax }}{33}{figure.caption.24} +\contentsline {figure}{\numberline {5.1}{\ignorespaces Cron-Tab der im Prototyp getesteten Benachrichtigung.\relax }}{34}{figure.caption.24} diff --git a/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.log b/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.log index 0c49e4a..5f16ff9 100644 --- a/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.log +++ b/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.log @@ -1,4 +1,4 @@ -This is XeTeX, Version 3.14159265-2.6-0.99999 (TeX Live 2018) (preloaded format=xelatex 2018.6.7) 5 DEC 2018 12:02 +This is XeTeX, Version 3.14159265-2.6-0.99999 (TeX Live 2018) (preloaded format=xelatex 2018.6.7) 7 DEC 2018 20:38 entering extended mode \write18 enabled. file:line:error style messages enabled. @@ -216,14 +216,121 @@ Package textcomp Info: Setting pplx sub-encoding to TS1/3 on input line 406. Package textcomp Info: Setting pplj sub-encoding to TS1/3 on input line 407. Package textcomp Info: Setting ptmx sub-encoding to TS1/4 on input line 408. Package textcomp Info: Setting ptmj sub-encoding to TS1/4 on input line 409. -) (/usr/local/texlive/2018/texmf-dist/tex/latex/acronym/acronym.sty +) (/usr/local/texlive/2018/texmf-dist/tex/latex/hyperref/hyperref.sty +Package: hyperref 2018/02/06 v6.86b Hypertext links for LaTeX + (/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty +Package: hobsub-hyperref 2016/05/16 v1.14 Bundle oberdiek, subset hyperref (HO) + (/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty +Package: hobsub-generic 2016/05/16 v1.14 Bundle oberdiek, subset generic (HO) +Package: hobsub 2016/05/16 v1.14 Construct package bundles (HO) +Package hobsub Info: Skipping package `infwarerr' (already loaded). +Package: ltxcmds 2016/05/16 v1.23 LaTeX kernel commands for general use (HO) +Package: ifluatex 2016/05/16 v1.4 Provides the ifluatex switch (HO) +Package ifluatex Info: LuaTeX not detected. +Package hobsub Info: Skipping package `ifvtex' (already loaded). +Package: intcalc 2016/05/16 v1.2 Expandable calculations with integers (HO) +Package hobsub Info: Skipping package `ifpdf' (already loaded). +Package: etexcmds 2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO) +Package etexcmds Info: Could not find \expanded. +(etexcmds) That can mean that you are not using pdfTeX 1.50 or +(etexcmds) that some package has redefined \expanded. +(etexcmds) In the latter case, load this package earlier. +Package: kvsetkeys 2016/05/16 v1.17 Key value parser (HO) +Package: kvdefinekeys 2016/05/16 v1.4 Define keys (HO) +Package: pdftexcmds 2018/01/30 v0.27 Utility functions of pdfTeX for LuaTeX (HO) +Package pdftexcmds Info: LuaTeX not detected. +Package pdftexcmds Info: pdfTeX >= 1.30 not detected. +Package pdftexcmds Info: \pdf@primitive is available. +Package pdftexcmds Info: \pdf@ifprimitive is available. +Package pdftexcmds Info: \pdfdraftmode not found. +Package: pdfescape 2016/05/16 v1.14 Implements pdfTeX's escape features (HO) +Package: bigintcalc 2016/05/16 v1.4 Expandable calculations on big integers (HO) +Package: bitset 2016/05/16 v1.2 Handle bit-vector datatype (HO) +Package: uniquecounter 2016/05/16 v1.3 Provide unlimited unique counter (HO) +) +Package hobsub Info: Skipping package `hobsub' (already loaded). +Package: letltxmacro 2016/05/16 v1.5 Let assignment for LaTeX macros (HO) +Package: hopatch 2016/05/16 v1.3 Wrapper for package hooks (HO) +Package: xcolor-patch 2016/05/16 xcolor patch +Package: atveryend 2016/05/16 v1.9 Hooks at the very end of document (HO) +Package atveryend Info: \enddocument detected (standard20110627). +Package: atbegshi 2016/06/09 v1.18 At begin shipout hook (HO) +Package: refcount 2016/05/16 v3.5 Data extraction from label references (HO) +Package: hycolor 2016/05/16 v1.8 Color options for hyperref/bookmark (HO) +) (/usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/auxhook.sty +Package: auxhook 2016/05/16 v1.4 Hooks for auxiliary files (HO) +) (/usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/kvoptions.sty +Package: kvoptions 2016/05/16 v3.12 Key value format for package options (HO) +) +\@linkdim=\dimen113 +\Hy@linkcounter=\count96 +\Hy@pagecounter=\count97 + (/usr/local/texlive/2018/texmf-dist/tex/latex/hyperref/pd1enc.def +File: pd1enc.def 2018/02/06 v6.86b Hyperref: PDFDocEncoding definition (HO) +) +\Hy@SavedSpaceFactor=\count98 + (/usr/local/texlive/2018/texmf-dist/tex/latex/latexconfig/hyperref.cfg +File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive +) +Package hyperref Info: Hyper figures OFF on input line 4509. +Package hyperref Info: Link nesting OFF on input line 4514. +Package hyperref Info: Hyper index ON on input line 4517. +Package hyperref Info: Plain pages OFF on input line 4524. +Package hyperref Info: Backreferencing OFF on input line 4529. +Package hyperref Info: Implicit mode ON; LaTeX internals redefined. +Package hyperref Info: Bookmarks ON on input line 4762. +\c@Hy@tempcnt=\count99 + (/usr/local/texlive/2018/texmf-dist/tex/latex/url/url.sty +\Urlmuskip=\muskip10 +Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc. +) +LaTeX Info: Redefining \url on input line 5115. +\XeTeXLinkMargin=\dimen114 +\Fld@menulength=\count100 +\Field@Width=\dimen115 +\Fld@charsize=\dimen116 +Package hyperref Info: Hyper figures OFF on input line 6369. +Package hyperref Info: Link nesting OFF on input line 6374. +Package hyperref Info: Hyper index ON on input line 6377. +Package hyperref Info: backreferencing OFF on input line 6384. +Package hyperref Info: Link coloring OFF on input line 6389. +Package hyperref Info: Link coloring with OCG OFF on input line 6394. +Package hyperref Info: PDF/A mode OFF on input line 6399. +LaTeX Info: Redefining \ref on input line 6439. +LaTeX Info: Redefining \pageref on input line 6443. +\Hy@abspage=\count101 +\c@Item=\count102 +\c@Hfootnote=\count103 +) +Package hyperref Info: Driver (autodetected): hxetex. + (/usr/local/texlive/2018/texmf-dist/tex/latex/hyperref/hxetex.def +File: hxetex.def 2018/02/06 v6.86b Hyperref driver for XeTeX + (/usr/local/texlive/2018/texmf-dist/tex/latex/hyperref/puenc.def +File: puenc.def 2018/02/06 v6.86b Hyperref: PDF Unicode definition (HO) +) (/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/stringenc.sty +Package: stringenc 2016/05/16 v1.11 Convert strings between diff. encodings (HO) +) +\pdfm@box=\box29 +\c@Hy@AnnotLevel=\count104 +\HyField@AnnotCount=\count105 +\Fld@listcount=\count106 +\c@bookmark@seq@number=\count107 + +(/usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty +Package: rerunfilecheck 2016/05/16 v1.8 Rerun checks for auxiliary files (HO) +Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 282. +) +\Hy@SectionHShift=\skip44 +) +Package hyperref Info: Option `colorlinks' set `true' on input line 18. + (/usr/local/texlive/2018/texmf-dist/tex/latex/acronym/acronym.sty Package: acronym 2015/03/21 v1.41 Support for acronyms (Tobias Oetiker) (/usr/local/texlive/2018/texmf-dist/tex/latex/bigfoot/suffix.sty Package: suffix 2006/07/15 1.5a Variant command support ) (/usr/local/texlive/2018/texmf-dist/tex/generic/xstring/xstring.sty (/usr/local/texlive/2018/texmf-dist/tex/generic/xstring/xstring.tex \@xs@message=\write3 -\integerpart=\count96 -\decimalpart=\count97 +\integerpart=\count108 +\decimalpart=\count109 ) Package: xstring 2013/10/13 v1.7c String manipulations (C Tellechea) ) @@ -239,7 +346,7 @@ LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold' (Font) U/euf/m/n --> U/euf/b/n on input line 106. )) (/usr/local/texlive/2018/texmf-dist/tex/latex/amsmath/amsmath.sty Package: amsmath 2017/09/02 v2.17a AMS math features -\@mathmargin=\skip44 +\@mathmargin=\skip45 For additional information on amsmath, use the `?' option. (/usr/local/texlive/2018/texmf-dist/tex/latex/amsmath/amstext.sty @@ -247,47 +354,47 @@ Package: amstext 2000/06/29 v2.01 AMS text (/usr/local/texlive/2018/texmf-dist/tex/latex/amsmath/amsgen.sty File: amsgen.sty 1999/11/30 v2.0 generic functions \@emptytoks=\toks24 -\ex@=\dimen113 +\ex@=\dimen117 )) (/usr/local/texlive/2018/texmf-dist/tex/latex/amsmath/amsbsy.sty Package: amsbsy 1999/11/29 v1.2d Bold Symbols -\pmbraise@=\dimen114 +\pmbraise@=\dimen118 ) (/usr/local/texlive/2018/texmf-dist/tex/latex/amsmath/amsopn.sty Package: amsopn 2016/03/08 v2.02 operator names ) -\inf@bad=\count98 +\inf@bad=\count110 LaTeX Info: Redefining \frac on input line 213. -\uproot@=\count99 -\leftroot@=\count100 +\uproot@=\count111 +\leftroot@=\count112 LaTeX Info: Redefining \overline on input line 375. -\classnum@=\count101 -\DOTSCASE@=\count102 +\classnum@=\count113 +\DOTSCASE@=\count114 LaTeX Info: Redefining \ldots on input line 472. LaTeX Info: Redefining \dots on input line 475. LaTeX Info: Redefining \cdots on input line 596. -\Mathstrutbox@=\box29 -\strutbox@=\box30 -\big@size=\dimen115 +\Mathstrutbox@=\box30 +\strutbox@=\box31 +\big@size=\dimen119 LaTeX Font Info: Redeclaring font encoding OML on input line 712. LaTeX Font Info: Redeclaring font encoding OMS on input line 713. -\macc@depth=\count103 -\c@MaxMatrixCols=\count104 -\dotsspace@=\muskip10 -\c@parentequation=\count105 -\dspbrk@lvl=\count106 +\macc@depth=\count115 +\c@MaxMatrixCols=\count116 +\dotsspace@=\muskip11 +\c@parentequation=\count117 +\dspbrk@lvl=\count118 \tag@help=\toks25 -\row@=\count107 -\column@=\count108 -\maxfields@=\count109 +\row@=\count119 +\column@=\count120 +\maxfields@=\count121 \andhelp@=\toks26 -\eqnshift@=\dimen116 -\alignsep@=\dimen117 -\tagshift@=\dimen118 -\tagwidth@=\dimen119 -\totwidth@=\dimen120 -\lineht@=\dimen121 +\eqnshift@=\dimen120 +\alignsep@=\dimen121 +\tagshift@=\dimen122 +\tagwidth@=\dimen123 +\totwidth@=\dimen124 +\lineht@=\dimen125 \@envbody=\toks27 -\multlinegap=\skip45 -\multlinetaggap=\skip46 +\multlinegap=\skip46 +\multlinetaggap=\skip47 \mathdisplay@stack=\toks28 LaTeX Info: Redefining \[ on input line 2817. LaTeX Info: Redefining \] on input line 2818. @@ -314,28 +421,28 @@ Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1369. Package xcolor Info: Model `Gray' substituted by `gray' on input line 1370. Package xcolor Info: Model `wave' substituted by `hsb' on input line 1371. ) (/usr/local/texlive/2018/texmf-dist/tex/latex/listings/listings.sty -\lst@mode=\count110 -\lst@gtempboxa=\box31 +\lst@mode=\count122 +\lst@gtempboxa=\box32 \lst@token=\toks29 -\lst@length=\count111 -\lst@currlwidth=\dimen122 -\lst@column=\count112 -\lst@pos=\count113 -\lst@lostspace=\dimen123 -\lst@width=\dimen124 -\lst@newlines=\count114 -\lst@lineno=\count115 -\lst@maxwidth=\dimen125 +\lst@length=\count123 +\lst@currlwidth=\dimen126 +\lst@column=\count124 +\lst@pos=\count125 +\lst@lostspace=\dimen127 +\lst@width=\dimen128 +\lst@newlines=\count126 +\lst@lineno=\count127 +\lst@maxwidth=\dimen129 (/usr/local/texlive/2018/texmf-dist/tex/latex/listings/lstmisc.sty File: lstmisc.sty 2015/06/04 1.6 (Carsten Heinz) -\c@lstnumber=\count116 -\lst@skipnumbers=\count117 -\lst@framebox=\box32 +\c@lstnumber=\count128 +\lst@skipnumbers=\count129 +\lst@framebox=\box33 ) (/usr/local/texlive/2018/texmf-dist/tex/latex/listings/listings.cfg File: listings.cfg 2015/06/04 1.6 listings configuration )) Package: listings 2015/06/04 1.6 (Carsten Heinz) -\lbreakdots=\box33 +\lbreakdots=\box34 LaTeX Font Info: Try loading font information for T1+pcr on input line 230. (/usr/local/texlive/2018/texmf-dist/tex/latex/psnfss/t1pcr.fd File: t1pcr.fd 2001/06/04 font definitions for T1/pcr. @@ -350,59 +457,35 @@ File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration ) Package graphics Info: Driver file: xetex.def on input line 99. ) -\Gin@req@height=\dimen126 -\Gin@req@width=\dimen127 +\Gin@req@height=\dimen130 +\Gin@req@width=\dimen131 ) (/usr/local/texlive/2018/texmf-dist/tex/latex/caption/caption.sty Package: caption 2016/02/21 v3.3-144 Customizing captions (AR) (/usr/local/texlive/2018/texmf-dist/tex/latex/caption/caption3.sty Package: caption3 2016/05/22 v1.7-166 caption3 kernel (AR) Package caption3 Info: TeX engine: e-TeX on input line 67. -\captionmargin=\dimen128 -\captionmargin@=\dimen129 -\captionwidth=\dimen130 -\caption@tempdima=\dimen131 -\caption@indent=\dimen132 -\caption@parindent=\dimen133 -\caption@hangindent=\dimen134 +\captionmargin=\dimen132 +\captionmargin@=\dimen133 +\captionwidth=\dimen134 +\caption@tempdima=\dimen135 +\caption@indent=\dimen136 +\caption@parindent=\dimen137 +\caption@hangindent=\dimen138 ) -\c@ContinuedFloat=\count118 +\c@ContinuedFloat=\count130 Package caption Info: float package is loaded. +Package caption Info: hyperref package is loaded. Package caption Info: listings package is loaded. ) (/usr/local/texlive/2018/texmf-dist/tex/latex/caption/subcaption.sty Package: subcaption 2016/05/22 v1.1-161 Sub-captions (AR) -\c@subfigure=\count119 -\c@subtable=\count120 +\c@subfigure=\count131 +\c@subtable=\count132 ) (/usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/epstopdf.sty Package: epstopdf 2016/05/15 v2.6 Conversion with epstopdf on the fly (HO) (/usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty Package: epstopdf-base 2016/05/15 v2.6 Base part for package epstopdf (/usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/grfext.sty Package: grfext 2016/05/16 v1.2 Manage graphics extensions (HO) - (/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/kvdefinekeys.sty -Package: kvdefinekeys 2016/05/16 v1.4 Define keys (HO) - (/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/ltxcmds.sty -Package: ltxcmds 2016/05/16 v1.23 LaTeX kernel commands for general use (HO) -))) (/usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/kvoptions.sty -Package: kvoptions 2016/05/16 v3.12 Key value format for package options (HO) - (/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty -Package: kvsetkeys 2016/05/16 v1.17 Key value parser (HO) - (/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/etexcmds.sty -Package: etexcmds 2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO) - (/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/ifluatex.sty -Package: ifluatex 2016/05/16 v1.4 Provides the ifluatex switch (HO) -Package ifluatex Info: LuaTeX not detected. -) -Package etexcmds Info: Could not find \expanded. -(etexcmds) That can mean that you are not using pdfTeX 1.50 or -(etexcmds) that some package has redefined \expanded. -(etexcmds) In the latter case, load this package earlier. -))) (/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/pdftexcmds.sty -Package: pdftexcmds 2018/01/30 v0.27 Utility functions of pdfTeX for LuaTeX (HO) -Package pdftexcmds Info: LuaTeX not detected. -Package pdftexcmds Info: pdfTeX >= 1.30 not detected. -Package pdftexcmds Info: \pdf@primitive is available. -Package pdftexcmds Info: \pdf@ifprimitive is available. -Package pdftexcmds Info: \pdfdraftmode not found. ) Package epstopdf Warning: Drivers other than `pdftex' and `luatex' are not supported. @@ -418,17 +501,17 @@ Package: rotating 2016/08/11 v2.16d rotated objects in LaTeX (/usr/local/texlive/2018/texmf-dist/tex/latex/base/ifthen.sty Package: ifthen 2014/09/29 v1.1c Standard LaTeX ifthen package (DPC) ) -\c@r@tfl@t=\count121 -\rotFPtop=\skip47 -\rotFPbot=\skip48 -\rot@float@box=\box34 +\c@r@tfl@t=\count133 +\rotFPtop=\skip48 +\rotFPbot=\skip49 +\rot@float@box=\box35 \rot@mess@toks=\toks30 ) (/usr/local/texlive/2018/texmf-dist/tex/latex/multirow/multirow.sty Package: multirow 2016/11/25 v2.2 Span multiple rows of a table -\multirow@colwidth=\skip49 -\multirow@cntb=\count122 -\multirow@dima=\skip50 -\bigstrutjot=\dimen135 +\multirow@colwidth=\skip50 +\multirow@cntb=\count134 +\multirow@dima=\skip51 +\bigstrutjot=\dimen139 ) (/usr/local/texlive/2018/texmf-dist/tex/latex/notoccite/notoccite.sty Package: notoccite 2000/07/20 ) (/usr/local/texlive/2018/texmf-dist/tex/latex/tocbibind/tocbibind.sty @@ -440,140 +523,64 @@ Package tocbibind Note: Using chapter style headings, unless overridden. ) (/usr/local/texlive/2018/texmf-dist/tex/latex/titlesec/titlesec.sty Package: titlesec 2016/03/21 v2.10.2 Sectioning titles -\ttl@box=\box35 -\beforetitleunit=\skip51 -\aftertitleunit=\skip52 -\ttl@plus=\dimen136 -\ttl@minus=\dimen137 +\ttl@box=\box36 +\beforetitleunit=\skip52 +\aftertitleunit=\skip53 +\ttl@plus=\dimen140 +\ttl@minus=\dimen141 \ttl@toksa=\toks31 -\titlewidth=\dimen138 -\titlewidthlast=\dimen139 -\titlewidthfirst=\dimen140 +\titlewidth=\dimen142 +\titlewidthlast=\dimen143 +\titlewidthfirst=\dimen144 ) (/usr/local/texlive/2018/texmf-dist/tex/latex/pdfpages/pdfpages.sty Package: pdfpages 2017/10/31 v0.5l Insert pages of external PDF documents (AM) (/usr/local/texlive/2018/texmf-dist/tex/latex/tools/calc.sty Package: calc 2017/05/25 v4.3 Infix arithmetic (KKT,FJ) -\calc@Acount=\count123 -\calc@Bcount=\count124 -\calc@Adimen=\dimen141 -\calc@Bdimen=\dimen142 -\calc@Askip=\skip53 -\calc@Bskip=\skip54 +\calc@Acount=\count135 +\calc@Bcount=\count136 +\calc@Adimen=\dimen145 +\calc@Bdimen=\dimen146 +\calc@Askip=\skip54 +\calc@Bskip=\skip55 LaTeX Info: Redefining \setlength on input line 80. LaTeX Info: Redefining \addtolength on input line 81. -\calc@Ccount=\count125 -\calc@Cskip=\skip55 +\calc@Ccount=\count137 +\calc@Cskip=\skip56 ) (/usr/local/texlive/2018/texmf-dist/tex/latex/eso-pic/eso-pic.sty Package: eso-pic 2015/07/21 v2.0g eso-pic (RN) - (/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/atbegshi.sty -Package: atbegshi 2016/06/09 v1.18 At begin shipout hook (HO) -)) -\AM@pagewidth=\dimen143 -\AM@pageheight=\dimen144 +) +\AM@pagewidth=\dimen147 +\AM@pageheight=\dimen148 (/usr/local/texlive/2018/texmf-dist/tex/latex/pdfpages/ppxetex.def File: ppxetex.def 2017/10/31 v0.5l Pdfpages driver for XeTeX (AM) ) -\AM@pagebox=\box36 +\AM@pagebox=\box37 \AM@global@opts=\toks32 \AM@toc@title=\toks33 -\c@AM@survey=\count126 -\AM@templatesizebox=\box37 +\c@AM@survey=\count138 +\AM@templatesizebox=\box38 ) (/usr/local/texlive/2018/texmf-dist/tex/latex/comment/comment.sty \CommentStream=\write4 - Excluding comment 'comment') (/usr/local/texlive/2018/texmf-dist/tex/latex/hyperref/hyperref.sty -Package: hyperref 2018/02/06 v6.86b Hypertext links for LaTeX - (/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty -Package: hobsub-hyperref 2016/05/16 v1.14 Bundle oberdiek, subset hyperref (HO) - (/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty -Package: hobsub-generic 2016/05/16 v1.14 Bundle oberdiek, subset generic (HO) -Package: hobsub 2016/05/16 v1.14 Construct package bundles (HO) -Package hobsub Info: Skipping package `infwarerr' (already loaded). -Package hobsub Info: Skipping package `ltxcmds' (already loaded). -Package hobsub Info: Skipping package `ifluatex' (already loaded). -Package hobsub Info: Skipping package `ifvtex' (already loaded). -Package: intcalc 2016/05/16 v1.2 Expandable calculations with integers (HO) -Package hobsub Info: Skipping package `ifpdf' (already loaded). -Package hobsub Info: Skipping package `etexcmds' (already loaded). -Package hobsub Info: Skipping package `kvsetkeys' (already loaded). -Package hobsub Info: Skipping package `kvdefinekeys' (already loaded). -Package hobsub Info: Skipping package `pdftexcmds' (already loaded). -Package: pdfescape 2016/05/16 v1.14 Implements pdfTeX's escape features (HO) -Package: bigintcalc 2016/05/16 v1.4 Expandable calculations on big integers (HO) -Package: bitset 2016/05/16 v1.2 Handle bit-vector datatype (HO) -Package: uniquecounter 2016/05/16 v1.3 Provide unlimited unique counter (HO) -) -Package hobsub Info: Skipping package `hobsub' (already loaded). -Package: letltxmacro 2016/05/16 v1.5 Let assignment for LaTeX macros (HO) -Package: hopatch 2016/05/16 v1.3 Wrapper for package hooks (HO) -Package: xcolor-patch 2016/05/16 xcolor patch -Package: atveryend 2016/05/16 v1.9 Hooks at the very end of document (HO) -Package atveryend Info: \enddocument detected (standard20110627). -Package hobsub Info: Skipping package `atbegshi' (already loaded). -Package: refcount 2016/05/16 v3.5 Data extraction from label references (HO) -Package: hycolor 2016/05/16 v1.8 Color options for hyperref/bookmark (HO) -) (/usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/auxhook.sty -Package: auxhook 2016/05/16 v1.4 Hooks for auxiliary files (HO) -) -\@linkdim=\dimen145 -\Hy@linkcounter=\count127 -\Hy@pagecounter=\count128 - (/usr/local/texlive/2018/texmf-dist/tex/latex/hyperref/pd1enc.def -File: pd1enc.def 2018/02/06 v6.86b Hyperref: PDFDocEncoding definition (HO) -) -\Hy@SavedSpaceFactor=\count129 - (/usr/local/texlive/2018/texmf-dist/tex/latex/latexconfig/hyperref.cfg -File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive -) -Package hyperref Info: Option `colorlinks' set `true' on input line 4383. -Package hyperref Info: Hyper figures OFF on input line 4509. -Package hyperref Info: Link nesting OFF on input line 4514. -Package hyperref Info: Hyper index ON on input line 4517. -Package hyperref Info: Plain pages OFF on input line 4524. -Package hyperref Info: Backreferencing OFF on input line 4529. -Package hyperref Info: Implicit mode ON; LaTeX internals redefined. -Package hyperref Info: Bookmarks ON on input line 4762. -\c@Hy@tempcnt=\count130 - (/usr/local/texlive/2018/texmf-dist/tex/latex/url/url.sty -\Urlmuskip=\muskip11 -Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc. -) -LaTeX Info: Redefining \url on input line 5115. -\XeTeXLinkMargin=\dimen146 -\Fld@menulength=\count131 -\Field@Width=\dimen147 -\Fld@charsize=\dimen148 -Package hyperref Info: Hyper figures OFF on input line 6369. -Package hyperref Info: Link nesting OFF on input line 6374. -Package hyperref Info: Hyper index ON on input line 6377. -Package hyperref Info: backreferencing OFF on input line 6384. -Package hyperref Info: Link coloring ON on input line 6387. -Package hyperref Info: Link coloring with OCG OFF on input line 6394. -Package hyperref Info: PDF/A mode OFF on input line 6399. -LaTeX Info: Redefining \ref on input line 6439. -LaTeX Info: Redefining \pageref on input line 6443. -\Hy@abspage=\count132 -\c@Item=\count133 -\c@Hfootnote=\count134 -) -Package hyperref Info: Driver (autodetected): hxetex. - (/usr/local/texlive/2018/texmf-dist/tex/latex/hyperref/hxetex.def -File: hxetex.def 2018/02/06 v6.86b Hyperref driver for XeTeX - (/usr/local/texlive/2018/texmf-dist/tex/latex/hyperref/puenc.def -File: puenc.def 2018/02/06 v6.86b Hyperref: PDF Unicode definition (HO) -) (/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/stringenc.sty -Package: stringenc 2016/05/16 v1.11 Convert strings between diff. encodings (HO) -) -\pdfm@box=\box38 -\c@Hy@AnnotLevel=\count135 -\HyField@AnnotCount=\count136 -\Fld@listcount=\count137 -\c@bookmark@seq@number=\count138 - (/usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty -Package: rerunfilecheck 2016/05/16 v1.8 Rerun checks for auxiliary files (HO) -Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 282. -) -\Hy@SectionHShift=\skip56 -) (/usr/local/texlive/2018/texmf-dist/tex/latex/natbib/natbib.sty + Excluding comment 'comment') + +./preambule/thesis.preamble.tex:59: LaTeX Error: Option clash for package hyperref. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.59 \usepackage + [square,numbers,sort&compress,semicolon]{natbib} +The package hyperref has already been loaded with options: + [] +There has now been an attempt to load it with options + [colorlinks=true, citecolor=red, linkcolor=blue] +Adding the global options: + ,colorlinks=true, citecolor=red, linkcolor=blue +to your \documentclass declaration may fix this. +Try typing to proceed. + +(/usr/local/texlive/2018/texmf-dist/tex/latex/natbib/natbib.sty Package: natbib 2010/09/13 8.31b (PWD, AO) \bibhang=\skip57 \bibsep=\skip58 @@ -933,10 +940,10 @@ Package: fancyhdr 2017/06/30 v3.9a Extensive control of page headers and footers \f@nch@O@orf=\skip79 ) -Package Fancyhdr Warning: \fancyhead's `E' option without twoside option is useless on input line 72. +Package Fancyhdr Warning: \fancyhead's `E' option without twoside option is useless on input line 74. -Package Fancyhdr Warning: \fancyfoot's `E' option without twoside option is useless on input line 74. +Package Fancyhdr Warning: \fancyfoot's `E' option without twoside option is useless on input line 76. ) ./bachelorabeit_EstherKleinhenz.tex:5: Extra \else. @@ -1008,26 +1015,14 @@ LaTeX Font Info: ... okay on input line 26. * \@reversemarginfalse * (1in=72.27pt=25.4mm, 1cm=28.453pt) -\c@lstlisting=\count311 -Package caption Info: Begin \AtBeginDocument code. -Package caption Info: hyperref package is loaded. -Package caption Info: rotating package is loaded. -Package caption Info: End \AtBeginDocument code. \AtBeginShipoutBox=\box63 -(/usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/pdflscape.sty -Package: pdflscape 2016/05/14 v0.11 Display of landscape pages in PDF (HO) - (/usr/local/texlive/2018/texmf-dist/tex/latex/graphics/lscape.sty -Package: lscape 2000/10/22 v3.01 Landscape Pages (DPC) -) -Package pdflscape Info: Auto-detected driver: dvipdfm (xetex) on input line 99. -) Package hyperref Info: Link coloring ON on input line 26. - (/usr/local/texlive/2018/texmf-dist/tex/latex/hyperref/nameref.sty +(/usr/local/texlive/2018/texmf-dist/tex/latex/hyperref/nameref.sty Package: nameref 2016/05/21 v2.44 Cross-referencing by name of section (/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/gettitlestring.sty Package: gettitlestring 2016/05/16 v1.5 Cleanup title references (HO) ) -\c@section@level=\count312 +\c@section@level=\count311 ) LaTeX Info: Redefining \ref on input line 26. LaTeX Info: Redefining \pageref on input line 26. @@ -1036,7 +1031,17 @@ LaTeX Info: Redefining \nameref on input line 26. \@outlinefile=\write5 \openout5 = `bachelorabeit_EstherKleinhenz.out'. - (/usr/local/texlive/2018/texmf-dist/tex/latex/translator/translator-basic-dictionary-English.dict +\c@lstlisting=\count312 +Package caption Info: Begin \AtBeginDocument code. +Package caption Info: rotating package is loaded. +Package caption Info: End \AtBeginDocument code. + (/usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/pdflscape.sty +Package: pdflscape 2016/05/14 v0.11 Display of landscape pages in PDF (HO) + (/usr/local/texlive/2018/texmf-dist/tex/latex/graphics/lscape.sty +Package: lscape 2000/10/22 v3.01 Landscape Pages (DPC) +) +Package pdflscape Info: Auto-detected driver: dvipdfm (xetex) on input line 99. +) (/usr/local/texlive/2018/texmf-dist/tex/latex/translator/translator-basic-dictionary-English.dict Dictionary: translator-basic-dictionary, Language: English ) (/usr/local/texlive/2018/texmf-dist/tex/latex/siunitx/siunitx-abbreviations.cfg File: siunitx-abbreviations.cfg 2017/11/26 v2.7k siunitx: Abbreviated units @@ -1086,20 +1091,20 @@ File: AcknowledgmentsDedicationSentence/erklaerung-fertig.pdf Graphic file (type File: AcknowledgmentsDedicationSentence/erklaerung-fertig.pdf Graphic file (type pdf) +Package babel Info: Redefining german shorthand "f +(babel) in language on input line 37. +Package babel Info: Redefining german shorthand "| +(babel) in language on input line 37. +Package babel Info: Redefining german shorthand "~ +(babel) in language on input line 37. +Package babel Info: Redefining german shorthand "f +(babel) in language on input line 37. +Package babel Info: Redefining german shorthand "| +(babel) in language on input line 37. +Package babel Info: Redefining german shorthand "~ +(babel) in language on input line 37. File: AcknowledgmentsDedicationSentence/erklaerung-fertig.pdf Graphic file (type pdf) -Package babel Info: Redefining german shorthand "f -(babel) in language on input line 37. -Package babel Info: Redefining german shorthand "| -(babel) in language on input line 37. -Package babel Info: Redefining german shorthand "~ -(babel) in language on input line 37. -Package babel Info: Redefining german shorthand "f -(babel) in language on input line 37. -Package babel Info: Redefining german shorthand "| -(babel) in language on input line 37. -Package babel Info: Redefining german shorthand "~ -(babel) in language on input line 37. [1 @@ -1430,14 +1435,12 @@ Package babel Info: Redefining german shorthand "| Package babel Info: Redefining german shorthand "~ (babel) in language on input line 68. [8] -File: figures/ldap-tree.png Graphic file (type bmp) - Package babel Info: Redefining german shorthand "f -(babel) in language on input line 76. +(babel) in language on input line 75. Package babel Info: Redefining german shorthand "| -(babel) in language on input line 76. +(babel) in language on input line 75. Package babel Info: Redefining german shorthand "~ -(babel) in language on input line 76. +(babel) in language on input line 75. Package Fancyhdr Warning: \headheight is too small (12.0pt): @@ -1446,66 +1449,35 @@ Package Fancyhdr Warning: \headheight is too small (12.0pt): This may cause the page layout to be inconsistent, however. Package babel Info: Redefining german shorthand "f -(babel) in language on input line 82. +(babel) in language on input line 79. Package babel Info: Redefining german shorthand "| -(babel) in language on input line 82. +(babel) in language on input line 79. Package babel Info: Redefining german shorthand "~ -(babel) in language on input line 82. +(babel) in language on input line 79. Package babel Info: Redefining german shorthand "f -(babel) in language on input line 82. +(babel) in language on input line 79. Package babel Info: Redefining german shorthand "| -(babel) in language on input line 82. +(babel) in language on input line 79. Package babel Info: Redefining german shorthand "~ -(babel) in language on input line 82. +(babel) in language on input line 79. [9] Package babel Info: Redefining german shorthand "f -(babel) in language on input line 86. +(babel) in language on input line 79. Package babel Info: Redefining german shorthand "| -(babel) in language on input line 86. +(babel) in language on input line 79. Package babel Info: Redefining german shorthand "~ -(babel) in language on input line 86. -Package babel Info: Redefining german shorthand "f -(babel) in language on input line 90. -Package babel Info: Redefining german shorthand "| -(babel) in language on input line 90. -Package babel Info: Redefining german shorthand "~ -(babel) in language on input line 90. +(babel) in language on input line 79. - -Package Fancyhdr Warning: \headheight is too small (12.0pt): - Make it at least 14.49998pt. - We now make it that large for the rest of the document. - This may cause the page layout to be inconsistent, however. - -Package babel Info: Redefining german shorthand "f -(babel) in language on input line 92. -Package babel Info: Redefining german shorthand "| -(babel) in language on input line 92. -Package babel Info: Redefining german shorthand "~ -(babel) in language on input line 92. -Package babel Info: Redefining german shorthand "f -(babel) in language on input line 92. -Package babel Info: Redefining german shorthand "| -(babel) in language on input line 92. -Package babel Info: Redefining german shorthand "~ -(babel) in language on input line 92. -[10] -Underfull \hbox (badness 10000) in paragraph at lines 95--97 +Underfull \hbox (badness 10000) in paragraph at lines 84--86 [] -Underfull \hbox (badness 10000) in paragraph at lines 98--101 +Underfull \hbox (badness 10000) in paragraph at lines 87--90 [] Missing character: There is no ˜ in font aer12! -Package babel Info: Redefining german shorthand "f -(babel) in language on input line 106. -Package babel Info: Redefining german shorthand "| -(babel) in language on input line 106. -Package babel Info: Redefining german shorthand "~ -(babel) in language on input line 106. Package Fancyhdr Warning: \headheight is too small (12.0pt): Make it at least 14.49998pt. @@ -1513,49 +1485,74 @@ Package Fancyhdr Warning: \headheight is too small (12.0pt): This may cause the page layout to be inconsistent, however. Package babel Info: Redefining german shorthand "f -(babel) in language on input line 110. +(babel) in language on input line 95. Package babel Info: Redefining german shorthand "| -(babel) in language on input line 110. +(babel) in language on input line 95. Package babel Info: Redefining german shorthand "~ -(babel) in language on input line 110. +(babel) in language on input line 95. Package babel Info: Redefining german shorthand "f -(babel) in language on input line 110. +(babel) in language on input line 95. Package babel Info: Redefining german shorthand "| -(babel) in language on input line 110. +(babel) in language on input line 95. Package babel Info: Redefining german shorthand "~ -(babel) in language on input line 110. +(babel) in language on input line 95. +[10] +Package babel Info: Redefining german shorthand "f +(babel) in language on input line 95. +Package babel Info: Redefining german shorthand "| +(babel) in language on input line 95. +Package babel Info: Redefining german shorthand "~ +(babel) in language on input line 95. +Package babel Info: Redefining german shorthand "f +(babel) in language on input line 105. +Package babel Info: Redefining german shorthand "| +(babel) in language on input line 105. +Package babel Info: Redefining german shorthand "~ +(babel) in language on input line 105. + + +Package Fancyhdr Warning: \headheight is too small (12.0pt): + Make it at least 14.49998pt. + We now make it that large for the rest of the document. + This may cause the page layout to be inconsistent, however. + +Package babel Info: Redefining german shorthand "f +(babel) in language on input line 109. +Package babel Info: Redefining german shorthand "| +(babel) in language on input line 109. +Package babel Info: Redefining german shorthand "~ +(babel) in language on input line 109. +Package babel Info: Redefining german shorthand "f +(babel) in language on input line 109. +Package babel Info: Redefining german shorthand "| +(babel) in language on input line 109. +Package babel Info: Redefining german shorthand "~ +(babel) in language on input line 109. [11] -Package babel Info: Redefining german shorthand "f -(babel) in language on input line 114. -Package babel Info: Redefining german shorthand "| -(babel) in language on input line 114. -Package babel Info: Redefining german shorthand "~ -(babel) in language on input line 114. - - -Package Fancyhdr Warning: \headheight is too small (12.0pt): - Make it at least 14.49998pt. - We now make it that large for the rest of the document. - This may cause the page layout to be inconsistent, however. - -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. -[12] File: figures/bootstrap-head-tag.png Graphic file (type bmp) File: figures/bootstrap-class-example.png Graphic file (type bmp) -) + + +Package Fancyhdr Warning: \headheight is too small (12.0pt): + Make it at least 14.49998pt. + We now make it that large for the rest of the document. + This may cause the page layout to be inconsistent, however. + +Package babel Info: Redefining german shorthand "f +(babel) in language on input line 129. +Package babel Info: Redefining german shorthand "| +(babel) in language on input line 129. +Package babel Info: Redefining german shorthand "~ +(babel) in language on input line 129. +Package babel Info: Redefining german shorthand "f +(babel) in language on input line 129. +Package babel Info: Redefining german shorthand "| +(babel) in language on input line 129. +Package babel Info: Redefining german shorthand "~ +(babel) in language on input line 129. +[12]) Package Fancyhdr Warning: \headheight is too small (12.0pt): Make it at least 14.49998pt. @@ -1646,18 +1643,21 @@ Package babel Info: Redefining german shorthand "| Package babel Info: Redefining german shorthand "~ (babel) in language on input line 23. [15] -File: figures/datamodel.png Graphic file (type bmp) - - - -LaTeX Warning: `!h' float specifier changed to `!ht'. - - -Overfull \hbox (12.1867pt too wide) in paragraph at lines 31--33 +Overfull \hbox (12.1867pt too wide) in paragraph at lines 24--26 \T1/aer/m/n/12 Codes dem Com-pi-ler mit-zu-tei-len, dass ei-ne In-te-gra-ti-on statt-fin-den muss (vgl. [Dja18a]). [] +Underfull \hbox (badness 10000) in paragraph at lines 24--26 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 27--30 + + [] + + Underfull \hbox (badness 10000) in paragraph at lines 31--33 [] @@ -1668,22 +1668,12 @@ Underfull \hbox (badness 10000) in paragraph at lines 34--37 [] -Underfull \hbox (badness 10000) in paragraph at lines 38--40 +Underfull \hbox (badness 10000) in paragraph at lines 38--39 [] -Underfull \hbox (badness 10000) in paragraph at lines 41--44 - - [] - - -Underfull \hbox (badness 10000) in paragraph at lines 45--46 - - [] - - -Underfull \hbox (badness 10000) in paragraph at lines 55--56 +Underfull \hbox (badness 10000) in paragraph at lines 48--49 [] @@ -1699,19 +1689,53 @@ Package Fancyhdr Warning: \headheight is too small (12.0pt): This may cause the page layout to be inconsistent, however. Package babel Info: Redefining german shorthand "f -(babel) in language on input line 72. +(babel) in language on input line 65. Package babel Info: Redefining german shorthand "| -(babel) in language on input line 72. +(babel) in language on input line 65. Package babel Info: Redefining german shorthand "~ -(babel) in language on input line 72. +(babel) in language on input line 65. Package babel Info: Redefining german shorthand "f -(babel) in language on input line 72. +(babel) in language on input line 65. Package babel Info: Redefining german shorthand "| -(babel) in language on input line 72. +(babel) in language on input line 65. Package babel Info: Redefining german shorthand "~ -(babel) in language on input line 72. +(babel) in language on input line 65. [16] -Underfull \hbox (badness 10000) in paragraph at lines 73--75 +Underfull \hbox (badness 10000) in paragraph at lines 66--68 + + [] + +File: figures/datamodel.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 84. +Package babel Info: Redefining german shorthand "| +(babel) in language on input line 84. +Package babel Info: Redefining german shorthand "~ +(babel) in language on input line 84. + +Package Fancyhdr Warning: \headheight is too small (12.0pt): + Make it at least 14.49998pt. + We now make it that large for the rest of the document. + This may cause the page layout to be inconsistent, however. + +Package babel Info: Redefining german shorthand "f +(babel) in language on input line 90. +Package babel Info: Redefining german shorthand "| +(babel) in language on input line 90. +Package babel Info: Redefining german shorthand "~ +(babel) in language on input line 90. +Package babel Info: Redefining german shorthand "f +(babel) in language on input line 90. +Package babel Info: Redefining german shorthand "| +(babel) in language on input line 90. +Package babel Info: Redefining german shorthand "~ +(babel) in language on input line 90. +[17] +Underfull \hbox (badness 10000) in paragraph at lines 91--93 [] @@ -1722,65 +1746,44 @@ Package Fancyhdr Warning: \headheight is too small (12.0pt): This may cause the page layout to be inconsistent, however. Package babel Info: Redefining german shorthand "f -(babel) in language on input line 75. +(babel) in language on input line 93. Package babel Info: Redefining german shorthand "| -(babel) in language on input line 75. +(babel) in language on input line 93. Package babel Info: Redefining german shorthand "~ -(babel) in language on input line 75. +(babel) in language on input line 93. Package babel Info: Redefining german shorthand "f -(babel) in language on input line 75. +(babel) in language on input line 93. Package babel Info: Redefining german shorthand "| -(babel) in language on input line 75. +(babel) in language on input line 93. Package babel Info: Redefining german shorthand "~ -(babel) in language on input line 75. -[17] -Package babel Info: Redefining german shorthand "f -(babel) in language on input line 85. -Package babel Info: Redefining german shorthand "| -(babel) in language on input line 85. -Package babel Info: Redefining german shorthand "~ -(babel) in language on input line 85. - - -Package Fancyhdr Warning: \headheight is too small (12.0pt): - Make it at least 14.49998pt. - We now make it that large for the rest of the document. - This may cause the page layout to be inconsistent, however. - -Package babel Info: Redefining german shorthand "f -(babel) in language on input line 94. -Package babel Info: Redefining german shorthand "| -(babel) in language on input line 94. -Package babel Info: Redefining german shorthand "~ -(babel) in language on input line 94. -Package babel Info: Redefining german shorthand "f -(babel) in language on input line 94. -Package babel Info: Redefining german shorthand "| -(babel) in language on input line 94. -Package babel Info: Redefining german shorthand "~ -(babel) in language on input line 94. +(babel) in language on input line 93. [18] +File: figures/menuadmin.png Graphic file (type bmp) + Package babel Info: Redefining german shorthand "f -(babel) in language on input line 96. +(babel) in language on input line 101. Package babel Info: Redefining german shorthand "| -(babel) in language on input line 96. +(babel) in language on input line 101. Package babel Info: Redefining german shorthand "~ -(babel) in language on input line 96. +(babel) in language on input line 101. -Underfull \hbox (badness 10000) in paragraph at lines 97--98 +Underfull \hbox (badness 10000) in paragraph at lines 102--103 [] File: figures/userstories.png Graphic file (type bmp) -Package babel Info: Redefining german shorthand "f -(babel) in language on input line 106. -Package babel Info: Redefining german shorthand "| -(babel) in language on input line 106. -Package babel Info: Redefining german shorthand "~ -(babel) in language on input line 106. -Underfull \hbox (badness 10000) in paragraph at lines 107--111 +LaTeX Warning: `!h' float specifier changed to `!ht'. + +Package babel Info: Redefining german shorthand "f +(babel) in language on input line 111. +Package babel Info: Redefining german shorthand "| +(babel) in language on input line 111. +Package babel Info: Redefining german shorthand "~ +(babel) in language on input line 111. + +Underfull \hbox (badness 10000) in paragraph at lines 112--116 [] @@ -1791,19 +1794,19 @@ Package Fancyhdr Warning: \headheight is too small (12.0pt): This may cause the page layout to be inconsistent, however. Package babel Info: Redefining german shorthand "f -(babel) in language on input line 111. +(babel) in language on input line 118. Package babel Info: Redefining german shorthand "| -(babel) in language on input line 111. +(babel) in language on input line 118. Package babel Info: Redefining german shorthand "~ -(babel) in language on input line 111. +(babel) in language on input line 118. Package babel Info: Redefining german shorthand "f -(babel) in language on input line 111. +(babel) in language on input line 118. Package babel Info: Redefining german shorthand "| -(babel) in language on input line 111. +(babel) in language on input line 118. Package babel Info: Redefining german shorthand "~ -(babel) in language on input line 111. +(babel) in language on input line 118. [19] -Underfull \hbox (badness 10000) in paragraph at lines 117--121 +Underfull \hbox (badness 10000) in paragraph at lines 122--126 [] @@ -1814,89 +1817,92 @@ Package Fancyhdr Warning: \headheight is too small (12.0pt): This may cause the page layout to be inconsistent, however. Package babel Info: Redefining german shorthand "f -(babel) in language on input line 122. +(babel) in language on input line 126. Package babel Info: Redefining german shorthand "| -(babel) in language on input line 122. +(babel) in language on input line 126. Package babel Info: Redefining german shorthand "~ -(babel) in language on input line 122. +(babel) in language on input line 126. Package babel Info: Redefining german shorthand "f -(babel) in language on input line 122. +(babel) in language on input line 126. Package babel Info: Redefining german shorthand "| -(babel) in language on input line 122. +(babel) in language on input line 126. Package babel Info: Redefining german shorthand "~ -(babel) in language on input line 122. +(babel) in language on input line 126. [20] -Underfull \hbox (badness 10000) in paragraph at lines 122--126 +Underfull \hbox (badness 10000) in paragraph at lines 127--131 [] File: figures/postedit.png Graphic file (type bmp) -Underfull \hbox (badness 10000) in paragraph at lines 136--137 - - [] - - -Package Fancyhdr Warning: \headheight is too small (12.0pt): - Make it at least 14.49998pt. - We now make it that large for the rest of the document. - This may cause the page layout to be inconsistent, however. - -Package babel Info: Redefining german shorthand "f -(babel) in language on input line 137. -Package babel Info: Redefining german shorthand "| -(babel) in language on input line 137. -Package babel Info: Redefining german shorthand "~ -(babel) in language on input line 137. -Package babel Info: Redefining german shorthand "f -(babel) in language on input line 137. -Package babel Info: Redefining german shorthand "| -(babel) in language on input line 137. -Package babel Info: Redefining german shorthand "~ -(babel) in language on input line 137. -[21] -File: figures/post-edit-view.png Graphic file (type bmp) - -Package babel Info: Redefining german shorthand "f -(babel) in language on input line 145. -Package babel Info: Redefining german shorthand "| -(babel) in language on input line 145. -Package babel Info: Redefining german shorthand "~ -(babel) in language on input line 145. - -Underfull \hbox (badness 10000) in paragraph at lines 149--150 - - [] - -File: figures/filtern.png Graphic file (type bmp) - - LaTeX Warning: `!h' float specifier changed to `!ht'. +Underfull \hbox (badness 10000) in paragraph at lines 141--142 + + [] + +File: figures/post-edit-view.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 150. +Package babel Info: Redefining german shorthand "| +(babel) in language on input line 150. +Package babel Info: Redefining german shorthand "~ +(babel) in language on input line 150. + +Underfull \hbox (badness 10000) in paragraph at lines 154--155 + + [] + + Package Fancyhdr Warning: \headheight is too small (12.0pt): Make it at least 14.49998pt. We now make it that large for the rest of the document. This may cause the page layout to be inconsistent, however. Package babel Info: Redefining german shorthand "f -(babel) in language on input line 160. +(babel) in language on input line 155. Package babel Info: Redefining german shorthand "| -(babel) in language on input line 160. +(babel) in language on input line 155. Package babel Info: Redefining german shorthand "~ -(babel) in language on input line 160. +(babel) in language on input line 155. Package babel Info: Redefining german shorthand "f -(babel) in language on input line 160. +(babel) in language on input line 155. Package babel Info: Redefining german shorthand "| -(babel) in language on input line 160. +(babel) in language on input line 155. Package babel Info: Redefining german shorthand "~ -(babel) in language on input line 160. +(babel) in language on input line 155. +[21] + +Package Fancyhdr Warning: \headheight is too small (12.0pt): + Make it at least 14.49998pt. + We now make it that large for the rest of the document. + This may cause the page layout to be inconsistent, however. + +Package babel Info: Redefining german shorthand "f +(babel) in language on input line 155. +Package babel Info: Redefining german shorthand "| +(babel) in language on input line 155. +Package babel Info: Redefining german shorthand "~ +(babel) in language on input line 155. +Package babel Info: Redefining german shorthand "f +(babel) in language on input line 155. +Package babel Info: Redefining german shorthand "| +(babel) in language on input line 155. +Package babel Info: Redefining german shorthand "~ +(babel) in language on input line 155. [22] +File: figures/filtern.png Graphic file (type bmp) + File: figures/view-search-add.png Graphic file (type bmp) -Overfull \hbox (42.68173pt too wide) in paragraph at lines 166--167 +Overfull \hbox (42.68173pt too wide) in paragraph at lines 171--172 [][] [] @@ -1904,41 +1910,39 @@ Overfull \hbox (42.68173pt too wide) in paragraph at lines 166--167 LaTeX Warning: `!h' float specifier changed to `!ht'. -Underfull \hbox (badness 10000) in paragraph at lines 173--174 - - [] - - Package Fancyhdr Warning: \headheight is too small (12.0pt): Make it at least 14.49998pt. We now make it that large for the rest of the document. This may cause the page layout to be inconsistent, however. Package babel Info: Redefining german shorthand "f -(babel) in language on input line 174. +(babel) in language on input line 177. Package babel Info: Redefining german shorthand "| -(babel) in language on input line 174. +(babel) in language on input line 177. Package babel Info: Redefining german shorthand "~ -(babel) in language on input line 174. +(babel) in language on input line 177. Package babel Info: Redefining german shorthand "f -(babel) in language on input line 174. +(babel) in language on input line 177. Package babel Info: Redefining german shorthand "| -(babel) in language on input line 174. +(babel) in language on input line 177. Package babel Info: Redefining german shorthand "~ -(babel) in language on input line 174. +(babel) in language on input line 177. [23] +Underfull \hbox (badness 10000) in paragraph at lines 178--179 + + [] + File: figures/newsfeed.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 183. +(babel) in language on input line 188. Package babel Info: Redefining german shorthand "| -(babel) in language on input line 183. +(babel) in language on input line 188. Package babel Info: Redefining german shorthand "~ -(babel) in language on input line 183. +(babel) in language on input line 188. Package Fancyhdr Warning: \headheight is too small (12.0pt): Make it at least 14.49998pt. @@ -1946,18 +1950,37 @@ Package Fancyhdr Warning: \headheight is too small (12.0pt): This may cause the page layout to be inconsistent, however. Package babel Info: Redefining german shorthand "f -(babel) in language on input line 190. +(babel) in language on input line 193. Package babel Info: Redefining german shorthand "| -(babel) in language on input line 190. +(babel) in language on input line 193. Package babel Info: Redefining german shorthand "~ -(babel) in language on input line 190. +(babel) in language on input line 193. Package babel Info: Redefining german shorthand "f -(babel) in language on input line 190. +(babel) in language on input line 193. Package babel Info: Redefining german shorthand "| -(babel) in language on input line 190. +(babel) in language on input line 193. Package babel Info: Redefining german shorthand "~ -(babel) in language on input line 190. -[24]) +(babel) in language on input line 193. +[24] + +Package Fancyhdr Warning: \headheight is too small (12.0pt): + Make it at least 14.49998pt. + We now make it that large for the rest of the document. + This may cause the page layout to be inconsistent, however. + +Package babel Info: Redefining german shorthand "f +(babel) in language on input line 197. +Package babel Info: Redefining german shorthand "| +(babel) in language on input line 197. +Package babel Info: Redefining german shorthand "~ +(babel) in language on input line 197. +Package babel Info: Redefining german shorthand "f +(babel) in language on input line 197. +Package babel Info: Redefining german shorthand "| +(babel) in language on input line 197. +Package babel Info: Redefining german shorthand "~ +(babel) in language on input line 197. +[25]) Package Fancyhdr Warning: \headheight is too small (12.0pt): Make it at least 14.49998pt. @@ -1976,7 +1999,7 @@ 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. -[25] +[26] \openout2 = `chapters/ergebnis.aux'. (./chapters/ergebnis.tex @@ -2006,7 +2029,7 @@ Package babel Info: Redefining german shorthand "| (babel) in language on input line 21. Package babel Info: Redefining german shorthand "~ (babel) in language on input line 21. -[26 +[27 @@ -2030,18 +2053,18 @@ Package Fancyhdr Warning: \headheight is too small (12.0pt): This may cause the page layout to be inconsistent, however. Package babel Info: Redefining german shorthand "f -(babel) in language on input line 44. +(babel) in language on input line 43. Package babel Info: Redefining german shorthand "| -(babel) in language on input line 44. +(babel) in language on input line 43. Package babel Info: Redefining german shorthand "~ -(babel) in language on input line 44. +(babel) in language on input line 43. Package babel Info: Redefining german shorthand "f -(babel) in language on input line 44. +(babel) in language on input line 43. Package babel Info: Redefining german shorthand "| -(babel) in language on input line 44. +(babel) in language on input line 43. Package babel Info: Redefining german shorthand "~ -(babel) in language on input line 44. -[27] +(babel) in language on input line 43. +[28] File: figures/evaluation-5.png Graphic file (type bmp) @@ -2063,7 +2086,7 @@ Package babel Info: Redefining german shorthand "| (babel) in language on input line 55. Package babel Info: Redefining german shorthand "~ (babel) in language on input line 55. -[28] +[29] Package hyperref Warning: Difference (2) between bookmark levels is greater (hyperref) than one, level fixed on input line 57. @@ -2103,7 +2126,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. -[29] +[30] Package Fancyhdr Warning: \headheight is too small (12.0pt): Make it at least 14.49998pt. @@ -2122,7 +2145,7 @@ Package babel Info: Redefining german shorthand "| (babel) in language on input line 85. Package babel Info: Redefining german shorthand "~ (babel) in language on input line 85. -[30]) +[31]) Package Fancyhdr Warning: \headheight is too small (12.0pt): Make it at least 14.49998pt. @@ -2141,7 +2164,7 @@ Package babel Info: Redefining german shorthand "| (babel) in language on input line 61. Package babel Info: Redefining german shorthand "~ (babel) in language on input line 61. -[31] +[32] \openout2 = `chapters/ausblick.aux'. (./chapters/ausblick.tex) @@ -2157,27 +2180,27 @@ Package babel Info: Redefining german shorthand "~ (babel) in language on input line 1. Package hyperref Warning: Difference (2) between bookmark levels is greater -(hyperref) than one, level fixed on input line 17. +(hyperref) than one, level fixed on input line 15. Package babel Info: Redefining german shorthand "f -(babel) in language on input line 17. +(babel) in language on input line 15. Package babel Info: Redefining german shorthand "| -(babel) in language on input line 17. +(babel) in language on input line 15. Package babel Info: Redefining german shorthand "~ -(babel) in language on input line 17. +(babel) in language on input line 15. Package babel Info: Redefining german shorthand "f -(babel) in language on input line 21. +(babel) in language on input line 20. Package babel Info: Redefining german shorthand "| -(babel) in language on input line 21. +(babel) in language on input line 20. Package babel Info: Redefining german shorthand "~ -(babel) in language on input line 21. +(babel) in language on input line 20. Package babel Info: Redefining german shorthand "f -(babel) in language on input line 21. +(babel) in language on input line 20. Package babel Info: Redefining german shorthand "| -(babel) in language on input line 21. +(babel) in language on input line 20. Package babel Info: Redefining german shorthand "~ -(babel) in language on input line 21. -[32 +(babel) in language on input line 20. +[33 @@ -2185,31 +2208,13 @@ Package babel Info: Redefining german shorthand "~ ] -Underfull \hbox (badness 10000) in paragraph at lines 23--25 +Underfull \hbox (badness 10000) in paragraph at lines 21--23 [] File: figures/crontab.png Graphic file (type bmp) - -Package Fancyhdr Warning: \headheight is too small (12.0pt): - Make it at least 14.49998pt. - We now make it that large for the rest of the document. - This may cause the page layout to be inconsistent, however. - -Package babel Info: Redefining german shorthand "f -(babel) in language on input line 40. -Package babel Info: Redefining german shorthand "| -(babel) in language on input line 40. -Package babel Info: Redefining german shorthand "~ -(babel) in language on input line 40. -Package babel Info: Redefining german shorthand "f -(babel) in language on input line 40. -Package babel Info: Redefining german shorthand "| -(babel) in language on input line 40. -Package babel Info: Redefining german shorthand "~ -(babel) in language on input line 40. -[33]) +) Package Fancyhdr Warning: \headheight is too small (12.0pt): Make it at least 14.49998pt. @@ -2430,12 +2435,12 @@ Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 78. ) (\end occurred when \ifnum on line 5 was incomplete) Here is how much of TeX's memory you used: - 27444 strings out of 492970 - 491391 string characters out of 6133939 - 562191 words of memory out of 5000000 - 31005 multiletter control sequences out of 15000+600000 + 27414 strings out of 492970 + 490166 string characters out of 6133939 + 562518 words of memory out of 5000000 + 30995 multiletter control sequences out of 15000+600000 559401 words of font info for 77 fonts, out of 8000000 for 9000 1348 hyphenation exceptions out of 8191 - 58i,18n,50p,10437b,966s stack positions out of 5000i,500n,10000p,200000b,80000s + 44i,18n,50p,10437b,951s stack positions out of 5000i,500n,10000p,200000b,80000s Output written on /Users/Esthi/thesis_ek/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.pdf (42 pages). diff --git a/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.out b/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.out index 5459010..f8414ee 100644 --- a/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.out +++ b/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.out @@ -7,24 +7,23 @@ \BOOKMARK [1][-]{section.2.1}{Django}{chapter.2}% 7 \BOOKMARK [2][-]{subsection.2.1.1}{Besonderheiten\040Djangos}{section.2.1}% 8 \BOOKMARK [2][-]{subsection.2.1.2}{Virtuelle\040Umgebung}{section.2.1}% 9 -\BOOKMARK [2][-]{subsection.2.1.3}{Lightweight\040Directory\040Access\040Protocol}{section.2.1}% 10 -\BOOKMARK [2][-]{subsection.2.1.4}{Sicherheit}{section.2.1}% 11 -\BOOKMARK [1][-]{section.2.2}{Erweiterungen}{chapter.2}% 12 -\BOOKMARK [2][-]{subsection.2.2.1}{Taggable-Manager}{section.2.2}% 13 -\BOOKMARK [2][-]{subsection.2.2.2}{Hilfsbibliotheken}{section.2.2}% 14 -\BOOKMARK [1][-]{section.2.3}{Bootstrap}{chapter.2}% 15 -\BOOKMARK [0][-]{chapter.3}{Prototyp}{}% 16 -\BOOKMARK [1][-]{section.3.1}{Forschungsdesign}{chapter.3}% 17 -\BOOKMARK [1][-]{section.3.2}{Organisation}{chapter.3}% 18 -\BOOKMARK [2][-]{subsection.3.2.1}{Datenmodellierung}{section.3.2}% 19 -\BOOKMARK [2][-]{subsection.3.2.2}{Berechtigungen\040der\040User}{section.3.2}% 20 -\BOOKMARK [1][-]{section.3.3}{Funktionen}{chapter.3}% 21 -\BOOKMARK [2][-]{subsection.3.3.1}{Verwaltung\040der\040Funktionen}{section.3.3}% 22 -\BOOKMARK [2][-]{subsection.3.3.2}{Artikel\040abonnieren}{section.3.3}% 23 -\BOOKMARK [2][-]{subsection.3.3.3}{Filtern}{section.3.3}% 24 -\BOOKMARK [0][-]{chapter.4}{Evaluation}{}% 25 -\BOOKMARK [1][-]{subsection.4.0.1}{Ergebnis}{chapter.4}% 26 -\BOOKMARK [2][-]{subsection.4.0.2}{Diskussion}{subsection.4.0.1}% 27 -\BOOKMARK [0][-]{chapter.5}{Schlussbetrachtung}{}% 28 -\BOOKMARK [1][-]{subsection.5.0.1}{Ausblick}{chapter.5}% 29 -\BOOKMARK [0][-]{chapter*.25}{Referenzen}{}% 30 +\BOOKMARK [2][-]{subsection.2.1.3}{Sicherheit}{section.2.1}% 10 +\BOOKMARK [1][-]{section.2.2}{Erweiterungen}{chapter.2}% 11 +\BOOKMARK [2][-]{subsection.2.2.1}{Taggable-Manager}{section.2.2}% 12 +\BOOKMARK [2][-]{subsection.2.2.2}{Hilfsbibliotheken}{section.2.2}% 13 +\BOOKMARK [1][-]{section.2.3}{Bootstrap}{chapter.2}% 14 +\BOOKMARK [0][-]{chapter.3}{Prototyp}{}% 15 +\BOOKMARK [1][-]{section.3.1}{Forschungsdesign}{chapter.3}% 16 +\BOOKMARK [1][-]{section.3.2}{Organisation}{chapter.3}% 17 +\BOOKMARK [2][-]{subsection.3.2.1}{Datenmodellierung}{section.3.2}% 18 +\BOOKMARK [2][-]{subsection.3.2.2}{Berechtigungen\040der\040User}{section.3.2}% 19 +\BOOKMARK [1][-]{section.3.3}{Funktionen}{chapter.3}% 20 +\BOOKMARK [2][-]{subsection.3.3.1}{Verwaltung\040der\040Funktionen}{section.3.3}% 21 +\BOOKMARK [2][-]{subsection.3.3.2}{Artikel\040abonnieren}{section.3.3}% 22 +\BOOKMARK [2][-]{subsection.3.3.3}{Filtern\040von\040Artikeln}{section.3.3}% 23 +\BOOKMARK [0][-]{chapter.4}{Evaluation}{}% 24 +\BOOKMARK [1][-]{subsection.4.0.1}{Ergebnis}{chapter.4}% 25 +\BOOKMARK [2][-]{subsection.4.0.2}{Diskussion}{subsection.4.0.1}% 26 +\BOOKMARK [0][-]{chapter.5}{Schlussbetrachtung}{}% 27 +\BOOKMARK [1][-]{subsection.5.0.1}{Ausblick}{chapter.5}% 28 +\BOOKMARK [0][-]{chapter*.25}{Referenzen}{}% 29 diff --git a/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.synctex.gz b/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.synctex.gz index a0ee5c5..a1966a9 100644 Binary files a/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.synctex.gz and b/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.synctex.gz differ diff --git a/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.toc b/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.toc index 8489333..52f6840 100644 --- a/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.toc +++ b/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.toc @@ -9,24 +9,23 @@ \contentsline {section}{\numberline {2.1}Django}{5}{section.2.1} \contentsline {subsection}{\numberline {2.1.1}Besonderheiten Djangos}{7}{subsection.2.1.1} \contentsline {subsection}{\numberline {2.1.2}Virtuelle Umgebung}{8}{subsection.2.1.2} -\contentsline {subsection}{\numberline {2.1.3}Lightweight Directory Access Protocol}{9}{subsection.2.1.3} -\contentsline {subsection}{\numberline {2.1.4}Sicherheit}{9}{subsection.2.1.4} -\contentsline {section}{\numberline {2.2}Erweiterungen}{10}{section.2.2} +\contentsline {subsection}{\numberline {2.1.3}Sicherheit}{9}{subsection.2.1.3} +\contentsline {section}{\numberline {2.2}Erweiterungen}{9}{section.2.2} \contentsline {subsection}{\numberline {2.2.1}Taggable-Manager}{10}{subsection.2.2.1} \contentsline {subsection}{\numberline {2.2.2}Hilfsbibliotheken}{11}{subsection.2.2.2} -\contentsline {section}{\numberline {2.3}Bootstrap}{12}{section.2.3} +\contentsline {section}{\numberline {2.3}Bootstrap}{11}{section.2.3} \contentsline {chapter}{\numberline {3}Prototyp}{14}{chapter.3} \contentsline {section}{\numberline {3.1}Forschungsdesign}{14}{section.3.1} \contentsline {section}{\numberline {3.2}Organisation}{15}{section.3.2} \contentsline {subsection}{\numberline {3.2.1}Datenmodellierung}{16}{subsection.3.2.1} -\contentsline {subsection}{\numberline {3.2.2}Berechtigungen der User}{18}{subsection.3.2.2} +\contentsline {subsection}{\numberline {3.2.2}Berechtigungen der User}{17}{subsection.3.2.2} \contentsline {section}{\numberline {3.3}Funktionen}{19}{section.3.3} -\contentsline {subsection}{\numberline {3.3.1}Verwaltung der Funktionen}{20}{subsection.3.3.1} -\contentsline {subsection}{\numberline {3.3.2}Artikel abonnieren}{22}{subsection.3.3.2} -\contentsline {subsection}{\numberline {3.3.3}Filtern}{24}{subsection.3.3.3} -\contentsline {chapter}{\numberline {4}Evaluation}{26}{chapter.4} -\contentsline {subsection}{\numberline {4.0.1}Ergebnis}{29}{subsection.4.0.1} -\contentsline {subsection}{\numberline {4.0.2}Diskussion}{29}{subsection.4.0.2} -\contentsline {chapter}{\numberline {5}Schlussbetrachtung}{32}{chapter.5} +\contentsline {subsection}{\numberline {3.3.1}Verwaltung der Funktionen}{19}{subsection.3.3.1} +\contentsline {subsection}{\numberline {3.3.2}Artikel abonnieren}{21}{subsection.3.3.2} +\contentsline {subsection}{\numberline {3.3.3}Filtern von Artikeln}{24}{subsection.3.3.3} +\contentsline {chapter}{\numberline {4}Evaluation}{27}{chapter.4} +\contentsline {subsection}{\numberline {4.0.1}Ergebnis}{30}{subsection.4.0.1} +\contentsline {subsection}{\numberline {4.0.2}Diskussion}{30}{subsection.4.0.2} +\contentsline {chapter}{\numberline {5}Schlussbetrachtung}{33}{chapter.5} \contentsline {subsection}{\numberline {5.0.1}Ausblick}{33}{subsection.5.0.1} \contentsline {chapter}{Referenzen}{35}{chapter*.25} diff --git a/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/ausblick.aux b/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/ausblick.aux index e786539..e08f142 100644 --- a/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/ausblick.aux +++ b/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/ausblick.aux @@ -1,7 +1,7 @@ \relax \providecommand\hyper@newdestlabel[2]{} \@setckpt{chapters/ausblick}{ -\setcounter{page}{32} +\setcounter{page}{33} \setcounter{equation}{0} \setcounter{enumi}{0} \setcounter{enumii}{0} @@ -19,6 +19,10 @@ \setcounter{figure}{5} \setcounter{table}{0} \setcounter{float@type}{8} +\setcounter{Item}{0} +\setcounter{Hfootnote}{16} +\setcounter{Hy@AnnotLevel}{0} +\setcounter{bookmark@seq@number}{26} \setcounter{parentequation}{0} \setcounter{lstnumber}{1} \setcounter{ContinuedFloat}{0} @@ -26,11 +30,7 @@ \setcounter{subtable}{0} \setcounter{r@tfl@t}{0} \setcounter{AM@survey}{0} -\setcounter{Item}{0} -\setcounter{Hfootnote}{16} -\setcounter{Hy@AnnotLevel}{0} -\setcounter{bookmark@seq@number}{27} \setcounter{NAT@ctr}{0} -\setcounter{lstlisting}{0} \setcounter{section@level}{0} +\setcounter{lstlisting}{0} } diff --git a/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/einleitung.aux b/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/einleitung.aux index 62dbf69..b644bb1 100644 --- a/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/einleitung.aux +++ b/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/einleitung.aux @@ -24,6 +24,10 @@ \setcounter{figure}{0} \setcounter{table}{0} \setcounter{float@type}{8} +\setcounter{Item}{0} +\setcounter{Hfootnote}{0} +\setcounter{Hy@AnnotLevel}{0} +\setcounter{bookmark@seq@number}{5} \setcounter{parentequation}{0} \setcounter{lstnumber}{1} \setcounter{ContinuedFloat}{0} @@ -31,11 +35,7 @@ \setcounter{subtable}{0} \setcounter{r@tfl@t}{0} \setcounter{AM@survey}{0} -\setcounter{Item}{0} -\setcounter{Hfootnote}{0} -\setcounter{Hy@AnnotLevel}{0} -\setcounter{bookmark@seq@number}{5} \setcounter{NAT@ctr}{0} -\setcounter{lstlisting}{0} \setcounter{section@level}{0} +\setcounter{lstlisting}{0} } diff --git a/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/ergebnis.aux b/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/ergebnis.aux index bae2ff2..e1e294a 100644 --- a/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/ergebnis.aux +++ b/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/ergebnis.aux @@ -1,18 +1,18 @@ \relax \providecommand\hyper@newdestlabel[2]{} -\@writefile{toc}{\contentsline {chapter}{\numberline {4}Evaluation}{26}{chapter.4}} +\@writefile{toc}{\contentsline {chapter}{\numberline {4}Evaluation}{27}{chapter.4}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} -\newlabel{ch:ergebnis}{{4}{26}{Evaluation}{chapter.4}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {4.1}{\ignorespaces Vergleich der hochschulinternen E-Mails.\relax }}{26}{figure.caption.19}} -\@writefile{lof}{\contentsline {figure}{\numberline {4.2}{\ignorespaces Details der relevanten E-Mails des Probanden.\relax }}{27}{figure.caption.20}} -\@writefile{lof}{\contentsline {figure}{\numberline {4.3}{\ignorespaces Details der irrelevanten E-Mails des Probanden.\relax }}{28}{figure.caption.21}} -\@writefile{lof}{\contentsline {figure}{\numberline {4.4}{\ignorespaces Vergleich der Anzahl von eintreffenden E-Mails zwischen aktueller Situation und unter Verwendung des Prototyps.\relax }}{28}{figure.caption.22}} -\@writefile{toc}{\contentsline {subsection}{\numberline {4.0.1}Ergebnis}{29}{subsection.4.0.1}} -\@writefile{toc}{\contentsline {subsection}{\numberline {4.0.2}Diskussion}{29}{subsection.4.0.2}} -\@writefile{lof}{\contentsline {figure}{\numberline {4.5}{\ignorespaces Vergleich relevanter und nicht relevanter E-Mails.\relax }}{30}{figure.caption.23}} +\newlabel{ch:ergebnis}{{4}{27}{Evaluation}{chapter.4}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {4.1}{\ignorespaces Vergleich der hochschulinternen E-Mails.\relax }}{27}{figure.caption.19}} +\@writefile{lof}{\contentsline {figure}{\numberline {4.2}{\ignorespaces Details der relevanten E-Mails des Probanden.\relax }}{28}{figure.caption.20}} +\@writefile{lof}{\contentsline {figure}{\numberline {4.3}{\ignorespaces Details der irrelevanten E-Mails des Probanden.\relax }}{29}{figure.caption.21}} +\@writefile{lof}{\contentsline {figure}{\numberline {4.4}{\ignorespaces Vergleich der Anzahl von eintreffenden E-Mails zwischen aktueller Situation und unter Verwendung des Prototyps.\relax }}{29}{figure.caption.22}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.0.1}Ergebnis}{30}{subsection.4.0.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.0.2}Diskussion}{30}{subsection.4.0.2}} +\@writefile{lof}{\contentsline {figure}{\numberline {4.5}{\ignorespaces Vergleich relevanter und nicht relevanter E-Mails.\relax }}{31}{figure.caption.23}} \@setckpt{chapters/ergebnis}{ -\setcounter{page}{32} +\setcounter{page}{33} \setcounter{equation}{0} \setcounter{enumi}{0} \setcounter{enumii}{0} @@ -30,6 +30,10 @@ \setcounter{figure}{5} \setcounter{table}{0} \setcounter{float@type}{8} +\setcounter{Item}{0} +\setcounter{Hfootnote}{16} +\setcounter{Hy@AnnotLevel}{0} +\setcounter{bookmark@seq@number}{26} \setcounter{parentequation}{0} \setcounter{lstnumber}{1} \setcounter{ContinuedFloat}{0} @@ -37,11 +41,7 @@ \setcounter{subtable}{0} \setcounter{r@tfl@t}{0} \setcounter{AM@survey}{0} -\setcounter{Item}{0} -\setcounter{Hfootnote}{16} -\setcounter{Hy@AnnotLevel}{0} -\setcounter{bookmark@seq@number}{27} \setcounter{NAT@ctr}{0} -\setcounter{lstlisting}{0} \setcounter{section@level}{0} +\setcounter{lstlisting}{0} } diff --git a/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/fazit.aux b/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/fazit.aux index a158938..0fe748d 100644 --- a/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/fazit.aux +++ b/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/fazit.aux @@ -1,11 +1,11 @@ \relax \providecommand\hyper@newdestlabel[2]{} -\@writefile{toc}{\contentsline {chapter}{\numberline {5}Schlussbetrachtung}{32}{chapter.5}} +\@writefile{toc}{\contentsline {chapter}{\numberline {5}Schlussbetrachtung}{33}{chapter.5}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} -\newlabel{ch:zusammenfassung}{{5}{32}{Schlussbetrachtung}{chapter.5}{}} +\newlabel{ch:zusammenfassung}{{5}{33}{Schlussbetrachtung}{chapter.5}{}} \@writefile{toc}{\contentsline {subsection}{\numberline {5.0.1}Ausblick}{33}{subsection.5.0.1}} -\@writefile{lof}{\contentsline {figure}{\numberline {5.1}{\ignorespaces Cron-Tab der im Prototyp getesteten Benachrichtigung.\relax }}{33}{figure.caption.24}} +\@writefile{lof}{\contentsline {figure}{\numberline {5.1}{\ignorespaces Cron-Tab der im Prototyp getesteten Benachrichtigung.\relax }}{34}{figure.caption.24}} \@setckpt{chapters/fazit}{ \setcounter{page}{35} \setcounter{equation}{0} @@ -25,6 +25,10 @@ \setcounter{figure}{1} \setcounter{table}{0} \setcounter{float@type}{8} +\setcounter{Item}{0} +\setcounter{Hfootnote}{16} +\setcounter{Hy@AnnotLevel}{0} +\setcounter{bookmark@seq@number}{28} \setcounter{parentequation}{0} \setcounter{lstnumber}{1} \setcounter{ContinuedFloat}{0} @@ -32,11 +36,7 @@ \setcounter{subtable}{0} \setcounter{r@tfl@t}{0} \setcounter{AM@survey}{0} -\setcounter{Item}{0} -\setcounter{Hfootnote}{16} -\setcounter{Hy@AnnotLevel}{0} -\setcounter{bookmark@seq@number}{29} \setcounter{NAT@ctr}{0} -\setcounter{lstlisting}{0} \setcounter{section@level}{0} +\setcounter{lstlisting}{0} } diff --git a/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/framework.aux b/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/framework.aux index 181b240..e5005c0 100644 --- a/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/framework.aux +++ b/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/framework.aux @@ -6,19 +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 [She09]\relax }}{6}{figure.caption.4}} -\@writefile{lof}{\contentsline {figure}{\numberline {2.2}{\ignorespaces Request-Response-Kreislauf des Django Frameworks [Nev15].\relax }}{7}{figure.caption.5}} +\@writefile{lof}{\contentsline {figure}{\numberline {2.2}{\ignorespaces Request-Response-Kreislauf des Django Frameworks [Nev15]\relax }}{7}{figure.caption.5}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.1.1}Besonderheiten Djangos}{7}{subsection.2.1.1}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.1.2}Virtuelle Umgebung}{8}{subsection.2.1.2}} -\@writefile{lof}{\contentsline {figure}{\numberline {2.3}{\ignorespaces Erstellen der virtuelle Umgebung im Terminal.\relax }}{8}{figure.caption.6}} -\@writefile{toc}{\contentsline {subsection}{\numberline {2.1.3}Lightweight Directory Access Protocol}{9}{subsection.2.1.3}} -\@writefile{lof}{\contentsline {figure}{\numberline {2.4}{\ignorespaces Beispiel eines LDAP-Trees [Orc10].\relax }}{9}{figure.caption.7}} -\@writefile{toc}{\contentsline {subsection}{\numberline {2.1.4}Sicherheit}{9}{subsection.2.1.4}} -\@writefile{toc}{\contentsline {section}{\numberline {2.2}Erweiterungen}{10}{section.2.2}} +\@writefile{lof}{\contentsline {figure}{\numberline {2.3}{\ignorespaces Erstellen der virtuelle Umgebung im Terminal\relax }}{8}{figure.caption.6}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.1.3}Sicherheit}{9}{subsection.2.1.3}} +\@writefile{toc}{\contentsline {section}{\numberline {2.2}Erweiterungen}{9}{section.2.2}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.2.1}Taggable-Manager}{10}{subsection.2.2.1}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.2.2}Hilfsbibliotheken}{11}{subsection.2.2.2}} -\@writefile{toc}{\contentsline {section}{\numberline {2.3}Bootstrap}{12}{section.2.3}} -\@writefile{lof}{\contentsline {figure}{\numberline {2.5}{\ignorespaces Einbindung von Bootstrap in einer HTML-Datei\relax }}{13}{figure.caption.8}} -\@writefile{lof}{\contentsline {figure}{\numberline {2.6}{\ignorespaces Bootstrap-Klassen in HTML-Tag\relax }}{13}{figure.caption.9}} +\@writefile{toc}{\contentsline {section}{\numberline {2.3}Bootstrap}{11}{section.2.3}} +\@writefile{lof}{\contentsline {figure}{\numberline {2.4}{\ignorespaces Einbindung von Bootstrap in einer HTML-Datei\relax }}{12}{figure.caption.7}} +\@writefile{lof}{\contentsline {figure}{\numberline {2.5}{\ignorespaces Bootstrap-Klassen in HTML-Tag\relax }}{12}{figure.caption.8}} \@setckpt{chapters/framework}{ \setcounter{page}{14} \setcounter{equation}{0} @@ -35,9 +33,13 @@ \setcounter{subsubsection}{0} \setcounter{paragraph}{0} \setcounter{subparagraph}{0} -\setcounter{figure}{6} +\setcounter{figure}{5} \setcounter{table}{0} \setcounter{float@type}{8} +\setcounter{Item}{0} +\setcounter{Hfootnote}{13} +\setcounter{Hy@AnnotLevel}{0} +\setcounter{bookmark@seq@number}{14} \setcounter{parentequation}{0} \setcounter{lstnumber}{1} \setcounter{ContinuedFloat}{0} @@ -45,11 +47,7 @@ \setcounter{subtable}{0} \setcounter{r@tfl@t}{0} \setcounter{AM@survey}{0} -\setcounter{Item}{0} -\setcounter{Hfootnote}{13} -\setcounter{Hy@AnnotLevel}{0} -\setcounter{bookmark@seq@number}{15} \setcounter{NAT@ctr}{0} -\setcounter{lstlisting}{0} \setcounter{section@level}{0} +\setcounter{lstlisting}{0} } diff --git a/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/prototyp.aux b/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/prototyp.aux index a51080b..459741d 100644 --- a/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/prototyp.aux +++ b/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/prototyp.aux @@ -5,24 +5,25 @@ \@writefile{lot}{\addvspace {10\p@ }} \newlabel{ch:prototyp}{{3}{14}{Prototyp}{chapter.3}{}} \@writefile{toc}{\contentsline {section}{\numberline {3.1}Forschungsdesign}{14}{section.3.1}} -\@writefile{lof}{\contentsline {figure}{\numberline {3.1}{\ignorespaces Forschungsdesign\relax }}{15}{figure.caption.10}} +\@writefile{lof}{\contentsline {figure}{\numberline {3.1}{\ignorespaces Forschungsdesign\relax }}{15}{figure.caption.9}} \@writefile{toc}{\contentsline {section}{\numberline {3.2}Organisation}{15}{section.3.2}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.2.1}Datenmodellierung}{16}{subsection.3.2.1}} -\@writefile{lof}{\contentsline {figure}{\numberline {3.2}{\ignorespaces Datenmodellierung von \texttt {User} und \texttt {Post}\relax }}{17}{figure.caption.11}} -\@writefile{lof}{\contentsline {figure}{\numberline {3.3}{\ignorespaces CustomUserModel in models.py\relax }}{18}{figure.caption.12}} -\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.2}Berechtigungen der User}{18}{subsection.3.2.2}} +\@writefile{lof}{\contentsline {figure}{\numberline {3.2}{\ignorespaces CustomUserModel in models.py\relax }}{17}{figure.caption.10}} +\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.2}Berechtigungen der User}{17}{subsection.3.2.2}} +\@writefile{lof}{\contentsline {figure}{\numberline {3.3}{\ignorespaces Datenmodellierung von \texttt {User} und \texttt {Post}\relax }}{18}{figure.caption.11}} +\@writefile{lof}{\contentsline {figure}{\numberline {3.4}{\ignorespaces Menü für eingeloggte Benutzer mit Adminrechte\relax }}{19}{figure.caption.12}} \@writefile{toc}{\contentsline {section}{\numberline {3.3}Funktionen}{19}{section.3.3}} -\@writefile{lof}{\contentsline {figure}{\numberline {3.4}{\ignorespaces User Stories\relax }}{19}{figure.caption.13}} -\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.1}Verwaltung der Funktionen}{20}{subsection.3.3.1}} -\@writefile{lof}{\contentsline {figure}{\numberline {3.5}{\ignorespaces Prototyp Artikel-Editor.\relax }}{21}{figure.caption.14}} -\@writefile{lof}{\contentsline {figure}{\numberline {3.6}{\ignorespaces Funktion post\_edit, Auszug aus views.py.\relax }}{22}{figure.caption.15}} -\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.2}Artikel abonnieren}{22}{subsection.3.3.2}} -\@writefile{lof}{\contentsline {figure}{\numberline {3.7}{\ignorespaces Prototyp Suche- und Abonnier-Seite\relax }}{23}{figure.caption.16}} -\@writefile{lof}{\contentsline {figure}{\numberline {3.8}{\ignorespaces Funktion search\_add, Auszug aus views.py.\relax }}{24}{figure.caption.17}} -\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.3}Filtern}{24}{subsection.3.3.3}} -\@writefile{lof}{\contentsline {figure}{\numberline {3.9}{\ignorespaces Prototyp Newsfeed Seite\relax }}{25}{figure.caption.18}} +\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.1}Verwaltung der Funktionen}{19}{subsection.3.3.1}} +\@writefile{lof}{\contentsline {figure}{\numberline {3.5}{\ignorespaces User Stories\relax }}{20}{figure.caption.13}} +\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.2}Artikel abonnieren}{21}{subsection.3.3.2}} +\@writefile{lof}{\contentsline {figure}{\numberline {3.6}{\ignorespaces Prototyp Artikel-Editor.\relax }}{22}{figure.caption.14}} +\@writefile{lof}{\contentsline {figure}{\numberline {3.7}{\ignorespaces Funktion post\_edit, Auszug aus views.py.\relax }}{22}{figure.caption.15}} +\@writefile{lof}{\contentsline {figure}{\numberline {3.8}{\ignorespaces Prototyp Suche- und Abonnier-Seite\relax }}{23}{figure.caption.16}} +\@writefile{lof}{\contentsline {figure}{\numberline {3.9}{\ignorespaces Funktion search\_add, Auszug aus views.py.\relax }}{24}{figure.caption.17}} +\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.3}Filtern von Artikeln}{24}{subsection.3.3.3}} +\@writefile{lof}{\contentsline {figure}{\numberline {3.10}{\ignorespaces Prototyp Newsfeed Seite\relax }}{25}{figure.caption.18}} \@setckpt{chapters/prototyp}{ -\setcounter{page}{26} +\setcounter{page}{27} \setcounter{equation}{0} \setcounter{enumi}{0} \setcounter{enumii}{0} @@ -37,9 +38,13 @@ \setcounter{subsubsection}{0} \setcounter{paragraph}{0} \setcounter{subparagraph}{0} -\setcounter{figure}{9} +\setcounter{figure}{10} \setcounter{table}{0} \setcounter{float@type}{8} +\setcounter{Item}{0} +\setcounter{Hfootnote}{16} +\setcounter{Hy@AnnotLevel}{0} +\setcounter{bookmark@seq@number}{23} \setcounter{parentequation}{0} \setcounter{lstnumber}{1} \setcounter{ContinuedFloat}{0} @@ -47,11 +52,7 @@ \setcounter{subtable}{0} \setcounter{r@tfl@t}{0} \setcounter{AM@survey}{0} -\setcounter{Item}{0} -\setcounter{Hfootnote}{16} -\setcounter{Hy@AnnotLevel}{0} -\setcounter{bookmark@seq@number}{24} \setcounter{NAT@ctr}{0} -\setcounter{lstlisting}{0} \setcounter{section@level}{0} +\setcounter{lstlisting}{0} } diff --git a/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/preambule/thesis.preamble.aux b/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/preambule/thesis.preamble.aux index 7953c04..9f2fe34 100644 --- a/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/preambule/thesis.preamble.aux +++ b/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/preambule/thesis.preamble.aux @@ -18,6 +18,10 @@ \setcounter{figure}{0} \setcounter{table}{0} \setcounter{float@type}{4} +\setcounter{Item}{0} +\setcounter{Hfootnote}{0} +\setcounter{Hy@AnnotLevel}{0} +\setcounter{bookmark@seq@number}{0} \setcounter{parentequation}{0} \setcounter{lstnumber}{1} \setcounter{ContinuedFloat}{0} @@ -25,9 +29,5 @@ \setcounter{subtable}{0} \setcounter{r@tfl@t}{0} \setcounter{AM@survey}{0} -\setcounter{Item}{0} -\setcounter{Hfootnote}{0} -\setcounter{Hy@AnnotLevel}{0} -\setcounter{bookmark@seq@number}{0} \setcounter{NAT@ctr}{0} } diff --git a/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/titlepage/titlepage.aux b/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/titlepage/titlepage.aux index 2e5aa46..62056a7 100644 --- a/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/titlepage/titlepage.aux +++ b/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/titlepage/titlepage.aux @@ -19,6 +19,10 @@ \setcounter{figure}{0} \setcounter{table}{0} \setcounter{float@type}{8} +\setcounter{Item}{0} +\setcounter{Hfootnote}{0} +\setcounter{Hy@AnnotLevel}{0} +\setcounter{bookmark@seq@number}{0} \setcounter{parentequation}{0} \setcounter{lstnumber}{1} \setcounter{ContinuedFloat}{0} @@ -26,11 +30,7 @@ \setcounter{subtable}{0} \setcounter{r@tfl@t}{0} \setcounter{AM@survey}{0} -\setcounter{Item}{0} -\setcounter{Hfootnote}{0} -\setcounter{Hy@AnnotLevel}{0} -\setcounter{bookmark@seq@number}{0} \setcounter{NAT@ctr}{0} -\setcounter{lstlisting}{0} \setcounter{section@level}{0} +\setcounter{lstlisting}{0} } diff --git a/doc/bachelorarbeit_EstherKleinhenz/abstract/abstract.tex b/doc/bachelorarbeit_EstherKleinhenz/abstract/abstract.tex index dcea329..74aa763 100755 --- a/doc/bachelorarbeit_EstherKleinhenz/abstract/abstract.tex +++ b/doc/bachelorarbeit_EstherKleinhenz/abstract/abstract.tex @@ -5,9 +5,9 @@ Das Ziel der vorliegenden Bachelor Arbeit ist es, zu beweisen, dass die E-Mail-Flut der Hochschule durch den Einsatz einer Social Media Plattform gedrosselt werden kann. Dazu wird ein Prototyp implementiert der ein personalisierbares Dashboard für Studierende und Angestellte bereitstellt. -Das Abonnieren von Artikeln wird mit dem Einsatz von Tags umgesetzt. Benutzer des Systems, versehen diese mit Schlagwörtern und machen die Informationen dadurch schneller zuweisbar. Durch die einfach Suche von Tags können Studierende Artikel nach eigenem Ermessen zum Dashboard hinzufügen. +Das Abonnieren von Artikeln wird mit dem Einsatz von Tags umgesetzt. Benutzer des Systems, versehen Nachrichten mit Schlagwörtern und machen die Informationen dadurch schneller zuweisbar. Durch die einfach Suche von Tags können Studierende Artikel nach eigenem Ermessen zum Dashboard hinzufügen. -Durch den Zähler eines jeden Artikels können die Autoren dieser sehen, ob die Informationen bereits gelesen wurden. Hierdurch lassen sich Schlüsse über die Nutzung der Applikation und die Relevanz des Artikels ziehen. +Durch den Zähler eines jeden Artikels können Autoren sehen, ob Informationen bereits gelesen wurden. Hierdurch lassen sich Schlüsse über die Nutzung der Applikation und die Relevanz des Artikels ziehen. diff --git a/doc/bachelorarbeit_EstherKleinhenz/bachelorabeit_EstherKleinhenz.pdf b/doc/bachelorarbeit_EstherKleinhenz/bachelorabeit_EstherKleinhenz.pdf index 25e15d3..46f339e 100644 Binary files a/doc/bachelorarbeit_EstherKleinhenz/bachelorabeit_EstherKleinhenz.pdf and b/doc/bachelorarbeit_EstherKleinhenz/bachelorabeit_EstherKleinhenz.pdf differ diff --git a/doc/bachelorarbeit_EstherKleinhenz/chapters/Fazit.tex b/doc/bachelorarbeit_EstherKleinhenz/chapters/Fazit.tex index 8c9abd0..1a20460 100755 --- a/doc/bachelorarbeit_EstherKleinhenz/chapters/Fazit.tex +++ b/doc/bachelorarbeit_EstherKleinhenz/chapters/Fazit.tex @@ -3,15 +3,13 @@ Um die Forschungsfrage, \glqq Kann die E-Mail-Flut der Technischen Hochschule mit Hilfe einer Social Media Plattform gedrosselt und die Nachhaltigkeit der Informationen gewährleistet werden?", zu beantworten, wurde in dieser Arbeit ein Prototyp entwickelt. -Hierbei handelt es sich um eine Erweiterung der Fakultätsinternen Website. Mit Hilfe von Tags können Informationen abonniert und ein personalisiertes Dashboard zusammengestellt werden. Durch differenzierte Berechtigungen ist es realisierbar, bestimmten Benutzern das Einpflegen und Verwalten von Benachrichtigungen zu gewähren. Zudem ist es durch einen Zähler, integriert in den einzelnen Beiträgen, möglich den Lehrenden der Hochschule eine Kennzahl darzulegen, die zeigt, ob und in welchem Umfang die Informationen gelesen wurden. - -Während der Entwicklung stellte sich heraus ... +Hierbei handelt es sich um eine Erweiterung der Fakultätsinternen Website. Mit Hilfe von Tags können Informationen abonniert und ein personalisiertes Dashboard zusammengestellt werden. Durch differenzierte Berechtigungen ist es realisierbar, bestimmten Benutzern das Einpflegen und Verwalten von Benachrichtigungen zu gewähren. In der Evaluation wurde durch eine Kalkulation, stichprobenartig anhand eines Probanden dargelegt, in wie weit die eintreffenden Informationen im Postfach der Studierenden irrelevant sind und durch die individualisierbare Website eingespart werden können. -Diese wissenschaftliche Arbeit hat gezeigt, dass durch den Einsatz einer webbasierten Plattform, Informationen an verschiedenste Personen einer Einrichtung verteilt werde können. Durch die individuellen Konfigurationsmöglichkeiten sind die Empfänger nicht überfordert und können mit wenig Aufwand passende Themengebiete ergänzen. Die E-Mail-Flut wird stark verkleinert und der administrative Aufwand des Postfachs aufs Kleinste reduziert. +Diese wissenschaftliche Arbeit hat gezeigt, dass durch den Einsatz einer webbasierten Plattform, Informationen an verschiedenste Personen einer Einrichtung verteilt werde können. Durch die individuellen Konfigurationsmöglichkeiten sind die Empfänger nicht überfordert und können mit wenig Aufwand passende Themengebiete abonnieren. Die E-Mail-Flut wird stark verkleinert und der administrative Aufwand des Postfachs reduziert. -Im wird Folgenden beschrieben, wie der Prototyp erweitert und optimiert werden kann um diesen einsetzten zu können. +Im Folgenden wird beschrieben, wie der Prototyp erweitert und optimiert werden kann. \subsection{Ausblick} @@ -20,8 +18,8 @@ Betrachtet wird der aktuelle Stand der Anwendung, wie dieser aufbauend optimiert Der Umfang der verwendeten Tags wird äquivalent zur Dimension der verschiedenen Themen an Informationen stark ansteigen. Es bietet sich an, diese zukünftig in Gruppen zu unterteilen um die Datenbank logisch und performant aufbauen zu können. Zudem ist das automatische Anlegen von Metadaten der einzelnen Tags bei der Administration hilfreich. Beispiele hierfür wären, wann wurde das Schlagwort erstellt, wie oft taucht es in der Suche auf und wie viele Abonnenten besitzt dieses. In Folge dessen käme eine eigens entwickelte Datenkonstruktion für Tags in Frage, um den Taggable Manager abzulösen. -Eine weitere wichtige Eigenschaft von Informationsplattformen ist das regelmä"sige Abrufen der neusten Mitteilungen. Um das Interesse der Studierenden und Lehrenden aufrecht zu erhalten, integriert Moodle ein Skript, bekannt unter dem Name Cron, dass asynchrone Benachrichtigungen ermöglicht. Wird ein \texttt{Cron-Job} auf dem systeminternen Server ausgeführt, so wird zyklisch der Benutzer über Neuigkeiten per Mail informiert (vgl. [Dok18]). -Im Prototyp wurde das Verfahren der asynchronen E-Mail-Benachrichtigung wie folgt getestet: Mit der Konfiguration des Shell-Skripts werden die Sendezyklen und die Inhalte festgelegt. Die Abbildung 4.5. zeigt den Cron-Tab, der wöchentlich gesendet werden soll ( \texttt{0 0 * * 0} ). Des weiteren werden die Pfade der Entwicklungsumgebung und des Servers mitgegeben. Um das Senden der Mails überwachen zu können, werden die Aktivitäten in ein Log-File geschrieben und sind im Administrator-Backend abrufbar. \\ +Eine weitere wichtige Eigenschaft von Informationsplattformen ist das regelmä"sige Abrufen der neusten Mitteilungen. Um das Interesse der Studierenden und Lehrenden aufrecht zu erhalten, kann ein Skript integriert werden, bekannt unter dem Name Cron, dass asynchrone Benachrichtigungen ermöglicht. Wird ein \texttt{Cron-Job} auf dem systeminternen Server ausgeführt, so wird zyklisch der Benutzer über Neuigkeiten per Mail informiert (vgl. [Dok18]). +Im Prototyp wurde das Verfahren der asynchronen E-Mail-Benachrichtigung wie folgt getestet: Mit der Konfiguration des Shell-Skripts werden die Sendezyklen und die Inhalte festgelegt. Die Abbildung 5.1. zeigt den Cron-Tab, der wöchentlich gesendet werden soll ( \texttt{0 0 * * 0} ). Des weiteren werden die Pfade der Entwicklungsumgebung und des Servers mitgegeben. Um das Senden der Mails überwachen zu können, werden die Aktivitäten in ein Log-File geschrieben und sind im Administrator-Backend abrufbar. \\ \begin{figure}[!h] \centering @@ -30,9 +28,6 @@ Im Prototyp wurde das Verfahren der asynchronen E-Mail-Benachrichtigung wie folg \hfill \end{figure} - -Wie bereits in der Diskussion angesprochen, sollen in Zukunft Studierenden und Lehrenden regelmä"sige Benachrichtigungen als Erinnerung oder kurze Übersicht per E-Mail erhalten. Das ausführende Cron-Skript muss hierfür auf dem Hochschulserver ausgeführt werden. Darüber hinaus ist es zweckmä"sig diese Benachrichtigungen mit personalisierten Neuigkeiten zu befüllen. - Des weiteren ist zur besseren Benutzung der Web-Erweiterung die Usability optimierbar. Die folgenden Punkte zeigen konkrete Möglichkeiten auf, die Gebrauchstauglichkeit für den User zu steigern: \begin{itemize} diff --git a/doc/bachelorarbeit_EstherKleinhenz/chapters/einleitung.tex b/doc/bachelorarbeit_EstherKleinhenz/chapters/einleitung.tex index 5151391..2d1abbd 100755 --- a/doc/bachelorarbeit_EstherKleinhenz/chapters/einleitung.tex +++ b/doc/bachelorarbeit_EstherKleinhenz/chapters/einleitung.tex @@ -1,13 +1,13 @@ \chapter{Einleitung} Eine Vielzahl an ungelesene E-Mails häufen sich täglich in den Postfächern eines Jeden an. Das elektronische Übertragen von Nachrichten ist aus der heutigen Zeit nicht mehr wegzudenken. -In der Vergangenheit hat sich jedoch gezeigt, dass das Versenden von Informationen 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"(vgl. [Ver13]). Nicht nur am Arbeitsplatz, sondern auch an Hochschulen wird Gebrauch davon gemacht, weitere Empfänger oder sogar ganze Verteiler mit in die Kopie einer E-Mail zu integrieren. Hierdurch steigen die irrelevanten Informationen unkontrollierbar schnell an. Infolgedessen, nimmt der benötigte Speicheraufwand der zahlreichen kommerziellen, aber auch internen E-Mail-Dienste enorm zu (vgl. [Fio14]). +In der Vergangenheit hat sich jedoch gezeigt, dass das Versenden von Informationen 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"(vgl. [Ver13]). Nicht nur am Arbeitsplatz, sondern auch an Hochschulen wird Gebrauch davon gemacht, weitere Empfänger oder sogar ganze Verteiler mit in die Kopie einer E-Mail zu integrieren. Hierdurch steigen die irrelevanten Informationen unkontrollierbar schnell an. Infolgedessen nimmt der benötigte Speicheraufwand der zahlreichen kommerziellen, aber auch internen E-Mail-Dienste enorm zu (vgl. [Fio14]). Das Dezimieren dieses Kommunikationswegs ist jedoch in vielen Fällen nicht möglich und Beschränkungen jeglicher Art werden als nicht sinnvoll erachtet. Betrachtet man darüber hinaus den Lebenszyklus einer einzelnen E-Mail, wird deutlich, dass dieser nach dem Erstellen, Senden und Empfangen noch nicht abgeschlossen ist. Nachdem die Information vom Adressat geöffnet wurde, wird sie archiviert, muss aber jederzeit durch eine Suchabfrage sofort angezeigt werden können. Dies verdeutlicht den enormen Aufwand, das das Verwalten elektronischer Post mit sich bringt. Aufbauend auf dieser Problematik wird folgend die Ausgangssituation der Arbeit erläutert. \section{Ausgangssituation} -Alle Informationen der Fakultät Elektrotechnik Feinwerktechnik Informationstechnik werden {\"u}ber die globalen Verteiler des Hochschulinternen Postfaches versendet. Viele dieser Daten sind jedoch nur f{\"u}r eine geringe Schnittmenge von Empf{\"a}ngern relevant und enthalten Mitteilungen oder Anhänge, die keinerlei Mehrwert den Einzelnen aufweisen k{\"o}nnen. Dadurch sind die Postf{\"a}ch der Studierenden und Dozenten schnell überlastet und k{\"o}nnen, ohne regelm{\"a}"sige Pflege, nicht in vollem Umfang genutzt werden. Zudem lassen sich Informationen schwer priorisieren und der massive administrative Aufwand für den Einzelnen, E-Mails selbstständig zu filtern und nach persönlichem Ermessen zu verwalten, steht in keinem Verhältnis zum Mehrwert eines performanten, aufgeräumten Postfaches. +Alle Informationen der Fakultät Elektrotechnik Feinwerktechnik Informationstechnik werden {\"u}ber die globalen Verteiler des Hochschulinternen Postfaches versendet. Viele dieser Daten sind jedoch nur f{\"u}r eine geringe Schnittmenge von Empf{\"a}ngern relevant und enthalten Mitteilungen oder Anhänge, die keinerlei Mehrwert dem Einzelnen aufweisen k{\"o}nnen. Dadurch sind die Postf{\"a}cher der Studierenden und Dozenten schnell überlastet und k{\"o}nnen, ohne regelm{\"a}"sige Pflege, nicht in vollem Umfang genutzt werden. Zudem lassen sich Informationen schwer priorisieren und der massive administrative Aufwand für den Einzelnen, E-Mails selbstständig zu filtern und nach persönlichem Ermessen zu verwalten, steht in keinem Verhältnis zum Mehrwert eines performanten, aufgeräumten Postfaches. Die Nachhaltigkeit der Informationen kann meist nicht gewährleistet werden. Grund dafür ist der mangelnde Speicherplatz, verursacht durch die ankommende Nachrichtenflut. M{\"o}chten die Empf{\"a}nger {\"a}ltere E-Mails abrufen, m{\"u}ssen diese meist entfernt werden um Platz f{\"u}r den neuen, eintreffenden E-Mail-Verkehr zu schaffen. Dies kann das Nichtlesen der Informationen seitens der Empfänger verursachen und führt im schlechtesten Fall zum voreiligen Entfernen von relevanten Nachrichten. @@ -19,4 +19,4 @@ Aus dieser Situation ergibt sich folgende Forschungsfrage: \glqq Kann die E-Mail Ziel der Arbeit ist es, durch die Einbindung einer Social Media Plattform in die bereits bestehenden Hochschulwebsite den Speicheraufwand des Postfaches f{\"u}r Studierende der Fakultät zu reduzieren. Durch selbständiges Prüfen der Nachrichtenseite nehmen die Zielgruppen Informationen bewusster wahr und können diese individuell an ihre aktuelle Situation anpassen. Das reduziert den administrativen Aufwand und verhindert Speicherengpässe im E-Mail-Postfach. Broadcast ähnliches Senden von Informationen ist hierdurch nur noch in den seltensten Fällen nötig. Der Schwerpunkt dieser Arbeit liegt auf der prototypischen Umsetzung der Website-Erweiterung. Hierbei wird zunächst der Fokus auf die grundlegenden Funktionen gelegt. Dazu gehört das Abonnieren, das Einpflegen von neuen und das Löschen von alten Nachrichten. Um den Informationsfluss jedes Einzelnen nicht aus den Augen zu verlieren, soll in regelmä"sigen Abständen eine automatisierte E-Mail verschickt werden. -Zudem sollen die Autoren einsehen können, in welchem Umfang die veröffentlichten Informationen bereits gelesen wurden. Dadurch lässt sich nach einer gewissen Zeit, feststellen, ob die Studierenden und Dozenten die Nachrichten für relevant erachten und die Plattform weiterhin als verlässliches Portal rentabel ist. +Zudem sollen die Autoren einsehen können, in welchem Umfang die veröffentlichten Informationen bereits gelesen wurden. Dadurch lässt sich nach einer gewissen Zeit feststellen, ob die Studierenden und Dozenten die Nachrichten für relevant erachten und die Plattform weiterhin als verlässliches Portal rentabel ist. diff --git a/doc/bachelorarbeit_EstherKleinhenz/chapters/ergebnis.tex b/doc/bachelorarbeit_EstherKleinhenz/chapters/ergebnis.tex index 51f0ba4..b951ec9 100644 --- a/doc/bachelorarbeit_EstherKleinhenz/chapters/ergebnis.tex +++ b/doc/bachelorarbeit_EstherKleinhenz/chapters/ergebnis.tex @@ -19,7 +19,7 @@ Um den Umfang der E-Mail-Flut einordnen zu können, wird das Postfach des Studie Während des Semesters trafen in Summe 264 Nachrichten im Postfach des Probanden ein. Darunter sind 95 innerhalb der Fakultät befördert worden. Abbildung 4.1. verdeutlicht auf der linken Seite das Verhältnis zwischen den Nachrichten hochschulweit und innerhalb der Fakultät. Diese wurden von diversen Verteilern an den Probanden gesendet. Auf der rechten Seite der Abbildung 4.1. ist eine Übersicht der genutzten Verteiler dargestellt. Dabei wird verdeutlicht, dass über die Mailingliste der Studierenden mehr als die Hälfte aller Mitteilungen versendet wird. -Sortiert der Proband nun den Posteingang nach relevanten Informationen, so zeigt sich in Abbildung 4.2. folgendes Ergebnis:\\ +Sortiert der Proband nun den Posteingang nach relevanten Informationen, so zeigt sich folgendes Ergebnis:\\ \begin{figure}[!h] \centering @@ -28,7 +28,7 @@ Sortiert der Proband nun den Posteingang nach relevanten Informationen, so zeigt \hfill \end{figure} -Das Balkendiagramm der Abbildung 4.2. zeigt, wie viele Informationen der Gesamtanzahl von E-Mails bedeutsam für den Probanden sind. Detaillierter wird gezeigt, wie viele hiervon innerhalb der Fakultät von Interesse sind. Fokussiert man die Themenübersicht wird deutlich, dass allgemeine Benachrichtigungen, wie Termine von Veranstaltungen, prüfungsrelevante Neuigkeiten oder Updates zu den Systemen der Hochschule den Interessenschwerpunkt bilden. Spezifischere Informationen, wie des Language Centers, des International Office oder der Fachschaft EFI nehmen zwar einen geringeren Anteil ein, sind für den Probanden aber nicht vernachlässigbar. +Das Balkendiagramm der Abbildung 4.2. zeigt, wie viele Informationen der Gesamtanzahl von E-Mails bedeutsam für den Probanden sind. Detaillierter wird gezeigt, wie viele hiervon innerhalb der Fakultät von Interesse sind. Fokussiert man die Themenübersicht wird deutlich, dass allgemeine Benachrichtigungen, wie Termine von Veranstaltungen, prüfungsrelevante Neuigkeiten oder Updates zu den Systemen der Hochschule den Interessenschwerpunkt bilden. Spezifischere Informationen, wie die des Language Centers, des International Office oder der Fachschaft EFI nehmen zwar einen geringeren Anteil ein, sind für den Probanden aber nicht vernachlässigbar. Werden die eingehenden E-Mails betrachtet, die der Studierende als nicht relevant aussortiert hat, lassen sich bereits eindeutige Tendenzen erkennen. Wie bereits in Abbildung 4.1. erkennbar ist, sind 169 Informationen, also 64 Prozent irrelevant. Extrahiert man davon die fakulätsinternen Benachrichtigungen, so ergibt sich die Anzahl 53. Prozentual lässt sich daraus berechnen, dass etwa 30 Prozent der überflüssigen E-Mails direkt von der EFI-Fakultät ausgehen. @@ -41,7 +41,7 @@ Werden die eingehenden E-Mails betrachtet, die der Studierende als nicht relevan Bei Sondierung der Detailansicht auf der linken Seite der Abbildung 4.3., ist zu erkennen, dass meist die sehr spezifischen Informationen über Vorlesungen, Interessen oder Freizeitaktivitäten vom Probanden aussortiert werden. Hierbei lässt sich erschlie"sen, wie symptomatische Informationen trotz fehlender Relevanz, das Postfach überfluten. -Die beispielhafte Kalkulation der im Postfach des Probanden befindlichen E-Mails wird nun mit dem durch die Implementierung des Prototyps entstehenden Ergebnis im Eingang des Postfaches verglichen. +Die beispielhafte Kalkulation der im Postfach des Probanden befindlichen E-Mails wird nun mit dem durch die Implementierung des Prototyps entstehenden Ergebnis verglichen. Die Aufgabe der entwickelten Anwendung ist es, die Informationen statt per E-Mail, über eine Social Media Plattform zu publizieren. Dennoch sollen die Studierenden und Lehrenden als regelmä"sige Erinnerung eine zusammenfassende Benachrichtigung erhalten. Stellt man die Anzahl, der über das Semester verteilten eintreffenden E-Mails des Probanden, den wöchentlichen Mitteilungen gegenüber, so ergibt sich folgendes Diagramm: \begin{figure}[!h] @@ -58,7 +58,7 @@ Abbildung 4.4. zeigt deutlich, dass durch den Einsatz des Prototyps die Anzahl d Werden alle Auswertungen der Evaluation zusammengefasst und betrachtet, so ist deutlich zu sehen, dass Benachrichtigungen der Hochschule zu ausgedehnt verteilt werden. Fakultätsübergreifende Themengebiete sind häufig über umfangreiche Verteiler an Einzelpersonen weitergegeben worden und erzeugen dabei eine schwer administrierbare Menge. -Der Fokus dieser Arbeit liegt auf dem reduzieren der E-Mail-Flut innerhalb der EFI-Fakultät. Wird der Prototyp auf der Hochschul-Website eingebunden, so kann die Problematik im Idealfall auf ein Kleinstes reduziert werden. In Abbildung 4.5. ist das Verhältnis zwischen irrelevanten und relevanten Informationen der Fakultät visualisiert. Hier wird nochmal deutlich, dass über die Hälfte der Nachrichten keinerlei Bedeutsamkeit für den Probanden haben. Aufgrund dessen, lassen sich folgende Erkenntnisse festhalten. Die Website-Erweiterung vermeidet das Eintreffen der unwichtigen und informiert Studierende und Angestellte über alle wichtigen Benachrichtigungen. Somit lässt sich der eintreffende Verkehr bereits um 35 Prozent reduzieren. +Der Fokus dieser Arbeit liegt auf dem reduzieren der E-Mail-Flut innerhalb der EFI-Fakultät. Wird der Prototyp auf der Hochschul-Website eingebunden, so kann die Problematik im Idealfall auf ein Kleinstes reduziert werden. In Abbildung 4.5. ist das Verhältnis zwischen irrelevanten und relevanten Informationen der Fakultät visualisiert. Hier wird nochmal deutlich, dass über die Hälfte der Nachrichten keinerlei Bedeutsamkeit für den Probanden haben. Aufgrund dessen, lassen sich folgende Erkenntnisse festhalten. Die Website-Erweiterung vermeidet das Eintreffen der unwichtigen E-Mails und informiert Studierende und Angestellte über alle wichtigen Benachrichtigungen. Somit lässt sich der eintreffende Verkehr bereits um 35 Prozent reduzieren. Werden die allgemeinen Informationen der gesamten Hochschule ebenfalls in das System eingetragen, so kann das Postfach lediglich für persönliche und organisatorische Absprachen innerhalb der Hochschule genutzt werden und der administrative Aufwand des E-Mail-Speichers kann aufs Kleinste beschränkt werden. @@ -81,7 +81,7 @@ Die Struktur des Prototypen ist, wie in den oberen Kapiteln bereits erläutert, Die Menge der Daten einer solchen Plattform sind nicht zu unterschätzen. Moodle verwendet unter anderem Caching-Tools und optimierte Prozesse, um die Datenbanken zu befüllen und schnellstmöglich abfragen zu können. In dieser Arbeit liegt der Schwerpunkt hingegen nicht auf der Optimierung einer Datenbank oder dem Verbessern der Performanz. -Zusammenfassend lässt sich sagen, dass Moodle ein zu umfangreiches Repertoire an Möglichkeiten bietet, im Gegensatz zum entwickelten Prototyp. Alle Funktionen, die in der Web-Erweiterung enthalten sind, lassen darauf schlie"sen, dass unter Betrachtung der Evaluation, zur Reduzierung der E-Mail-Flut beitragen kann. +Zusammenfassend lässt sich sagen, dass Moodle ein zu umfangreiches Repertoire an Möglichkeiten bietet, im Gegensatz zum entwickelten Prototyp. Alle Funktionen, die in der Web-Erweiterung enthalten sind, lassen darauf schlie"sen, dass unter Betrachtung der Evaluation, der Prototyp zur Reduzierung der E-Mail-Flut beitragen kann. diff --git a/doc/bachelorarbeit_EstherKleinhenz/chapters/framework.tex b/doc/bachelorarbeit_EstherKleinhenz/chapters/framework.tex index e31c177..7f35d53 100644 --- a/doc/bachelorarbeit_EstherKleinhenz/chapters/framework.tex +++ b/doc/bachelorarbeit_EstherKleinhenz/chapters/framework.tex @@ -17,19 +17,19 @@ Der Prozess vom Anfragen der URL über den Server bis hin zur fertig gerenderten Der User gibt eine URL im Browser ein und sendet sie an den Web-Server. Das Interface WSGI (Web Server Gateway Interface) 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 (vgl. [Kin17]). Au"serdem werden folgende Schritte durchgeführt: \begin{itemize} -\item Die Middleware-Klassen aus der settings.py werden geladen +\item Die Middleware-Klassen aus der \texttt{settings.py} werden geladen \item Die Methoden der Listen Request, View, Response und Excpetion werden geladen \item Die angeforderte URL wird aufgelöst \end{itemize} Der WSGI-Handler fungiert als Pförtner und Manager zwischen dem Web-Server und dem Django-Projekt. Um die URL aufzulösen, benötigt WSGI einen \textit {urlresolver}\footnote{ Urlsresolver verknüpft Url-Muster mit den passenden Views.} -(vgl. [Dja18b]). 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 (views.py) aufgerufen. Hier ist die gesamte Logik der Website lokalisiert. Unter anderem ist es möglich auf die Datenbank der Applikation zuzugreifen und Eingaben des Users über eine Form zu verarbeiten. Anschlie"send werden die Informationen der View an das Template weitergereicht. Es handelt sich dabei um eine einfache HTML-Seite, in der der strukturelle Aufbau im Front-end festgelegt wird. Die Informationen der View können hier zwischen doppelt-geschweiften Klammern eingebunden und, wenn nötig, mit einfachen Python-Befehlen angepasst werden. Das Template kann dann die vom WSGI-Framework zur Verfügung gestellte Callback-Funktion befüllen und eine Response an den Web-Server schicken. Die fertige Seite ist beim Klienten im Browserfenster zum Rendern bereit (vgl. [Kin17], Abbildung 2.2.). +(vgl. [Dja18b]). Durch die explizite Zuweisung der vorhandenen Seiten kann dieser über die regulären Ausdrücke der \texttt{url.py}-Datei iterieren. Gibt es eine Übereinstimmung, wird die damit verknüpfte Funktion in der View (\texttt{views.py}) aufgerufen. Hier ist die gesamte Logik der Website lokalisiert. Unter anderem ist es möglich auf die Datenbank der Applikation zuzugreifen und Eingaben des Users über eine Form zu verarbeiten. Anschlie"send 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. Das Template kann dann die vom WSGI-Framework zur Verfügung gestellte Callback-Funktion befüllen und eine Response an den Web-Server schicken. Die fertige Seite ist beim Klienten im Browserfenster zum Rendern bereit (vgl. [Kin17], Abbildung 2.2.). \begin{figure}[!h] \centering \includegraphics[width=0.5\textwidth]{figures/request-response-cycle} -\caption{Request-Response-Kreislauf des Django Frameworks [Nev15].} +\caption{Request-Response-Kreislauf des Django Frameworks [Nev15]} \hfill \end{figure} @@ -37,16 +37,16 @@ Um die URL aufzulösen, benötigt WSGI einen \textit {urlresolver}\footnote{ Url Das Django-Framework bringt einige Besonderheiten mit sich, die beim Implementieren des Prototypen von Bedeutung sind. Diese werden im Folgenden beschrieben. Die Administratoroberfläche ist eines der hilfreichsten Werkzeugen des gesamten Frameworks. Es stellt die Metadaten der Modelle aus dem Code visuell dar. Verifizierte Benutzer können die Daten nicht nur schnell erfassen, sondern diese auch editieren und verwalten. Das Recht, das Admin-Backend uneingeschränkt zu nutzen, ist dem \textit{Superuser}\footnote{ Superuser ist ein Benutzer, der alle Zugangsrechte im Framework erhält.} vorenthalten. Dieser kann beim erstmaligen Zuweisen nur über die Kommandozeile eingerichtet werden. Ist bereits ein Superuser vorhanden, kann dieser im Admin-Backend weiteren Benutzern den gleichen Handlungsfreiraum einräumen. Zudem gibt es noch weitere Stufen der Zugangsberechtigungen, Staff- und Active-Status, die für eine breitere Gruppe von Benutzern geeignet ist. -Um die gestaffelten Zugangsberechtigungen auch auf der Website umsetzen zu können, stellt Django verschiedene Dekoratoren zur Verfügung. Soll eine bestimmte Seite nur von authentifizierten Benutzern besucht werden können, kann die Funktion mit einem Decorator versehen werden: +Um die gestaffelten Zugangsberechtigungen auch auf der Website umsetzen zu können, stellt Django verschiedene Dekoratoren zur Verfügung. Soll eine bestimmte Seite nur von authentifizierten Benutzern besucht werden können, kann die Funktion mit einem Dekorator versehen werden: \\ \begin{addmargin}[0pt]{0pt} \noindent\hspace*{10mm}% \texttt{\makeatletter @login\_required} \\ \end{addmargin} -Natürlich lassen sich Dekoratoren auch für andere Zwecke vor Funktionen platzieren. Unter anderem werden so die Views vor möglichen Angriffen, wie Cross-Site-Scripting, geschützt. +Natürlich lassen sich Dekoratoren auch für andere Zwecke vor Funktionen platzieren. Unter anderem werden so die Views vor möglichen Angriffen, wie \textit{Cross-Site-Scripting}\footnote{ Cross-Site-Scripting kann Webseiten verändern oder Passwörter abgreifen.}, geschützt. -Durch den einfachen Aufbau ist es au"serdem möglich, diese selbst zu implementieren. Ein einfaches Beispiel wäre das Prüfen des an die Funktion übergebenen Parameter. Sollen nur positive Zahlen verarbeitet werden, so kann der Decorator alle anderen Eingaben abfangen. +Durch den einfachen Aufbau ist es au"serdem möglich, Dekoratoren selbst zu implementieren. Ein einfaches Beispiel wäre das Prüfen des an die Funktion übergebenen Parameter. Sollen nur positive Zahlen verarbeitet werden, so kann der Decorator alle anderen Eingaben abfangen. \subsection{Virtuelle Umgebung} @@ -56,30 +56,19 @@ Wird eine prototypische Anwendung gestartet, ist es notwendig, verschiedenste Mo \begin{figure}[!h] \centering \includegraphics[width=0.7\textwidth]{figures/virt-env-terminal} -\caption{Erstellen der virtuelle Umgebung im Terminal.} +\caption{Erstellen der virtuelle Umgebung im Terminal} \hfill \end{figure} Um die Pakete und Module kollisionsfrei zu installieren, ist es empfehlenswert, einen Package-Manager zu verwenden. Mit \textit{pip}\footnote{ pip ist das rekursive Akronym für pip Install Packages. } (vgl. [Wei17, K. 23.1]) 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. -\subsection{Lightweight Directory Access Protocol} - -Das ldap, Lightweight Directory Access Protocol, muss als Erweiterung in die hier bearbeitende Bachelor-Arbeit eingebunden werden, um später die Login-Daten im Hochschulinternen Netz abfragen zu können. Dies ist ein Internetprotokoll, welches die Kommunikation mit dem 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 Abbildung 2.4 dargestellten Baum wäre \texttt{cn=John Doe, ou=People, dc=sun.com} (vgl. [Sch17]). - -\begin{figure}[!h] -\centering -\includegraphics[width=0.5\textwidth]{figures/ldap-tree} -\caption{Beispiel eines LDAP-Trees [Orc10].} -\hfill -\end{figure} - \subsection{Sicherheit} -Beim Implementieren einer Website ist das Absichern vor schädlichen Attacken heutzutage unabdingbar. Django aktiviert einige Funktionen zum Schutz bereits beim Projektstart automatisch. Dazu gehört das Abwehren von \textit{Cross-Site-Scripting}\footnote{ Cross-Site-Scripting kann Webseiten verändern oder Passwörter abgreifen.}, \textit{SQL-Injektion}\footnote{ SQL-Injection nutzt mangelnde Überprüfung von Metazeichen um Datenbankabfragen zu verändern.}, \textit{Clickjacking}\footnote{ Clickjacking ist eine Überlagerung von Internetseiten um Klicks zu manipulieren.} +Beim Implementieren einer Website ist das Absichern vor schädlichen Attacken heutzutage unabdingbar. Django aktiviert einige Funktionen zum Schutz bereits beim Projektstart automatisch. Dazu gehört das Abwehren von \textit{Cross-Site-Scripting}, \textit{SQL-Injektion}\footnote{ SQL-Injection nutzt mangelnde Überprüfung von Metazeichen um Datenbankabfragen zu verändern.}, \textit{Clickjacking}\footnote{ Clickjacking ist eine Überlagerung von Internetseiten um Klicks zu manipulieren.} und die Sicherstellung der \textit{Session-Security}\footnote{ Session-Security setzen Cookies auch für Subdomäne beim Client. }. Sollen die Formulare des Prototypen gegen \textit{Cross-Site-Request-Forgery} geschützt werden, muss aktiv ein \textit{Token} im Template gesetzt werden. -Ein solcher Angriff tritt auf, wenn über einen bösartigen Link, eine Formularschaltfläche oder einfach den eingebettetem JavaScript-Code die Daten im Server verändert werden sollen. Hierbei nutzt der Angreifer die Rechte eines eingeloggten Benutzers und kann somit Informationen im Back-end verfälschen. Um dies zu verhindern, wird im Template des Prototypen zwischen den Form-Tags der \textit{crsf-Token}\footnote{ Token sind Komponente die eine Zugriffskontrolle von Benutzer druchführen können.} +Ein solcher Angriff tritt auf, wenn über einen bösartigen Link, eine Formularschaltfläche oder einfach den eingebettetem JavaScript-Code die Daten im Server verändert werden sollen. Hierbei nutzt der Angreifer die Rechte eines eingeloggten Benutzers und kann somit Informationen im Backend verfälschen. Um dies zu verhindern, wird im Template des Prototypen zwischen den Form-Tags der \textit{crsf-Token}\footnote{ Token sind Komponente die eine Zugriffskontrolle von Benutzer druchführen können.} eingefügt. Der Token setzt einen Cookie mit einer verschlüsselten Zufallszahl. Das Gleiche passiert im Template, wo ein für den Benutzer nicht sichtbares Form-Feld die gleiche verschlüsselte Zufallszahl erhält. Beide Zahlen erhalten zudem einen \textit{Salt}, einen generierten Zusatzwert, der das Entschlüsseln dieser um ein vielfaches erschwert. Wird ein Request gesendet, vergleicht eine von Django initialisierte \textit{Middleware}\footnote{ Middleware ist ein Plug-in, dass Anfrage- und Antwortverarbeitung durchführt.} beide Zahlen. Stimmen diese nicht überein, hat also ein Dritter die Informationen manipuliert, wird der 403 HTTP-Standard-Statuscode gesendet, welcher besagt, dass der Server eine Anfrage erhalten hat, diese aber nicht erfüllen wird. Der \texttt{crsf-Token} greift nur, wenn der POST-Request innerhalb der eigenen Website gesendet wird und nicht über URLs, die au"serhalb des Frameworks liegen (vgl. [Fou18a]). @@ -90,7 +79,7 @@ Die im Folgenden aufgeführten Bibliotheken sind im Prototyp zur Anwendung gelan \subsection {Taggable-Manager} Um die Artikel besser priorisieren und die Informationsflut für Benutzer reduzieren zu können, wird im Prototyp mit Schlagwörtern gearbeitet. Django-taggit ist eine Erweiterung, die das Verwenden von Tags vereinfacht. Der darin enthaltene Taggable Manager setzt Django's Contenttype Framework ein, welches per Default verwendet wird, um die Modelle der Applikation zu verfolgen und diese durch generische Beziehungen zu verknüpfen. Die Felder \texttt{app\_label} und \texttt{model} machen die Modelle eindeutig zuweisbar. Instanzen des Contenttyps 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. -Der Taggable-Manager ist jedoch nicht an das Contenttype-Framework gebunden (vgl. [Her16]). Durch die Verwendung eines echten Fremdschlüssels kann zum Beispiel die Performance und Referenzgarantie verwirklicht werden. Dazu ist lediglich die Erstellung einer eigenen \textit{Lookup-Tabelle}\footnote{ Eine Lookup-Tabelle speichert Daten statisch im Verhältnis zueinander.}notwendig, die die Entitäten zweier Tabellen direkt verlinkt, statt sie generisch zu verbinden. Weiterführend können Modelle in einem benutzerdefinierten Modell vereint werden, sodass der Zugriff darauf einheitlich geschieht. Au"serdem ist es möglich, Primary-Keys zu verwenden, die nicht aus ganzen Zahlen bestehen, sondern aus Buchstaben und Wörtern. +Der Taggable-Manager ist jedoch nicht an das Contenttype-Framework gebunden (vgl. [Her16]). Durch die Verwendung eines echten Fremdschlüssels kann zum Beispiel die Performance und Referenzgarantie verwirklicht werden. Dazu ist lediglich die Erstellung einer eigenen \textit{Lookup-Tabelle}\footnote{ Eine Lookup-Tabelle speichert Daten statisch im Verhältnis zueinander.} notwendig, die die Entitäten zweier Tabellen direkt verlinkt, statt sie generisch zu verbinden. Weiterführend können Modelle in einem benutzerdefinierten Modell vereint werden, sodass der Zugriff darauf einheitlich geschieht. Au"serdem ist es möglich, Primary-Keys zu verwenden, die nicht aus ganzen Zahlen bestehen, sondern aus Buchstaben und Wörtern. Um django-taggit zu installieren, wird der folgende Befehl in die Kommandozeile eingefügt (vgl. [Gay10]): \\ @@ -101,10 +90,12 @@ Um django-taggit zu installieren, wird der folgende Befehl in die Kommandozeile \end{addmargin} Im ˜\texttt{model.py} wird das Feld \texttt{tag} neu erstellt und als Taggable Manager definiert. Au"serdem muss taggit in der \texttt{settings.py} unter \texttt{INSTALLED\_APPS} ergänzt werden. Um dem Programm mitzuteilen, dass nun eine neue Liste der Datenbank hinzugefügt werden muss, werden über die Kommandozeile Migrations-Befehle ausgeführt, die im Kapitel Datenmodellierung genauer beschrieben werden. -Im Admin-Backend kann nun geprüft werden, ob das neue Feld in die Datenbank integriert wurde und neue Tags können in das Textfeld eingetragen werden. Der Parser verarbeitet jedes Wort, das durch ein Komma oder ein Leerzeichen getrennt ist als einen Tag. Soll dieses jedoch aus mehreren Wörtern bestehen, so müssen diese mit Anführungszeichen umfasst werden. Standardmä"sig unterscheidet der Taggable Manager zwischen Groß- und Kleinschreibung, Tags sind also case sensitive. +Im Admin-Backend kann nun geprüft werden, ob das neue Feld in die Datenbank integriert wurde und neue Tags können in das Textfeld eingetragen werden. Der Parser verarbeitet jede Eingabe, die durch ein Komma oder ein Leerzeichen getrennt ist als einen Tag. Soll der Tag jedoch aus mehreren Wörtern bestehen, so müssen diese mit Anführungszeichen umfasst werden. Standardmä"sig unterscheidet der Taggable Manager zwischen Gro"s- und Kleinschreibung, Tags sind also case sensitive. \subsection {Hilfsbibliotheken} -Weitere Add-ons werden geladen, um kleinere Funktionen der Website einfach umsetzen zu können. Zu diesen gehört \texttt{django-taggit-templatetags}, welches durch die Einbindung im HTML-File die Tags der Applikation als Liste ausgibt. Au"serdem lassen sich die eingepflegten Tags als Cloud visualisieren. Kommen bestimmte Schlagwörter öfter vor als andere, so werden sie entsprechend grö"ser dargestellt. +Weitere Add-ons werden geladen, um kleinere Funktionen der Website einfach umsetzen zu können. + +Zu diesen gehört \texttt{django-taggit-templatetags}, welches durch die Einbindung im HTML-File die Tags der Applikation als Liste ausgibt. Au"serdem lassen sich die eingepflegten Tags als Cloud visualisieren. Kommen bestimmte Schlagwörter öfter vor als andere, so werden sie entsprechend grö"ser dargestellt. \texttt{Django-hitcount} dient zum zählen der Besucher einer Seite (vgl. [Tim15]). Es lässt sich auf drei verschiedene Arten in die Applikation einbinden. Der schnellste Weg ist die Darstellung der Besuche mit Hilfe eines Template Tags im HTML-File. Möchte man die Anzeige aber individueller gestalten, so kann durch das integrieren der \texttt{HitCountDetailView} in \texttt{views.py} die Variable \texttt{hitcount} verwenden und im Frontend ausgeben. Eine weitere Möglichkeit ist das Erweitern oder neu Erstellen eines Models im Django Backend. Von dort kann auf das neue Feld im Django-Admin-Backend zugegriffen werden, ebenso wie von der View und vom Template. Die im Add-on integrierten Einstellungen, die in der \texttt{settings.py} ergänzt werden müssen, ermöglichen unter anderem das Begrenzen der Lebensdauer des Zählers, bevor dieser zurück gesetzt wird. @@ -116,7 +107,7 @@ Um die Usability des Prototyps zu erhöhen, wird das Framework Bootstrap eingebu Eine umfangreiche Website einheitlich zu gestalten ist oft sehr komplex und zeitaufwendig. Die Entwickler von Twitter haben deshalb an einem neuen Verwaltungswerkzeug gearbeitet, das mehrere Bibliotheken zusammenführen sollte (vgl. [Ott11]). Die Open-Source-Bibliothek, die auf GitHub abrufbar ist, wird seitdem von vielen Programmierern weiterentwickelt und ist somit stark gewachsen. Version 2.0 verfügt über die Fähigkeit, Websites \textit{responsiv}\footnote{ Responsive Webseiten sind auf allen Endgeräten angepasst darstellbar.} auf verschiedenste mobile Endgeräte anzupassen (vgl. [Ott12]). -Das Bootstrap-Paket beinhaltet vorgefertigte Cascading Stylesheets, kurz CSS, die Farben, Schriftarten und viele weitere Stildefinitionen implizieren. 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 im head-tag einer HTML-Datei (vgl. Abbildung 2.3.) einfach eingebunden werden. Das bedeutet, dass \textit{Media-Queries}\footnote{ Media-Qeries setzen statische Umbrüche um Layouts verschiedener Endgeräte anzupassen.} 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 (vgl. [Boo12]). +Das Bootstrap-Paket beinhaltet vorgefertigte Cascading Stylesheets, kurz CSS, die Farben, Schriftarten und viele weitere Stildefinitionen implizieren. 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 im head-tag einer HTML-Datei (vgl. Abbildung 2.4.) einfach eingebunden werden. Das bedeutet, dass \textit{Media-Queries}\footnote{ Media-Qeries setzen statische Umbrüche um Layouts verschiedener Endgeräte anzupassen.} 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 (vgl. [Boo12]). \begin{figure}[!h] \centering @@ -125,7 +116,7 @@ Das Bootstrap-Paket beinhaltet vorgefertigte Cascading Stylesheets, kurz CSS, di \hfill \end{figure} -Durch das Einbinden von Bootstrap in einer HTML-Datei werden einige Styles bereits automatisch auf die darin vorkommenden Tags, wie Links und Überschriften, angewendet. Dies ist jedoch nur ein sehr kleiner Teil, den die Bibliothek zur Verfügung stellt. Möchte man Bootstrap umfangreich nutzen, so lassen sich die Stildefinitionen mit Klassen oder ID's in diverse HTML-Tags eintragen (vlg. Abbildung 2.4.). +Durch das Einbinden von Bootstrap in einer HTML-Datei werden einige Styles bereits automatisch auf die darin vorkommenden Tags, wie Links und Überschriften, angewendet. Dies ist jedoch nur ein sehr kleiner Teil, den die Bibliothek zur Verfügung stellt. Bootstrap lässt sich umfangreicher nutzen, indem Stildefinitionen mit Klassen oder ID's in diverse HTML-Tags eingetragen werden (vlg. Abbildung 2.5.). \begin{figure}[!h] \centering diff --git a/doc/bachelorarbeit_EstherKleinhenz/chapters/prototyp.tex b/doc/bachelorarbeit_EstherKleinhenz/chapters/prototyp.tex index 98303fd..01a0f7d 100644 --- a/doc/bachelorarbeit_EstherKleinhenz/chapters/prototyp.tex +++ b/doc/bachelorarbeit_EstherKleinhenz/chapters/prototyp.tex @@ -21,13 +21,6 @@ Um einen Einblick in den Aufbau eines Django-Projektes zu erlangen wird die Stru \subsection{Datenmodellierung} Die Struktur der bereits bestehenden Datenbank im Django-Framework und die Erweiterungen desselben werden genauer erläutert. Zunächst wird auf die Ergänzung des bestehenden \texttt{UserModel} eingegangen, danach veranschaulicht der zweite Abschnitt das \texttt{PostModel} und abschlie"send werden die Zusammenhänge der Modelle dargestellt. -\begin{figure}[!h] -\centering -\includegraphics[width=0.9\textwidth]{figures/datamodel} -\caption{Datenmodellierung von \texttt{User} und \texttt{Post}} -\hfill -\end{figure} - Alle Modelle werden als Django-Modelle deklariert um beim Kompilieren des Codes dem Compiler mitzuteilen, dass eine Integration stattfinden muss (vgl. [Dja18a]). Mit der Eingabe \\ \begin{addmargin}[0pt]{0pt} @@ -52,7 +45,7 @@ Hier ist das Authentifizierungssystem von Django mit einem \texttt{UserModel} be \item username, fist\_name, last\_name, email, groups, user\_permissions, is\_staff, is\_active, is\_superuser, last\_login, date\_joined, tags \end{itemize} -In models.py ist der \texttt{CustomUser} dafür verantwortlich, das neue Feld mit dem \texttt{Default-User} zu verknüpfen. Durch das \texttt{OneToOneField} (siehe Abbildung 3.3.) wird die Verbindung zum schon bestehenden Modell hergestellt. \texttt{OneToOne} bildet eine einzigartige Zuordnung von zwei Objekten, sodass der Rückgabewert eindeutig ist. Das hei"st, dass hier keine rekursiven, auf sich selbst verlinkende oder \texttt{lazy} Beziehungen möglich sind, um Konflikte bei der Authentifizierung zu vermeiden. Dies ist die übliche Vorgehensweise, um mit einem Primärschlüssel das Default-Model zu erweitern (vgl. [Fou18a]). \\ +In models.py ist der \texttt{CustomUser} dafür verantwortlich, das neue Feld mit dem \texttt{Default-User} zu verknüpfen. Durch das \texttt{OneToOneField} (siehe Abbildung 3.2.) wird die Verbindung zum schon bestehenden Modell hergestellt. \texttt{OneToOne} bildet eine einzigartige Zuordnung von zwei Objekten, sodass der Rückgabewert eindeutig ist. Das hei"st, dass hier keine rekursiven, auf sich selbst verlinkende oder \texttt{lazy} Beziehungen möglich sind, um Konflikte bei der Authentifizierung zu vermeiden. Dies ist die übliche Vorgehensweise, um mit einem Primärschlüssel das Default-Model zu erweitern (vgl. [Fou18a]). \\ \begin{figure}[!h] \centering @@ -66,7 +59,7 @@ In models.py ist der \texttt{CustomUser} dafür verantwortlich, das neue Feld mi \textbf{PostModel:} \begin{addmargin}[25pt]{0pt} -Das \texttt{PostModel} beschreibt alle Felder, die ein Artikel enthalten kann. Basierend auf der Blog-Lösung von Djangogirls.com (vgl. [Dja18b])gehören dazu folgende: +Das \texttt{PostModel} beschreibt alle Felder, die ein Artikel enthalten kann. Basierend auf der Blog-Lösung von Djangogirls.com (vgl. [Dja18b]) gehören dazu folgende: \begin{itemize} \item author, title, text, created\_date, published\_date, tags \end{itemize} @@ -78,9 +71,15 @@ Der Autor ist durch einen \texttt{ForeignKey} mit dem \texttt{UserModel} verbund \textbf{Gesamtmodellierung:} \begin{addmargin}[25pt]{0pt} -Die Abbildung 3.2. zeigt die Modellierung der Tabelle \texttt{User} und \texttt{Post}. Au"serdem verdeutlicht es die Erweiterung des User-Modells von Django mit dem in der Applikation angelegten CustomUser. Die im User vorkommenden \textit{booleschen Felder} werden im Kapitel \glqq Berechtigungen der User" genauer erörtert. +Die Abbildung 3.3. zeigt die Modellierung der Tabelle \texttt{User} und \texttt{Post}. Au"serdem verdeutlicht es die Erweiterung des User-Modells von Django mit dem in der Applikation angelegten \texttt{CustomUser}. Die im User vorkommenden \textit{booleschen Felder} werden im Kapitel \glqq Berechtigungen der User" genauer erörtert. \end{addmargin} +\begin{figure}[!h] +\centering +\includegraphics[width=0.9\textwidth]{figures/datamodel} +\caption{Datenmodellierung von \texttt{User} und \texttt{Post}} +\hfill +\end{figure} \subsection{Berechtigungen der User} Im Allgemeinen verwendet man Berechtigungen, um Benutzern Zugang zu bestimmten Resourcen in einem Netzwerk einzuräumen. Au"serdem bestimmt eine Staffelung die Art des Zugangs, ob der User die Resourcen nur lesen, verändern oder löschen darf (vgl. [Com18]). Die Rechte werden meist einzelnen Individuen oder einer Gruppe zugeordnet. @@ -90,11 +89,17 @@ Das gestaffelte Berechtigungsmanagement ist im Prototyp notwendig, um den Umgang Studenten sollen zunächst Informationen weder einpflegen noch editieren dürfen. Die einzigen Änderungen, die sie vornehmen können, sind auf ihre eigene Datenbank fokussiert. Dazu gehört das Hinzufügen von Tags, durch die damit verlinkten Beiträge das persönliche Dashboard befüllt wird. Dies soll verhindern, dass Informationen zu leichtfertig geändert oder gelöscht werden. Dozenten und Angestellte der Hochschule sind dazu berechtigt, Posts zu erstellen, zu editieren und wieder zu löschen. Zudem können sie, wie Studenten, Tags abonnieren und das persönliche Dashboard gestalten. Das Einloggen in die Administratoroberfläche kann durchgeführt werden, jedoch sind der Gruppe noch keinerlei Rechte zugewiesen. Möchte man das ändern, kann man das von Django bereitgestellte Feld \texttt{User Permissions} im Admin-Backend unter \texttt{Users} finden, und dem Namen der Person die gewünschte Berechtigung zuteilen. Diese sind von Django vorgegeben und betreffen alle vorhandenen Modelle der Applikation. -Durch das Setzen des booleschen Wert \texttt{is\_staff} auf \texttt{True} beim Erstellen der Benutzer ist es möglicha im Code der Applikation Abfragen durchzuführen. Dadurch lassen sich bestimmte Views an die eingeloggte Personengruppe anpassen. So ist unter Anderem das Menü der Dozenten und Angestellten etwas umfangreicherer als das der Studierenden. +Durch das Setzen des booleschen Wert \texttt{is\_staff} auf \texttt{True} beim Erstellen der Benutzer ist es möglicha im Code der Applikation Abfragen durchzuführen. Dadurch lassen sich bestimmte Views an die eingeloggte Personengruppe anpassen. So ist unter Anderem das Menü der Dozenten und Angestellten etwas umfangreicherer als das der Studierenden (vgl. Abbildung 3.4.).\\ +\begin{figure}[!h] +\centering +\includegraphics[width=1\textwidth]{figures/menuadmin} +\caption{Menü für eingeloggte Benutzer mit Adminrechte} +\hfill +\end{figure} \section{Funktionen} -Um die wichtigsten Funktionen des Prototypen festlegen zu können, werden User Stories erstellt (vgl. Abbildung 3.4.). Diese bestehen aus kurzen Sätzen und beschreiben aus Sicht des Nutzers das Verwenden einer Funktion. Die Priorisierung bezieht sich hierbei auf die Relevanz der Funktion, wobei die Funktionen mit einem rotem Punkt sehr wichtig für den Prototypen sind, Orangene wichtige Funktionen sind, aber nicht unbedingt notwendig, und Grüne kaum Relevanz haben. \\ +Um die wichtigsten Funktionen des Prototypen festlegen zu können, werden User Stories erstellt (vgl. Abbildung 3.5.). Diese bestehen aus kurzen Sätzen und beschreiben aus Sicht des Nutzers das Verwenden einer Funktion. Die Priorisierung bezieht sich hierbei auf die Relevanz der Funktion, wobei die Funktionen mit einem rotem Punkt sehr wichtig für den Prototypen sind, Orangene wichtige Funktionen sind, aber nicht unbedingt notwendig, und Grüne kaum Relevanz haben. \\ \begin{figure}[!h] \centering @@ -124,7 +129,7 @@ In der Detailansicht eines Artikels ist es möglich, denselben zu entfernen. Die \\ \textbf{Einen bereits vorhandenen Artikel bearbeiten: } -Ähnlich wie beim Löschen eines Artikel, kann man diesen in der Detailansicht bearbeiten. Dazu wird in der View über den \texttt{Primary Key} der Artikel einer Variable \texttt{post} zugeordnet. Die bedingte Anweisung rendert zunächst die \texttt{PostForm}, mit dem bereits eingepflegten Inhalt durch eine GET-Abfrage (vgl. Abbildung 3.5.). +Ähnlich wie beim Löschen eines Artikel, kann man diesen in der Detailansicht bearbeiten. Dazu wird in der View über den \texttt{Primary Key} der Artikel einer Variable \texttt{post} zugeordnet. Die bedingte Anweisung rendert zunächst die \texttt{PostForm}, mit dem bereits eingepflegten Inhalt durch eine GET-Abfrage (vgl. Abbildung 3.6.). \begin{figure}[!h] \centering @@ -133,7 +138,7 @@ In der Detailansicht eines Artikels ist es möglich, denselben zu entfernen. Die \hfill \end{figure} -Veranlasst der Benutzer die Speicherung des Artikels im Front-end, wird die bedingte Abfrage der Abbildung 3.6. in Zeile 91 erfüllt. Die POST-Abfrage ist hier notwendig, da Django nur so Daten in der Datenbank verändert. Eine Begründung hierfür ist die Art der Übertragung der Daten an den Server. \texttt{POST-Requests} bündeln alle Daten, verschlüsseln sie und senden sie dann an der Server (vgl. [Fou18c]). Dadurch ist der Vorgang einfacher kontrollierbar und mit einem \texttt{csrf-Token} im Template ebenfalls gegen Cross-Site-Request-Fälschung abgesichert. Die weitere Vorgehensweise der Funktion ist identisch zum bereits erwähnten neu erstellen eines Artikels und muss nicht weiter beschrieben werden.\\ +Veranlasst der Benutzer die Speicherung des Artikels im Front-end, wird die bedingte Abfrage der Abbildung 3.7. in Zeile 91 erfüllt. Die POST-Abfrage ist hier notwendig, da Django nur so Daten in der Datenbank verändert. Eine Begründung hierfür ist die Art der Übertragung der Daten an den Server. \texttt{POST-Requests} bündeln alle Daten, verschlüsseln sie und senden sie dann an der Server (vgl. [Fou18c]). Dadurch ist der Vorgang einfacher kontrollierbar und mit einem \texttt{csrf-Token} im Template ebenfalls gegen Cross-Site-Request-Fälschung abgesichert. Die weitere Vorgehensweise der Funktion ist identisch zum bereits dargelegten neu erstellen eines Artikels und muss nicht weiter beschrieben werden.\\ \begin{figure}[!h] \centering @@ -156,7 +161,7 @@ Unter Berücksichtigung aller Vor- und Nachteile wird ein Tag-Modell zur Umsetzu \end{figure} Im Prototyp findet man die Abonnement-Funktion unter dem Menüpunkt \texttt{Suche}. Hier erscheint ein zweigeteiltes Layout, welches auf der rechten Seite alle bereits abonnierten Tags auflistet und darunter die Eingabe eines neuen Tags ermöglicht. Um den Benutzer alle bereits existierenden Tags offen zu legen, befindet sich auf der linken Seite des Layouts eine \textit{Tag-Cloud} \footnote{ Tag-Cloud ist eine Visualisierung eines Schlagwortverzeichnisses.} -, die alle Schlagwörter darstellt (vgl. Abbildung 3.7.). +, die alle Schlagwörter darstellt (vgl. Abbildung 3.8.). Die Eingabe des zu abonnierenden Tags wird durch ein Formular realisiert. Dieses ist in der \texttt{forms.py} Datei konfiguriert und enthält nur ein Eingabefeld. Der Ablauf verläuft gleichartig zum oben dargestellten Erstellen eines Artikels, wird allerdings genauer beschrieben, um die Struktur des \texttt{Taggable Managers} zu verdeutlichen. @@ -168,9 +173,9 @@ Die Eingabe des zu abonnierenden Tags wird durch ein Formular realisiert. Dieses \hfill \end{figure} -Gibt der Benutzer einen Tag ein und sendet durch Betätigen des Sichern-Buttons den \texttt{Request}, wird dieser in der \texttt{views.py} verarbeitet. In Zeile 159 der Abbildung 3.8. wird der eingeloggte Benutzer der Variable \texttt{user\_instance} übergeben. Beim Erstellen der \texttt{Model-Instanz} (vgl. Abbildung 3.8., Zeile 161) wird \texttt{user\_instance} der Unbekannten \texttt{form} zugeteilt, um die Tag-Eingabe im richtigen User-Objekt integrieren zu können. Nach der Abfrage der Formvalidität wird ein neues Objekt angelegt (vgl. Abbildung 3.8., Zeile 163) und ebenfalls dem aktuellen Benutzer zugeordnet. Die Eingabe der \texttt{form} wird in einem \texttt{Array} zwischengespeichert und mit dem Attribut \texttt{cleaned\_data} in ein für Python kompatiblen Datentyp gecastet. Um prüfen zu können, ob die Eingaben der Form tatsächlich im \texttt{Tag-Model} enthalten sind, wird diese nochmals in einen String umgewandelt und mit den bereits existierenden Tags abgeglichen (vgl. Abbildung 3.8., Zeile 168). Wird die Bedingung erfüllt, speichert die Funktion die Tags. In beiden möglichen Fällen wird der Benutzer benachrichtigt, ob der Vorgang erfolgreich oder die Eingabe nicht valide war. +Gibt der Benutzer einen Tag ein und sendet durch Betätigen des Sichern-Buttons den \texttt{Request}, wird dieser in der \texttt{views.py} verarbeitet. In Zeile 159 der Abbildung 3.9. wird der eingeloggte Benutzer der Variable \texttt{user\_instance} übergeben. Beim Erstellen der \texttt{Model-Instanz} (vgl. Abbildung 3.9., Zeile 161) wird \texttt{user\_instance} der Unbekannten \texttt{form} zugeteilt, um die Tag-Eingabe im richtigen User-Objekt integrieren zu können. Nach der Abfrage der Formvalidität wird ein neues Objekt angelegt (vgl. Abbildung 3.9., Zeile 163) und ebenfalls dem aktuellen Benutzer zugeordnet. Die Eingabe der \texttt{form} wird in einem \texttt{Array} zwischengespeichert und mit dem Attribut \texttt{cleaned\_data} in ein für Python kompatiblen Datentyp gecastet. Um prüfen zu können, ob die Eingaben der Form tatsächlich im \texttt{Tag-Model} enthalten sind, wird diese nochmals in einen String umgewandelt und mit den bereits existierenden Tags abgeglichen (vgl. Abbildung 3.9., Zeile 168). Wird die Bedingung erfüllt, speichert die Funktion die Tags. In beiden möglichen Fällen wird der Benutzer benachrichtigt, ob der Vorgang erfolgreich oder die Eingabe nicht valide war. -Nun werden auf dem Dashboard Artikel der neu hinzugefügten Tags angezeigt (vgl Abbildung 3.9.).\\ +Nun werden auf dem Dashboard Artikel der neu hinzugefügten Tags angezeigt (vgl Abbildung 3.10.).\\ \begin{figure}[!h] \centering @@ -180,7 +185,7 @@ Nun werden auf dem Dashboard Artikel der neu hinzugefügten Tags angezeigt (vgl \end{figure} -\subsection{Filtern} +\subsection{Filtern von Artikeln} Zur Unterstützung der Nutzbarkeit des Prototypen ist es wichtig, dass User intuitiv nach Tags suchen und sie selektieren können. Hierfür werden verschiedene Möglichkeiten zur Verfügung gestellt, die die Usability der Website verbessern sollen. diff --git a/doc/bachelorarbeit_EstherKleinhenz/figures/menuadmin.png b/doc/bachelorarbeit_EstherKleinhenz/figures/menuadmin.png new file mode 100644 index 0000000..0051c22 Binary files /dev/null and b/doc/bachelorarbeit_EstherKleinhenz/figures/menuadmin.png differ diff --git a/doc/bachelorarbeit_EstherKleinhenz/preambule/thesis.preamble.tex b/doc/bachelorarbeit_EstherKleinhenz/preambule/thesis.preamble.tex index 386cc9a..db9830e 100755 --- a/doc/bachelorarbeit_EstherKleinhenz/preambule/thesis.preamble.tex +++ b/doc/bachelorarbeit_EstherKleinhenz/preambule/thesis.preamble.tex @@ -14,6 +14,8 @@ \usepackage{float} \usepackage[onehalfspacing]{setspace} \usepackage{textcomp} +\usepackage{hyperref} +\hypersetup{colorlinks=true,linkcolor=black} %Abkürzungsverzeichnis \usepackage[printonlyused]{acronym} diff --git a/log.txt b/log.txt index 88c36b9..da17191 100644 --- a/log.txt +++ b/log.txt @@ -432,3 +432,18 @@ [03/Dec/2018 18:54:34] INFO [mysite:147] [03/Dec/2018 18:54:34] INFO [mysite:147] , , , , , ]> [03/Dec/2018 18:54:34] INFO [mysite:147] , ]> +[07/Dec/2018 19:54:31] INFO [mysite:144] , , , ]> +[07/Dec/2018 19:54:31] INFO [mysite:147] , , ]> +[07/Dec/2018 19:54:31] INFO [mysite:147] , , , , , ]> +[07/Dec/2018 19:54:31] INFO [mysite:147] +[07/Dec/2018 19:54:31] INFO [mysite:147] , , , ]> +[07/Dec/2018 19:54:41] INFO [mysite:144] , , , ]> +[07/Dec/2018 19:54:41] INFO [mysite:147] , , ]> +[07/Dec/2018 19:54:41] INFO [mysite:147] , , , , , ]> +[07/Dec/2018 19:54:41] INFO [mysite:147] +[07/Dec/2018 19:54:41] INFO [mysite:147] , , , ]> +[07/Dec/2018 19:55:08] INFO [mysite:144] , , , ]> +[07/Dec/2018 19:55:08] INFO [mysite:147] , , ]> +[07/Dec/2018 19:55:08] INFO [mysite:147] , , , , , ]> +[07/Dec/2018 19:55:08] INFO [mysite:147] +[07/Dec/2018 19:55:08] INFO [mysite:147] , , , ]>