OURQUILANE: Yalidine Delivery
HRForce: HR Management Platform
Enterprise HR platform spanning 26 NestJS modules: from recruitment to resignation: with CASL-based RBAC, Arabic/RTL document generation, and an async RabbitMQ audit trail.

Overview
A full HR management platform covering the entire employee lifecycle: recruitment, interviews, job offers, contracts, absences, leaves, resignations, events, and holidays. The NestJS backend spans 26 modules with CASL-based RBAC, generates Arabic/RTL documents with QR codes, and publishes an asynchronous audit trail over RabbitMQ. The Angular 16 frontend ships with Angular Material and Transloco i18n.
What I Did
- →Built a NestJS backend organized into 26 domain modules
- →Implemented JWT + Passport authentication with CASL-based RBAC, role guards, and custom decorators
- →Modeled the employee domain: employees, departments, contracts, occupations, absences, leaves, supervision, and agencies
- →Built HR workflows end to end: recruitment, interviews, job offers, applications, resignations, requests, events, and holidays
- →Created a document generation engine: jsPDF with Arabic/RTL text reshaping, QR codes, contracts, PVs, and employee files
- →Added ExcelJS exports, Handlebars templates, and Nodemailer notifications
- →Designed the multi-role request flow (HR, Regional HR, Admin) with supervision-hierarchy auto-assignment
- →Published an async audit trail and employee events over RabbitMQ with per-module queues
- →Persisted data in MySQL through TypeORM entities
- →Built the Angular 16 frontend with Angular Material, Transloco i18n, ngx-pagination, and ApexCharts HR statistics
Challenges
- •Generating correct Arabic/RTL PDFs: text reshaping, bidirectional layout, and QR embedding
- •Auto-assigning requests through the supervision hierarchy across HR, Regional HR, and Admin roles
- •Keeping CASL permissions coherent and auditable across 26 modules
- •Recording a complete audit trail asynchronously so writes stay fast
Results
- ✓One platform replaces fragmented spreadsheets across the full employee lifecycle
- ✓Contracts, PVs, and employee files are generated on demand in Arabic with QR verification
- ✓Every sensitive action lands in an async audit trail, per-module, with no request-latency cost
- ✓Multi-role request flow routes approvals automatically through the supervision hierarchy
Tech Stack
NestJS 10
Module system scales cleanly to 26 bounded HR domains
CASL
Attribute-based permissions expressed as policies instead of scattered role checks
RabbitMQ
Async audit trail and employee events without adding latency to requests
MySQL + TypeORM
Relational integrity across deeply linked HR entities
Angular 16
Angular Material UI with Transloco i18n for a multilingual workforce