Projekte, Partnerschaften und Websites:

Das ist ein kleiner Auszug meiner privaten Aktivitäten und Projekte. Wenn Teil des Projektes eine Homepage ist findet sich immer ein entsprechendes Bild mit ein paar Geräten auf denen die Website geöffnet ist, für Projekte mit Banner oder Artworks werde ich diese entsprechend Nutzen.

Bei den Projekten findet sich dann entsprechend auch immer ein Verweis auf den Code, die Website, ein Manifest oder ähnliches. Zusätzlich habe ich überall angepinnt, welche Kompetenzen ich für das Projekt einsetzen konnte.


Code-Paste-Tool 3.0

Code-Paste-Tool 3.0

Beginn

Juli 2016

Link

https://paste.timo-reymann.de...

Kompetenzen

CSS3 Responsive Design Git NGINX SQL PHP Vue Webpack HTML5

Um das Codesharing unter eigener Kontrolle zu verbessern entschied ich mich dafür ein eigenes Paste-Tool zu entwickeln, statt auf einen Fremdanbieter zu vertrauen.

Dieses Tool ermöglicht das zeitliche begrenzte Speichern von Code-Snippets oder einfachem Plain Text. Die Anwendung ist hierbei logisch in eine API und die Benutzeroberfläche gegliedert.

Somit erfolgt das Rendering komplett clientseitig. Dies ermöglicht eine schnelle Ladezeit und eine flotte Benutzererfahrung.

KerzenWinni

KerzenWinni

Beginn

Juni/Juli 2016

Link

https://kerzenwinni.de/?pk_campaign=port...

Kompetenzen

SQL Git NGINX HTML5 Bootstrap PHP Responsive Design Suchmaschinenoptimierung CSS3

Für KerzenWinni entstand in enger Absprache mit dem Inhaber ein One-Pager mit Kontaktformular, Terminkalender und Gästebuch.

Zudem übernehme ich Hosting und Wartung von Homepage und Server. Besonderen Wert wurde bei der Homepage auf eine zügige Ladezeit gelegt, hierbei werden die Inhalte above the fold sofort geladen, während erst nach dem Scrollen sichtbare Elemente der Seite über separate asynchrone Serveranfragen eingebunden werden. Die Galerie lädt hierbei die benötigten Bilder erst, wenn das entsprechende Bild benötigt wird. Dies ermöglicht auf mobilen Endgeräten eine schnelle Ladezeit und spart Datenvolumen. Gerade deswegen wichtig, weil über 89 % der Aufrufe der Website über mobile Endgeräte erfolgen.

FFW Wildenau

 FFW Wildenau

Beginn

Mai/Juni 2017

Link

https://ffw-wildenau.de/?pk_campaign=por...

Kompetenzen

Bootstrap CSS3 Linux Composer Git NGINX Sass SQL JavaScript Suchmaschinenoptimierung Webpack Slim Gitlab PHP

In enger Kooperation mit den Verantwortlichen der freiwilligen Feuerwehr Wildenau entwickele ich die Website kontinuierlich weiter und füge stets neue Anforderungen und Anpassungen in die Homepage ein. Den Administratoren der FFW Wildenau steht hierbei eine kompakte Administrationsoberfläche zur Verfügung. Dies erlaubt eine komplett anpassbare Benutzererfahrung.

Gerade im Bezug darauf wichtig, das die Verantwortlichen schon mit ihrer ehrenamtlichen Tätigkeit gefordert werden. Deshalb sollen sie möglichst ohne großen Schnickschnack einfach und schnell neue Inhalte wie Beiträge und Einsätze einpflegen können. Gleichzeitig stellt die Homepage die Feuerwehr die Präsenz in der digitalen Welt dar.

Ich übernehme neben Administration und Wartung auch dass Hosting von Homepage und Mail-Server und stehe bei technischen Fragen mit Rat und Tat zur Seite. Zusätzlich übernehme ich die Verwaltung der Domain und der E-Mail-Konten.

Made by Timo Reymann

Made by Timo Reymann

Beginn

Oktober 2017

Link

https://madeby.timo-reymann.de/...

Kompetenzen

CSS3 Git NGINX Responsive Design HTML5 Python 3

Da ich nicht die Zeit und Lust habe, für jedes Projekt eine ausführliche Beschreibung einzutragen, oder es für viele Projekte einfach nicht so viel zu erzählen gibt, habe ich hier einen Platz geschaffen für Unrat, geistige Einfälle und Unfälle.

Die Weiterverwendung von Ideen ist ausdrücklich und explizite Genehmigung gestattet. Ansonsten ist auch alles frei verwendbar, allerdings ohne jegliche Gewährleistung.

Doppelte Auflistungen zusätzlich zum Portfolio sind auch möglich.

CSV-Parser

CSV-Parser

Beginn

Dezember 2017

Link

https://github.com/timo-reymann/csv-pars...

Kompetenzen

Git Maven Java

Simpler CSV-Parser zum Parsen von CSV-Dateien. Die Angabe von zu mappenden Spalten erfolgt hierbei über Annotations. Diese werden via Reflection ausgelesen und pro Klasse gecachet. Das erzielt eine Performance fast wie ohne Reflection.

Der Parser unterstützt neben dem klasischen Strichpunkt als Seperator jeden beliebigen Seperator. Enhalten ist neben einer klassischen API auch eine Stream-basierte API. Die Erstellung der Instanzen erfolgt hierbei über das Builder-Pattern.

GitLab Webhook Library

GitLab Webhook Library

Beginn

März 2018

Link

https://github.com/timo-reymann/gitlab-w...

Kompetenzen

Git Composer PHP

Diese Bibliothek ermöglicht es dem Entwickler leicht auf Gitlab-Webhooks zu reagieren und falls nötig auch auf die mitgesendeten Daten zu reagieren. Die Validierung des Requests wird hierbei vollständig von der Bibliothek übernommen.

DrunkenRoyal

DrunkenRoyal

Beginn

Oktober 2018

Link

https://cdn.christian-stockinger.de/drun...

Kompetenzen

Jenkins Java Kotlin GraphQL Spring Boot

DrunkenRoyal ist ein lustiges Trinkspiel für Smartphone oder Tablet und natürlich für jede Party, außer Kindergeburtstage. In dem die Spieler verschiedene Challenges absolvieren, kommen sie zum Ziel. Doch auf dem Weg dahin warten einige Überraschungen und natürlich jede Menge Alkohol.

Das Spiel wurde über Kickstarter von Christian Stockinger finanziert und auf Android und für iPhone und iPad veröffentlicht.

Die Entwicklung der App erfolgte hierbei durch Christian Stockinger auf Unity-Basis.

Meine Aufgabe im Kontext des Gesamtprojektes war primär die Erstellung der API für das Laden der Challenges sowie die Kommunikation der App mit dem Backend sowie deren Offline-Funktionalität. Diese habe ich hierbei primär in Kotlin programmiert, als API kam GraphQL zum Einsatz, was am effizientesten für die Nutzung mit der App herausstellte. Teile der App musste ich aufgrund von Komplikationen mit Spring Boot dann doch noch mit Java umsetzen. Bereitgestellt wird die API automatisiert mit Jenkins.

Zusätzlich übernahm ich die Aufgabe eines Testers für die Android-App mit kontinuierlichem Feedback im Entwicklungsprozess um eine exzellente Benutzererfahrung sicher zu stellen.

ImageServer

ImageServer

Beginn

Oktober 2018

Link

https://github.com/timo-reymann/imageser...

Kompetenzen

NodeJS Linux Git Docker

Imageserver stellt einige Funktionen zur einfachen Verarbeitung von Bildern zur Verfügung. Hierbei kann jedes beliebige über eine öffentliche URL erreichbare Bild modifiziert werden. Das erlaubt kleine Spielereien und Anpassungen an Bildern ohne direkte Manipulation der Bilddateien, die lokal erfolgt.

Zudem ist es möglich, Placeholder-Images zu erstellen. Diese Funktion ist primär gedacht für Neuentwicklungen von Homepages, um einfach Demo-Bilder einbinden zu können.

Technisch basiert das Ganze auf Node.js-Bindings zu imagemick sowie einem Server auf Grundlage von express.

Zusätzlich stelle ich ein Docker-Image zur Verfügung, um den Betrieb des imageserver so einfach und problemlos wie möglich zu gestalten. Dabei ist es jederzeit möglich den Server horizontal durch neue Instanzen zu skalieren.

Der Build des Image erfolgt hierbei automatisiert via Docker Build.

nginx-spa

nginx-spa

Beginn

Mai 2019

Link

https://github.com/timo-reymann/nginx-sp...

Kompetenzen

Docker Git Linux NGINX

Dieses Projekt stellt einen vorkonfigurierten Container für Single Page Applications bereit, um einen einfachen und reibungslosen Anwendungsbetrieb zu ermöglichen.

Das Projekt wird automatisiert mit Docker-Build gebaut.

150 Jahre FFW Wildenau

150 Jahre FFW Wildenau

Beginn

April/Mai 2019

Link

https://fest.ffw-wildenau.de/...

Kompetenzen

CSS3 Responsive Design Gitlab Docker JavaScript HTML5 Vue Webpack Git

In enger Kooperation mit Raphael Bittner entstand die neue Festhomepage für das 150-jähirge Jubiläum der FFW Wildenau.

Hierbei wurde bewusst eine komplett separate Seite als Single Pager umgesetzt. Ziel war eine informative und übersichtliche Seite mit dem Mobile-First-Ansatz.

Die Website wurde als Single Page Application mit Vue umgesetzt. Zudem unterstützt sie den Betrieb als Progressive Web App. Das ermöglicht die Benutzung der Homepage bzw. den Download auf das Handy, dadurch wird es den Interessierten möglich die Seite entsprechend auch offline zu nutzen und so als digitalen Infozettel zu nutzen.

Bereitgestellt wird die ganze Anwendung via Docker-Container mit nginx-spa. Das Loadbalancing erfolgt hierbei Docker-nativ durch Traefik.

git-sermver-tag

git-sermver-tag

Beginn

September 2019

Link

https://github.com/timo-reymann/git-semv...

Kompetenzen

Git Go

Um manuell nicht manuell beim Taggen mit Git die Spezifikation von Semantic Versioning einhalten zu müssen, entstand dieses kleine, aber mächtige Tool.

Umgesetzt wurde es in Go.
Der Build erfolgt via GitHub Actions automatisiert bei jedem Push in das Repository.

composer-dump-autoload-phpstorm-plugin

composer-dump-autoload-phpstorm-plugin

Beginn

September 2019

Link

https://github.com/timo-reymann/composer...

Kompetenzen

Java Git

Bei der Arbeit mit PHP und dem Dependency-Management-Tool composer störte es mich nach einiger Zeit extrem bei jeder Code-Änderungen die für das Autoloading relevant ist, manuell einzugreifen.

Um dem Ganzen entgegezuwirken entstand dieses Plugin. Der Name ist hierbei zugegenermaßen ziemlich unkreativ, wenn auch sehr deskriptiv.

Ratix (deine-nacht.de)

Ratix (deine-nacht.de)

Beginn

November 2019

Link

https://deine-nacht.deh?pk_campaign=timo...

Kompetenzen

Gitlab HTML5 MongoDB Rest Vue TypeScript Ansible Git CSS3 Go Java Spring Boot Responsive Design Vuetify Docker

Zusammen mit Luca Wunderlich entwickelte ich ein System (Codename Ratix), inklusive Veranstaltungsportal für Michael Bierkögler. Ziel des Projektes war eine Plattform zu entwickeln, auf der die Veranstaltungen, Muttizettel usw. bereitgestellt werden können.

Das System wurde hierbei in verschiedene Komponenten heruntergebrochen, die über HTTP kommunizieren.
Zentrale Stelle ist hierbei die API, diese wurde mit Spring Boot umgesetzt und läuft in einem Docker-Container.
Für die Persistenz der Daten kommt hier MongoDB zum Einsatz. Das ermöglicht eine flexible Anpassung der Datenstruktur und eine schnelle, effiziente Entwicklung.

Für spezielle Funktionalitäten, wie das Importieren der Facebook-Veranstaltungen oder das Generieren der Muttizettel kommt hier Go zum Einsatz. Die entsprechenden Anwendungen laufen hierbei auch in separaten Docker-Containern.

Das Portal für die Suche von Veranstaltungen wurde in Vue.js realisiert, als UI-Framework kam hierbei Vuetify zum Einsatz. Durch diese Kombination entstand eine moderne und für alle Geräte optimal benutzbare Benutzeroberfläche.

Um die wiederkehrenden und manuellen Tasks zu vermeiden kam für den Build- & Deployment-Prozess Gitlab zum Einsatz, für die DNS-Einträge wurde hier Ansible eingesetzt.

Ansible Vault Integration

Ansible Vault Integration

Beginn

Mai 2020

Link

https://plugins.jetbrains.com/plugin/143...

Kompetenzen

Java Git

Dieses Plugin entstand aus der Not heraus, Secrets immer umständlich über die Vault-CLI zu encrypten und decrypten.

Um diesem Problem Abhilfe zu schaffen, habe ich ein kleines Plugin für IntelliJ gebaut. Hierbei wird in YAML-Files bei Secrets entsprechend die Context-Action angeboten, diese zu entschlüsseln und in die Zwischenablage zu kopieren. Dadurch kommt man sehr schnell und unkompliziert an gevaultete Secrets.

Auch für das Verschlüsseln von Passwörtern in YAML bietet das Plugin entsprechend eine Context-Action an um hier nicht die IDE verlassen zu müssen.

Da ich bei verschiedenen Projekten teilweise unterschiedliche Konfigurationen für das Vault-Password-File o. Ä. nutze und hier auch dem User des Plugins alle Möglichkeiten offen zu halten kann auf Projektebene konfiguriert werden, wie Ansible-Vault aufgerufen wird.