HR & Employee Management System
HR software for a growing company: employee records and contracts, leave and absence, time registration, onboarding checklists, documents with expiry dates, and an employee self-service app.
Project facts
- Project type
- HR & employee management
- Category
- Business systems
- Industry
- Human resources & operations
- Technology stack
- Next.js
- React
- TypeScript
- PostgreSQL
- Prisma
- BullMQ
- S3-compatible storage

Overview
This demonstration project shows an HR and employee management system for a company of fifty to a few hundred people spread over an office and several sites. It replaces the personnel folders, leave spreadsheets and email threads that HR usually runs on with one system: every employee has a record with their contract, role, manager, documents and history, and every request follows the same route.
Employees use a self-service app to request leave, register hours, report sick and download their documents. Managers approve requests from their phone, and HR sees headcount, absence and upcoming contract end dates at a glance. Payroll itself stays with the payroll provider or accountant: the system prepares the hours, absences and changes they need each month.
The challenge
In many companies HR lives in a shared folder of Word contracts, a leave spreadsheet that one person maintains and a great deal of email. Nobody knows exactly how many leave days someone has left, contract end dates and certificate expiries are noticed too late, onboarding depends on who remembers what, and sensitive personal data sits where too many people can open it. Off-the-shelf HR tools help, but they often do not fit local leave rules, shift patterns or the company's own approval lines.
The solution
The concept puts every employee in one record and every HR process in one flow. Leave and absence requests are checked against the employee's balance and the team calendar, then routed to the right manager; time registration follows each site's schedule; onboarding and offboarding run as checklists with owners and due dates. Documents are stored with an expiry date and a reminder. Access follows roles strictly: employees see their own data, managers see their team, and only HR sees salaries and medical notes.
Key features
- Employee records with contracts, roles, managers and history
- Leave and absence requests with balances and a team calendar
- Time registration per site and shift pattern
- Onboarding and offboarding checklists with owners
- Documents and certificates with expiry reminders
- Employee self-service app for requests and documents
- Role-based access with an audit log of every file view
- Monthly export of hours and absences for payroll
Who it is for
- Companies with 50 to 500 employees
- Businesses with several sites or shift work
- HR teams running on spreadsheets and shared folders
- Organisations that need tight control over personal data
Technical approach
A Next.js application for HR and managers with a mobile-first self-service area, backed by PostgreSQL through Prisma. Leave rules, accrual and working patterns are configuration per contract type rather than code. Authorization is enforced on the server for every query, sensitive fields are encrypted, and every view of a personnel file is written to an audit log. Documents are kept in private S3-compatible storage and opened through short-lived links; BullMQ sends approval requests, expiry reminders and the monthly payroll export.
- Frontend
- Database
- Infrastructure
- Integrations
- Payroll exportGoogle WorkspaceMicrosoft 365SMTP
Screens
Main screens
Admin interface
Mobile & responsive views
Services behind this project
The work in this case study maps onto these services. Each page explains scope, process and what you receive.
Related projects
All projects
Business systemsCRM systemCustom CRM System
A CRM shaped around one sales process: lead capture from the website and WhatsApp, a visual pipeline, contact timelines, follow-up tasks, quotes and a sales dashboard.
- Next.js
- React
- TypeScript
- PostgreSQL
- Prisma
- +2
AutomotiveGarage management softwareGarage Management System
Workshop software for car repair garages: a live workshop board, repair orders with parts and labour, vehicle history, online appointments, WhatsApp updates to customers and invoicing.
- Next.js
- React
- TypeScript
- PostgreSQL
- Prisma
- +3
Desktop softwareWindows desktop applicationWindows Desktop Business Application
A Windows desktop application for running a small business from the office PC: customers, records, quotes and invoices, local printing, reports and backups — fully offline, with optional sync to a server.
- Electron
- React
- TypeScript
- SQLite
- Node.js
- +2
Questions about this type of project
Is this HR system used by a real company?
No. It is a demonstration project with fictional employees and sample data. It shows how Saad builds custom HR and employee management software.
Does the system calculate salaries?
Not in this concept. Payroll rules differ by country and are usually handled by a payroll provider or accountant. The system prepares everything they need — hours, absences, allowances and contract changes — and exports it each month. A direct integration can be added when the provider offers an API.
How is personal data protected?
Access is limited by role on the server, sensitive fields are encrypted, documents are stored privately and opened through short-lived links, and every view of a personnel file is logged. Retention periods can be set so data is removed when it no longer needs to be kept.
Want a similar project?
Tell Saad what you need. You get a clear scope, a phased plan and direct contact with the developer who builds it — no middlemen.
Direct, clear communication
You talk directly to the engineer writing the code — no sales intermediaries, no vague delivery dates.
Fully custom solutions
No ready-made WordPress themes or copied code — every line is written to fit your business's exact requirements and scale.
From idea to launch
Help shaping the specification and turning a rough concept into a real, usable digital product.
The request form opens with this type of project already selected.


