Problem
What was needed?
Paper sign-in sheets showed neither who was actually on site, how shifts rotated, nor where leave requests piled up.
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

Problem
Paper sign-in sheets showed neither who was actually on site, how shifts rotated, nor where leave requests piled up.
Solution
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
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
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.