CASE STUDY

KLICKin

The career platform of Aalen University – in production since launch and now used by more than 550 registered users.

Role
Fullstack development, DevOps and operations
Status
Running in production
CLIENT
Logo of Hochschule Aalen, the university KLICKin was built for
Live website
Screenshot of the klick-in.de home page with job board, student profiles and virtual career fair
Screenshot of the live platform.

STARTING POINT

Problem

Students, alumni and companies around Aalen University could only find each other through scattered point solutions: a job board here, profiles there, career fairs somewhere else again. What was needed was one product that brings all of it together – and that a university can keep running on its own. So not a prototype, but a system that survives everyday use without constant babysitting.

HOW IT WORKS

Solution & architecture

Platform

One product instead of four point solutions

I built the platform as a fullstack system: Next.js on the front end, an Express backend, and PostgreSQL driven by hand-written SQL across 25 migrations — deliberately without an ORM, so queries and indexes stay under my control. Real-time chat runs on Socket.IO, secured by a JWT handshake when the connection opens.

  • Real-time chat with a JWT handshake
  • Presence in Redis, longer work through BullMQ
  • OAuth via Google and LinkedIn, admin accounts with TOTP 2FA
Schematic view of the KLICKin real-time chat with a conversation list and online status

Operations

Every commit takes the same path

Operations are what actually carries the platform. Every commit goes through tests, Playwright end-to-end runs and a Gitleaks scan for secrets before images reach the GitHub Container Registry and are rolled out to Hetzner automatically.

  • Health checks and automatic rollback on deployment
  • Containers run read-only with cap_drop
  • 464 of the 467 commits in the repository are mine
Schematic view of the KLICKin delivery path: commit, tests, Gitleaks, GHCR, deployment with rollback

ARCHITECTURE

The path through the system

Next.js frontend

Job board, profiles, virtual fair

Express API

OAuth (Google, LinkedIn), admin TOTP 2FA

PostgreSQL

Raw SQL, 25 migrations

  • Real time

    Socket.IO with JWT handshake, presence in Redis

  • Background jobs

    BullMQ on Redis

CI/CD: tests, Playwright E2E and a Gitleaks scan → GHCR images → automated Hetzner deployment with health check and rollback, containers read-only with cap_drop

Architecture and delivery of KLICKin

Results

registered users
550+registered users
commits written by me
464/467commits written by me
SQL migrations
25SQL migrations
in production on klick-in.de
Livein production on klick-in.de

EVIDENCE & SCOPE

What is evidenced — and where the claim ends

These four fields separate my contribution, the project context, the measurement basis and the limits of the results.

My contribution
Fullstack development, DevOps and operations. I authored 464 of the repository's 467 commits, covering the front end, backend, database migrations, real-time features and deployment pipeline.
Team & context
KLICKin is Aalen University's career platform. The commit count makes my code contribution visible, but says nothing about subject-matter, organisational or editorial contributions outside the repository.
Measurement basis
The case study documents 550+ registered accounts, 464 of 467 commits, 25 SQL migrations and the live production system on klick-in.de.
Limitations
550+ means registered users, not monthly active users. The source is private, so repository history and implementation details cannot be independently inspected in public. Uptime, usage frequency and conversion are not reported here.

BUILT WITH

Tech stack

  • Next.js
  • Express
  • PostgreSQL
  • Raw SQL
  • Redis
  • BullMQ
  • Socket.IO
  • Docker
  • GitHub Actions
  • Playwright

Links

The source code lives in a private repository.

Does this match what you have in mind?

I build systems that are meant to run in production, not just to demo. If that matches what you have in mind, get in touch.

All case studies