An HR system for a furniture factory, from time clock to timesheet
Attendance, shifts, piecework and payroll for a factory in Vietnam, with a Linux agent that reads the gate time clocks.
Livechecked 23/09
- Client
- A furniture manufacturer in Vietnam (name withheld)
- Role
- Freelance build, one of a team of 4
- Period
- 04/2026 →
- Proof
- 6 claims
- Stack
- .NET · React · TypeScript · Ant Design · PostgreSQL · xUnit · Docker · Python
- 1ProblemAttendance ran on clock exports and spreadsheets.
- 2Build.NET 8 API, React client, PostgreSQL and a time-clock agent on site.
- 3Result79,262 punches turned into 6,354 workdays in production.
Problem
A furniture factory in Vietnam ran attendance on exports from the time clocks at its gate and on spreadsheets. Shifts, piecework and payroll were reconciled by hand every month.
Build
A .NET 8 API with EF Core and PostgreSQL, and a React 18 client with Ant Design: an attendance engine with shift milestones, piecework slips with role-based approval, payroll snapshots and PDF slips, and an audit trail with retention.
On site, a Linux agent reads the ZKTeco and Ronald Jack time clocks over TCP and pushes punches to the API on a schedule.
Result
Limits
The factory is not named. The system has since grown into an ERP; my part there is the manufacturing module and the warehouse upgrade.
My part
It started from an existing EOffice codebase, used with permission. A four-person team built the factory system on it; 381 of its 510 commits are mine P1, including the time-clock agent and the acceptance report.
My commits on the HR system381 / 510 · 75%
Proof of delivery · NLV-26-HRM
| # | Claim | Evidence | As of | Confidence |
|---|---|---|---|---|
| P1 | My part was 381 of the system's 510 commits. |
| 21 Oct 2026 | I hold the artifact |
| P2 | In production it has turned 79,262 time-clock punches into 6,354 workdays. |
| 23 Sept 2026 | I hold the artifact |
| P3 | It holds 254 employee records, 66 of them active. |
| 23 Sept 2026 | I hold the artifact |
| P4 | 6 roles share 112 permissions. |
| 23 Sept 2026 | I hold the artifact |
| P5 | .NET 8 API with 22 controllers and 189 routes. |
| 21 Oct 2026 | I hold the artifact |
| P6 | 153 xUnit test cases. |
| 21 Oct 2026 | I hold the artifact |