HR Operations Platform
One system for attendance, shifts, leave, payroll inputs and client billing.
- Discipline
- Business Systems
- Status
- In daily use
- Proof
- 150+ daily employee check-ins

Overview
A workforce operations platform that covers the working day end to end. Staff check in, shifts are tracked, leave and overtime are approved, and the numbers flow into payroll and earnings without being typed twice. A separate payment app lets clients settle invoices through Stripe or PayPal.
- Role
- Product design, frontend and backend engineering
- Services
- UX and interface design, Web application, Real-time features, Payments, Document exports
- Platform
- Web application with a separate payment app
Impact
150+
Daily employee check-ins
The platform runs the team's daily operations, handling more than 150 employee check-ins a day alongside payroll, leave and client billing.
Context
The platform serves a production team and the clients it delivers for. The same records drive internal operations, like attendance, payroll and expenses, and client-facing work, like orders, invoices and payments.
Challenge
HR software is judged every morning. If a check-in fails or a shift is miscounted, payroll is wrong two weeks later. The system had to cover a wide surface (staff, attendance, shifts, leave, overtime, payroll, orders, invoices, expenses, notices, policies, assets) without turning into a maze, and stay consistent while many people use it at once.
Strategy
The decisionsthat shaped it.
- 01
One record, many views
Attendance, overtime and leave write to the same staff record that payroll and earnings read from. Nothing is re-entered between modules.
- 02
Payments in their own app
Client payments run in a separate Next.js app reached through tokenised links. Billing can be secured, deployed and changed without touching the internal product.
- 03
Scope by role
Staff see their day. Managers see their team. Admins see the organisation. Same modules, different reach.

Experience
Who does what,in what order.
Staff
- Sign in
- Check in
- Work the shift
- Request leave or overtime
- Check out
Manager
- Review attendance
- Approve leave
- Confirm overtime
- Close the payroll period
Client
- Open invoice link
- Choose Stripe or PayPal
- Pay
- Get confirmation

Interfacedecisions.
01
Attendance filters by status in one step: present, absent, late, half day, early exit, on leave.
02
Payroll is computed from attendance. Work days, presence and per-day rates roll into the payable amount before anyone is paid.
03
Outstanding and disbursed totals stay visible while payroll moves from preview to paid.
Engineering
What powers it.
01Interface
- Next.js
- Redux Toolkit
- Radix UI
02Services
- Node.js API
- better-auth
- Socket.io
03Data
- MongoDB
- Mongoose
04External
- Stripe
- PayPal
- PDF export
- Excel export
Real-time attendance
Check-ins and approvals are pushed over Socket.io, so dashboards update without a refresh.
Sessions and roles
better-auth sessions with role checks on every route and API call.
Exports
Payroll and reports export to PDF and Excel for the people who work outside the system.
Outcome
The platform runs the team's daily operations, handling more than 150 employee check-ins a day alongside payroll, leave and client billing.