You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A full-scale, cloud-native e-learning platform inspired by Udemy and Coursera, built with 12 Spring Boot 3.x microservices. Demonstrates distributed systems design, event-driven architecture, and modern DevOps practices.
π Repository Description
Learnify is a microservices-based online learning platform built using Java 17, Spring Boot 3.2, and Spring Cloud. The system features 12 independent services communicating via OpenFeign (sync) and Apache Kafka (async), with full JWT authentication, Redis caching, Flyway migrations, Resilience4j circuit breakers, distributed tracing via Zipkin, and Docker Compose orchestration.
π¦ Microservices
#
Service
Port
Responsibility
Key Tech
1
API Gateway
8080
Single entry point, JWT filter, rate limiting, routing
Spring Cloud Gateway, Redis
2
Config Server
8888
Centralized configuration management
Spring Cloud Config
3
Service Registry
8761
Service discovery & registration
Netflix Eureka
4
Auth Service
8081
Login, signup, JWT issuance, refresh tokens, RBAC
Spring Security, JJWT
5
User Service
8082
User profiles, instructor management, Redis caching
GET /api/courses β Search & filter published courses
GET /api/courses/{id} β Get course details (cached in Redis)
POST /api/courses β Create course [INSTRUCTOR]
PUT /api/courses/{id} β Update course [INSTRUCTOR]
PATCH /api/courses/{id}/publish β Publish course [INSTRUCTOR]
GET /api/courses/popular β Top courses by enrollment
Enrollment
POST /api/enrollments β Enroll in a course (via Feign β Course Service)
GET /api/enrollments/my β My enrolled courses
PATCH /api/enrollments/{courseId}/progress β Update lesson progress
Payments
POST /api/payments β Process payment (publishes Kafka event)
GET /api/payments/my β My payment history
GET /api/payments/{id} β Payment details
Reviews
POST /api/reviews β Submit course review (1β5 stars)
GET /api/reviews/course/{id} β Course reviews (paginated)
GET /api/reviews/course/{id}/rating β Average rating
PUT /api/reviews/{id} β Update review
Analytics (INSTRUCTOR/ADMIN)
GET /api/analytics/courses/{courseId} β Course stats & revenue
GET /api/analytics/courses/top-revenue β Top earning courses
π§ͺ Testing
# Run all unit tests
mvn test# Run tests for specific servicecd auth-service && mvn testcd enrollment-service && mvn testcd payment-service && mvn testcd course-service && mvn test# Run with coverage report
mvn test jacoco:report