Case study — the 1-minute version

How I built and run a scheduling app on my own

By Gurjinder Johal, full-stack developer. Shiftova is a staff scheduling and time-clock app for restaurants. I designed, built and run all of it, and it's live and in daily use.

32 / 32

database tables locked down by security rules

13

server functions for payments, notifications and email

476

automated tests on the business rules

How it's built

  1. Phone app (iOS & Android)

    React Native + Expo, one TypeScript codebase. Manager, employee and kiosk modes. Overtime, payroll and forecast logic run here as tested functions.

  2. Supabase (hosted PostgreSQL)

    Sign-in and invites; 32 tables with row-level security on every one; 48 database functions and 41 triggers; 70 versioned migrations.

  3. 13 server functions + 5 scheduled jobs

    Payments (checkout, billing portal, Stripe webhook, nightly reconcile), people (invites, account changes, kiosk), messaging (push, chat, incident emails), and scheduled reminders, alerts and data retention.

  4. Third-party services

    Stripe, Apple and Google push notifications (through Expo), Resend email.

Decisions I'd point to

The honest part

It's a one-developer product, so there's no second reviewer, no automated build pipeline yet, and fixes wait for an app-store review. Those are the next things I'd add.

Skills used

React NativeExpoTypeScriptPostgreSQLSupabaseRow-level securityServerless functionsStripe paymentsPush notificationsSystem designAutomated testingApp Store & Google Play releases

About me

I'm a full-stack developer with a computer science degree and 10+ years building software and analytics for a restaurant franchise business. I also run Nechako Digital, the studio behind this site. I'm looking for a full-stack, backend or data role.

Also see the sales-forecasting case study from the same app.