Fablab Factory sucht Studenten & Freiberufler!

Möchten Sie Teil unseres Teams werden und sind in der Liste der Projekte unten eines oder mehrere dabei, die Sie interessieren? Dies ist möglich als Student während der Sommerferien, oder dauerhaft während des Jahres.

Sind Sie Absolvent und/oder haben Sie solide Kenntnisse in der Softwareentwicklung (Backend, Frontend oder Computational Geometry) zögern Sie nicht, uns zu kontaktieren. Wir sind immer auf der Suche nach solchen Profilen!

Kontaktieren Sie uns über den untenstehendes Formular und geben Sie an, woran Sie interessiert sind. Ein Portfolio ist immer willkommen!

Unser Auftrag

Wir wollen jedem die Chance bieten, ein Maker zu werden - ausgestattet mit den notwendigen Kompetenzen in STEAM (Science, Technology, Engineering, Arts & Mathematics) und CT (Computational Thinking).

Aktivitäten

Die Fablab Factory wurde 2015 gegründet, zunächst mit dem Ziel, Schulen und anderen Organisationen die Infrastruktur, das Know-how und die Schulungen zur Verfügung zu stellen, die sie benötigen, um ein Fablab zu starten. Ab 2019 haben wir auch ein Angebot, das speziell auf den Kontext von Bibliotheken ausgerichtet ist, FabLib wurde geboren! Ebenfalls im Jahr 2019 haben wir mit der Entwicklung einer fortschrittlichen digitalen Lernplattform begonnen - Lernen, machen & teilen, das Ende 2020 in der Beta-Phase gestartet wurde. Damit ist FabLab Factory auf dem besten Weg, ein Software-EdTech (Educational Technology) Unternehmen zu werden. Im Herbst 2021 werden wir ein STEAM-Paket für den Bildungsbereich auf den Markt bringen. 

Lernen Machen Teilen

Wenn Sie surfen zu learnmakeshare.io, können Sie sich dort als Gast anmelden.

Das Ziel dieses LMS ist es, jedem, ob jung oder alt, die Möglichkeit zu geben, Maker-Kompetenzen zu erwerben. Zu diesem Zweck ruht es auf 3 Säulen: Lernen, Machen und Teilen. In den folgenden Abschnitten werden wir dies näher erläutern. 

Das entwickelte Lernmaterial konzentriert sich derzeit auf Jugendliche zwischen 10 und 14 Jahren, natürlich ist es die Absicht, diesen Bereich vollständig zu erweitern.

Wichtig ist, dass dieses LMS bis Ende 2021 in der Beta-Phase ist und bleiben wird.

Software-Projekte:

Der eingebaute WYSIWYG-Editor in Moodle verwendet veraltete Technologie (buchstäblich). Einen komplett proprietären Editor zu implementieren ist derzeit unmöglich, ebenso wie die Entwicklung eines eigenen LMS. Also müssen wir den bestehenden Editor verbessern. Dieses Projekt ist phasenweise angelegt.

1. PHASE I

Die erste Phase dieses Projekts besteht darin, den Editor aufzuräumen. Konkret:

  • Entfernen von nicht benötigten Plugins
  • Hinzufügen eines "html cleaner + formatter", der den Inhalt in Echtzeit nach unseren Richtlinien formatiert. Es ist wichtig, dass alle Komponenten die richtigen Klassen enthalten, damit unser CSS seine Arbeit machen kann. Außerdem müssen seltsame Konstruktionen entfernt/angepasst werden.
  • Verschieben Sie ggf. eingefügte Bilder auf unseren eigenen Dateiserver, damit der Übersetzungsserver seine Arbeit tun kann.

2. PHASE II

Zu diesem Zeitpunkt sollte der Editor bereits gutes, sauberes Html abspielen, aber er ist deshalb noch nicht nutzbar. In dieser Phase wird die UX angegangen, indem der Editor in einen blockbasierten Editor umgewandelt wird. Konkret wird der Editor in Echtzeit anzeigen, welche Komponenten man hinzufügen kann. Die einzige Möglichkeit, eine solche Komponente hinzuzufügen, besteht darin, einen Button zu drücken und ein Pop-up auszufüllen.

Voraussetzungen

  • PHP, Javascript

In diesem Projekt geht es um den Share-Teil von Learn Make Share. Genauer gesagt, wird es eine (abgespeckte) Mahara-Instanz sein. Sie muss nicht nur mit Moodle integriert werden, sondern auch mit unserem ID-Anbieter und unserem Übersetzungsserver. Der Editor soll betrachtet werden (kann ein eigenes Projekt sein), um es so einfach wie möglich zu machen, ein eigenes Portfolio zu erstellen.

Voraussetzungen

  • PHP, Javascript
  • Muss in der Lage sein, selbstständig anhand der Dokumentation zu arbeiten

Bezogen auf den Vorschlag DESIGN4: UI/UX E-Portfolio

In dieser Phase wird das Backend des 3DSlicers angesprochen. Er wird als oauth2-Client (genau wie der SVG-Editor) mit unseren API-Servern verbunden, so dass z. B. folgende Dinge möglich werden:

  • Abschirmungsoptionen auf Basis von Badges
  • Auflistung der verfügbaren Geräte
  • Machen Sie gcode sofort auf dem persönlichen Laufwerk und den Maschinen verfügbar, sofern Sie mit dem lokalen Netzwerk verbunden sind.

Voraussetzungen

  • Javascript, ...
  • Webentwicklung im Allgemeinen

Jeder Makercart wird schließlich mit einem IoT-Gerät ausgestattet, um unter anderem die Maschinen zu überwachen. Derzeit synchronisiert sich dieses Gerät kontinuierlich mit einem (eine Art) öffentlichen Drive-Ordner und bietet die Dateien unseren Maschinen an. Mit der Zeit wird das natürlich nicht mehr ausreichen. Das könnte ein großes Projekt werden, daher arbeiten wir in Phasen:

1. PHASE I

Die erste Phase wird darin bestehen, diese Geräte mit unseren API-Servern zu verbinden. Konkret wird die Authentifizierung über ein Machine-to-Machine-Geheimnis erfolgen. Das IoT-Gerät kann dann z. B. einen Websocket mit einem bestimmten Endpunkt offen halten oder in regelmäßigen Abständen abfragen.

Das IoT-Gerät muss den Status der Maschinen und die Nutzung an eine Art Protokollierungsendpunkt veröffentlichen. Benutzer mit den entsprechenden Berechtigungen können diese Informationen dann abrufen.

Beachten Sie, dass die Maschine nicht mit persönlichen Informationen arbeitet. Dafür ist ein einfaches Machine-to-Machine-Geheimnis nicht sicher genug.

2. PHASE II

Nach der zweiten Phase wird es auch möglich sein, sich direkt mit den Maschinen zu verbinden, vorausgesetzt, dass Sie dazu berechtigt sind (z. B. aufgrund von Ausweisen) und mit dem lokalen Netzwerk verbunden sind.

Dafür wird das Gerät einen relativ kleinen HTTP-Server betreiben müssen. Nun haben wir es aber mit personenbezogenen Daten zu tun, so dass der externe API-Server auch hier eine wichtige Rolle bei der Authentifizierung spielen wird. Konkret wird die Authentifizierung mit einer teilweise automatisierten Version des OpenID Connect-Geräteablaufs erfolgen. Daher wird auch ein benutzerdefiniertes clientseitiges Javascript-Modul entwickelt werden müssen, um diese Authentifizierung zu steuern.

Einige Beispiele für Dinge, die nach Phase II möglich sein sollten:

  • Laden Sie im SVG-Editor einen Scan von Laserschneidern, die eine Kamera enthalten (wie die Beambox)
  • Sofortiges Senden von Dateien aus dem Browser (SVG-Editor, 3DSlicer, ...) an die Maschinen.
  • Anstatt mit einem öffentlichen Laufwerk zu arbeiten, können wir jetzt ein "persönliches Laufwerk" einbinden. Wenn Sie G-Code erzeugen, landet die Datei automatisch auf diesem Laufwerk.

Voraussetzungen

  • Guter Umgang mit Linux-bezogenen Themen
  • Javascript, Typescript, ...
  • Grundlegende Kenntnisse über API-Design, OpenID Connect (oder Oauth2), Sicherheit, ...

Mit dem SVG-Editor wollen wir auch in der Lage sein, Maschinencode für Stickereimaschinen zu erzeugen. Typische Dateiformate sind .pes und .dst

Die Generierung von Maschinencode auf der Basis einer .svg-Datei wird serverseitig durchgeführt.

Einige der Funktionen, die wir implementieren wollen:

  • Geben Sie für jeden Vektor (oder jede Gruppe von Vektoren) an, mit welchem Stich er ausgeführt werden soll.
  • umschlossene Flächen (2D-Füllungen) mit bestimmten Füllmustern entsprechend einer vorgegebenen Ausrichtung füllen.
  • Konvertierung eines Bitmaps in ein Kreuzstichmuster (z. B. HaftiX).

Voraussetzungen

  • Computergestützte Geometrie (Lineare Algebra/Metrologie)
  • Python

Wenn Bitmap-Bilder für die Darstellung auf physischen Medien durch digitale Fertigung verwendet werden, müssen sie zunächst in ein sogenanntes Rasterbild umgewandelt werden. Hierfür gibt es verschiedene Raster-Algorithmen:

  • geordnetes Dithering-Raster
  • Fehlerdiffusionsraster (Stucki, Floyd-Steinberg, Jarvis)
  • Farbe en Schwarz/Weiß

Die Erzeugung von Rasterbildern wird serverseitig abgewickelt. Es ist beabsichtigt, verschiedene Algorithmen für Laserschneider zu implementieren und weiter zu optimieren.

Voraussetzungen

  • Bildverarbeitung (bvb openCV)
  • Python

Design-Projekte (+ Implementierung):

Der eingebaute WYSIWYG-Editor in Moodle verwendet veraltete Technologie (buchstäblich). Einen komplett proprietären Editor zu implementieren ist derzeit unmöglich, ebenso wie die Entwicklung eines eigenen LMS. Also müssen wir den bestehenden Editor verbessern. Dieses Projekt ist phasenweise angelegt.

1. PHASE I

Die erste Phase in diesem Projekt ist das Aufräumen des Editors. Genauer gesagt:

  • Unnötige Plugins entfernen
  • Hinzufügen eines "html cleaner + formatter", der den Inhalt in Echtzeit nach unseren Richtlinien formatiert. Wichtig ist, dass alle Komponenten die richtigen Klassen enthalten, so dass unser CSS seine Arbeit machen kann. Außerdem müssen seltsame Konstrukte entfernt/angepasst werden.
  • Verschieben Sie ggf. eingefügte Bilder auf unseren eigenen Dateiserver, damit der Übersetzungsserver seine Arbeit machen kann.

2. PHASE II

Zu diesem Zeitpunkt sollte der Editor bereits gutes, sauberes HTML ausgeben, ist aber deshalb noch nicht nutzbar. In dieser Phase wird die UX angegangen, indem der Editor in einen blockbasierten Editor umgewandelt wird. Konkret wird der Editor in Echtzeit anzeigen, welche Komponenten man hinzufügen kann. Die einzige Möglichkeit, eine solche Komponente hinzuzufügen, besteht dann darin, einen Button zu drücken und ein Pop-up auszufüllen.

Voraussetzungen

  • PHP, Javascript

Die erste Phase ist die Umgestaltung des 3DSlicers in unseren Hausstil. Das Restyling muss so erfolgen, dass wir immer noch relativ einfach aus dem Hauptentwicklungs-Repository "Rosinenpicken" können.

Voraussetzungen

  • Javascript, ...
  • Webentwicklung im Allgemeinen

Weitere Arbeit am aktuellen Design, Hinzufügen von Erweiterungen und zusätzlichen Funktionen. Pen-Touch-Fähigkeit dieser Anwendung für Tablets.

Voraussetzungen

  • Javascript, ...
  • Webentwicklung im Allgemeinen

Benutzer des LMS werden auch in der Lage sein, ein E-Portfolio zu erstellen. Hierfür lassen wir uns von verschiedenen Erstellungsplattformen inspirieren, wie z. B. Instructables und thingiverse Vielleicht wird das Backend des Systems auf Mahara basieren.

Voraussetzungen

  • Javascript, ...
  • Webentwicklung im Allgemeinen

Bezogen auf den Vorschlag SOFTWARE2: Abschnitt Freigabe einrichten

Sind Sie die Person, die wir suchen?