Valiant Workforce Management Platform
A workforce management and payroll automation platform for Valiant Allied Services, Inc.
Overview
A full-stack employee management and payroll automation system designed to improve internal workforce management and reduce manual processing. Built during an internship at Valiant Allied Services, Inc., this system replaced manual payroll preparation with automated digital workflows.
Problem
Manual payroll preparation caused significant operational inefficiencies:
- ▸Time-consuming manual calculations for 24+ employees across 3 branches
- ▸Repetitive administrative work that consumed hours each pay period
- ▸Higher possibility of human error in payroll computation
- ▸Difficulty tracking employee records and generating reports
Solution
Developed a comprehensive system with the following modules:
- ▸Employee management module for centralized employee data
- ▸Automated payroll processing system with configurable rules
- ▸Administrative dashboard with key metrics and insights
- ▸Reporting features with PDF payslip generation
- ▸Excel import/export for data migration and backups
Impact
| Metric | Value |
|---|---|
| Employees Supported | 24+ |
| Branches Covered | 3 |
| Reduction in Prep Time | 80% |
Technology Stack
| Layer | Technology |
|---|---|
| Backend | Laravel 12 / PHP 8.2 |
| Admin Interface | Filament v5 |
| Database | MySQL 8.0 |
| Frontend | Livewire / Alpine.js / Tailwind CSS |
| Testing | PHPUnit / SQLite in-memory |
| Container | Docker / Alpine / Nginx / PHP-FPM |
| CI | GitHub Actions |
Key Achievements
- Reduced manual payroll preparation time by up to 80%
- Supported payroll processing for 24+ employees across 3 branches
- Automated complex payroll calculations including deductions and contributions (SSS, PhilHealth, Pag-IBIG, TRAIN Law tax)
- Built a scalable system that can be extended to additional branches
- Implemented automated testing for critical payroll workflows
Engineering Judgment
Filament over custom admin panel — The project needed CRUD for employees, payroll records, and reports. Filament handled all of that declaratively: resources, tables, forms, and actions. A custom admin panel would have added 3–4 weeks of boilerplate for zero marginal value. The tradeoff is less control over exact UI behavior, but for an internal tool used by trained staff, Filament's conventions were faster and more maintainable.
Payroll calculation engine as a service class — Rather than scattering deduction logic across controllers or models, a single PayrollService::compute($employee, $period) class encapsulates all statutory deduction rules. This made the 80+ PHPUnit tests possible: each deduction type can be tested in isolation with known inputs. The tradeoff is that service classes can grow large; I used separate private methods per deduction type to keep it readable.
Config-driven statutory tables — SSS, PhilHealth, Pag-IBIG contribution tables and TRAIN Law tax brackets are stored in the database and versioned by year. This means updating a rate for a new tax year is a data change, not a code change. The tradeoff is an extra DB query per payroll run, which is negligible for 24 employees but would need caching at scale.
SQLite in-memory for tests — PHPUnit tests use SQLite in-memory instead of MySQL. This makes tests run fast (no external DB needed) and enables CI to run them without a MySQL service. The risk is SQLite-vs-MySQL dialect differences; I mitigated this by keeping queries in Eloquent (which abstracts most differences) and maintaining a small MySQL-specific test suite for critical paths.
Test Coverage & CI/CD
The test suite covers payroll scenarios (regular, overtime, absent, multiple allowances), deduction math for all four Philippine statutory systems (SSS, PhilHealth, Pag-IBIG, TRAIN), and critical user workflows. Tests run in CI via GitHub Actions on every push.