Dennis Böhmer

🚧 Work in Progress 🚧

Programmier Projekte

Hier findest du meine Projekte, detailiert beschrieben mit Bildern und download-links, falls vorhanden.

Zera's VTT Forge Tools

Eine Sammlung von Modulen für Foundry Virtual Tabletop (v13+). Enthält aktuell das Modul "HP in Bar" für D&D 5e, das aktuelle und maximale Trefferpunkte direkt im Token-Gesundheitsbalken anzeigt - "45 / 50" genau dort, wo es hingehört, ohne Sheet öffnen oder hovern zu müssen.


Auf GitHub ansehen

Kat3DWorks

Kat3DWorks ist eine Sammlung von Webanwendungen und Tools, die unter kat3dworks.com gehostet werden. Das zentrale Backend wurde mit Spring Boot und Java entwickelt und stellt u.a. Authentifizierung per JWT sowie die Datenhaltung (PostgreSQL) bereit. Alle Frontends sind mit React und TypeScript umgesetzt.


Das Projekt besteht aus mehreren Submodulen:


Hinweis: HTTPS funktioniert noch nicht - bedingt durch einen Fehler beim Provider Strato. Außerdem ist das Backend noch nicht vollständig deployed, weshalb das Fantasy-Submodul aktuell noch nicht funktioniert.


Zur Website

Meows

Desktop-Begleiter mit Plugin-Shell (C#, .NET 10, Avalonia): nur einschalten, was man braucht, nichts läuft ungefragt. Inzwischen 25 Plugins in vier Gruppen - Platte und Ordnung, Bild und Posten, Geld und Termine, Tisch und Überblick - dazu Regeln, History mit Put back, Kommandozeile und ein Template für eigene Plugins.


Alle Details, Tutorial, Beispiele und Plugin-Entwicklung stehen auf der eigenen Meows-Seite.


Zur Meows-Seite Auf GitHub ansehen Download

Clowder

Ein Backend zur Disposition und Routenplanung für einen regionalen Kurierdienst. Sendungen kommen mit Ziel, Gewicht, Volumen, Bearbeitungsdauer und einem Lieferzeitfenster herein; ein Depot hat Fahrzeuge mit Kapazitätsgrenzen und Schichtzeiten. Ein Planungslauf verteilt die Sendungen auf die Fahrzeuge und bringt die Stopps in eine Reihenfolge, die alle Randbedingungen einhält. Formal ist das das CVRPTW (Capacitated Vehicle Routing Problem with Time Windows) - NP-schwer, gelöst wird es also mit einer Heuristik, deren Abstand zum Optimum gegen die Solomon-Benchmarks gemessen wird.


Umgesetzt mit Java 21, Spring Boot und Maven, als Datenbank PostgreSQL 17 mit Flyway-Migrationen. Getestet wird gegen eine echte Datenbank in Testcontainers, die Schichtgrenzen der Architektur sichert ArchUnit ab. Alle Mengen laufen bewusst als Ganzzahlen (Gramm, Milliliter, Meter, Minuten) statt als Fließkommazahlen, damit sich in den Solver-Schleifen keine Rundungsfehler aufsummieren und Benchmarks reproduzierbar bleiben.


Status: In Entwicklung - Grundgerüst und Stammdaten stehen, der Solver folgt.


Auf GitHub ansehen

Mouser

Leichtes ERP für kleine Läden und Betriebe mit 1-20 Leuten: Bäckerei, Werkstatt, Eckladen, Salon, Maker mit Etsy- und eBay-Verkauf. Bestand, Verkäufe, Rechnungen und Ausgaben an einem Ort - Theke, Telefon, Onlineshop und Marktplätze teilen sich einen Datenstand. Deutsches Steuer-, Kassen- und Produktrecht zuerst, kassentauglich auch ohne Internet, mehrsprachig und barrierearm vom ersten Tag. Vollexport in offenen Formaten, jederzeit, auch nach Kündigung.


Hinweis: Gleicher Name, anderes Projekt - das Meows-Plugin Mouser spürt leere Ordner und tote Links auf; dieses Mouser hier ist das eigenständige ERP.


Technik: Java 25, Spring Boot als modularer Monolith, PostgreSQL mit Flyway und Row-Level Security, S3-kompatibler Objektspeicher. Desktop mit C# und Avalonia als Plugin-Host (IResident, gleiches Muster wie Mews), SQLite-Cache mit Stash-Outbox für Offline-Verkauf, später React-Webapps für Backoffice und Portal. Geld rechnet in Money-Objekten statt Floats, Rechnungen sind unveränderlich, jede Finanzänderung landet im Audit-Log.


Status: Im Aufbau nach Meilensteinplan - Katalog und Bestand zuerst, dann Kunden und Rechnung, POS, Etsy/eBay-Anbindung und mehr.

Procedural Level Generation

Hier habe ich habe ein prozedurales Level-Generierungssystem entwickelt, das den Marching-Squares-Algorithmus verwendet, um Gitterdaten in strukturierte Umgebungen umzuwandeln. Die generierten Layouts werden mit Low-Poly-Assets aus dem Mittelalter kombiniert. Dazu wird nach Erstellung ein Navigations-Mesh, von dem generiertem Level, erstellt.



Lightweight Password Creator

Ein kleiner, offline funktionierender Passwort-Generator mit Java Swing und SecureRandom. Keine externen Abhängigkeiten, keine Telemetrie. Bietet Längenregler (6–32 Zeichen), auswählbare Zeichensätze (Großbuchstaben, Kleinbuchstaben, Ziffern, Sonderzeichen) und Copy-to-Clipboard mit Bestätigung.


Auf GitHub ansehen

Facharbeit während der Ausbildung.

Diese Facharbeit entstand im Zuge des Abschlusses meiner Ausbildung im Jahr 2019. Im Rahmen der Prüfungsleistung erhielt ich die Aufgabe, eine bestehende Website nach Wahl der Lehrkräfte gestalterisch zu überarbeiten und konzeptionell weiterzuentwickeln.


Mir wurde die Website von Zotter Schokolade als Grundlage zugeteilt. Ziel der Arbeit war es, ein neues, eigenständiges Designkonzept zu entwickeln, das die Markenidentität visuell stärkt und modern interpretiert. Ein besonderer Fokus lag darauf, den Aspekt der handgeschöpften Schokolade stärker in den Vordergrund zu rücken und diesen gestalterisch klarer zu kommunizieren.


Die Überarbeitung umfasste ausschließlich die Desktop-Ansicht der Website. Laut Aufgabenstellung war es nicht erforderlich, eine mobile Version auszuarbeiten. Zudem sollten bestehende Rechtstexte sowie Informationen wie Telefonnummer, Handelskammernummer oder E-Mail-Adresse lediglich angedeutet, jedoch nicht vollständig ausgearbeitet werden.


Ziel dieser Facharbeit war es, meine gestalterischen und konzeptionellen Fähigkeiten unter Beweis zu stellen und mein Portfolio um ein durchdachtes Webdesign-Projekt zu erweitern.


Link zur Website