Back to projects
NestJS 10Angular 16MySQLRabbitMQ

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.

HRForce architecture: 26 NestJS modules covering auth, employee domain, HR workflows, and document generation, backed by RabbitMQ, MySQL, and Angular 16
26 NestJS modules: auth & authorization, employee domain, HR workflows, document generation, and multi-role request flow.

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