Kurzbeschreibung:

Für ein Unternehmen im Lebensmittel-Fachgroßhandel wird eine Web-Applikation zur Evaluation des Suchalgorithmus einer Zweitsoftware sowie der Visualisierung der Ergebnisse, entwickelt. Das Ziel ist es, signifikante Aussagen über die Qualität der Suche und Änderungen am Suchalgorithmus treffen zu können.

Ergänzung:

Die zu entwickelnde Anwendung besteht aus Front- und Backend. Im webbasierten Frontend werden neue Evaluationen der Suchergebnisse angelegt und verwaltet. Zusätzlich dazu bietet das Frontend eine Funktion, um die Ergebnisse der Evaluation grafisch darzustellen. Im Backend werden Suchanfragen per RESTful Schnittstelle an die Anwendung weitergleitet, die für Suche zuständig ist, und Suchergebnisse aus dieser Anwendung über die Schnittstellen wieder empfangen. Anschließend werden die Suchergebnisse ausgewertet und in einer NoSQL-Datenbank (MongoDB) im JSON-Format gespeichert. Bei der Erstellung des Frontends werden JavaScript-Frameworks (React, Redux, Material UI) verwendet und das Backend wird auf Basis von Java und Spring-Boot erstellt. Um mehr Flexibilität und Effizienz im Betrieb zu erreichen, werden die Datenbank, das Front- und das Backend in separaten Docker-Containern betrieben. Bei der Entwicklung der Anwendung wird GitLab CI für Versionsverwaltung und Deployment verwendet.

Fachbeschreibung:

Die Applikation kommuniziert über eine dedizierte Schnittstelle mit dem Backend der zu bewertenden Suchmoduls. Zurück gelieferte Suchergebnisse werden anhand eines vordefinierten Testdatensatzes evaluiert. Der Testdatensatz enthält die zu erwartenden Ergebnis-Dokumente für festgelegte Suchanfragen. Die von der Suche ermittelten Dokumente werden mit den erwarteten Dokumenten abgeglichen und mittels Precision (https://en.wikipedia.org/wiki/Precision_and_recall) bewertet. Mit der Webanwendung ist es möglich, Evaluationsläufe über einen Suchalgorithmus zu starten und visualisieren. Die Visualisierung der Ergebnisse erfolgt in Form von Tabellen und Graphen, um eine schnelle Übersicht über die Qualität der Suche sowie der Qualitätsveränderung über die Zeit erhalten zu können. Durch die automatisierte Evaluation der Suchergebnisse wird die Bearbeitungszeit von einzelnen Auswertungen reduziert und die Tester werden von eintönigen Tätigkeiten entlastet.