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. Selbes gilt bei nativen Anwendungen.
Für Projekte mit Banner oder Artworks nutze ich entsprechend diese.

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.


UniLaunch

UniLaunch

Zeitraum

01/2024 - heute

Link

github.com/timo-reymann/unilau ...

Kompetenzen

C# Git GitHub CircleCI

UniLaunch, meine erste Open-Source-Desktopanwendung, ist in Avalonia und C# entstanden.

Diese Cross-Platform-App bietet benutzerdefinierte Autostart-Optionen basierend auf Uhrzeit und anderen Kriterien.

Das alles aus dem Schmerz heraus das ich die Programme immer manuell zu bestimmten Zeiten oder je nach Situation starten musste. Das Ziel ist hierbei den manuellen Aufwand zu reduzieren.

Bash TUI Toolkit

Bash TUI Toolkit

Zeitraum

02/2023 - heute

Link

github.com/timo-reymann/bash-t ...

Kompetenzen

Docker Bash Linux Git GitHub CircleCI

Dies ist ein Toolkit zur Erstellung interaktiver und schöner Terminal-UIs mit Bash-Builtins.

Ich habe das Tool so gebaut, dass es überall läuft, wo die Bash laufen kann. Die getesteten Zielplattformen umfassen Git Bash für Windows, MacOS und Linux-basierte Systeme.

Dank des Toolkits kann ich mit Leichtigkeit plattformübergreifende Skripte mit einer glänzenden Oberfläche erstellen. Während der Erstellung dieses Tools habe ich eine Menge über die Interna der Bash gelernt, die ich vorher nie verwenden musste. Das Testen ist aufgrund der geringen Unterschiede zwischen den Zielplattformen eine kleine Herausforderung, aber es ist auch eine interessante, mit einer großartigen Belohnung.

php-app

php-app

Zeitraum

12/2022 - heute

Link

github.com/timo-reymann/php-ap ...

Kompetenzen

Docker PHP Linux Git GitHub NGINX

Dieses Docker-Image wurde speziell entwickelt, um eine sichere Basis für PHP-Anwendungen zu bieten. Das Ziel ist, ein einzelnes Image zur Verfügung zu stellen, das sowohl nginx als auch PHP FPM enthält. Es ist sehr pragmatisch und bietet eine Reihe von Helfern für typische Installationsaufgaben wie die Installation von Dependencies mit Composer oder das Einrichten eines Index-Rewrites bietet. Diese Funktionen vereinfachen die Entwicklung von PHP-Anwendungen und erleichtern Entwicklern die Arbeit.

Darüber hinaus wurde das Docker-Image standardmäßig mit hoher Sicherheit konfiguriert und läuft nicht mit root-Rechten, was das Risiko von Sicherheitslücken verringert. Dies sorgt für eine sicherere Umgebung und gibt Entwicklern die Gewissheit, dass ihre Anwendungen geschützt sind.

Der Build erfolgt via GitHub Actions automatisiert bei jedem Push in das Repository.

deterministic-zip

deterministic-zip

Zeitraum

06/2021 - heute

Link

github.com/timo-reymann/determ ...

Kompetenzen

Go Git GitHub CircleCI

Um im Serverless und Terraform-Bereich reproduzierbare Artifakte zu erzeugen, gibt es bereits einiges Tooling. Allerdings sieht es bei ZIP-Archiven recht mau aus.

Aus dieser Not heraus entstand eine Drop-In-Lösung für zip, um reproduzierbare ZIP-Files zu erzeugen.

Das Projekt ist hierbei als GO CLI-Anwendung umgesetzt. Einzelne Funktionalitäten lassen sich mit einem Plugin-System auch modular erweitern. Dadurch ist das Tool sehr performant, wartungsfreundlich und dank Go auf allen gängigen Plattformen lauffähig.

IntellIJ MJML Support

IntellIJ MJML Support

Zeitraum

04/2021 - heute

Link

github.com/timo-reymann/intell ...

Kompetenzen

Kotlin Git JavaScript NodeJS CircleCI GitHub

Ein weiteres Plugin für die Intellij-Plattform entstand aus der Not heraus MJML mit WebStorm bearbeiten zu können und dabei auch erweiterte Use-Cases abzudecken. Hier existieren Plugins für VS Code und Atom, jedoch nutze ich nicht wirklich gerne eines der beiden Tools.

Innerhalb einer Woche knackte das Plugin die 1k-Download-Marke! Per Mail bekam ich hierzu schon sehr viel positive Resonanz und nutze es selbst (fast) täglich.

Bei diesem Plugin konnte ich meine bereits gewonnene Erfahrung aus der Plugin-Entwicklung nutzen. Für den Preview war es notwendig, wieder etwas in die Node.js-Trickkiste zu greifen.

Ansible Vault Integration

Ansible Vault Integration

Zeitraum

05/2020 - heute

Link

github.com/timo-reymann/idea-a ...

Kompetenzen

Git Java Kotlin Ansible CircleCI Gitlab

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.

Ratix (deine-nacht.de)

Ratix (deine-nacht.de)

Zeitraum

11/2019 - 07/2021

Link

deine-nacht.de/?pk_campaign=ti ...

Kompetenzen

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

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.

git-semver-tag

git-semver-tag

Zeitraum

09/2019 - heute

Link

github.com/timo-reymann/git-se ...

Kompetenzen

Go Git GitHub

Dieses nützliche Tool wurde entwickelt, um Entwicklern dabei zu helfen, die Spezifikationen von Semantic Versioning nicht manuell beim Taggen mit Git einhalten zu müssen. Es ist eine kleine, aber mächtige Anwendung, die hierbei viel Zeit und Mühe spart.

Programmiert wurde es in Go, einer effizienten und leistungsstarken Programmiersprache.

Der Build-Prozess erfolgt automatisch über GitHub Actions bei jedem Push in das Repository, was den Entwicklungsprozess beschleunigt und die Qualität des Codes erhöht.

nginx-spa

nginx-spa

Zeitraum

05/2019 - heute

Link

github.com/timo-reymann/nginx- ...

Kompetenzen

NGINX Linux Docker Git GitHub

Hierbei handelt es einen vorkonfigurierten Container für Single-Page-Applications, um einen reibungslosen Anwendungsbetrieb zu gewährleisten. Dieser enthält bereits alles, was für eine erfolgreiche Bereitstellung der Anwendung benötigt wird, einschließlich der erforderlichen Abhängigkeiten und Konfigurationen.

Das Projekt ist sehr benutzerfreundlich und einfach zu verwenden, da es auf eine schnelle und einfache Bereitstellung von Single-Page-Applications ausgelegt ist. Es hilft Entwicklern, sich auf die eigentliche Entwicklung ihrer Anwendung zu konzentrieren, anstatt Zeit mit der Konfiguration von Infrastruktur und Umgebungen zu verbringen.

Der Build des Image erfolgt hierbei automatisiert via GitHub Actions.

150 Jahre FFW Wildenau

150 Jahre FFW Wildenau

Zeitraum

04-05/2019 - 08/2019

Link

fest.ffw-wildenau.de

Kompetenzen

Git HTML5 Vue Webpack Docker JavaScript CSS3 Responsive Design Gitlab Traefik

In enger Kooperation mit Raphael Bittner entstand die neue Festhomepage für das 150-jährige 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.

DrunkenRoyal

DrunkenRoyal

Zeitraum

10/2018 - 06/2019

Link

cdn.christian-stockinger.de/dr ...

Kompetenzen

Spring Boot GraphQL Java Kotlin Jenkins

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 sicherzustellen.

Gitlab-Webhook-Library

Gitlab-Webhook-Library

Zeitraum

03/2018 - 06/2021

Link

github.com/timo-reymann/gitlab ...

Kompetenzen

PHP Git Composer GitHub

Mit dieser Bibliothek wird es für Entwickler super einfach, auf GitLab-Webhooks zu reagieren. Das bedeutet, dass sie sofort benachrichtigt werden, wenn bestimmte Ereignisse auf GitLab stattfinden, zum Beispiel wenn jemand ein neues Projekt erstellt oder wenn ein Code-Review durchgeführt wird.

Sie stellt außerdem sicher, dass alle Daten, die mit dem Webhook gesendet werden, vollständig validiert werden. Das ist notwendig, um sicherzustellen, dass nur die Daten verarbeitet werden, die auch wirklich vom GitLab-Server stammen und nicht von einem bösartigen Angreifer manipuliert wurden.

Das alles vereinfacht es Entwicklern, auf GitLab-Webhooks zu reagieren und ihre Anwendungen schneller und sicherer zu gestalten.

CSV-Parser

CSV-Parser

Zeitraum

12/2017 - 08/2020

Link

github.com/timo-reymann/csv-pa ...

Kompetenzen

Java Git Maven GitHub

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 klassischen Strichpunkt als Separator jeden beliebigen Separator. Enthalten ist neben einer klassischen API auch eine Stream-basierte API. Die Erstellung der Instanzen erfolgt hierbei über das Builder-Pattern.

FFW Wildenau

FFW Wildenau

Zeitraum

05-06/2017 - 10/2021 (maintenance only)

Link

ffw-wildenau.de/?pk_campaign=p ...

Kompetenzen

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

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 in Bezug darauf wichtig, dass 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 das 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.

Das Design ist relativ konservativ und basiert auf den Wünschen der FFW Wildenau. Hierbei werden seit 2021 keine großen Änderungen mehr eingebaut.

KerzenWinni

KerzenWinni

Zeitraum

06-07/2016 - heute

Link

kerzenwinni.de/?pk_campaign=po ...

Kompetenzen

CSS3 PHP Responsive Design Suchmaschinenoptimierung HTML5 Bootstrap SQL Git NGINX Gitlab Docker Traefik

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 dieses 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.

Code-Paste-Tool 4.0

Code-Paste-Tool 4.0

Zeitraum

06/2016 - 09/2023 (maintenance only)

Link

paste.timo-reymann.de/

Kompetenzen

CSS3 Responsive Design Git NGINX HTML5 SQL PHP Vue Webpack Docker Traefik

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.