wrote js and php implementations of qr code generators in stand der technik

This commit is contained in:
Leon Etienne 2023-01-20 10:18:56 +01:00
parent 52c2329190
commit 173dd63f2e
Signed by: leonetienne
SSH Key Fingerprint: SHA256:hs2AZKjRTbd2kYg44u89rM19UT2LyBOpSbIShsdkkfg
3 changed files with 81 additions and 1 deletions

View File

@ -6,5 +6,45 @@ eine PHP-Bibliothek zur Erzeugung von QR-Codes und eine Javascript-Bibliothek zu
\section{Die bestehende Webseite} \section{Die bestehende Webseite}
Als Mitentwickler des Projektes ist dem Author dieser Ausarbeitung bekannt, dass die bestehende Webseite von 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}. 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}.

View File

@ -140,3 +140,43 @@
year = {2023}, year = {2023},
note = {Zugriff: Januar 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}
}

BIN
main.pdf

Binary file not shown.