@@ -46,7 +46,7 @@ | |||
\bibcite{King}{{Kin17}{}{{}}{{}}} | |||
\bibcite{Leipner}{{Lei13}{}{{}}{{}}} | |||
\bibcite{Ndukwe}{{Ndu17}{}{{}}{{}}} | |||
\@writefile{toc}{\contentsline {chapter}{Referenzen}{18}{chapter*.13}} | |||
\@writefile{toc}{\contentsline {chapter}{Referenzen}{19}{chapter*.13}} | |||
\bibcite{Ong}{{Ong18}{}{{}}{{}}} | |||
\bibcite{Otto}{{Ott11}{}{{}}{{}}} | |||
\bibcite{Shabda}{{Sha09}{}{{}}{{}}} |
@@ -19,6 +19,10 @@ Repeated entry---line 127 of file ../references/References_2.bib | |||
: @article{Otto | |||
: , | |||
I'm skipping whatever remains of this entry | |||
Repeated entry---line 141 of file ../references/References_2.bib | |||
: @article{Django | |||
: , | |||
I'm skipping whatever remains of this entry | |||
Warning--empty journal in Bootstrap | |||
Warning--empty journal in Oracle | |||
Warning--empty journal in Dixit | |||
@@ -78,4 +82,4 @@ warning$ -- 18 | |||
while$ -- 36 | |||
width$ -- 23 | |||
write$ -- 236 | |||
(There were 2 error messages) | |||
(There were 3 error messages) |
@@ -1,4 +1,4 @@ | |||
This is XeTeX, Version 3.14159265-2.6-0.99999 (TeX Live 2018) (preloaded format=xelatex 2018.6.7) 4 NOV 2018 22:54 | |||
This is XeTeX, Version 3.14159265-2.6-0.99999 (TeX Live 2018) (preloaded format=xelatex 2018.6.7) 6 NOV 2018 18:38 | |||
entering extended mode | |||
\write18 enabled. | |||
file:line:error style messages enabled. | |||
@@ -1371,36 +1371,38 @@ Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 83. | |||
[8] | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 101. | |||
(babel) in language on input line 95. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 101. | |||
(babel) in language on input line 95. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 101. | |||
(babel) in language on input line 95. | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 106. | |||
(babel) in language on input line 100. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 106. | |||
(babel) in language on input line 100. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 106. | |||
(babel) in language on input line 100. | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 106. | |||
(babel) in language on input line 100. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 106. | |||
(babel) in language on input line 100. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 106. | |||
(babel) in language on input line 100. | |||
[9] | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 110. | |||
(babel) in language on input line 104. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 110. | |||
(babel) in language on input line 104. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 110. | |||
(babel) in language on input line 104. | |||
File: figures/bootstrap-head-tag.png Graphic file (type bmp) | |||
<figures/bootstrap-head-tag.png> | |||
LaTeX Warning: `!h' float specifier changed to `!ht'. | |||
File: figures/bootstrap-class-example.png Graphic file (type bmp) | |||
<figures/bootstrap-class-example.png> | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 123. | |||
Package babel Info: Redefining german shorthand "| | |||
@@ -1414,14 +1416,12 @@ Package babel Info: Redefining german shorthand "| | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 123. | |||
[10] | |||
File: figures/bootstrap-class-example.png Graphic file (type bmp) | |||
<figures/bootstrap-class-example.png> | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 135. | |||
(babel) in language on input line 129. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 135. | |||
(babel) in language on input line 129. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 135. | |||
(babel) in language on input line 129. | |||
) | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 58. | |||
@@ -1492,87 +1492,100 @@ 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. | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 35. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 35. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 35. | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 35. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 35. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 35. | |||
[13] | |||
File: figures/custommodelcode.png Graphic file (type bmp) | |||
<figures/custommodelcode.png> | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 36. | |||
(babel) in language on input line 67. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 36. | |||
(babel) in language on input line 67. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 36. | |||
(babel) in language on input line 67. | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 36. | |||
(babel) in language on input line 67. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 36. | |||
(babel) in language on input line 67. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 36. | |||
[13] | |||
(babel) in language on input line 67. | |||
[14] | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 46. | |||
(babel) in language on input line 70. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 46. | |||
(babel) in language on input line 70. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 46. | |||
(babel) in language on input line 70. | |||
Overfull \hbox (9.91238pt too wide) in paragraph at lines 49--50 | |||
Overfull \hbox (9.91238pt too wide) in paragraph at lines 73--74 | |||
[]\T1/aer/m/n/12 Ein Django-Projekt bil-det be-reits beim Ein-rich-ten, \T1/aer/m/it/12 per De-fault\T1/aer/m/n/12 , ei-ne Administrator- | |||
[] | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 52. | |||
(babel) in language on input line 76. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 52. | |||
(babel) in language on input line 76. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 52. | |||
(babel) in language on input line 76. | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 56. | |||
(babel) in language on input line 80. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 56. | |||
(babel) in language on input line 80. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 56. | |||
(babel) in language on input line 80. | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 59. | |||
(babel) in language on input line 83. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 59. | |||
(babel) in language on input line 83. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 59. | |||
(babel) in language on input line 83. | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 64. | |||
(babel) in language on input line 88. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 64. | |||
(babel) in language on input line 88. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 64. | |||
(babel) in language on input line 88. | |||
Overfull \hbox (1.12642pt too wide) in paragraph at lines 65--66 | |||
Overfull \hbox (1.12642pt too wide) in paragraph at lines 89--90 | |||
\T1/aer/m/n/12 Tags als ein-ge-logg-ter User abon-nie-ren und ver-wal-ten Front-end und Admin-Backend? | |||
[] | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 67. | |||
(babel) in language on input line 91. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 67. | |||
(babel) in language on input line 91. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 67. | |||
(babel) in language on input line 91. | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 67. | |||
(babel) in language on input line 94. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 67. | |||
(babel) in language on input line 94. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 67. | |||
[14] | |||
(babel) in language on input line 94. | |||
) | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 67. | |||
(babel) in language on input line 59. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 67. | |||
(babel) in language on input line 59. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 67. | |||
(babel) in language on input line 59. | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 70. | |||
(babel) in language on input line 59. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 70. | |||
(babel) in language on input line 59. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 70. | |||
) | |||
(babel) in language on input line 59. | |||
[15] | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 59. | |||
Package babel Info: Redefining german shorthand "| | |||
@@ -1585,7 +1598,7 @@ Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 59. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 59. | |||
[15] | |||
[16] | |||
\openout2 = `chapters/ergebnis.aux'. | |||
(./chapters/ergebnis.tex | |||
@@ -1619,7 +1632,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. | |||
[16 | |||
[17 | |||
@@ -1651,7 +1664,7 @@ Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 62. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 62. | |||
[17 | |||
[18 | |||
@@ -1707,7 +1720,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. | |||
[18 | |||
[19 | |||
@@ -1760,7 +1773,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. | |||
[19] | |||
[20] | |||
Package atveryend Info: Empty hook `AfterLastShipout' on input line 77. | |||
(/Users/Esthi/thesis_ek/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.aux (/Users/Esthi/thesis_ek/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/titlepage/titlepage.aux) (/Users/Esthi/thesis_ek/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/abstract/abstract.aux) (/Users/Esthi/thesis_ek/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/einleitung.aux) (/Users/Esthi/thesis_ek/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/framework.aux) (/Users/Esthi/thesis_ek/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/prototyp.aux) (/Users/Esthi/thesis_ek/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/ergebnis.aux) (/Users/Esthi/thesis_ek/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/ausblick.aux) (/Users/Esthi/thesis_ek/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/fazit.aux)) | |||
Package atveryend Info: Empty hook `AtVeryEndDocument' on input line 77. | |||
@@ -1783,4 +1796,4 @@ Here is how much of TeX's memory you used: | |||
1348 hyphenation exceptions out of 8191 | |||
58i,12n,50p,10437b,943s stack positions out of 5000i,500n,10000p,200000b,80000s | |||
Output written on /Users/Esthi/thesis_ek/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.pdf (24 pages). | |||
Output written on /Users/Esthi/thesis_ek/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.pdf (25 pages). |
@@ -19,14 +19,14 @@ | |||
\contentsline {section}{\numberline {3.1}Forschungsdesign}{12}{section.3.1} | |||
\contentsline {section}{\numberline {3.2}Organisation}{13}{section.3.2} | |||
\contentsline {subsection}{\numberline {3.2.1}Datenmodellierung}{13}{subsection.3.2.1} | |||
\contentsline {subsection}{\numberline {3.2.2}Verwaltung im Administrator-Back-end}{14}{subsection.3.2.2} | |||
\contentsline {subsection}{\numberline {3.2.3}Berechtigung der User}{14}{subsection.3.2.3} | |||
\contentsline {section}{\numberline {3.3}Funktionen}{14}{section.3.3} | |||
\contentsline {subsection}{\numberline {3.3.1}Verwalten}{14}{subsection.3.3.1} | |||
\contentsline {subsection}{\numberline {3.2.2}Verwaltung im Administrator-Back-end}{15}{subsection.3.2.2} | |||
\contentsline {subsection}{\numberline {3.2.3}Berechtigung der User}{15}{subsection.3.2.3} | |||
\contentsline {section}{\numberline {3.3}Funktionen}{15}{section.3.3} | |||
\contentsline {subsection}{\numberline {3.3.1}Verwalten}{15}{subsection.3.3.1} | |||
\contentsline {subsection}{\numberline {3.3.2}Abonnieren}{15}{subsection.3.3.2} | |||
\contentsline {subsection}{\numberline {3.3.3}Filtern}{15}{subsection.3.3.3} | |||
\contentsline {subsection}{\numberline {3.3.4}Benachrichtigung}{15}{subsection.3.3.4} | |||
\contentsline {chapter}{\numberline {4}Ergebnis}{16}{chapter.4} | |||
\contentsline {subsection}{\numberline {4.0.1}Evaluierung}{16}{subsection.4.0.1} | |||
\contentsline {chapter}{\numberline {5}Zusammenfassung und Ausblick}{17}{chapter.5} | |||
\contentsline {chapter}{Referenzen}{18}{chapter*.13} | |||
\contentsline {subsection}{\numberline {3.3.4}Benachrichtigung}{16}{subsection.3.3.4} | |||
\contentsline {chapter}{\numberline {4}Ergebnis}{17}{chapter.4} | |||
\contentsline {subsection}{\numberline {4.0.1}Evaluierung}{17}{subsection.4.0.1} | |||
\contentsline {chapter}{\numberline {5}Zusammenfassung und Ausblick}{18}{chapter.5} | |||
\contentsline {chapter}{Referenzen}{19}{chapter*.13} |
@@ -1,7 +1,7 @@ | |||
\relax | |||
\providecommand\hyper@newdestlabel[2]{} | |||
\@setckpt{chapters/ausblick}{ | |||
\setcounter{page}{17} | |||
\setcounter{page}{18} | |||
\setcounter{equation}{0} | |||
\setcounter{enumi}{0} | |||
\setcounter{enumii}{0} |
@@ -1,12 +1,12 @@ | |||
\relax | |||
\providecommand\hyper@newdestlabel[2]{} | |||
\@writefile{toc}{\contentsline {chapter}{\numberline {4}Ergebnis}{16}{chapter.4}} | |||
\@writefile{toc}{\contentsline {chapter}{\numberline {4}Ergebnis}{17}{chapter.4}} | |||
\@writefile{lof}{\addvspace {10\p@ }} | |||
\@writefile{lot}{\addvspace {10\p@ }} | |||
\newlabel{ch:ergebnis}{{4}{16}{Ergebnis}{chapter.4}{}} | |||
\@writefile{toc}{\contentsline {subsection}{\numberline {4.0.1}Evaluierung}{16}{subsection.4.0.1}} | |||
\newlabel{ch:ergebnis}{{4}{17}{Ergebnis}{chapter.4}{}} | |||
\@writefile{toc}{\contentsline {subsection}{\numberline {4.0.1}Evaluierung}{17}{subsection.4.0.1}} | |||
\@setckpt{chapters/ergebnis}{ | |||
\setcounter{page}{17} | |||
\setcounter{page}{18} | |||
\setcounter{equation}{0} | |||
\setcounter{enumi}{0} | |||
\setcounter{enumii}{0} |
@@ -1,11 +1,11 @@ | |||
\relax | |||
\providecommand\hyper@newdestlabel[2]{} | |||
\@writefile{toc}{\contentsline {chapter}{\numberline {5}Zusammenfassung und Ausblick}{17}{chapter.5}} | |||
\@writefile{toc}{\contentsline {chapter}{\numberline {5}Zusammenfassung und Ausblick}{18}{chapter.5}} | |||
\@writefile{lof}{\addvspace {10\p@ }} | |||
\@writefile{lot}{\addvspace {10\p@ }} | |||
\newlabel{ch:zusammenfassung}{{5}{17}{Zusammenfassung und Ausblick}{chapter.5}{}} | |||
\newlabel{ch:zusammenfassung}{{5}{18}{Zusammenfassung und Ausblick}{chapter.5}{}} | |||
\@setckpt{chapters/fazit}{ | |||
\setcounter{page}{18} | |||
\setcounter{page}{19} | |||
\setcounter{equation}{0} | |||
\setcounter{enumi}{0} | |||
\setcounter{enumii}{0} |
@@ -9,15 +9,15 @@ | |||
\@writefile{toc}{\contentsline {section}{\numberline {3.2}Organisation}{13}{section.3.2}} | |||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.1}Datenmodellierung}{13}{subsection.3.2.1}} | |||
\@writefile{lof}{\contentsline {figure}{\numberline {3.2}{\ignorespaces CustomUserModel in models.py\relax }}{14}{figure.caption.12}} | |||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.2}Verwaltung im Administrator-Back-end}{14}{subsection.3.2.2}} | |||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.3}Berechtigung der User}{14}{subsection.3.2.3}} | |||
\@writefile{toc}{\contentsline {section}{\numberline {3.3}Funktionen}{14}{section.3.3}} | |||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.1}Verwalten}{14}{subsection.3.3.1}} | |||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.2}Verwaltung im Administrator-Back-end}{15}{subsection.3.2.2}} | |||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.3}Berechtigung der User}{15}{subsection.3.2.3}} | |||
\@writefile{toc}{\contentsline {section}{\numberline {3.3}Funktionen}{15}{section.3.3}} | |||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.1}Verwalten}{15}{subsection.3.3.1}} | |||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.2}Abonnieren}{15}{subsection.3.3.2}} | |||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.3}Filtern}{15}{subsection.3.3.3}} | |||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.4}Benachrichtigung}{15}{subsection.3.3.4}} | |||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.4}Benachrichtigung}{16}{subsection.3.3.4}} | |||
\@setckpt{chapters/prototyp}{ | |||
\setcounter{page}{16} | |||
\setcounter{page}{17} | |||
\setcounter{equation}{0} | |||
\setcounter{enumi}{0} | |||
\setcounter{enumii}{0} |
@@ -89,13 +89,7 @@ Um django-taggit zu installieren wird der folgende Befehl in die Kommandozeile e | |||
\$ pip install django-taggit | |||
\\ | |||
Im model.py wird das Feld tag neu erstellt und als Taggable Manager definiert. | |||
Au"serdem muss taggit in der settings.py unter INSTALLED\_APPS ergänzt werden. Um dem Programm mitzuteilen, dass nun eine neue Liste der Datenbank hinzugefügt werden muss, werden folgende Befehle in die Kommandozeile eingefügt: | |||
\\ | |||
\noindent\hspace*{10mm}% | |||
\$ python3 manage.py makemigrations \\ | |||
\noindent\hspace*{10mm}% | |||
\$ python3 manage.py migrate | |||
\\ | |||
Au"serdem muss taggit in der settings.py unter 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 beschreiben werden. | |||
Im Admin-Backend kann nun geprüft werden, ob das neue Feld in die Datenbank integriert wurde. Neue Tags können in das Textfeld eingetragen werden. Der Parser verarbeitet jedes Wort, dass durch ein Komma oder ein Leerzeichen getrennt ist als ein Tag. Soll dieses jedoch aus mehreren Wörtern bestehen so müssen diese mit Anführungszeichen umfasst werden. Standardmäßig unterscheidet der Taggable Manager zwischen Groß- und Kleinschreibung, Tags sind also case sensitive. Ändern kann man das, indem der Boolean TAGGIT\_CASE\_INSENSITIVE in der settings.py auf True gestellt wird. | |||
\subsection {Hilfsbibliotheken} |
@@ -1,10 +1,10 @@ | |||
\chapter{Prototyp} | |||
\label{ch:prototyp} | |||
Um die wissenschaftliche Frage nicht nur zu beantworte, sondern zu beweisen, wird in dieser Arbeit die Methode des Prototypings genutzt. Der Prototyp dient zum experimentellen Arbeiten und sichert eine strukturell fundierte Umsetzung des darauf folgenden Endprodukts. Der Fokus liegt dabei zunächst auf der Funktionalität der Anwendung (vgl. [Abr16]). Prototyping wird als bevorzugte Methode gewählt um schnell ein Ergebnis zu erzielen. Zudem soll aufbauend auf Diesem ein Produkt realisiert werden, das als Erweiterung in das Netzwerk der Hochschule eingebaut werden soll. | |||
Um die wissenschaftliche Frage, nicht nur zu beantworten, sondern zu beweisen, wird in dieser Arbeit die Methode des Prototypings genutzt. Der Prototyp dient zum experimentellen Arbeiten und sichert eine strukturell fundierte Umsetzung des darauf folgenden Endprodukts. Der Fokus liegt dabei zunächst auf der Funktionalität der Anwendung. Prototyping wird als bevorzugte Methode gewählt um schnell ein Ergebnis zu erzielen (vgl. [Abr16]). Zudem soll aufbauend auf Diesem ein Produkt realisiert werden, das als Erweiterung in das Netzwerk der Hochschule integriert werden soll. | |||
\section{Forschungsdesign} | |||
Das Kapitel zeigt eine kurze Übersicht der Vorgehensweise und den Leitfaden an den sich die Implementierung des Prototyps anlehnt. | |||
Zu Beginn der Arbeit wird, des sich aus der Forschungsfrage ergebenden Problems analysiert und alle wichtigen Anforderungen erfasst. Dies bildet die Basis für alle weitern notwendigen Schritte um am Ende eine sinnvolle Lösung bereitstellen zu können. Die Recherche dient der Sammlung aller notwendigen Werkzeuge und gibt einen Überblick über verschiedene Hilfsbibliotheken. Das Implementieren der Applikation kann nun auf Basis der Recherche durchgeführt werden. Dazu gehört das Testen verschiedener Bibliotheken und Erweiterungen um die bestmögliche Lösung zu eruieren. Abschlie"send wird die Funktionalität des Prototypen getestet und evaluiert ob die Forschungsfrage ausreichend beantwortet wird. Handlungsempfehlungen und mögliche Funktionen zum Erweitern finalisieren die Arbeit. | |||
Das Kapitel zeigt eine kurze Übersicht der Vorgehensweise und den Leitfaden an den sich die Implementierung des Prototyps anlehnt (vgl. Abbildung 3.1.). | |||
Zu Beginn der Arbeit wird, des sich aus der Forschungsfrage ergebenden Problems analysiert und alle wichtigen Anforderungen erfasst. Dies bildet die Basis für alle weitern notwendigen Schritte um am Ende eine sinnvolle Lösung bereitstellen zu können. Die Recherche dient der Sammlung aller notwendigen Werkzeuge und gibt einen Überblick über verschiedene Hilfsbibliotheken. Das Implementieren der Applikation kann nun auf Basis der Recherche durchgeführt werden. Dazu gehört das Testen verschiedener Bibliotheken und Erweiterungen um die bestmögliche Ergebnis zu eruieren. Abschlie"send wird die Funktionalität des Prototypen getestet und evaluiert ob die Forschungsfrage ausreichend beantwortet wird. Handlungsempfehlungen und mögliche Funktionen zum Erweitern finalisieren die Arbeit. | |||
\begin{figure}[!h] | |||
\centering | |||
@@ -19,14 +19,27 @@ Grundlegender Aufbau der Website, Verwaltung der Daten evlt nochmal auf Taggable | |||
\subsection{Datenmodellierung} | |||
Die Struktur der bereits bestehenden Datenbank im Django-Framework und die Erweiterungen dessen werden hier genauer erläutert. Zunächst wird auf die Ergänzung des bestehenden \textit {UserModel} eingegangen, nachdem veranschaulicht die Arbeit das \textit {PostModel} und abschlie"send werden die Zusammenhänge der Modelle dargestellt. | |||
Die Struktur der bereits bestehenden Datenbank im Django-Framework und die Erweiterungen dessen werden hier genauer erläutert. Zunächst wird auf die Ergänzung des bestehenden \textit {UserModel} eingegangen, nachdem veranschaulicht der Abschnitt das \textit {PostModel} und abschlie"send werden die Zusammenhänge der Modelle dargestellt. | |||
Alle Modelle werden als Django-Modelle deklariert um beim kompilieren des Codes dem Compiler mitzuteilen, dass diese integriert werden müssen (vgl. [Dja18]). Mit der folgenden Eingabe | |||
\\ | |||
\noindent\hspace*{10mm}% | |||
\$ python3 manage.py makemigrations | |||
\\ | |||
werden die neun Tabellen der Modelle erstellt. Um diese dann auch anwenden zu können, muss der Befehl | |||
\\ | |||
\noindent\hspace*{10mm}% | |||
\$ python3 manage.py migrate | |||
\\ | |||
darauffolgend ebenso in die Kommandozeile eingegeben werden. | |||
\textbf{UserModel:} | |||
\begin{addmargin}[25pt]{0pt} Hierbei ist das Authentifizierungssystem von Django mit einem \textit{UserModel} bereits angelegt. Dies muss für den Prototyp um das Feld \glqq tags \grqq erweitert werden, sodass ein Benutzer folgende Felder aufweist (vgl. [Dja18]): | |||
\begin{addmargin}[25pt]{0pt} | |||
Hierbei ist das Authentifizierungssystem von Django mit einem \textit{UserModel} bereits angelegt. Dies muss für den Prototyp um das Feld \glqq tags \grqq erweitert werden, sodass ein Benutzer folgende Felder aufweist (vgl. [Fou18a]): | |||
\begin{itemize} | |||
\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 \textit{CustomUser} dafür verantwortlich das neue Feld mit dem \textit{Default-User} zu verknüpfen. Durch das \textit{OneToOneField} (siehe Abbildung 3.2.) wird die Verbindung zum schon bestehenden Modell hergestellt. | |||
In models.py ist der \textit{CustomUser} dafür verantwortlich das neue Feld mit dem \textit{Default-User} zu verknüpfen. Durch das \textit{OneToOneField} (siehe Abbildung 3.2.) wird die Verbindung zum schon bestehenden Modell hergestellt. \textit{OneToOne} bildet eine einzigartige Verbindung von zwei Objekten, sodass der Rückgabewert nur aus einem Objekt besteht (vgl. [Fou18a]). Das hei"st, dass bei dieser Verbindung keine Rekursiven, also ---blaaaa oder \textit{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. | |||
\begin{figure}[!h] | |||
\centering | |||
\includegraphics[width=1\textwidth]{figures/custommodelcode} | |||
@@ -37,11 +50,21 @@ In models.py ist der \textit{CustomUser} dafür verantwortlich das neue Feld mit | |||
\end{addmargin} | |||
\textbf{PostModel:} | |||
\begin{addmargin}[25pt]{0pt} | |||
Das \textit{PostModel} beschreibt alle Felder die ein Post enthalten kann. Basierend auf der Blog-Lösung von Djangogirls.com gehören dazu folgende: | |||
\begin{itemize} | |||
\item author, title, text, created\_date, published\_date, tags | |||
\end{itemize} | |||
Der Autor ist durch einen \textit{ForeignKey} mit dem \textit{UserModel} verbunden. Diese sogenannte \textit{ManyToOne} Verbindung reicht hier aus um einem Post den Autor, also dem eingeloggten User, zuzuweisen. Title ist ein \textit{CharField} und wird mit einer Zeichenbegrenzung festgelegt. Der Text hingegen kann eine beliebige Menge an Zeichen enthalten und wir deshalb als \textit{TextField} deklariert. Erstellungsdatum und Publikation sind beides \textit{DateTimeField}s. Ersteres muss vom Ersteller angegeben werden, Zweiteres kann zunächst offen gelassen werden durch die Zusatzangabe \glqq null=True\grqq. Ein weiteres Feld tags wird hinzugefügt um den Posts unabhängig von den Usern Tags zuordnen zu können. | |||
\end{addmargin} | |||
\textbf{Gesamtmodellierung:} | |||
\textbf{Gesamtmodellierung:} | |||
\begin{addmargin}[25pt]{0pt} | |||
\end{addmargin} | |||
\subsection{Verwaltung im Administrator-Back-end} | |||
In diesem Kapitel wird beschrieben wie das Administrations-back-end genutzt werden kann. Es ist jedoch zu beachten, dass die Applikation vorwiegend von Dozenten und Angestellten der Hochschule ohne Administratorrechte verwendet werden soll. Die gestaffelten Berechtigungen werden im Kapitel \glqq Berechtigung der User \grqq genauer beschreiben. |
@@ -110,7 +110,7 @@ | |||
note = "https://docs.oracle.com/cd/E19182-01/820-6573/6nht2e5a4/index.html" | |||
} | |||
@article{Otto, | |||
@article{Otto, | |||
author = "Mark Otto", | |||
title = "Bootstrap from Twitter", | |||
year = "2011", | |||
@@ -138,7 +138,12 @@ | |||
note = "https://docs.djangoproject.com/en/2.1/ref/contrib/auth/" | |||
} | |||
@article{Django, | |||
author = "Djangogirlsgirls", | |||
title = "Creating a blog post model", | |||
year = "2018", | |||
note = "https://tutorial.djangogirls.org/en/django_models/" | |||
} | |||