work · system · in use by a client

Shifts — scheduling for an ice-cream chain

The second real client. Staff privately mark when they can work, the owner drags those people into shifts, and everyone sees only their own schedule and takes an image for the work group. Plus shift opening and closing forms from a phone. Three branches, three roles, Hebrew and RTL.

Type
Shift scheduling
Term
2026
Languages
HE
Status
Done
Sun–Thu, 09:00–19:00

The task

The schedule was built by hand: who can work when lived in WhatsApp messages someone had to collect, the roster itself lived on paper and in the owner's head, and shift opening and closing forms were printed and lost. Privacy was a hard requirement: one employee must not see when the others are available.

Constraints

  • An employee sees only themselves — everyone else's availability is closed
  • Phone, Hebrew and RTL: an interface for people behind the counter
  • No passwords — phone number and a personal code
  • Three branches, each with its own headcount per shift
  • The finished roster leaves as an image for the work group

What is inside

Branches
3
Access roles
3
Screens
16
Lines of code
5 600
Languages
1
HE

The numbers are the state at handover, not a showcase: the system is live and staff are still being added.

How it went

  1. 1

    Listened to voice notes

    The spec was never a document — it arrived as Hebrew voice notes on WhatsApp, over months, in pieces, between shifts.

  2. 2

    Privacy first

    Roles and visibility went into the foundation: employee, branch manager and owner saw different screens from day one.

  3. 3

    Roster by dragging

    The owner takes a person from the available list and drops them into a shift; a counter shows the branch headcount.

  4. 4

    Accepted and running

    The chain has been working in it since 10 August 2026, and the client signed it off on 23 August.

What it runs on

Framework
Next.js · React · TypeScript
Data
PostgreSQL · Prisma
Interface
Tailwind · shadcn/ui · RTL
Access
phone login · PIN · 3 roles
Platform
Railway

There is no paid service inside and no outbound call — which is why running it costs tens of shekels a month instead of a per-seat subscription.

get in touch

Start with one message.

Say what the business is and what's in the way — that's enough. I'll check your Instagram and Google listing for the rest. No menus, no manager: I read it myself.

Sun–Thu, 09:00–19:00

Tomer Iukhvidov receives what you enter in this form, only to answer your request. The fields are voluntary, but without a way to reach you I can't reply. Privacy policy and your rights.