
Tech With Rathan
A robust, creator-focused Learning Management System featuring geographical pricing and multi-currency support.
About This Project
What I built and why
Tech With Rathan is a high-performance e-learning platform built with Django and React. It empowers creators to host and sell courses globally with a unique geographical pricing engine that automatically adjusts costs based on the student's location. The system includes features like multi-format lessons (Video/Article), student progress tracking, automated certificate generation, instructor management, and a flexible coupon system for marketing.
Key Features
What makes this project stand out
Built a dual payment gateway integration supporting both one-time course purchases and recurring subscriptions (monthly/yearly/lifetime) via Stripe and Razorpay, with webhook-driven lifecycle management handling activation, renewal, cancellation, and plan-switching with pro-rated credit calculations for mid-cycle upgrades.
Designed and implemented an email marketing automation engine with a visual workflow builder, configurable trigger → delay → action pipelines for abandoned cart recovery (add-to-cart, checkout, subscription), Celery-powered batch email processing with rate limiting, exponential retry backoff, queue health monitoring, and encrypted SMTP credential management using Fernet symmetric encryption.
Developed a country-wise dynamic pricing system using IP geolocation to detect user location, resolve locale-specific currency and pricing for courses, subscriptions, and live classes, and dynamically render region-appropriate checkout flows — supporting multi-currency transactions across Stripe and Razorpay with real-time currency conversion via ExConvert API.
Engineered a live class management platform with batch-based enrollment (weekday/weekend), add-on purchases, structured curriculum delivery, scheduled lesson links, recorded class archives, assignment submission with late-detection and instructor grading, and downloadable lesson resources — all gated behind enrollment verification.
Built an automated certificate generation pipeline that populates a branded PPTX template with student name, course title, completion date, and total course duration, converts it to PDF via headless LibreOffice, and stores the result as a downloadable asset with a unique validation number for external verification.
Developed a comprehensive admin console (server-rendered Django templates) with course CRUD and drag-and-drop curriculum ordering, student analytics with per-course progress tracking, manual enrollment and subscription provisioning, payment breakdown by currency with INR conversion rollups, and bulk email campaign management with per-recipient open/click tracking.
Integrated Google OAuth 2.0 and JWT-based authentication with email verification workflows, password reset via tokenized links, reCAPTCHA bot protection, and Google Analytics (GA4) event tracking for user journey attribution.
Challenges & Solutions
Problems I faced and how I solved them
Challenges Faced
Implementing subscription systems for both Stripe and Razorpay despite their fundamentally different APIs, billing models, and webhook behaviors.
Keeping subscription states synchronized across payment gateways to prevent expired or canceled users from retaining course access.
Handling edge cases such as failed renewals, paused subscriptions, manual cancellations, and webhook delays.
Designing a reliable student progress tracking system that accurately records video completion and lesson milestones.
Ensuring progress data remains consistent across devices and sessions without performance degradation.
My Solutions
Designed a unified subscription abstraction layer that normalizes Stripe and Razorpay subscription events into a single internal state model.
Implemented webhook-driven subscription state management to instantly grant or revoke course access based on payment lifecycle events.
Built a fault-tolerant retry and reconciliation system to handle delayed or missed webhook events safely.
Developed a granular progress tracking schema that records lesson-level completion and timestamp-based video progress.
Optimized progress updates using batched writes and indexed queries to ensure scalability and real-time accuracy.