Multilinguale Full-Stack App

Multilinguale Full-Stack App

Einleitung
Es existieren bereits einige MS Access-Datenbanken zum Üben und Lernen von verschiedenen Sprachen. Die Sprachen beinhalten Deutsch, Englisch, Spanisch und Italienisch. Diese Datenbanken dienen eine solide Grundlage für das Sprachtraining, sind jedoch nicht sonderlich flexibel und nutzerfreundlich. Darauf hinweg möchte man eine Web-App entwickeln, in welcher man die Sprachen benutzerfreundlich und ansehnlich üben kann. Durch die Entwicklung einer Web-App wird das Lernen der Sprachen für die Nutzer zudem plattformunabhängig. Ziel des Projekts ist die Entwicklung einer multilingualen Full-Stack-App, die das Üben mehrerer Sprachen unterstützt und auf moderne Webtechnologien basiert.
Durch die Entwicklung einer Full-Stack-Web-App können die Nutzer ihre Sprachfähigkeiten jederzeit und von jedem Gerät aus verbessern, ohne an eine bestimmte Plattform gebunden zu sein. Dies ermöglicht eine höhere Verfügbarkeit und Zugänglichkeit, was gerade im Bereich des Lernens von entscheidender Bedeutung sein kann.

Ziele
Die Arbeit verfolgt im Wesentlichen drei Hauptziele:

  1. Migration der bestehenden MS Access-Datenbanken nach MongoDB. Die bisher genutzten MS-Access Datenbanken sind für Webanwendungen ungeeignet, während MongoDB als moderne NoSQL-Datenbank bietet hingegen mehr Flexibilität, Skalierbarkeit und bessere Performance.
  2. Die Entwicklung einer Fullstack-App, die Abfragen über unterschiedliche Datenbanken ermöglicht. Dabei wird auf eine bestehende App zurückgegriffen, aus der sowohl Daten, als auch Frontendelemente übernommen werden können.
  3. Die Entwicklung einer benutzerfreundlichen Oberfläche für intuitive Abfragen und übersichtliche Ergebnisvisualisierung.

Methodik
Analyse
Zuerst wird die Ausgangssituation der vorhandenen Datenquellen und der bestehenden Infrastruktur erfasst. Dazu gehört die Prüfung der alten MS-Access Datenbanken sowie der bereits existierenden MongoDB-Datenbank. Dabei soll festgestellt werden, welche Tabellen, Felder und Inhalte weiterhin relevant sind und wie sie in ein neu entwickeltes Schema überführt werden können.
Parallel dazu werden die Anforderungen für die neue Anwendung festgelegt, zum Beispiel die Mehrsprachigkeit (Deutsch, Englisch, Spanisch, Italienisch) und die Nutzung von Next.js als Framework. Auf Grundlage dieser Analyse wird definiert, welche Funktionen die Applikation abdecken soll und wie die Datenbankstruktur gestaltet werden muss, um die gewünschten Anforderungen zu erfüllen.
Recherche
Die Recherche umfasst die Datenmigration von MS Access nach MongoDB, das Erlernen von Next.js und die Untersuchung von Best Practices für MongoDB, um eine skalierbare und effiziente Datenstruktur für mehrsprachige Datensätze zu gewährleisten
Umsetzung
In der Entwicklungsphase werden folgende Schritte implementiert:

  • Migration: Die MS-Access Daten werden mithilfe eigener Skripte exportiert, bereinigt und in die neue MongoDB- importiert. Gleiches gilt für die alte MongoDB, deren deutschsprachige Datensätze an das neue Schema angepasst werden.
  • Neues Datenbankschema: In MongoDB wird eine dokumentenorientierte Struktur etabliert, die Mehrsprachigkeit unterstützt und flexibel genug ist, um weitere Sprachen oder Lernkategorien hinzuzufügen.
  • Next.js Applikation: Es wird eine vollständige Applikation entwickelt, die sowohl das Frontend als auch das Backend mit Next.js abdeckt. Dies schliesst ein responsives Layout, Routing-Konzepte für verschiedene Sprachen und die Erstellung von wiederverwendbaren Lern-Komponenten mit ein.
    Die Umsetzung erfolgt iterativ. Damit Verbesserungen an den verschiedenen Stellen stets schnell implementiert werden können.

Ergebnisse
Datenmigration
Im Verlauf der Migration wurden die Tabellen aus den MS-Access Datenbanken (Englisch, Spanisch, Italienisch) sowie die alte deutsche MongoDB in insgesamt sieben neue Collections überführt. Mithilfe der Python-Skripte und PyMongo-Clients konnten:

  • 6842 Datensätze aus Access exportiert und in JSON überführt werden.
  • 2048 deutsche Vokabeln, 710 englische Stichwörter, 199 spanische Vokabeln und 263 italienische Präpositional-Verben in die neue MongoDB importiert werden.
  • Aus der alten deutschen MongoDB ca. 2200 Datensätze (deutschs, praepositions, praepverbens, redewendungen) konsistent migriert werden.
  • Fehlende Übersetzungen sowie Inkonsistenzen (leer Zeichenketten, null-Datefelder) mithilfe von Compass-Stichproben erkannt und in rund 150 Fällen manuell nachbearbeitet wurden.
    Die Umsetzung verlief ohne kritische Datenverluste, da das Error-Handling in den Skripten Duplikate übersprang und alle anderen Exceptions in migration_errors.log protokolliert wurden.

GitHub Repository
Multilingual Full-Stack App