SkillVerse is a scalable microservices-based online learning platform built using Spring Boot & Spring Cloud. It enables users to register, explore courses, enroll, and rate them — designed with event-driven architecture and service isolation.
| Service Name | Responsibility | Tech Stack |
|---|---|---|
| Auth-Service | Handles authentication, JWT generation, and user registration | Spring Security, JWT |
| User-Service | Manages user profiles and user data | Spring Boot, MySQL |
| Course-Service | Manages courses and maintains aggregated rating stats | Spring Boot, MySQL |
| Enrollment-Service | Handles course enrollments and publishes enrollment events | Spring Boot, MySQL |
| Rating-Service | Manages course ratings and reviews, publishes rating events | Spring Boot, MySQL |
| Notification-Service | Consumes events and sends notifications (email/in-app) | Spring Boot, Kafka |
| API-Gateway | Central entry point (routing, authentication, header propagation) | Spring Cloud Gateway |
| Config-Service | Centralized configuration | Spring Cloud Config |
| Eureka-Service | Service discovery | Netflix Eureka |
| Layer | Technology |
|---|---|
| Language | Java 17 |
| Framework | Spring Boot |
| Microservices | Spring Cloud (Gateway, Eureka, Config) |
| Security | Spring Security, JWT |
| Database | MySQL |
| Messaging | Apache Kafka |
| Inter-service Calls | OpenFeign |
| Logging | SLF4J + Logback |
| Monitoring | Spring Actuator |
SkillVerse uses Kafka for asynchronous communication between services.
- Auth-Service →
user-created - Enrollment-Service →
enrollment-events - Rating-Service →
rating-created
- User-Service → consumes
user-created - Notification-Service → consumes
enrollment-events - Course-Service → consumes
rating-created
User registers → Auth-Service → Kafka → User-Service DB sync
User enrolls → Enrollment-Service → Kafka → Notification-Service
User rates course → Rating-Service → Kafka → Course-Service updates rating
- JWT-based authentication
- Role-based authorization (STUDENT / CREATOR / ADMIN)
- User profile management
- Create, update, delete courses (CREATOR role)
- Browse and search courses
- Maintains average rating & total ratings (event-driven)
- Enroll in courses
- View enrolled courses
- Prevent duplicate enrollments
- Rate courses (1–5)
- Add reviews
- Prevent duplicate ratings
- Event-driven aggregation in Course-Service
- Triggered on enrollment events
- Email/in-app notification support (extensible)
- Database per service
- Loose coupling via Kafka events
- API Gateway for centralized security
- Feign for synchronous communication
- Eventual consistency across services
- Java 17+
- Maven 3.8+
- MySQL
- Docker (for Kafka)
- Git
- Eureka-Service
- Config-Service
- Kafka (Docker)
- Auth-Service
- User-Service
- Course-Service
- Enrollment-Service
- Rating-Service
- Notification-Service
- API-Gateway
mvn spring-boot:runPOST /skillverse/auth/loginPOST /skillverse/coursesPOST /skillverse/ratings- Kafka Retry + DLQ implementation
- Distributed tracing (OpenTelemetry)
- Caching with Redis
- API rate limiting
- Frontend (Angular/React)
- Event versioning
Currently under development. Not licensed for public use.
Ashish Gadekar
SkillVerse — Microservices Learning Platform
Version: v1.0.0