This is a working mockup of the system described in the functional brief: roster, leave, attendance, payroll and client billing all running off a single verified record of who worked which shift.
The screens are clickable rather than pictures. Use the navigation inside each one — the buttons do what they say.
Revised after the 2 September review
The meeting moved the centre of gravity. Payroll — not scheduling — is the bottleneck, and payroll is only hard because four kinds of staff are paid four different ways. That is now a screen in its own right: Pay Rules & Rates, where the calculation is written down rather than carried in someone's head.
Four staff categories — permanent Singaporean, permanent Malaysian, daily-rated and ad-hoc — each with its own overtime, public holiday and lateness treatment, applied down the pay run
The 15-minute late blocks, rounded up so a started block is a charged block, with the cover officer paid for staying back even when the late-comer loses nothing
Relief pool broadcasting — pick names, individual WhatsApp messages, first to accept takes the post
Client site blacklists, enforced in the roster and in the broadcast picker
Voice notes alongside text and photographed slips as an attendance source
The 8 / 4 / 2-week licence ladder and PLRD filing on every join and exit
An officer portal behind an OTP — handbooks and contract, deliberately no roster
The late rule, as clarified: round the lateness up to the next whole 15 minutes. A block that has been started is a block that is charged, so 16 minutes costs the same as 30 — two blocks. The scale turns twice below that: at 5 minutes the officer who stayed back starts being paid, and at 11 the late-comer starts losing a block. Permanent staff sit outside it entirely.