TRC-LU HRIS
Overview
Human Resource Information System for TRC-LU (DOH). Laravel 12 + Vue 3 + Inertia.js with CSC-compliant leave management, PDS (CS Form 212), training tracking, org chart, announcements, AI-powered policy chatbot, and RA 10173 compliance.
Problem
TRC-LU, a DOH treatment and rehabilitation center, relied on paper-based HR workflows or generic digital tools that didn't comply with CSC requirements. Leave applications, PDS forms, and training records were manual, error-prone, and hard to audit.
Approach
Built a full-stack Laravel 12 + Vue 3 HRIS with 14 feature modules organized around government HR workflows. CSC-compliant leave management (13 leave types, multi-stage approval, Form 6 PDF), PDS (CS Form 212 with 12 sections, HR review, PDF export), training tracking, org chart, and an AI policy chatbot powered by offline Ollama with RAG.
Architecture
Feature-module pattern under app/Features/ (Leave, Pds, Training, Employees, etc.) — each with Controllers, Requests, Models, Policies, Services, Enums, Events. Inertia.js 2 for SPA routing with Vue 3. Role-dispatched dashboards (Admin/HR/Employee) with session-based HR/Employee view toggle. 44 MySQL migrations. Laravel Reverb for real-time notifications. 15 middleware classes enforcing CSP, compression, cache, and RBAC.
Challenges
Government compliance required multi-stage leave approval (Certified → Recommended → Approved) matching CSC Form 6 exactly. PDS PDF export needed to match the official CS Form 212 layout. AI chatbot uses local Ollama (no internet) with hybrid search (BM25 + embeddings + cross-encoder reranking) plus tool execution for live data. RA 10173 (Data Privacy Act) compliance required CSP, PII redaction, activity logging, and role-based access on every endpoint.
Results
A production HRIS for a DOH agency covering the full employee lifecycle — hiring (PDS), attendance (leave), development (training), and records management. AI chatbot answers policy questions from 23 documents and can query live leave balances, PDS info, and training records.