OptiRH
An internal platform for ARCOP, Togo's public procurement regulator, that runs its HR on software instead of paper: staff records, leave and absence requests with their approvals, and HR document requests.
Design and development, architecture, absence approval workflow, HR document requests, email system, CI/CD
ARCOP manages staff across seven directions and handled leave, absences and HR paperwork on forms passed from office to office. OptiRH moves that onto a single web application: an employee files a leave or document request online, it follows ARCOP's real approval chain (direct manager, then department head, then HR), and the signed decision comes out as a ready-to-print PDF. HR keeps the staff register, the leave balances and the public-holiday calendar in one place, and every role (employee, HR, finance director, director general) gets a dashboard built around what that role actually does. OptiRH is in production at ARCOP for a staff of a few dozen.
The problem
Leave and absence requests at ARCOP travelled on paper: a form filled by hand, walked from the employee to their manager, to the department head, to HR, and back. Nobody had a reliable view of who was off, how many leave days each person had left, or where a given request was stuck. Producing the final signed leave decision meant retyping the same information into a document every time.
The approach
OptiRH is a single Laravel application that reproduces ARCOP's org chart (directions, jobs, the manager-of relationship) so every request routes automatically to the right people. The approval flow is modelled as explicit levels: a request only reaches HR once the direct manager and the department head have signed off, and the final validation locks in a sequential decision number and generates the PDF. Leave durations are computed against a maintained public-holiday calendar, and the existing paper balances were brought in through a CSV import that matches employees by name.
The result
- Leave, absence and HR document requests at ARCOP are filed and approved in the application; the paper circuit is gone.
- The signed leave decision is generated as a PDF at the end of the flow instead of being retyped.
- HR has a live view of staff, remaining leave balances and pending requests; each role gets its own dashboard.
- In production at ARCOP for a staff of a few dozen.
Key features
- Online leave and absence requests that follow ARCOP's real approval chain: direct manager, department head, HR
- Automatic routing: each request lands with the right validator based on the org chart
- Generated PDF leave decisions (annual, maternity, exceptional), numbered in sequence
- HR document requests (work and internship certificates) with the same approval flow and PDF output
- Staff register: directions, jobs, assignments, contracts, bank details, personal documents
- Leave balances per employee, with a maintained public-holiday calendar used to compute durations
- CSV import of leave balances, for the initial move off paper and for the yearly reset
- Role-based dashboards (employee, HR, finance director, director general) with the relevant figures and pending actions
- Internal publications board with attachments
- Activity log recording every action, and email notifications with retry and fallback if sending fails
Stack
- Laravel 10
- PHP 8.1
- MySQL 8
- Blade
- Bootstrap 5
- JavaScript (ES6)
- DataTables
- ApexCharts
- DomPDF / FPDI
- Spatie Permission (RBAC)
- Docker
- GitHub Actions
Design and development, architecture, absence approval workflow, HR document requests, email system, CI/CD — ARCOP — Autorité de Régulation de la Commande Publique (Lomé, Togo)