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
Logo der Hochschule Aalen, für die KLICKin entstanden ist
Live-Website
Screenshot der Startseite von klick-in.de mit Stellenbörse, Studierendenprofilen und virtueller Messe
Screenshot der Live-Plattform.

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
Schematische Darstellung des Echtzeit-Chats von KLICKin mit Konversationsliste und Online-Status

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
Schematische Darstellung der Auslieferung von KLICKin: Commit, Tests, Gitleaks, GHCR, Deployment mit Rollback

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

Architektur und Auslieferung von KLICKin

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

Links

Der Quellcode liegt in einem privaten Repository.

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