CASE STUDY · LMS MODERNIZATION
Rifat Academy: Modernize a legacy LMS without treating migration as cleanup.
Rifat Academy

Rifat Academy’s rebuild was not only a new interface. The existing WordPress/MariaDB LMS contained production data and account history that had to move into a custom application, while authentication and deployment had to work at cutover.
The problem
A legacy LMS needed to move from WordPress/MariaDB into a custom application architecture. Rebuilding the screens was only one part of the job; the existing production data and account behavior still had to survive the migration.
The constraint
Data migration, authentication and production delivery could not be postponed until after ‘the app was done.’ They were part of whether the rebuild was actually usable.
The decision
Treat the legacy database as a migration source, make the data move explicit, and validate authentication and production serving as part of the modernization rather than separate cleanup work.
What I owned
I owned the modernization engineering path documented here: moving the application experience to Next.js with a Node/Express API and MongoDB, migrating required WordPress/MariaDB data into the new model, checking key migrated collection counts, validating admin/student authentication, configuring Nginx/HTTPS production serving with Certbot, and setting up the PM2 + GitHub Actions deployment path. This case study does not invent strategy ownership, user-growth claims or unverified performance outcomes.
What I implemented
Step 1
Moved the application experience to Next.js with a Node/Express API and MongoDB.
Step 2
Migrated required WordPress/MariaDB data into the new application data model.
Step 3
Checked key migrated collection counts and validated admin/student authentication.
Step 4
Configured production serving behind Nginx/HTTPS with Certbot.
Step 5
Used PM2 and GitHub Actions for the deployment path.
How I verified it
The migration was checked against key collection counts, admin/student authentication was validated through the production path, and the custom application was served on the live domain behind HTTPS. Those operational checks are the verified outcome in this case study.
What this project demonstrates
Legacy modernization is not complete when the new UI renders. The data, authentication and production delivery path are part of the product transition and need their own verification.
Planning a rebuild where the old data and production behavior still matter?
Send the current stack, the records or workflows that cannot be lost, and what the new system needs to support.


