🇩🇪 🇬🇧

BlattWerkzeug-Entwicklung

BlattWerkzeug ist ein OpenSource-Projekt, konkret wird es unter der AGPL-3.0 bereitgestellt. Es hat also jeder (auch du!) das Recht, in den Quelltext hineinzuschauen oder ihn sogar zu verändern.

Der Quelltext lässt sich sowohl online betrachten als auch mit git ausschecken.
An welchen Features wird gerade gearbeitet? Wer macht eigentlich was? Diese organisatorischen Fragen werden mit dem Kanban-Board geklärt.
Continous Integration Pipeline Via Azure DevOps und Docker-Images
Kompiliert das Projekt noch nach meinem letzten Commit? Laufen die Testfälle noch durch? Der CI-Dienst läuft nach jedem "push" und findet es heraus.

Projektvorschläge

Interessierte Studierende finden hier Themenvorschläge, an der FH Wedel können diese auch im Rahmen diverser Projekte, Seminare oder Abschlußarbeiten bearbeitet werden:

  • Anfertigung einer internen Bachelor- oder Master-Thesis. In diesem Fall erfolgt die Bearbeitung in Kooperation mit der CAU Kiel, die Erstbegutachtung wird durch Dr. Frank Huch vorgenommen.
  • In von mir angebotenen Seminaren werden immer wieder passende Themen vergeben. Sofern Sie mit einem fĂĽr mich interessantes Thema aus dem Web-Umfeld auf mich zukommen nehme ich auch gerne Vorschläge entgegen.
  • FĂĽr Bachelor Medieninformatiker ist es möglich das Medien-Projekt zu absolvieren, Informatik-Master-Studierende können das Master-Projekt einbringen.

BlattWerkzeug ist mittlerweile ein komplexes Software-Produkt und eignet sich hervorragend um viele typische Verfahren moderner Softwareentwicklung kennenzulernen:

Test Driven Development
Wann immer möglich beginnt die Entwicklung eines neuen Features mit der Formulierung von Testfällen. Lediglich komplexe grafische Oberflächen sind davon aktuell leider ausgenommen.
Docker & Continuous Integration
Aufbauend auf Docker-Images wird BlattWerkzeug nach Commits regelmäßig automatisch übersetzt und getestet.
Single Page Applications & API-Server
Das BlattWerkzeug-Frontend ist eine Angular-Anwendung, der serverseitige Teil verwendet Ruby on Rails.
Visualisierung von SQL-Abfragen

SQL-Abfragen lassen sich recht anschaulich erläutern, weil das Ergebnis von jeder SQL-Komponente immer wieder eine eigene Zwischentabelle ist. Allerdings sind diese Zwischenschritte für den Benutzer nicht besonders transparent: Gängige Datenbanksoftware zeigt immer nur das Endergebnis, ein Anwender muss die entsprechenden Schritte manuell ein- oder aus-kommentieren.

Im Rahmen dieses Projektes sollen bestehende BlattWerkzeug-SQL-Abfragen schrittweise ausgefĂĽhrt und sinnvoll visualisiert werden. Dazu muss der Syntaxbaum einer Abfrage in eine Abfolge von aufeinander aufbauenden Abfragen transformiert werden. Dabei sollen mindestens (OUTER) JOIN-Operationen in mehreren Schritten gezeigt werden (Kreuzprodukt bilden, innere VerknĂĽpfung, NULL-Werte) und die Inhalte von Gruppierungen sichtbar gemacht werden.

Umgebung: BlattWerkzeug-Syntaxbäume, TypeScript mit Angular

Kurs für Reguläre Ausdrücke

Reguläre Ausdrücke lassen sich vergleichsweise gut anhand von Beispielen erläutern. Man präsentiert dem Nutzer bestimmte Ausdrücke und Eingaben und führt ihn so schrittweise ein. Das kommerzielle Angebot "Execute Program" zeigt sehr schön, wie ein solcher Kurs aussehen könnte.

Um ähnliche Ansätze in BlattWerkzeug zu ermöglichen, bedarf es zunächst der Definition und Implementierung von Regulären Ausdrücken an sich. Dabei soll natürlich nicht der gesamte mögliche Sprachumfang abgebildet werden, sondern ein sorgsam gewählter Satz an didaktisch sinnvollen Funktionalitäten. Die implementierte Sprache soll dann im Rahmen einer interaktiven Test-Umgebung zum Einsatz kommen. Dem Anwender werden eine Reihe von beispielhaften Eingaben samt erwartetem Ergebnis vorgegeben. Mittels des generierten Block-Editors soll er dazu einen Ausdruck bauen, der alle Testfälle erfüllt.

Umgebung: BlattWerkzeug-Sprachdefinitionen, TypeScript mit Angular

Community-Funktionen fĂĽr SchĂĽler

BlattWerkzeug soll in einem überschaubarem Rahmen mit Community-Funktionen ausgestattet werden. Dazu gehören Kommentare zu Projekten, eine Foren-artige Kommunikationsmöglichkeit und persönliche Direktnachrichten. Diese Funktionalität soll allerdings nicht von Grund auf neu entwickelt werden: Der Nutzen steht dabei in keinem Verhältnis zum Aufwand, vor allem weil entsprechende Software schon existiert.

Stattdessen sollen bestehende Community-Platformen in Bezug auf ihre Eignung für die Integration evaluiert werden. Ein erster Ausgangspunkt für die Recherche sollten bestehende OpenSource Foren-Programme wie Discourse sein, eine Liste mit möglichen Kandidaten findet sich bei Awesome Selfhosted. Die schlussendlich gewählte Software soll dann in BlattWerkzeug integriert werden. Dazu gehört mindestens ein gemeinsamer Login und die Integration von Kommentaren zu Projekten oder Nachrichten. Weitere Aspekte sind abhängig von der ausgewählten Software.

Umgebung: Eigene Konzeption und Recherche, Anbindung der gewählten Software

Konzeption & initiale Implementierung eines Backends fĂĽr Lehrer

Aktuell ist die Benutzerverwaltung von BlattWerkzeug noch sehr rudimentär und keinesfalls auf die Bedürfnisse von Lehrern ausgerichtet. Es fehlen vor allem Werkzeuge zur Verwaltung von ganzen Gruppen an Benutzern. Dabei ist jedoch aktuell noch fast völlig undefiniert, wie der Umgang von Schülern und Lehrern genau zu gestalten ist. Mindestens sollten Lehrer in der Lage sein, mehrere Schüler auf einmal einzuschreiben und diesen auch Projekte vorzugeben.

Darüber hinaus stellt sich vor allem die Frage, wie Lehrer ihre Projekte sinnvoll an Gruppen von Schüler-Nutzern weitergeben können. Problematisch ist vornehmlich, dass die Projekte häufig einen Kern an recht statischen Inhalten wie Datenbanken haben. Es ist prinzipiell zwar möglich, wenn auch ineffizient, diese Daten schlicht zu kopieren. Dann ergeben sich allerdings Probleme, wenn solche statischen Daten vom Lehrer aktualisiert werden müssen.

Umgebung: Eigene Konzeption und Recherche, TypeScript mit Angular, Ruby mit Rails

Visueller Drag & Drop Editor fĂĽr Datenbanken

Aufbauend auf der Bachelor-Thesis von Marco Pawloski soll ein Datenbank - Editor mit Drag & Drop - Funktionalität entwickelt werden. Die visuelle Gestaltung und die Benutzerführung kann sich dabei gerne an etablierten Tools wie der MySQL - Workbench oder pgModeler orientieren. Allerdings müssen die speziellen Anforderungen der Zielgruppe (Schüler und deren Lehrer) explizit berücksichtigt werden.

Umgebung: TypeScript mit Angular