All case studies

Education case study

Alphabet Media Academy

One system for a training academy’s courses, admissions and payments: a React website on an ERPNext back end with a learning (LMS) module, CRM and accounts.

Homepage of mediaacademy.ng — Alphabet Media Academy
Client
Alphabet Media Academy — postgraduate media management training institute, Lagos
Sector
Education · Media & advertising management training
Engagement
ERPNext running courses (LMS), admissions CRM and accounts, moved from WordPress and LearnDash, with a new website and an admissions and payment flow
Delivered by
Inventrium — IBSS
Stack
Front end: React · Tailwind · Vercel. Back end: Frappe ERPNext (Frappe Cloud) with Learning (Frappe LMS), CRM and accounts · Flutterwave

At a glance

Alphabet Media Academy ran its postgraduate media management programmes on WordPress and LearnDash — fine for hosting lessons, but everything around the teaching was fragmented. Applications came in as emails. Two separate fees had to be chased and matched to students by hand. Paying did not automatically grant access to a course.

Inventrium migrated the academy off WordPress entirely, onto ERPNext Frappe LMS — moving the curriculum, the alumni base and the admissions pipeline into a single platform that also handles CRM and accounting, then built a fast, self-service front end on top of it so a prospective student can discover a programme, apply, pay and move through the standard enrolment path automatically, with staff stepping in on the exceptions.

We didn’t bolt a new front end onto WordPress. We retired it, moved the curriculum and the people onto one system, and rebuilt admissions and payments so the standard path runs automatically.

The challenge

The academy was growing in spite of its systems, not because of them:

  • WordPress and LearnDash hosted lessons well, but the journey from “I’m interested” to “I’m in class” was broken into disconnected, manual steps.
  • Applications arrived as emails and had to be tracked by staff in a spreadsheet.
  • An application fee and a tuition fee both had to be paid, chased and reconciled by hand for every single student.
  • Course access did not follow automatically from payment — enrollment was another manual step, every time.

What we did

Retiring WordPress in two staged workstreams

We did not risk a single big-bang cutover. Public content — faculty profiles, board information, news — moved first, onto a static, build-time content registry. Only once that was live did we tackle the harder half: admissions, payments and the LMS itself. WordPress was kept read-only throughout as a safety net, and switched off once the new platform had proven itself end to end.

Migrating the curriculum without losing a lesson

Custom migration scripts pulled every LearnDash course, chapter and lesson via the WordPress REST API, converted the lesson content into Frappe LMS’s native format while stripping out legacy page-builder markup, and re-downloaded and re-uploaded every referenced PDF. The scripts were built to be idempotent and resumable — safe to re-run without duplicating a single lesson.

Migrating people, not just content

Alumni with real, paid course access became enrolled Frappe users; everyone else in the old database became a tracked CRM lead instead of dead data. WordPress stores passwords in a format that cannot be carried over to the new platform, so migrated accounts were given no usable password and prompted to reset on first login — the honest, secure option, not a workaround. The migration’s own validation caught and correctly rejected at least one spam record along the way, rather than importing it.

One system instead of four

ERPNext now runs the learning management system, the admissions CRM, and the accounting layer — Sales Invoices, Payment Entries — together, in one instance. That single move replaced WordPress, LearnDash, WooCommerce and manual bookkeeping with one platform the academy’s team can actually see and act on.

One ERP, not just a course portal

The back end is Frappe ERPNext. Alongside the Learning module (Frappe LMS), the same system runs accounting (invoices and payments) and CRM(enquiries and applicants tracked as leads). Because they share one database, a payment and a student record never have to be re-keyed from one tool into another.

Secure, automatic payments and enrollment

Students pay application and tuition fees through Flutterwave — card, bank transfer or USSD — with every transaction verified server-side against amount, currency and reference before it is ever recorded. Guest-facing endpoints only log a payment event; a separate scheduled worker performs the actual accounting writes, a deliberate design that works within ERPNext’s own permission model instead of bypassing it. Installment plans are supported with an automatic surcharge. On the standard path, once a payment is verified the student is enrolled with no manual step. Anything that falls outside that path, such as an incomplete application, a failed or duplicate payment, a delayed webhook or a dispute, is left for staff to resolve rather than forced through.

One seamless front door

A fast, modern React front end replaced the old theme-locked WordPress site — a guided, multi-step application, conversion-focused programme pages, and direct sign-in to the branded Frappe LMS portal for students and faculty. Native LMS features — quizzes, certificates, progress tracking — came with the platform and did not need to be rebuilt.

Under the hood

  • Migrating the curriculum: custom scripts pulled every LearnDash lesson and topic via the WordPress REST API, converted the HTML into Frappe LMS course chapters and lessons while stripping legacy page-builder markup, and re-downloaded and re-uploaded every referenced PDF — resumable and safe to re-run.
  • Migrating people, honestly: alumni became enrolled Frappe users, prospects became ERPNext CRM leads; WordPress password hashes cannot be carried over, so migrated accounts got a forced password reset rather than a faked login.
  • One ERPNext instance, four jobs: the LMS, the admissions CRM (Leads) and the accounting layer (Sales Invoices, Payment Entries) now run in a single system instead of WordPress, LearnDash, WooCommerce and a spreadsheet.
  • Payments that respect the platform's own security model: Flutterwave transactions are verified server-side against amount, currency and reference before anything is recorded; the guest-facing endpoint only ever logs an event, while a scheduled worker performs the actual accounting writes — working within ERPNext's permission model rather than around it.
  • Installments, handled properly: diploma and certificate fees can be paid in four or three instalments with an automatic surcharge applied, and the student is enrolled the instant each payment clears.
  • A same-origin proxy that fixed two problems at once: a CORS issue where applications were saving but the browser couldn't read the response was solved with a same-origin API proxy — which also made preview deployments work without extra configuration.

Delivered and verified

  • Two programmes moved without losing a lesson: 33 chapters and 57 course PDFs migrated from LearnDash into Frappe LMS.
  • People moved cleanly too: active alumni enrolled and prospects captured as CRM leads, with zero errors in the migration run records.
  • One system now holds courses, applicants and payments, replacing WordPress, LearnDash, WooCommerce and a spreadsheet. Staff are set up to manage courses.
  • The new website loads lighter: homepage images went from 12 MB to 542 KB, 96% smaller.
  • The standard enrolment path is automated: once a payment is verified server-side, the matching student is enrolled with no manual step. Exceptions are handled by staff (see below).
  • WordPress came down in stages, kept read-only as a safety net until the new platform was proven, then switched off.

What the academy approved: the move off WordPress onto ERPNext and the staged cutover plan were signed off before we began.

How to judge the result

We can show what was built and migrated, with the counts above drawn from the migration run records. The real test of the automation is the share of enrolments that finish on the standard path, set against the exception rate. That ratio builds up in the academy’s own records with every intake, and it is the number worth watching.

A reference for this engagement can be provided to a serious buyer, with the client’s permission.

Automation performance and exceptions

The system automates the standard enrolment path: application, payment verification, admission and course access. It does not claim to handle every case on its own. Incomplete applications, failed or duplicate payments, manual admissions, disputes and delayed payment webhooks stay visible to staff in ERPNext, in the CRM lead list and the accounts records, so a person can step in and resolve them. The right measure is therefore the automated-completion rate alongside the exception rate, not an all-or-nothing “it runs itself” claim.

What it means

For students: enrolling on the standard path is self-service: discover a programme, apply, pay, and get into class without waiting on a staff member, as long as the application and payment are clean.

For the academy: one system now runs the classroom, the CRM and the books together. Applications arrive structured, verified payments post to the accounts, and enrolment follows a clean payment automatically, while the exceptions above are left for staff to handle rather than hidden.

Strategically: the academy went from four disconnected, manually-bridged systems to one platform that recruits, teaches, enrols and records payment, migrated carefully enough that no lesson, alumni record or legitimate lead was lost in the run.

Why it matters for Inventrium

This is not a front-end reskin — it is a real backend migration, executed with the discipline a live institution’s data deserves: idempotent, resumable scripts; honest handling of a security constraint (non-portable passwords) instead of a shortcut; a staged rollout with WordPress kept as a safety net until the new platform was proven. It demonstrates that Inventrium can take on the harder half of a migration — the data, the people, the money — not just the pages a visitor sees.

Beyond the website

Beyond the website and the school system, we have run the academy’s domain, hosting and email for years, and taught its students.

Run

Email, hosting and care

Students and partners judge an academy by whether its emails arrive and its portal opens.

  • Manage the domain since 2017, and host the site and learning portal since 2018.
  • Set up staff email in 2018 and moved it to a new platform in 2024.
  • Watch the site’s security alerts and keep backups.
  • Set up a verified sender for the academy’s text and email messages in 2026.

Train

Teaching the students

The academy’s diploma includes practical office skills.

  • Taught Advanced Excel to a diploma class in August 2024.
  • Taught Advanced Excel and presentation skills again in February 2025.

Outgrown the platform running your institution?

We migrate real data — courses, students and payments — carefully, not just the front end.