GSS Tech
Our own products / LearnBase

LearnBase

Working software, in active development

Your academy runs on a notebook and fifteen WhatsApp groups. It does not have to.

A multi-tenant learning management platform for teaching academies — built first for classical music and dance schools, and designed so the same core serves any tutoring or coaching vertical.

Why academies needed their own platform

A dance class is not a chemistry batch. Mainstream LMS products are built around semesters, cohorts moving in lockstep, quizzes and content delivery. An arts academy works nothing like that.

01

Students progress individually, not as a year group

A course is a ladder of levels and topics — an adavu series, a set of geethams, a teentaal kaida — and each student sits at their own rung. Progress is a position, not a grade.

02

The guru is the unit of capacity, not the classroom

Scheduling respects which mentor is free, what they teach and who they are assigned to, reading mentor availability rather than asking an admin to remember it.

03

Money is per enrolment, not per term

Every enrolment carries its own price and status, fees arrive irregularly, and the guru who taught the class needs paying. Invoicing, wallets and payouts are part of the domain, not a bolt-on.

04

Attendance is the record that matters

For a class of four, the register is the progress report. Attendance belongs to the student history, not a notebook.

What it replaces

An academy with sixty students spends about a day a week on administration, and almost none of it is teaching. A WhatsApp group for every batch. A roster per class. Fees tracked in a notebook and reconciled from memory. The meeting link forwarded again because someone missed it.

LearnBase digitises that whole operating layer. Each academy gets its own tenant, its own courses and levels, its own gurus and students, and its own fee arrangements — scheduled, invoiced and recorded in one system, with calendar invitations going out the moment a class is booked.

Why the architecture matters here

Marketplace platforms take a share of what an academy earns. LearnBase is software the academy runs, with published pricing and no cut of teaching income — which means it has to be cheap to operate and safe to extend.

That is why it is a modular monolith rather than either a single tangle or a microservice estate: one thing to deploy, eight parts that can be pulled apart later if any one of them needs to scale on its own.

What it does

Multi-tenant academy onboarding

An academy registers itself and gets its own isolated tenant and first admin account in a single guided flow.

Course, level and topic structure

A curriculum as a real hierarchy — courses containing levels containing topics, with teaching assets attached where they belong.

Scheduling with calendar invitations

Schedule a session against a course, mentor and roster in seconds. Invitations reach real calendars, so the meeting link stops being a message someone has to find again.

Attendance register

Recorded against the session roster and kept as part of each student permanent record.

Invoicing and payments

Generate invoices, take payments and reconcile automatically from the payment gateway webhook rather than by hand.

Student wallets

Credit and debit a balance with full transaction history, so advance payments and adjustments are traceable instead of remembered.

Mentor payouts

Track what each guru is owed for the classes they actually taught.

Per-academy data isolation

Every request is checked to be operating inside its own organisation, so one academy can never read another data.

Under the hood

How it is built

  • Eight modules, eight database schemas, one deployable. Organization, Identity, Catalog, Learning, UsersDomain, Subscriptions, Payments and Billing each own their entities, migrations and service logic, and no module references another module data layer.
  • Cross-module work goes through orchestration: thirty-four named workflows compose modules together, so every cross-module read has a name and a home.
  • Cross-schema references carry no physical foreign key, deliberately — each module schema stays independently extractable into its own database later, with existence validated by the orchestration layer.
  • Fail-closed authorization: the default policy denies, so a new endpoint is protected unless it explicitly opts out. A forgotten attribute cannot silently expose data.
  • Domain logic is encapsulated — private setters, static factory methods, and outcomes returned through a Result/Error type rather than exceptions, so a failure is a value the caller must handle.
Frontend Angular 22 — standalone components and signals, ag-grid, SCSS design tokens
Backend .NET 10, ASP.NET Core Minimal APIs
Architecture Modular monolith — eight independently-schemed modules with an orchestration layer
Data PostgreSQL via EF Core 10 / Npgsql, code-first migrations, schema per module
Authorization Named policies, a fail-closed default, and a same-organisation requirement per request
Payments Razorpay, with cryptographic webhook signature verification
Deployment Docker Compose behind a Cloudflare Tunnel, images published to Docker Hub
Quality Ten test projects — one per module, plus API and email suites

Who it is for

  • Classical music and dance academies — Carnatic vocal, Bharatanatyam, Tabla, Kathak, veena
  • Independent gurus running structured, multi-level teaching
  • Multi-branch schools needing one system with clean data separation
  • Coaching and tutoring centres whose students progress individually
  • Parents who want to see enrolment, attendance and fee status without asking

Built by the team that would work on yours

Same stack, same people, same engineering standards. Tell us what you are building.

Start a conversation