P-02 · Case study · Client project

HRSB ONE: one platform for people, time and pay.

A single Laravel application that runs people operations for a multi-company corporate group: staff records, biometric attendance, leave, claims, overtime and a monthly payroll that meets Malaysian statutory requirements.

01The problem

A multi-company corporate group needed one system for its people operations: staff records, daily attendance from biometric devices, leave, claims, overtime, and a monthly payroll that meets Malaysian statutory requirements.

The hard part wasn't the number of screens. Different business units follow different overtime approval rules, attendance comes from devices as raw clock punches, and payroll has to be correct every month for every company.

02The solution

HRSB ONE brings these processes together in one Laravel application, used through a browser-based web app and a mobile app API.

AreaWhat it covers
Staff & organisationStaff master data, companies, business units, departments, staff categories, bank accounts, documents, contracts, probation, termination, bulk import and export
AttendanceBiometric clock integration, punch processing, shift and overnight calculation, attendance justification and approvals, locations
LeaveTypes, levels, entitlements, applications, approvers, adjustments, yearly grants and carry-forward
ClaimsClaim types, categories, submission, batch approval and monthly due dates
OvertimeStandard overtime and an Energy Cost Control overtime process with planning and multi-level approvals
On-callOn-call allowances matched against attendance
Payroll & statutoryPayroll runs, payslips, statutory files and forms, bank payment files, year-to-date reporting
FinanceFinance dashboards and variance reporting
ProjectsProject codes linked to overtime planning
Assets & licencesAsset register, maintenance, software licences, seats and audits
Tickets & memosInternal ticketing and company memos
HSEQHealth, safety, environment and quality incidents and observations
TrainingTraining records, attendance, evaluations, mentoring and individual development plans
AdministrationRoles and permissions, data-driven menus, holidays, policies and grievances

03Implementation

Statutory payroll engine

  • Produces EPF, SOCSO, EIS, PCB/LHDN (including EA forms and PCB2) and zakat outputs.
  • Generates Maybank M2E bank payment files for salary disbursement.
  • Handles year-to-date figures, interns and foreign workers, with claims and overtime pulled into each payroll run.

Biometric attendance pipeline

  1. Pulls clock punches incrementally from WDMS biometric devices.
  2. Stores punches and maps device PINs to the right staff, with a screen for unmapped PINs.
  3. Rebuilds each staff member's day from raw punches: shift hours, overnight duty, paid time off and incomplete days.
  4. Sends heavy rebuilds and long history syncs to separate queues.
  5. Emails an alert automatically when a device stops reporting.

Overtime approval workflow

  • Requestor
  • PM / HOD
  • HBU
  • VP

Monthly and weekly overtime planning by project, daily requests, delegation and variance reporting. Configurable hour bands decide how far up the chain a request must go, and approved hours are written directly into payroll.

Security & operations

  • Role-based permissions control every menu and action.
  • Session login for the web app; JWT authentication for the mobile API; push notifications through Firebase Cloud Messaging.
  • Containerised with Docker Compose: PHP-FPM, Nginx, and separate Redis-backed queue workers for general jobs, payroll and attendance.
  • Scheduled jobs for attendance reminders, contract-expiry and probation notices, claim reminders, yearly leave grants and training evaluations.
  • PHPUnit tests covering attendance, payroll, finance, leave, claims and staff contracts.

04Challenges & decisions

Challenge

Business units approve overtime differently

Decision

A multi-level chain with configurable hour bands, so each request goes exactly as far up as its hours require, without a separate workflow per unit.

Challenge

Large payroll runs blocked other users

Decision

Heavy payroll report generation runs on dedicated background workers, so a month-end run doesn't slow down everyone else.

Challenge

Device syncing collided with core jobs

Decision

Split schedulers and separate queues for attendance, payroll and general jobs, so long device history syncs can't delay core work.

Challenge

Raw punches don't map cleanly to a working day

Decision

Rebuild each day from raw punches, handling overnight duty and incomplete days, and surface unmapped device PINs instead of silently dropping them.

Challenge

Overtime must never be paid twice

Decision

Approved hours flow straight into payroll with safeguards against duplicate overtime entries.

05Outcome

HRSB ONE brings the group's people operations into one system of 15+ modules, covering the full path from a clock punch to a statutory payroll file. I led it as lead developer and project manager through Team ChendAwan Ventures.

The code and screens belong to the client, so I can't publish them. I'm happy to walk through the architecture and the decisions above in an interview. Get in touch.