Case study

Vardiya Müdürü

A SaaS for cafés and restaurants: shift planning, QR + location-verified attendance, and team communication under one roof.

Platforms

Web Admin / Mobile

Role

Product design, data modeling, and end-to-end development of all three apps.

Tech stack

NestJS · Prisma · PostgreSQL

Status

Launch-ready

Vardiya Müdürü

Problem

What was needed?

Paper sign-in sheets showed neither who was actually on site, how shifts rotated, nor where leave requests piled up.

Solution

How was it solved?

A three-app monorepo: NestJS API, Next.js management panel, and a Flutter staff app. Staff check in by scanning the branch QR with single-point location verification; duplicate open records are impossible at the database level, and every critical action lands in an audit log.

Outcomes

What came out of it?

QR + single-point location attendance (no continuous tracking)

Recurring shift engine with weekly rules and series updates

Role- and branch-scoped data isolation, audit log, CSV/PDF reports

Fail-fast security config that refuses to boot with weak secrets

Build note

Build narrative

Vardiya Müdürü was built as an operations system, not a demo. Check-ins are guarded by a partial unique index inside a locked transaction; mock-location attempts are rejected and audited. Recurring shifts expand from rule-based series, and reports render Turkish characters correctly through embedded-font PDFs. With push notifications, an iyzico subscription flow, and KVKK-compliant legal pages, the system ships as a self-hosted package that runs on a single VPS.