<PS/>
Case StudyFeaturedLast updated: September 6, 2026

MathPro Academy

Full-stack coaching platform for 4,000+ JSC, SSC, and HSC students across Bangladesh. Course delivery, a Lexical-based curriculum editor with inline LaTeX, SSLCommerz/MFS checkout with coupons and bundles, and an admin backend spanning analytics, fine-grained course access control, live classes, and LLM-assisted quiz import.

Next.js (App Router)TypeScriptLexical Rich-Text EditorKaTeX (client-side, runtime LaTeX detection)SSLCommerz Payment Gateway (bKash/Nagad)PostgreSQL (raw SQL, no ORM)Express.jsTailwind CSS
Client
MathPro Academic & Admission Care / Abdul Aziz
Role
Full-Stack Developer & Platform Architect
Timeline
2025 – 2026
Stack
8 technologies
Gallery

A closer look

3 shots · click to expand
MathPro Academy Mathematics Coaching & Founder Overview
01 / 03MathPro Academy Mathematics Coaching & Founder Overview
JSC, SSC & HSC Specialized Mathematics Course Tracks
02 / 03JSC, SSC & HSC Specialized Mathematics Course Tracks
Interactive Math Learning Features & Automated Checkout
03 / 03Interactive Math Learning Features & Automated Checkout
Stack
Next.js (App Router)TypeScriptLexical Rich-Text EditorKaTeX (client-side, runtime LaTeX detection)SSLCommerz Payment Gateway (bKash/Nagad)PostgreSQL (raw SQL, no ORM)Express.jsTailwind CSS
Key Features
  • Runtime LaTeX rendering that auto-detects legacy plain-text vs. new Lexical HTML records, then walks the mounted DOM to render $...$/$$...$$ spans with KaTeX — necessary because course content is actively edited, not fixed at build time
  • Server-verified SSLCommerz checkout: every IPN re-queries SSLCommerz's own validation API by transaction ID rather than trusting the webhook payload, cross-checks the paid amount, and inspects SSLCommerz's own fraud risk score
  • Idempotent, audited fulfillment: every webhook attempt is logged to a payment_audit_log table; re-delivered IPNs are caught via SSLCommerz's own VALID/VALIDATED status, and duplicate enrollment attempts are treated as a non-error
  • Course-level access control for shareholders: managerial users can be scoped to specific courses only, so a partner instructor manages their own course without seeing the rest of the platform
  • Coupons, multi-course bundles, and standalone book purchases in one checkout path, with server-side pricing and shipping fulfillment tracking
  • Atomic PostgreSQL UPSERT-with-CASE streak tracking that increments, resets, or holds a student's daily streak in one round trip
  • LLM-assisted quiz import: admins convert a teacher's raw questions into the platform's JSON import schema via a documented LLM prompt
  • Analytics V2 covering revenue, user, course, learning, and payment analytics, plus live class scheduling and role-based permissions fetched from the backend
Working Together

Need a similar delivery process for your product? I can help shape the scope and ship the implementation end to end.

Start a project
01Problem

Displaying LaTeX-heavy math content on the web is genuinely awkward: a client-side math library flashes raw LaTeX source before it renders, and the platform's own content history compounds it — years of plain-text course records exist alongside newer, richly-formatted Lexical HTML, so there's no single format to render ahead of time.

Separately, mobile financial service payments in Bangladesh (bKash, Nagad via SSLCommerz) are notoriously flaky: webhook retries and out-of-order delivery meant a naive "trust the webhook, write the enrollment" handler would eventually double-enroll a student or enroll one who never actually paid.

02Approach

For content, an earlier build-time rendering attempt didn't survive contact with a database holding two generations of content format — the fix was a runtime renderer that first normalizes legacy plain text and new Lexical HTML into one sanitized shape, then walks the DOM after mount to find and render LaTeX spans with KaTeX.

For payments, instead of trusting the webhook payload, every IPN triggers an active server-to-server query back to SSLCommerz's own validation API, cross-checked against the amount recorded at checkout and SSLCommerz's own risk score, with every attempt logged to an audit table for reconciliation.

03Solution

Students get formula rendering that degrades gracefully across a decade of content history instead of requiring a one-time content migration. Payments are enrolled exactly once per real transaction, with a paper trail for every webhook delivery whether it succeeded or not. On the admin side, coordinators and partner instructors operate within a permission system scoped to the courses they actually own, plus tooling built for people running cohorts day to day, not just engineers.

04Results

4,000+ students across JSC, SSC, and HSC tracks use the platform. Payment fulfillment has produced zero duplicate enrollments in production — caught by SSLCommerz's own validation-status check plus a duplicate-safe enrollment write, not a custom signature scheme SSLCommerz doesn't require.