CASE STUDY
KLICKin
Die Karriereplattform der Hochschule Aalen – seit dem Start im Produktivbetrieb und heute mit über 550 registrierten Nutzern.
- Rolle
- Fullstack-Entwicklung, DevOps und Betrieb
- Status
- Produktivbetrieb
- AUFTRAGGEBER


AUSGANGSLAGE
Problem
Studierende, Alumni und Unternehmen der Hochschule Aalen fanden bis dahin nur über verstreute Insellösungen zueinander: Stellenbörse hier, Profile dort, Messen wieder woanders. Gebraucht wurde ein Produkt, das all das zusammenführt – und das eine Hochschule dauerhaft selbst betreiben kann. Also kein Prototyp, sondern ein System, das im Alltag ohne ständige Betreuung läuft.
SO FUNKTIONIERT ES
Lösung & Architektur
Plattform
Ein Produkt statt vier Insellösungen
Ich habe die Plattform als Fullstack-System gebaut: Next.js im Frontend, ein Express-Backend und PostgreSQL mit handgeschriebenem SQL über 25 Migrationen – bewusst ohne ORM, damit Abfragen und Indizes unter meiner Kontrolle bleiben. Den Echtzeit-Chat habe ich mit Socket.IO umgesetzt und beim Verbindungsaufbau über einen JWT-Handshake abgesichert.
- Echtzeit-Chat mit JWT-Handshake
- Presence in Redis, längere Aufgaben über BullMQ
- OAuth über Google und LinkedIn, Admin-Konten mit TOTP-2FA

Betrieb
Jeder Commit nimmt denselben Weg
Der Betrieb ist der Teil, der die Plattform trägt. Jeder Commit durchläuft Tests, Playwright-E2E-Läufe und einen Gitleaks-Scan auf Secrets, bevor die Images in der GitHub Container Registry landen und automatisiert auf Hetzner ausgerollt werden.
- Healthchecks und automatischer Rollback beim Deployment
- Container read-only mit cap_drop
- 464 von 467 Commits im Repository stammen von mir

ARCHITEKTUR
Der Weg durch das System
Next.js Frontend
Stellenbörse, Profile, virtuelle Messe
Express API
OAuth (Google, LinkedIn), Admin-TOTP-2FA
PostgreSQL
Raw SQL, 25 Migrationen
Echtzeit
Socket.IO mit JWT-Handshake, Presence in Redis
Hintergrundjobs
BullMQ auf Redis
CI/CD: Tests, Playwright-E2E und Gitleaks-Scan → GHCR-Images → automatisiertes Hetzner-Deployment mit Healthcheck und Rollback, Container read-only mit cap_drop
Ergebnisse
- registrierte Nutzer
- 550+registrierte Nutzer
- Commits von mir
- 464/467Commits von mir
- SQL-Migrationen
- 25SQL-Migrationen
- im Produktivbetrieb auf klick-in.de
- Liveim Produktivbetrieb auf klick-in.de
NACHWEIS & EINORDNUNG
Was belegt ist – und wo die Aussage endet
Die vier Felder trennen meinen Beitrag, den Projektkontext, die Messgrundlage und die Grenzen der Ergebnisse.
- Mein Anteil
- Fullstack-Entwicklung, DevOps und Betrieb. 464 der 467 Repository-Commits stammen von mir; dazu gehören Frontend, Backend, Datenbankmigrationen, Echtzeitfunktionen und die Deployment-Pipeline.
- Team & Kontext
- KLICKin ist die Karriereplattform der Hochschule Aalen. Die Commit-Zahl macht meinen Codebeitrag sichtbar, ist aber keine Aussage über fachliche, organisatorische oder redaktionelle Beiträge außerhalb des Repositories.
- Messgrundlage
- Die Case Study belegt 550+ registrierte Konten, 464 von 467 Commits, 25 SQL-Migrationen und den laufenden Produktivbetrieb auf klick-in.de.
- Grenzen
- 550+ bezeichnet registrierte Nutzer, nicht monatlich aktive Nutzer. Der Quellcode ist privat; deshalb sind Repository-Historie und Implementierungsdetails nicht öffentlich unabhängig prüfbar. Uptime, Nutzungsfrequenz und Conversion werden hier nicht ausgewiesen.
GEBAUT MIT
Tech-Stack
- Next.js
- Express
- PostgreSQL
- Raw SQL
- Redis
- BullMQ
- Socket.IO
- Docker
- GitHub Actions
- Playwright
Passt das zu dem, was du vorhast?
Ich baue Systeme, die produktiv laufen sollen statt nur zu demonstrieren. Wenn das zu deinem Vorhaben passt, schreib mir.
Alle Case Studies