A workforce platform for hospitality, from first login to payroll inputs

In a busy cafe business, HR was where the hours went: onboarding forms retyped from PDFs, a holiday ledger kept straight by hand and a rota rebuilt every time someone joined or booked leave. We built one staff-facing platform for all of it.

Locality
UK
Disciplines
Product engineering
Stack
  • Django
  • Next.js
  • PostgreSQL
  • Azure Key Vault
  • Azure Pipelines

At a glance

  • 864

    tests

  • 41

    epics in the build plan

  • 61

    owner rulings on the record

  • 3

    external tools it is designed to replace

The challenge

Small hospitality businesses carry the same employment obligations as big ones, with none of the HR department. Leave rules for maternity and long-term sickness are genuinely fiddly, and a mistake is someone's pay.

Three separate tools covered e-signature, rota and leave, and digital signage. None of them talked to each other or to payroll.

Architecture

Hospitality workforce platform architectureArchitecture diagram with 7 components. Staff and HR to Workforce platform. Workforce platform to People and pay history. Workforce platform to Holiday ledger. Workforce platform to Rota. Workforce platform to Onboarding. Workforce platform to Payroll inputs.Staff and HRPhone-first PWAWorkforce platformDjango + Next.jsPeople and pay historyHoliday ledgerAccrual engineRotaRules engineOnboardingIn-app signingPayroll inputsDates and categories

Swipe to explore the diagram

Staff are first-class users from their first login. The platform records dates and categories, and payroll software stays responsible for calculating statutory pay.

What we built

People and onboarding

  • An employee record with pay history, right-to-work, pension status and training
  • The starter form as a forced first-login flow, with in-app signing, generated document packs and a hire approval lifecycle
  • Bank-detail changes requested by staff and approved by HR

Leave and rota

  • A per-day holiday and absence ledger with an accrual engine and statutory carry-over per leave type
  • Holiday requests with approval, and payroll-period views
  • A rota baseline derived from employment, a rules engine, publishing and shift pickup

Around the edges

  • Timekeeping ingest through a normalising edge, and end-of-day cash-up posting to the accounts
  • Every wage checked against an effective-dated minimum-wage table
  • Departmental messaging with rota-aware recipients and a confidential channel to HR

Engineering decisions

Staff-facing from day one

The first thing a new starter sees is their own onboarding, on their own phone. It isn't an admin console with a staff view bolted on later.

Never calculate statutory pay

The platform records dates and categories and stops there. Payroll software calculates pay, and any epic that starts drifting into it is sent back.

Rulings before code

Leave interpretations were written down and signed off first, then coded and tied back to the ruling they implement.

Done means verified on the live URL

An epic is complete when it works on the deployed app, not when CI is green. A walkthrough of every staff screen is part of that.

Outcome

People, leave, rota and onboarding are built, tested and deployed through CI, with an equivalence specification ready for retiring the incumbent leave tool and signage designed in as an extension.