All projects
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