Skip to content

A scalable E-Learning platform inspired by Udemy, built using Java 17, Spring Boot 3, Spring Cloud, and Docker. It follows a robust microservices architecture with services for authentication, users, courses, media handling, reviews, and notifications. Designed for modularity, security, and real-world deployment.

Notifications You must be signed in to change notification settings

prince-63/e-learning

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

E-Learning (Udemy) - Microservices Architecture

A scalable, modular, and production-ready E-Learning platform, inspired by Udemy, built with Java 17, Spring Boot 3, Spring Security 6, and Spring Cloud. This platform follows a microservices architecture, enabling horizontal scaling, independent service deployment, and better fault tolerance.

Architecture Overview

Service Name Port Responsibility
API Gateway 8080 Central entry point for all client requests, handles routing, auth, CORS, and rate-limiting
Eureka Server 8000 Service discovery and registration for all microservices
Auth Service 8081 Handles user registration, login, and JWT token management
User Service 8082 Manages user profiles, avatars, and additional user metadata
Course Service 8083 Manages course creation, sections, and lectures (MongoDB backed)
Media Service (Presigned URL Generator) 8084 Handles media uploads via cloud storage (videos, PDFs) using signed URLs
Review Service 8085 Allows users to submit reviews and ratings for courses
Notification Service 8087 Sends emails, SMS, or push notifications using event-driven Kafka messaging

Tech Stack & Tools

  • Java 17, Spring Boot 3, Spring Security 6, Spring Cloud Netflix
  • MongoDB for dynamic and unstructured data (used in Course Service)
  • MySQL for relational storage (used in Auth and User services)
  • OpenFeign for declarative REST clients across services
  • JWT Authentication (stateless token-based security)
  • Spring Validation with custom error handling
  • Swagger / OpenAPI 3 for interactive API documentation
  • Docker + Docker Compose for service orchestration
  • Kafka for asynchronous event handling and inter-service communication
  • Redis for caching (e.g., token blacklisting, frequently accessed content)
  • Prometheus + Grafana for monitoring and alerting
  • Lombok, MapStruct, AOP Logging, ModelMapper

Scalability & Design Principles

  • Separation of Concerns: Every service has a single, well-defined responsibility.
  • Horizontal Scaling: Services can be scaled independently based on demand.
  • Stateless Auth: JWT eliminates session management overhead.
  • Async Processing: Kafka decouples services for non-blocking operations like notifications.
  • Centralized Configuration (Config Server - optional): Externalized and versioned configuration.
  • Monitoring & Observability: Prometheus scrapes metrics; Grafana visualizes trends and alerts.

Features Implemented

  • ๐Ÿ” Secure User Registration & Login (JWT + Refresh Token)
  • ๐Ÿ‘ค Complete User Profile Management with Avatar Upload
  • ๐Ÿ“˜ Course Creation with Sections & Lectures (video, PDF)
  • ๐ŸŽฅ Media Uploads using Presigned URLs (Cloudinary)
  • โœ๏ธ Course Reviews and Ratings System
  • ๐Ÿ“ฃ Event-Driven Notification Service (via Email/SMS)
  • ๐Ÿ“Š Real-time Monitoring with Prometheus & Grafana
  • ๐Ÿ“„ Full Swagger API Documentation for each service

About

A scalable E-Learning platform inspired by Udemy, built using Java 17, Spring Boot 3, Spring Cloud, and Docker. It follows a robust microservices architecture with services for authentication, users, courses, media handling, reviews, and notifications. Designed for modularity, security, and real-world deployment.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages