This case study is private.
Return to the homepage and unlock with a password to view this work.
← Back to workCollapsing an LMS and a student CRM into one product for the auction industry
Learning platform + CRM · Auction industry
A purpose-built learning platform with a CRM-grade student database underneath — both in one product. Track-based or single-course purchases, full xAPI analytics, encrypted student PII, 40+ filterable fields, saved views, license document management, Monday.com CSV imports. Built solo, live and in use, owned end-to-end from schema to admin UI.
- 01
An LMS and a student CRM, in one product
Course delivery and student records sharing one database — by design.
Auction industry training has a problem most learning platforms don't solve: the school doesn't just need to deliver courses, it needs to run as a real institution. Student records, license tracking, document storage, VIP relationships, regulatory data. An LMS alone can't do it. A CRM alone can't either.
I built both into one product. The student profile is the spine — courses, enrollments, licenses, files, notes, all hanging off the same record. One database, one auth model, one admin surface. No exports between systems, no reconciliation, no second tool to log into.
- 02
Two purchase models, one curriculum
Multi-course tracks, single-course buys, LMS courses, physical courses — same catalog.
Some learners enroll in multi-course tracks. Others buy a single course. Some attend physical, in-person courses. Some are VIPs with custom assignments. The data model had to support all of it first-class — no splitting the catalog, no hiding one model behind another.
Courses live inside multiple tracks, exist standalone, and price differently in either context. Entitlements walk the relationships, not the products. An admin can also convert an existing LMS user into a full CRM student profile in one flow.
- 03
The student database
A CRM under the LMS: 17-field profiles, encrypted PII, 40+ filterable fields, saved views.
Each student record carries 17 fields including sensitive PII — email, phone, address, date of birth, SSN — stored with proper encryption at rest. VIP students get their own extended schema. Documents (licenses, uploaded files) attach to the profile with secure upload and download.
The filter panel covers 40+ fields with text, date-range, number-range, dropdown, and yes/no filters. Admins build a query once, save it as a named view, reuse it. The filtered list exports to CSV. New students import from Monday.com CSV. Deleting a student cascades cleanly through all related data — enrollments, licenses, files, notes — without orphans.
Staging environment runs separately so schema changes and risky migrations get tested before they touch production data.
- 04
xAPI, the real analytics surface
Learning records that say what actually happened — not login counts.
Every meaningful learner action emits an xAPI statement: started a course, completed a module, scored on an assessment, returned after a gap. The statements stream to a learning record store and back into the admin panel as analytics that mean something.
Building to xAPI from day one means the platform can answer the harder questions instructors actually ask: who's stuck where, which course consistently loses people, what predicts completion. The CRM side adds the next layer — who they are, what licenses they hold, what they've paid for.
- 05
Outcome
A purpose-built platform for a vertical off-the-shelf tools don't fit.
Live and in active use. Learners move through tracks. Admins manage student records, licenses, and documents from the same surface they ship courses from. xAPI does what it's supposed to — tells the team what's working and where people fall off.
The boring win: niche verticals usually get bent into general-purpose LMSs (or general-purpose CRMs) and lose what makes them niche. This one didn't — it got a system that fits both how the school teaches and how it operates.