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.