A full-stack educational platform leveraging AI to generate personalized learning paths with adaptive difficulty assessment and real-time content generation.
Role: Full-Stack Developer
Duration: 3 months
Credits: Renish Bhaskaran (Backend Mentor)
Tech-Stack: Python, Django, Celery, Redis, PostgreSQL, Docker, GCP, Groq API
Designed and deployed a full-stack AI-powered educational platform that delivers personalized learning experiences across 15 subject areas. The platform intelligently assesses user knowledge levels and generates customized curriculum paths with dynamically created educational content.
Key Features:

Built with Django for robust ORM capabilities, built-in authentication, and rapid development. Implemented a PostgreSQL database with optimized schema design featuring three core models: LearningProfile, Topic, and Lesson, with UserProgress tracking completion states.
Integrated Groq`s LLM API with structured output validation using Pydantic schemas. Engineered prompts to generate consistent, educational content including 10 assessment questions per subject and 4 comprehensive lessons per topic. Implemented markdown-to-HTML conversion for rich content display.
Implemented Celery with Redis as a message broker to handle AI content generation asynchronously. This architecture prevents blocking operations, enabling users to navigate the platform while content generates in the background. Implemented polling mechanisms for real-time status updates.
Containerized the application using Docker with multi-stage builds for optimized production images. Deployed on Google Cloud Platform (GCP) with separate containers for Django, Celery workers, and Redis. Configured Gunicorn with Uvicorn workers for ASGI support and implemented CI/CD pipelines using GitHub Actions.


Challenge: Initial LLM responses were inconsistent, with formatting issues and invalid JSON structures causing parsing failures.
Solution: Implemented a robust validation pipeline using Pydantic models with strict JSON schema enforcement. Refined system prompts with explicit formatting rules, including JSON escape handling and markdown syntax guidelines. Added retry logic with exponential backoff for failed generations.
Challenge: Content generation for 30 topics took more than a minute, creating poor UX.
Solution: Architected an asynchronous task queue system using Celery and Redis. Implemented background workers that process content generation while users continue browsing. Created real-time status polling with visual feedback (spinners, progress indicators) and graceful error handling with retry mechanisms.
Challenge: Deploying a multi-container architecture (Django, Celery, Redis) on GCP with proper networking, service communication, and external database integration.
Solution: Used Neon for managed PostgreSQL hosting with built-in SSL connections. Created a Virtual Private Cloud (VPC) on GCP for secure inter-service communication. Deployed on a GCP Compute Engine VM where I built Docker images for Django, Celery and Redis services, configured docker-compose for container orchestration, and managed environment variables for production.



Technical Learnings:
View the project:
