Muhammad Adil Malik

Full Stack Developer

Back to Projects
SaaS

Academy Management Platform

Lead Full Stack Developer202410 monthsClient: EduFlow Academy

A SaaS platform for educational institutions and online teachers that includes scheduling, payments, student management, live classes, and reporting.

50+

Academies

5,000+

Students

$2M+

Payments

The challenge

We start with the real problem

Clear problem framing first — then a solution designed to remove friction for users and operators.

Problem

What was broken

Educational academies and independent teachers cobbled together disconnected tools — spreadsheets for scheduling, WhatsApp for parent communication, PayPal for payments, and Zoom for classes — creating administrative overhead that consumed hours weekly and produced billing errors, missed classes, and poor parent visibility. Multi-location academies needed centralized management with per-branch data isolation, but existing school management software was either too rigid for flexible class formats or too expensive for small academies. Live online classes required separate video conferencing subscriptions with no integration into attendance, payment, or student progress tracking.

Solution

How we fixed it

EduFlow Academy is a unified multi-tenant SaaS platform where academies manage scheduling, enrollment, payments, live classes, and reporting from a single dashboard. A flexible recurrence engine handles complex class schedules including recurring sessions, makeup classes, and holiday exceptions, while Stripe-powered billing automates tuition collection with installment plans and late fee rules. WebRTC live classes via Jitsi integration connect video conferencing directly to attendance tracking and session recordings, eliminating the need for separate tools.

Deep dive

How this product was built

Full written walkthrough of the system — architecture decisions, product surface, and operating model.

Read the full deep dive

3 detailed sections · architecture, product surface, and ops

Complete academy management SaaS serving educational institutions and independent teachers. Features include class scheduling, Stripe-powered payments, student enrollment, live video classes via WebRTC, attendance tracking, and comprehensive reporting.

01

Multi-Tenant Academy Platform

The platform serves two distinct customer segments — established educational academies with multiple branches and independent teachers operating solo or with small teams — from a single multi-tenant codebase. Each academy is a tenant with isolated data for students, classes, schedules, payments, and staff accounts. Tenant isolation is enforced through academy-scoped middleware in the NestJS API that injects the tenant identifier into every database query, preventing cross-academy data access even if application logic contains bugs. Within each academy, role-based access control defines permissions for administrators, branch managers, teachers, and read-only parent accounts.

Academy onboarding follows a self-service provisioning flow. A new academy administrator registers, selects a subscription plan, and completes an initial setup wizard configuring academy name, branding (logo, colors), timezone, currency, and branch locations. The provisioning pipeline creates the tenant data partition, seeds default email notification templates, configures a Stripe Connect account for payment collection, and generates a public enrollment page URL. Custom domain mapping allows academies to serve enrollment pages on their own domains — academy.example.com — with automated SSL provisioning through the same infrastructure pattern used in our eCommerce platform work.

Branch management supports multi-location academies where each branch has its own class schedule, room assignments, and staff roster while sharing a centralized student database and billing system. Students can enroll in classes at any branch, and cross-branch transfers update enrollment records without duplicate student profiles. Academy-wide reporting aggregates metrics across branches with drill-down capability, giving owners visibility into per-branch enrollment, revenue, and teacher utilization while branch managers see only their location's data.

02

Scheduling Engine and Live Classes

Class scheduling is deceptively complex in educational contexts. A single course might meet every Tuesday and Thursday at 4 PM for twelve weeks, except during school holidays, with occasional makeup sessions on Saturdays, taught by different substitute teachers when the primary instructor is unavailable. Our recurrence engine models schedules as a combination of RRULE-pattern recurrence definitions, exception dates, and one-off overrides stored in a normalized data structure that expands into concrete session instances for calendar display and attendance tracking up to 12 months in advance.

Conflict detection runs automatically when administrators create or modify schedules. The engine checks for room double-bookings, teacher assignment overlaps, and student enrollment conflicts where a student is already registered for another class at the same time. Conflicts surface as warnings with suggested resolution options — assign an alternative room, suggest a different time slot with availability, or override with administrator confirmation. Waitlist management automatically enrolls students when spots open due to cancellations, sending notification emails and updating payment obligations if the enrollment triggers a tuition adjustment.

Live classes integrate Jitsi Meet through WebRTC, embedded directly in the academy dashboard and student portal rather than requiring separate Zoom accounts. When a teacher starts a scheduled session, the platform generates a Jitsi room with the class identifier, enables moderator controls for the teacher, and restricts entry to enrolled students verified by their platform login. Attendance is tracked automatically — students joining the WebRTC session are marked present with join and leave timestamps, while the teacher can manually override attendance for students experiencing technical difficulties. Cloud recording captures session video to AWS S3, and recordings appear in the student portal within 30 minutes of class completion for review.

03

Payments, Communication, and Reporting

Tuition billing is the revenue engine for academy customers, and the payment system handles diverse billing models through Stripe integration. Academies configure tuition as monthly subscriptions, per-semester lump sums, per-class packages, or custom installment plans with configurable due dates and late fee rules. Stripe Payment Intents handle one-time charges while Stripe Subscriptions manage recurring billing with automatic retry on failed payments. Parents access a self-service payment portal showing outstanding balances, payment history, and downloadable receipts, reducing the administrative burden of chasing late payments through manual communication.

Automated communication keeps parents informed without academy staff composing individual messages. The notification engine triggers emails and optional SMS messages for events including class schedule changes, upcoming payment due dates, attendance summaries, enrollment confirmations, and waitlist promotions. Notification templates are customizable per academy with merge fields for student name, class details, and payment amounts. Delivery tracking logs open rates and bounce events, and administrators can review notification history per student for dispute resolution when parents claim they were not informed of schedule changes.

Reporting gives academy owners the business intelligence previously locked in disconnected spreadsheets. Dashboard widgets display enrollment trends over time, revenue collected versus outstanding, average class attendance rates by course and teacher, and student retention metrics showing how many students re-enroll semester over semester. Export functionality generates PDF and CSV reports for accounting reconciliation, tax documentation, and board presentations. During the platform's first year, the 50+ onboarded academies collectively processed $2 million in tuition payments through the platform, with an average payment collection rate of 94% within seven days of due dates — a significant improvement over the manual invoicing workflows academies reported using previously.

Capabilities

What the product delivers

Practical features users and operators actually rely on.

Flexible class scheduling with recurrence rules, holiday calendars, and automatic conflict detection

Stripe-powered tuition billing with installment plans, late fees, and parent payment portals

WebRTC live classes with integrated attendance tracking and cloud-recorded session archives

Student enrollment management with waitlists, level assignments, and progress tracking

Multi-tenant academy administration with branch management and staff role permissions

Automated parent notifications for schedule changes, payment due dates, and attendance reports

Comprehensive reporting on enrollment trends, revenue, attendance rates, and teacher utilization

Public enrollment pages with online registration, payment collection, and class availability display

Architecture

Built to hold up under real use

Stack and system choices that keep the product reliable as usage grows.

  1. 01

    Next.js 14 web application with server-side rendering for academy dashboards and public enrollment pages

  2. 02

    NestJS multi-tenant API with academy-level data partitioning and role-based access control

  3. 03

    MongoDB with tenant-scoped collections for students, classes, schedules, payments, and attendance records

  4. 04

    Stripe Subscriptions and Payment Intents for tuition billing, installment plans, and refund processing

  5. 05

    Jitsi Meet integration via WebRTC for live classes with cloud recording to AWS S3

  6. 06

    Bull queue workers for scheduled notifications, payment reminders, and report generation

Delivery

Hard problems, concrete fixes

Every serious product hits constraints. Here is what we solved.

Challenges

  • Multi-academy SaaS with data isolation
  • Integrated live video classes with recording
  • Complex scheduling with recurring classes

Technical solutions

  • Built multi-tenant architecture with academy-level data partitioning
  • Integrated WebRTC with Jitsi for live classes and cloud recording
  • Created flexible recurrence engine supporting complex schedules

Impact

Business outcome

Results that matter after launch — not just features shipped.

The platform onboarded 50+ academies serving 5,000+ students and processed over $2 million in tuition payments within its first year of operation. User satisfaction reached 4.8 out of 5 stars, with academy administrators reporting an average of 12 hours per week saved on administrative tasks previously spread across multiple disconnected tools.

  • Onboarded 50+ academies with 5,000+ students
  • Processed $2M+ in tuition payments
  • Achieved 4.8/5 user satisfaction rating

Stack

Technologies used

Tools chosen for the product — not a resume keyword list.

Next.js
NestJS
MongoDB
Stripe
WebRTC

Case study

Read the full case study

Deeper narrative on approach, timeline, and measurable results for Academy Management Platform.

View case study

Next step

Have a similar problem to solve?

Tell me what is broken in your product or workflow. I will reply with a clear take on approach, timeline, and whether I am the right fit.