People records, onboarding, and the work between them.
NyxPeople started as HRnet, one of my OpenClassrooms projects. It worked, but it still felt like a CRUD exercise.
I left the school version alone and rebuilt the idea with fewer features, keeping the remaining workflows connected.
- Role
- Product design + front end
- Stack
- React · TypeScript · MSW
Three jobs were enough.
More screens would not make the work more believable. I kept three jobs and left payroll, recruitment, and leave management out.
Overview
See what needs attentionReadiness, starters, and pending work in one place.
Employees
Find and maintain peopleA durable directory built for hundreds of records.
Onboarding
Prepare the first weekSix practical steps connected to the employee record.
400 people, not a spreadsheet.
- 400+
- fictional records
- 3
- connected product jobs
- URL
- durable directory state
What 400 records reveal.
The directory is where the product proves itself. Daily state is durable, visible, and shareable instead of disappearing after every navigation.
Density
400+ fictional records expose weak hierarchy instead of hiding it.
Memory
Search, filters, sorting, and pagination live in the URL.
Continuity
Open a profile, go back, or refresh. The directory stays where you left it.
A person becomes work, not another isolated screen.
One employee record carries identity and employment details through editing and six practical onboarding steps.
Profile
Identity, employment details, and onboarding readiness stay connected on one record.


Create + edit
The same structured employee data drives both creation and editing.


Onboarding
Six practical onboarding steps remain attached to the employee record.


Profile
Identity, employment details, and onboarding readiness stay connected on one record.
Employee profile connecting identity, employment details, and onboarding readinessCreate + edit
The same structured employee data drives both creation and editing.
Employee form with validation and structured employment fieldsOnboarding
Six practical onboarding steps remain attached to the employee record.
Six-step onboarding checklist connected to the employee recordThe backend is mocked. The frontend isn't.
MSW provides a typed API boundary. Browser data is versioned and validated; requests can fail, mutations can recover, and stale responses do not get the last word.
What I kept, and what I tested.
I kept HRnet’s employee-record starting point and limited the rebuild to overview, employees, and onboarding. Then I tested what happens when someone filters the directory, edits a record, refreshes, or hits an error.
- 01
Choose the jobs
Reduce the scope to overview, employees, and onboarding.
- 02
Connect the record
Carry one person through directory, profile, editing, and onboarding.
- 03
Harden the state
Make filters shareable, data versioned, and mutations recoverable.
- 04
Verify the product
Exercise the interface through automated tests, CI, and browser review.
The record holds together.
With 400+ fictional records, the directory can be searched, refreshed, and returned to without resetting. Edits also carry through to the employee profile and onboarding checklist.
On the overview, starters and pending tasks come before headline metrics. Type and spacing help keep that priority clear.
- 146
- unit + integration tests
- 26
- Playwright scenarios
- CI
- GitHub Actions
- DEPLOY
- Vercel