diff --git a/chapters/stand-der-technik.tex b/chapters/stand-der-technik.tex index 35b2488..b3a00ba 100644 --- a/chapters/stand-der-technik.tex +++ b/chapters/stand-der-technik.tex @@ -6,5 +6,45 @@ eine PHP-Bibliothek zur Erzeugung von QR-Codes und eine Javascript-Bibliothek zu \section{Die bestehende Webseite} Als Mitentwickler des Projektes ist dem Author dieser Ausarbeitung bekannt, dass die bestehende Webseite von -\ac{WM} ist ein TYPO3-Redaktionssystem ist. Das Frontend der Webseite wird mit Webpack und Sass übersetzt. +\ac{WM} ein TYPO3-Redaktionssystem ist. Das Frontend der Webseite wird mit Webpack und Sass übersetzt. Webpack ist ein Modulbundler \cite{bib:smashmagazine-webpack} und Sass ein CSS-Präprozessor \cite{bib:w3schools-sass}. + +\section{QR-Codes erstellen} +Um mit QR-Codes zu arbeiten, ist es unabdinglich, QR-Codes zu erstellen, da dieselben sonst nicht vorhanden sind. +Prinzipiell gibt es zwei Möglichkeiten QR-Codes zu erstellen: Auf Browserseite in JavaScript und auf Serverseite in PHP. +Das ist so, da es lediglich diese zwei Domänen gibt. + +\subsection*{Javascript-Implementationen} +\subsubsection*{jquery-qrcode} +\textit{jquery-qrcode} ist ein Plugin für JQuery um dynamisch QR-Codes auf Browserseite zu generieren. +Jedoch verweist diese Bibliothek selbst auf ihren desolaten Zustand und empfielt stattdessen \enquote{kjua} zu verwenden +\cite{bib:larsjung-jquery-qrcode}. Somit scheidet jquery-qrcode für nähere Evaluationen aus, da die Software nicht mehr +gepflegt wird. + +\subsubsection*{kjua} +\textit{Kjua} ist eine Javascript-Bibliothek, um dynamisch QR-Codes auf Browserseite zu generieren. +Im Gegensatz zu \textit{jquery-qrcode} funktioniert Kjua auch ohne JQuery. Es werden diverse Stilattribute für gestaltete +QR-Codes unterstützt \cite{bib:larsjung-kjua}. Kjua setzt QR-Codes über HTML-Canvas um. Das ist bei näherer Betrachtung +der Kjua Tech Demo \enpointy{https://larsjung.de/kjua/latest/demo} ersichtlich, jedoch nicht explizit erwähnt. + +\subsubsection*{soldair/node-qrcode} +\textit{Soldair/node-qrcode} ist eine node.js-basierte Implementation eines QR-Code Generators und bietet somit Funktionialität +serverseitig, als CLI, sowohl als auch Browserseitig an. Die Readme-Datei zeugt von Länge, ist reich an Beispielen +und detailreichen Erklärungen. Der letzte Commit ist zu diesem Zeitpunkt knapp älter als ein halbes Jahr. Somit macht das +Projekt einen moderat gepflegten Eindruck. Die Readme-Datei verweist auf Unit Tests bei Travis, jedoch lief die letzte Pipeline +vor circa zwei Jahren, Februar 2021, durch und schlug zudem fehl. Einige Pull-Requests und Issues werden seit Jahren ignoriert +\cite{bib:soldair-node-qrcode}. +Die Bibliothek wurde 74 Millionen mal heruntergeladen \cite{bib:npmjs-soldair-node-qrcode}. + +\subsection*{PHP-Implementationen} +\subsubsection*{chillerlan/php-qrcode} +Eine arrivierte Lösung für QR-Code Generierung in PHP ist \textit{chillerlan/php-qrcode}, umgesetzt durch +Eugen Rochko und weitere. Das zeigt sich durch den zu diesem Zeitpunkt auf 5 Millionen stehenden Downloadzähler, +mehrere Entwickler und den letzten Commit, der zu diesem Zeitpunk nicht älter als einen Monat alt ist. +Insgesamt erfolgten bis dato 808 Commits von 6 Entwicklern. Das Projekt verfügt über Unit-Tests, +die 90\% der Zeilen in der Codebase abdecken. Rochko übernahm Teile der Codebase aus +dem Java-Projekt \enquote{ZXing} und übersetzte diese zu PHP. +Issues und Pull Requests sind alle bearbeitet. Es gibt keine unbeantworteten Issues oder Pull-Requests. +\textit{chillerlan/php-qrcode} basiert auf einer angepassten Version von \textit{kazuhikoarase/qrcode-generator}. +Einzig auffällig sind die Commitnachrichten, die zuteils nur aus einem (1) Emoji bestehen +\cite{bib:chillerlan-php-qrcode}. diff --git a/dexes/literature.bib b/dexes/literature.bib index 7bc901f..6a050a9 100644 --- a/dexes/literature.bib +++ b/dexes/literature.bib @@ -140,3 +140,43 @@ year = {2023}, note = {Zugriff: Januar 2023} } + +@misc{bib:larsjung-jquery-qrcode, + author = {Lars Jung}, + howpublished = "\url{https://github.com/lrsjng/jquery-qrcode/blob/master/README.md}", + title = {{jquery-qrcode readme.md}}, + year = {2020}, + note = {Zugriff: Januar 2023} +} + +@misc{bib:larsjung-kjua, + author = {Lars Jung}, + howpublished = "\url{https://larsjung.de/kjua/}", + title = {{kjua dynamically generated QR codes}}, + year = {2020}, + note = {Zugriff: Januar 2023} +} + +@misc{bib:soldair-node-qrcode, + author = {Ryan Day}, + howpublished = "\url{https://github.com/soldair/node-qrcode}", + title = {{QR code/2d barcode generator}}, + year = {2020}, + note = {Zugriff: Januar 2023} +} + +@misc{bib:npmjs-soldair-node-qrcode, + author = {{npm, inc}}, + howpublished = "\url{https://www.npmjs.com/package/qrcode}", + title = {{QR code/2d barcode generator}}, + year = {2020}, + note = {Zugriff: Januar 2023} +} + +@misc{bib:chillerlan-php-qrcode, + author = {Eugen Rochko}, + howpublished = "\url{https://www.npmjs.com/package/qrcode}", + title = {{QR code/2d barcode generator}}, + year = {2022}, + note = {Zugriff: Januar 2023} +} diff --git a/main.pdf b/main.pdf index a3913fb..f09bcad 100644 Binary files a/main.pdf and b/main.pdf differ