Learning Platform Backend
The Django backend behind an EdTech platform's student, parent, teacher and mentor apps.
Role · Full-stack engineer on the core team — APIs, payments, integrations and the deployment pipeline.
- 25+
- Django apps
- 4
- Client apps
- 3
- Payment gateways
- 20+
- Integrations
Overview
The core backend of an EdTech learning platform. It serves versioned REST APIs to four mobile apps, server-rendered dashboards for staff, sales and content teams, and a paid computer-based-test (CBT) exam flow — covering syllabus and content, exams and question banks, progress analytics, enrolment, payments and notifications.
Architecture
Modular Django monolith
25+ apps behind Django REST Framework. Feature-flagged URL groups let one codebase serve both the public API tier and the internal dashboard tier.
Background workers
Purpose-specific Celery queues isolate notifications, exam sync and AI work from the default lane; Beat schedules recurring jobs; Flower for monitoring.
Data layer
PostgreSQL / PostGIS primary with optional read replica. Redis for cache, broker and result backend.
Integrations
Inbound webhooks from the video platform and support tooling; outbound calls to payment, messaging, CRM and AI providers through thin service wrappers.
Delivery
GitHub Actions pipelines deploy to UAT and production environments on AWS with migrations and health-checked restarts.
What it does
Learning content
- Video lessons, quizzes, questions, exams, files and banners mapped to boards, grades, mediums, streams, batches and syllabus
- Report-a-question workflow for flagged content
- Daily tasks, custom tasks and notices
- Zoom and YouTube live-class scheduling
Exams & question bank
- Exam scheduling, marking schemes, submissions, results and audit trails
- Paid CBT exam registration with payment pages and shareable result posters
- Question bank with a master-syllabus taxonomy, tags, sources, attempt history and audit logs
- AI-assisted mapping of courses and questions onto the master syllabus, run on an isolated job queue
Progress & engagement
- Course, video, quiz, exam, question and task progress with watch history
- Effort scores, ability trackers and leaderboards
- Coin-based gamification
- Surveys, feedback, ratings, stickers and events
Payments
- Razorpay one-time payments, AutoPay mandates and webhook handling
- PhonePe AutoPay and Cashfree checkout
- EMI schedules, discounts and refunds in one payments module
- Invoice generation through Zoho Books
Identity & access
- Rate-limited OTP login over SMS providers
- Token-based API authentication with role-aware permissions
- Feature-flagged URL groups so one codebase serves several deployment tiers
- Themed Django admin for internal teams
Notifications
- Push via Firebase FCM and OneSignal
- WhatsApp, email, Telegram and Slack delivery
- Dedicated notification job queue with scheduled campaigns and reminders
Apps & dashboards
- Versioned student app APIs plus parent and teacher app APIs
- Mentor app APIs for calls, tagging and task-deviation tracking
- Server-rendered staff, sales, mentor, payment and exam-registration pages
- Swagger and Redoc API documentation
Sales & CRM
- Sales follow-ups and lead tracking synced to Salesforce and LeadSquared
- ERP integration and workflow-automation webhooks
- Product analytics events to Mixpanel, PostHog, GA4 and Clarity
Platform
- PostgreSQL / PostGIS with optional read-replica routing
- Multi-tier Redis caching and purpose-specific Celery queues
- Pluggable object storage across S3, R2 and GCS
- Sentry, Grafana Loki, Flower and Locust load tests
Engineering decisions
One codebase, two tiers
Feature-flagged URL groups let the same Django project run as the public API tier and the dashboard tier on separate server pools without forking code.
Isolating slow work
Dedicated Celery queues keep AI mapping and exam syncs from starving notification delivery; scheduled jobs handle reconciliation and reminders.
Multi-gateway payments
A single payments module normalises three gateways' webhooks, autopay mandates, EMI schedules and refunds, with invoices generated downstream.