Back to worldNext: BudgetPal

04 · Station pilot

YellowShifts

A workday that runs with the station.

Workforce management for fuel stations: weekly scheduling, NFC-based attendance and hours reporting. Built for Paz stations in Israel and part of Darb. The repository is named PazShifts; the product is YellowShifts.

Nour’s role
Product engineering · Full-stack · Mobile systems
Status
Piloting at a working Paz station, where employees clock in by tapping a physical NFC tag at the counter. The newest scan flow is still awaiting on-site verification.
The YellowShifts admin weekly schedule builder in Hebrew: a seven-day grid of morning and evening shift cards with assigned demo staff, and Publish and Copy previous week actions.
Admin: weekly schedule builder (draft week). Local build of the PazShifts repository with fictional demo staff marked “(demo)”.

What is real today

Live

  • Worker PWA at paz.darb.co.il and admin app at admin.paz.darb.co.il
  • Scheduling, NFC attendance and hours reports in a station pilot

Not claimed

  • The native Expo app is in progress, with no store release
  • The demo on this page is a simulation and is not connected to any station or worker data

The problem

Station shifts are planned on paper or in group chats, and attendance is reconstructed afterwards. Hours reports become an argument instead of a record.

Staff work across stations, overnight and through holidays. Rules for overtime, breaks and night rates differ per station.

How it works

  1. 01

    Attendance is physical and simple: tap the station’s NFC tag. The first scan starts the shift; a later scan asks for confirmation before clocking out.

  2. 02

    An NFC scan is one Postgres function that validates the station token, checks for an open shift and inserts or closes the record in a single transaction. Constraints prevent overlapping shifts, even across stations.

  3. 03

    Hours are calculated in one place — a shared reports package used by the worker app, the admin reports and the mobile app — and flagged records are listed for review instead of being guessed.

Try it

Tap the tag to start a simulated shift, then tap again to finish — the product always asks before clocking out.

Demo station · Thursday

Morning shift · 07:00–15:00

Scheduled
  1. 1. Scheduled
  2. 2. Clocked in
  3. 3. Clocked out

Simulation. Not connected to any station, worker or attendance data.

Selected capabilities

  • Weekly scheduling

    Schedules built from reusable shift templates and published to the team; workers submit availability for the coming week.

  • NFC attendance

    Tap to start, tap again and confirm to finish. Exceptions such as missed check-outs are resolved with manual corrections that require a reason.

  • Hours reports

    Per-station rules for overtime tiers and break deduction; PDF or CSV export, with CSV cells escaped so a name cannot run as a spreadsheet formula.

  • Database authorization

    Every station-scoped table is protected by row-level security keyed on station membership and role.

  • Roles

    Platform admins, station admins, shift managers and workers, from the same admin app on desktop and on the station floor.

  • Hebrew first

    Right-to-left Hebrew interface with Heebo and Ubuntu, in the station’s own time zone.

Architecture

A Turborepo of two Next.js apps and an Expo app sharing one hours engine over Supabase.

  1. apps/web

    Worker PWA (Next.js): scan, schedule, availability, hours.

  2. apps/admin

    Station and platform administration (Next.js).

  3. apps/mobile

    Native worker app (Expo / React Native), in progress.

  4. packages/reports

    The single hours calculation and PDF/CSV export.

  5. Supabase

    Postgres, Auth, RLS policies and RPC functions; tested with disposable Postgres clusters.

  • Next.js 16
  • React 19
  • TypeScript (strict)
  • Supabase · Postgres · RLS
  • Expo SDK 57
  • Turborepo · pnpm

The live product

Captures of the public production pages, and of the app running locally from its own repository with fictional demo data. No real customer or staff data appears.

Station hour rules in Hebrew: week start, daily minute caps and overtime tiers at 125% and 150%.
Admin: per-station hour rules and overtime tiers.
The YellowShifts station admin sign-in on desktop.
admin.paz.darb.co.il sign-in — captured 2026-09-27.
The worker app on a phone in Hebrew: the published weekly schedule with the next morning shift, 06:00 to 14:00.
Worker app: published weekly schedule.
The worker availability form for next week in Hebrew, marked as submitted, with per-day choices.
Worker app: availability for next week.
The YellowShifts worker app sign-in on a phone, in Hebrew, with phone number and password.
paz.darb.co.il worker app, Hebrew — captured 2026-09-27.

From the repository

YellowShifts logo: a yellow Y mark beside the white YellowShifts wordmark on black.
YellowShifts logo from the PazShifts repository (apps/web/public/brand).