Enterprise Private repo · walkthrough on request
Monitoring Portal
Contract-lifecycle management, rewritten as React 18 + PHP 8
The problem
A legacy PHP monolith managed contracts, approvals and billing. It used MD5 passwords and had no MFA and an unnormalized schema.
The solution
A full rewrite of FIT Academy's monitoring system as a React 18 SPA and a clean-architecture PHP 8 REST API. It covers customers, contracts, implementations, approvals, billing, collections and reports, on a redesigned normalized MySQL schema with a legacy-data migration.
Highlights
- Clean architecture (Controller → Service → Repository) with a custom router and DI container
- JWT with a refresh-on-401 queue, plus TOTP or email-OTP multi-factor authentication
- Transparent upgrade of legacy MD5 passwords to bcrypt on first login
- Field-level edit logs, approval workflows and role-aware navigation
- One-time migration script that maps every legacy row to the new schema