Github Spielesammlung-Website Dublin-Website

Portfolio Website von

Sebastian Lein

Kleine Übersicht über meine Projekte

Lager- & Inventarverwaltungssystem

RESTful Web Applikation zur Verwaltung von Lagerstrukturen, Regalen, Artikeln und Benutzern.

Nutzer können Artikel erstellen, bearbeiten, verschieben und löschen sowie Lagerorte flexibel organisieren. Kritische Bestandswerte lassen sich definieren, um Engpässe frühzeitig zu erkennen. Zusätzlich können mehrere Artikel gesammelt und gebündelt entnommen werden.

Die Anwendung setzt auf eine JWT-basierte Authentifizierung und Refresh Tokens, wobei Passwörter und Token-IDs sicher gehasht in einer PostgreSQL-Datenbank gespeichert werden.

Es gibt drei User-Rollen: Server Owner, Admin und User. Der Server Owner wird beim Docker-Setup initial erstellt und besitzt volle Systemkontrolle inkl. Benutzerverwaltung. Admins verwalten Lager, Regale und Artikel inklusive Löschrechten, während User operative Lagerprozesse wie Einlagern, Verschieben und Entnehmen durchführen können.

Backend-seitig ist die Anwendung in Go umgesetzt und stellt HTTP-Endpunkte für CRUD-Operationen bereit. Statt JSON liefert das Backend dabei serverseitig gerendertes HTML aus, das über HTMX dynamisch ins Frontend eingebunden wird. SQLC sorgt für typsichere Datenbankzugriffe, während Goose für versionierte Migrationen verwendet wird. Die Benutzeroberfläche wird mit Templ gerendert und das UI-Styling basiert auf TailwindCSS.

Die Anwendung ist vollständig containerisiert (Docker) und läuft in einem Container-Setup mit Backend und PostgreSQL-Datenbank, wodurch die Anwendung auch zum selfhosting geeignet ist.

Angewandte Skills

Go (Backend) PostgreSQL HTMX SQLC Goose Migrations Templ (Go Templates) Docker TailwindCSS Git

Dieses Projekt wurde als internes Firmentool entwickelt, weswegen ich Teile des Quellcodes nur auf Anfrage bereitstellen darf. Eine separat entwickelte API mit zusätzlichen Endpunkten, die in der Hauptanwendung nicht vorgesehen sind, durfte ich öffentlich einsehbar machen.

zur separaten API auf Github →

Encrypted PostgreSQL Backups

CLI-Tool zur automatisierten Erstellung, Verschlüsselung und Wiederherstellung von PostgreSQL-Backups in Docker-Umgebungen.

Das in Go geschriebene Tool erstellt mithilfe von pg_dump vollständige Datenbank-Backups und verschlüsselt diese anschließend mit AES-256-GCM, bevor sie sicher gespeichert werden. Anschließend können verschlüsselte Backups auch mit Hilfe des Tools wieder entschlüsselt und vollständig wiederhergestellt werden.

Darüber hinaus lässt sich das Tool über ein Shell-Skript automatisieren und in Kombination mit rsync für Remote-Backups nutzen.

Angewandte Skills

Go Bash Docker AES-256-GCM rsync Git
zum Projekt auf Github →

RealWorld App

Implementierung der RealWorld-Spezifikation in Go mit Frontend in React und TypeScript

Bei dieser Anwendung handelt es sich um eine Implementierung der RealWorld Conduit Spezifikation, einem Fullstack Medium.com Klon. Die Anwendung stellt eine RESTful API mit Endpunkten für Nutzer, Artikel, Kommentare und Tags bereit und wurde im Backend in Go geschrieben. Über JWT erfolgt die Authentifizierung, wodurch geschützte Endpunkte nur für angemeldete Nutzer zugänglich sind. Gespeichert werden die Posts in einer PostgreSQL-Datenbank.

Das Frontend ist mit React und TypeScript umgesetzt und kommuniziert über die API mit dem Backend.

Angewandte Skills

Go PostgreSQL React Typescript
zum Projekt auf Github →

Application Templates

Website zur Erstellung von Bewerbungsunterlagen

Mit dieser Anwendung lassen sich Anschreiben sowie Lebenslauf erstellen und die eingetragenen Daten in einer .json Datei exportieren und später importieren.
Die Ausgabe der Bewerbungsunterlagen ist druckoptimiert und erfolgt als .pdf Datei

Angewandte Skills

React Typescript Vite
zum Projekt auf Github →
Vorschau Bild für QR Stickerbogen

Ausdruckbarer QR-Code Stickerbogen

Python-Script zur Erstellung von QR-Codes und Speicherung als .pdf

Dieses Script generiert A4-Seiten im .pdf Format mit QR-Codes, die auf einer Liste von Seriennummern basieren. Jeder QR-Code enthält eine eindeutige Seriennummer, welche zusätzlich auch über dem Code angezeigt wird. Die QR-Codes sind in einem Rasterlayout angeordnet, sodass die .pdf Datei für den Druck und das Laserschneiden optimiert ist.

Angewandte Skills

Python
zum Projekt auf Github →
Vorschau Bild zu meiner Spielesammlungs-Website

Hangman und Matching Game

Eine kleine JavaScript Spielesammlung

Diese beiden Spiele habe ich 2020 mit HTML, CSS und JavaScript erstellt. Im Anschluss habe ich die Website mit AndroidStudio und WebView in eine ausführbare Android .apk umgewandelt.

Angewandte Skills

JavaScript HTML CSS
zur Website →
Vorschau Bild zur Dublin Projekt Website

Dublin 2K17 Website

Englisch Projekt

Diese Website entstand während meiner Schullaufbahn im Zusammenhang mit einem Leistungskurs-Ausflug nach Dublin, Irland. In diesem Projekt wurden HTML und Bootstrap CSS verwendet.

Angewandte Skills

HTML CSS
zur Website →