ETmantraETmantra.
Moodle plugins

ClassLedger

Live classes, attendance and fees for Moodle — in one ledger

Three Moodle plugins that run a live-class coaching business: gated join links students cannot share, attendance that triggers billing, real class duration driving both the family’s charge and the tutor’s pay, and prepaid wallets families can top up themselves. Available on ETmantra Moodle hosting.

Moodle 4.5 / 5.0
Available on ETmantra Moodle hosting — not a separate download.

ClassLedger is three Moodle plugins that work as one system. They came out of moving a real coaching business off WhatsApp and a spreadsheet, and they solve the problem that setup creates: the thing that decides money ends up stored somewhere nobody can check.

Read the full story behind it: your coaching business runs on WhatsApp and a spreadsheet, here’s what broke.

Live classes students cannot forward

Students see a Join button that appears a set number of minutes before class. Before that, a countdown. The meeting URL is never rendered on the page — not hidden with CSS, never sent to the browser at all. The button points at a server-side script that checks who you are and whether the window is open, then redirects.

There is nothing to screenshot, nothing to forward, and nothing to revoke.

Works with what you already use

• Zoom — meetings created automatically through the API, hosts drawn from a pool so two classes never collide, and cloud recordings flow back into the course by themselves.

• Paste a link — for Teams, Google Meet or anything else. You create the meeting where you normally do; students still get the gated Join button rather than the URL.

• No online meeting — for in-person classes you still want scheduled, attended and billed.

A Zoom integration is optional. The paste-a-link option gives you the gating, the attendance and the billing with no API setup at all.

Recurring classes as one thing

“Every Tuesday and Thursday at 6pm until December” is one activity, not thirty-two. Each date gets its own session underneath, so you can move or cancel a single class without touching the rest. A cancelled class stays visible with a line through it — a student who remembers “every Tuesday” deserves an explicit answer, not a silent gap.

Recordings that stay attached

With Zoom, the finished recording is collected and published into the course automatically. With any other provider, paste the link on the class page — YouTube, a VideoKavach id, or an embed code. Either way it lands attached to the class it came from and the date it happened.

Attendance that decides the money

After class the teacher marks who attended, from the class page itself. No separate activity to find, no second system to remember. It writes into Moodle’s standard Attendance register, so your existing reports keep working.

The teacher also records how long the class actually ran, in five-minute steps. A class booked for an hour sometimes runs forty minutes and sometimes ninety. Students can see the recorded duration but not change it — it is what they were charged on, so they are entitled to see it. An administrator can override it.

That single number drives both sides: the family is charged pro-rata and the tutor is paid pro-rata, from the same figure. Nobody is arguing about two different numbers.

Prepaid wallets, so nobody has to chase

Families buy a package for a course — one class, five, ten, or the whole course — and the classes land in their wallet. The balance is on their screen, not in your spreadsheet, and they can top up without asking anyone.

When a teacher marks a student present, the wallet is charged. Nothing else needs to happen: no monthly reconciliation, no invoice run, no chasing.

Group classes work differently, deliberately. In a batch, every enrolled student is charged whether they attended or not, because the class ran and a recording is provided. Attendance is still recorded because parents want to see it, but it is not what decides the money. That matches how batch teaching is actually sold.

Pay the way Indian families actually pay

• Online — Razorpay, Stripe and PayPal through Moodle’s own payment subsystem. Nothing custom to integrate.

• Manually — show payment instructions and a QR code, the family pays by UPI and submits proof, and someone who can see the bank account approves or refuses it with a reason. Nothing is credited until a human confirms the money arrived.

Both routes are offered side by side and the family picks. You can run the whole thing on UPI if that is what your families use.

Teachers have a wallet too

A separate ledger, because it means something different — a student’s balance is money you hold, a teacher’s is money you owe. Set an hourly rate per teacher per course; when a class is taught, their wallet is credited pro-rata for the real duration. Every teacher can see their own statement, so they do not have to ask you what they are owed.

The balance where families will see it

A small block puts a student’s own balance on the course page, with a link to top up. A balance nobody looks at may as well not exist, and people do not go looking for a billing screen. Teachers see nothing — money is the administrator’s business. On a course with no packages set up, the block does not render at all.

What the class can tell you afterwards

Upload the transcript your meeting tool produced and ClassLedger can read it. This is restricted to course managers and site administrators, not teachers — a transcript records the students’ words as well as the teacher’s, and handling it is the operator’s job.

• A class summary for students — what was covered, key points, homework set, and questions to check understanding, written in the language the class was taught in. Students see this; they never see the transcript.

• A teaching audit for you — how much of the booked hour did useful work, where the class went quiet and whether that silence was a student solving a problem or nothing happening, how much students spoke, how often the teacher checked understanding.

• Draft homework and quiz questions — drawn from what was actually taught, downloaded as Moodle XML you import into your question bank, so you see what you are accepting before it exists.

• Passages a person should read — contact details being shared, tuition arranged outside the coaching, conduct concerns. Switched off by default and stays off until an administrator turns it on.

What it deliberately does not do

It does not show the meeting URL, ever. Not even to teachers on the student-facing page. If that breaks a workflow you rely on, this is the wrong tool.

It does not bill on AI-estimated teaching time. Money follows the duration a human recorded, always. A transcript cannot tell silence-while-working from silence-while-absent, and a student solving a problem quietly is still being taught.

It does not score what it cannot see. No camera checks, no phone usage, no board-writing quality, no marking of written work. Those are not in a text file, and any tool that scores them from one is inventing numbers.

It does not act on a flag. Concern detection produces a quoted passage and a person decides. No pay is withheld, no account suspended, nothing happens automatically. That is a design decision, not a missing feature.

It does not chase, and it does not lock anyone out. A family whose balance runs out is a conversation, not an automatic suspension. Packages do not expire.

Before you switch on transcript analysis

Two things are your decision, not the software’s. Tell your teachers — analysing recordings of staff at work is, in most places, unlawful without telling them, and corrosive regardless. It belongs in their contract, not only in a settings page. And decide who reviews a flag before you generate any; a flag with no process behind it is a list nobody reads.

One practical caveat: transcription quality is the ceiling. We tested on a real class taught in Tamil with English technical terms, and the auto-captions mangled most of the numbers. The summary was still useful; the generated quiz questions needed a teacher’s eye on every value. If your classes mix languages, plan to check the output rather than trust it.

How to get it

ClassLedger is available on ETmantra managed Moodle hosting — we install, configure and maintain it as part of your plan. It is not a separate download, and there is nothing to license or update yourself.

Requires Moodle 4.5 or 5.0, plus the contributed Attendance plugin for the register. Transcript analysis needs TrainMantra; everything else — scheduling, gated join, recordings, attendance, duration, wallets — works with no external service at all.

Start with a 7-day free Moodle trial and we will set it up for you.

※ FAQ

Things people ask before they start.

Do I need Zoom to use this?+

No. Zoom is one of three options. You can paste a Teams, Google Meet or any other meeting link and students still get the gated Join button instead of the URL — you get the gating, attendance and billing with no API setup. There is also a no-online-meeting option for in-person classes you want scheduled, attended and billed.

Can students share the meeting link?+

There is no link to share. The meeting URL is never sent to the browser — students click a Join button that points at a server-side script, which checks who they are and whether the join window is open before redirecting. Nothing appears on the page to screenshot or forward.

How does billing work if a class runs short or long?+

The teacher records the duration that actually happened, in five-minute steps. The family is charged pro-rata and the tutor is paid pro-rata from that same number, so the two can never disagree. An administrator can override the duration, and both sides are re-priced automatically.

Can families pay by UPI?+

Yes. Alongside Razorpay, Stripe and PayPal through Moodle’s payment subsystem, there is a manual route built for how Indian coaching businesses actually collect: you show payment instructions and a QR code, the family pays and submits proof, and someone who can see the bank account approves it. Nothing is credited until a human confirms the money arrived.

Can I install these plugins on my own Moodle?+

ClassLedger is offered on ETmantra managed Moodle hosting only. We install, configure, update and support it as part of your plan — which also means the Zoom pool, payment gateways and transcript pipeline are set up correctly rather than left to you.

Is the AI analysis reliable enough to act on?+

Treat it as a draft, not a verdict. Transcription quality is the ceiling — in a Tamil class with English technical terms, the captions mangled most numbers. Summaries were still useful; generated quiz questions needed checking on every value. Money never follows AI-estimated time, and concern detection ships switched off and only ever surfaces a passage for a person to read.

Ready to explore ClassLedger?