root / work / estabraq-academy
Active — EdTech · SaaS

EstabraqAcademy

End-to-end Islamic studies platform — subscriptions, sessions, payments, and progress in one place

The Context

Running an online Islamic studies academy sounds simple until you're managing 40 students, 8 teachers, Zoom links, payment receipts, attendance sheets, and subscription renewals — all in WhatsApp groups and Excel files. EstabraqAcademy was built to replace that chaos with a single platform that handles the full lifecycle: a student books a package, gets scheduled into sessions, attends via Zoom through the platform, and progresses toward a defined goal — whether that's completing Quran memorization or finishing a fiqh curriculum. Teachers get their schedules and payouts handled automatically. Admins get a live operational picture of everything happening across the academy at any moment.

Architecture & Execution

The platform is organized around three primary actors — students, teachers, and admins — each with a scoped interface and permission boundary. When a student enrolls in a package (e.g., Tajweed Level 2, 20-session block), the scheduling engine allocates sessions across a teacher's available slots and writes the full schedule to the calendar. Each session is linked to a Zoom meeting created via the Zoom SDK, so the platform owns the join link, attendance tracking, and session state. Payments run through Stripe, with the platform computing teacher payouts based on completed sessions and emitting invoices automatically. Session records capture attendance, notes, and goal progress per student. The admin layer aggregates all of this into a live dashboard: daily and weekly session views, revenue and payout summaries, student progress across tracks, and filterable logs across every dimension of the business. Redis handles schedule caching and real-time notification delivery via SignalR for session reminders and status changes.

Post-Mortem Lessons

01

Scheduling is deceptively hard when teachers have irregular availability and students want consistent weekly slots. The engine needed constraint solving — not just slot-filling — to handle rescheduling, substitutions, and make-up sessions without cascading conflicts.

02

Zoom SDK integration is straightforward until you need to own attendance data. Polling the Zoom API post-session for participant join/leave timestamps and reconciling that against your own session records is where most of the edge cases live.

03

Admins don't want raw data — they want answers. Building the dashboard around operational questions ('what sessions are happening today', 'which students are behind on their goal', 'who hasn't been paid this month') instead of generic tables made it actually useful rather than just complete.

Islamic Study Tracks
6+
Subscription Lifecycle
Full
Teacher Payouts
Auto
Admin Observability
360°
Core Technologies
.NET 9 ASP.NET Core SQL Server Zoom SDK Stripe Redis React SignalR
Student / Teacher / Admin
          ↓
   ASP.NET Core API
    ↙     ↓      ↘
Zoom SDK  Stripe  SQL Server
    ↓       ↓        ↓
Session  Payment   Records
registr.  & invoices & schedules
          ↓
   Admin Dashboard
   (live ops · analytics)