Projects, partnerships and websites

This is a small excerpt of my private activities and projects. If part of the project is a homepage, there is always a corresponding picture with a few devices where the website is open. Same thing applies to native apps.
For projects with banners or artworks, I use these accordingly.

In the projects, there is always a reference to the code, the website, a manifest or similar. In addition, its pinned everywhere which skills I could use for the project.


UniLaunch

UniLaunch

Time

01/2024 - now

Link

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

Skills

C# Git GitHub CircleCI

UniLaunch, my first open source desktop application, was created in Avalonia and C#.

This cross-platform app offers customised autostart options based on time and other criteria.

All this out of the pain of always having to start programmes manually at certain times or depending on the situation. The goal here is to reduce the manual effort.

Bash TUI Toolkit

Bash TUI Toolkit

Time

02/2023 - now

Link

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

Skills

Docker Bash Linux Git GitHub CircleCI

This is a toolkit to create interactive and shiny terminal UIs using plain bash builtins.

I built the tool to run anywhere the bash can run. The tested target platforms includes Git Bash for Windows, MacOS and Linux-based systems.

Thanks to the toolkit I can build cross plattform scripts with a shiny interface with ease. During the creation of this tool I learned a lot about bash internals that I never had to use before. It is a bit of a challenge to test due to slight differences on the target platforms but also gives quite an interesting challenge with an awesome reward.

php-app

php-app

Time

12/2022 - now

Link

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

Skills

Docker PHP Linux Git GitHub NGINX

This Docker image is specifically designed to provide a secure base for PHP applications. The goal is to provide a single image that contains both nginx and PHP FPM.

It is very pragmatic and offers a number of helpers for typical installation tasks like installing dependencies with Composer or setting up an index rewrite. These features simplify PHP application development and make developers' work easier.

The build is automated via GitHub Actions with each push to the repository.

deterministic-zip

deterministic-zip

Time

06/2021 - now

Link

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

Skills

Go Git GitHub CircleCI

There is already some tooling available to create reproducible artifacts in the serverless and terraform area. However, the situation with ZIP archives is rather poor.

Out of this need, a drop-in solution for zip was developed to create reproducible ZIP files.

The project is implemented as a GO CLI application. Individual functionalities can also be extended modularly with a plug-in system. This makes the tool very performant, easy to maintain and, thanks to Go, executable on all common platforms.

IntellIJ MJML Support

IntellIJ MJML Support

Time

04/2021 - now

Link

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

Skills

Kotlin Git JavaScript NodeJS CircleCI GitHub

Another plugin for the Intellij platform was developed out of the need to be able to edit MJML with WebStorm and to cover also extended use cases. There are plugins for VS Code and Atom, but I don't really like to use either of them. Not really like to use one of the two tools.

Within a week, the plugin cracked the 1k download mark! I got a lot of positive feedback by mail and use it myself (almost) daily.

For this plugin, I could use my already gained experience from plugin development. To make the preview work, it was necessary to reach back into the Node.js bag of tricks.

Ansible Vault Integration

Ansible Vault Integration

Time

05/2020 - now

Link

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

Skills

Git Java Kotlin Ansible CircleCI Gitlab

This plugin was created out of the necessity to encrypt and decrypt Secrets always cumbersome via the Vault CLI.

To solve this problem, I have built a small plugin for IntelliJ. This plugin offers the context action to decrypt secrets in YAML files and copy them to the clipboard. This is a very fast and uncomplicated way to get hold of secrets.

The plugin also offers a context action for encrypting passwords in YAML so that you don't have to leave the IDE.

Since I sometimes use different configurations for the Vault password file or similar in different projects. And to keep all possibilities open for the user of the plugin, it can be configured on project level how Ansible-Vault is called.

Ratix (deine-nacht.de)

Ratix (deine-nacht.de)

Time

11/2019 - 07/2021

Link

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

Skills

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

Together with Luca Wunderlich I developed a system (codename Ratix), including an event portal for Michael Bierkögler. The goal of the project was to develop a platform where the events, Muttizettel etc. can be provided.

The system was broken down into various components that communicate via HTTP. The central point here is the API, which was implemented with Spring Boot and runs in a Docker container. MongoDB is used here for the persistence of the data. This enables flexible adaptation of the data structure and fast, efficient development.

Go is used here for special functionalities, such as importing the Facebook events or generating the Muttizettel. The corresponding applications also run in separate Docker containers.

The portal for the search of events was realized in Vue.js, Vuetify was used as UI framework. This combination resulted in a modern user interface that is optimally usable for all devices.

To avoid the recurring and manual tasks, Gitlab was used for the build & deployment process, and Ansible was used here for the DNS entries.

git-semver-tag

git-semver-tag

Time

09/2019 - now

Link

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

Skills

Go Git GitHub

This useful tool is designed to help developers avoid having to manually comply with Semantic Versioning specifications when tagging with Git. It is a small but powerful application that saves a lot of time and effort in this regard.

It was programmed in Go, an efficient and powerful programming language.

The build process is done automatically via GitHub Actions on every push to the repository, which speeds up the development process and increases the quality of the code.

nginx-spa

nginx-spa

Time

05/2019 - now

Link

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

Skills

NGINX Linux Docker Git GitHub

This is a pre-configured container for single-page applications to ensure smooth application operation. It is already contains everything needed to successfully deploy the application, including the required dependencies and configurations.

The project is very user-friendly and easy to use, as it is designed for quick and easy deployment of single-page applications. It helps developers focus on the actual development of their application instead of spending time configuring infrastructure and environments.

The image is built in an automated way using GitHub actions.

150 Jahre FFW Wildenau

150 Jahre FFW Wildenau

Time

04-05/2019 - 08/2019

Link

fest.ffw-wildenau.de

Skills

Git HTML5 Vue Webpack Docker JavaScript CSS3 Responsive Design Gitlab Traefik

In close cooperation with Raphael Bittner, the new festive homepage for the 150th anniversary of the FFW Wildenau was created.

Here, a completely separate page was deliberately implemented as a single pager. The goal was an informative and clear page with a mobile-first approach.

The website was implemented as a single page application with Vue. It also supports operation as a progressive web app. This enables the use of the homepage or the download to the cell phone, thus making it possible for interested parties to use the site accordingly, offline and thus as a digital info sheet.

DrunkenRoyal

DrunkenRoyal

Time

10/2018 - 06/2019

Link

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

Skills

Spring Boot GraphQL Java Kotlin Jenkins

DrunkenRoyal is a fun drinking game for smartphone or tablet and of course for any party, except children's birthday parties. In which the players complete various challenges, they get to the finish line. But on the way there are some surprises waiting and of course a lot of alcohol.

The game was funded via Kickstarter by Christian Stockinger and released on Android and for iPhone and iPad.

The app was developed here by Christian Stockinger on a Unity basis.

My task in the context of the overall project was primarily the creation of the API for loading the challenges as well as the communication of the app with the backend and its offline functionality. I programmed this primarily in Kotlin, using GraphQL as the API, which turned out to be the most efficient for use with the app. Parts of the app had to be implemented in Java due to complications with Spring Boot. The API was deployed automatically with Jenkins.

Additionally, I took on the role of a tester for the Android app with continuous feedback in the development process to ensure an excellent user experience.

Gitlab-Webhook-Library

Gitlab-Webhook-Library

Time

03/2018 - 06/2021

Link

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

Skills

PHP Git Composer GitHub

With this library, it becomes super easy for developers to respond to GitLab webhooks. This means that they will be notified immediately when certain events take place on GitLab, for example when someone creates a new project or when a code review is performed.

It also ensures that all data sent with the webhook is fully validated. This is necessary to ensure that only the data that actually comes from the GitLab server and has not been manipulated by a malicious attacker is processed.

All this makes it easier for developers to respond to GitLab webhooks and make their applications faster and more secure.

CSV-Parser

CSV-Parser

Time

12/2017 - 08/2020

Link

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

Skills

Java Git Maven GitHub

Simple CSV parser for parsing CSV files. The specification of columns to be mapped is done via annotations. These are read via reflection and cached per class. This achieves a performance almost like without reflection.

The parser supports the classic semicolon as a separator and any other separator. In addition to a classic API, a stream-based API is also included. The instances are created using the builder pattern.

FFW Wildenau

FFW Wildenau

Time

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

Link

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

Skills

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

In close cooperation with the responsible persons of the voluntary fire department Wildenau, I develop the website continuously and always add new requirements and adjustments to the homepage. The administrators of the FFW Wildenau have a compact administration interface at their disposal. This allows a completely customizable user experience.

Especially in relation to this, it is important that the responsible persons are already challenged with their voluntary work. Therefore, they should be able to easily and quickly enter new content such as contributions and deployments without a lot of bells and whistles. At the same time, the homepage represents the fire department's presence in the digital world.

I took over administration and maintenance, as well as hosting of homepage and mail server and help with technical questions. Additionally, I take care of the administration of the domain and the email accounts.

The design is relatively conservative and based on the wishes of the FFW Wildenau. No major changes have been incorporated here since 2021.

KerzenWinni

KerzenWinni

Time

06-07/2016 - now

Link

kerzenwinni.de/?pk_campaign=po ...

Skills

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

For KerzenWinni a one-pager with contact form, appointment calendar and guestbook was created in close consultation with the owner.

In addition, I take over hosting and maintenance of homepage and server. Special emphasis was put on a fast loading time for the homepage, here the content above the fold is loaded immediately, while only after scrolling visible elements of the page are integrated via separate asynchronous server requests. The gallery only loads the required images when they are requested. This enables fast loading times on mobile devices and saves data volume. This is particularly important because more than 89% of website calls are made via mobile devices.

Code-Paste-Tool 4.0

Code-Paste-Tool 4.0

Time

06/2016 - 09/2023 (maintenance only)

Link

paste.timo-reymann.de/

Skills

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

To improve code sharing under my own control, I decided to develop my own paste tool instead of relying on a third-party vendor.

This tool enables the time-limited storage of code snippets or simple plain text. The application is logically divided into an API and the user interface.

Thus, the rendering is done completely client-side. This allows for fast loading time and a snappy user experience.