EduTrack is a full-stack Learning Management System (LMS) built using a microservices architecture. The platform is designed to manage learning programs, course content, student enrollments, assessments, and user access control through independent services communicating via Spring Cloud components.
The project demonstrates how enterprise-grade educational platforms can be designed using distributed services, centralized routing, service discovery, and role-based access control.
EduTrack follows a domain-driven microservices architecture where each business capability is isolated into a dedicated service.
The platform supports three user roles:
- Admin
- Instructor
- Student
Each role interacts with the platform through a secure authentication system and accesses features based on assigned permissions.
All client requests are routed through a centralized API Gateway, which communicates with backend services using Eureka Service Discovery.
EduTrack was designed as an Academic Management System that supports the complete learning lifecycle from program creation to assessment evaluation.
- User Management with Role-Based Access Control (RBAC)
- Program, Course, and Module Management
- Enrollment and Attendance Tracking
- Learning Content Delivery
- Assessment and Evaluation System
- Progress Monitoring
- Student Performance Tracking
- Quiz and Submission Management
- Academic Analytics Dashboard
The platform enables institutions to manage learning workflows while providing instructors with visibility into student performance and academic outcomes.
- Microservices-based architecture
- JWT-based authentication and authorization
- API Gateway for centralized routing
- Eureka Service Discovery
- Role-Based Access Control (RBAC)
- Program → Course → Module learning hierarchy
- Enrollment-based content access
- Learning progress tracking
- Dynamic quiz generation
- Automated assessment evaluation
- Randomized question selection
- Secure service-to-service communication
- Academic Management System
- Role-Based Access Control (RBAC)
- Student Performance Analytics
- Interactive Dashboards
- Assessment Evaluation Workflow
- Attendance Tracking
- Progress Monitoring
- RESTful Service Communication
- JWT Authorization
- Enterprise-Ready Architecture
git clone https://github.com/KurvaJeevan/Edutrack-Full-Stack-Microservices-project.git
cd Edutrack-Full-Stack-Microservices-projectEnsure the following are installed:
- Java 17+
- Maven
- MySQL
- Node.js
- Angular CLI
- Git
Start the services in the following order:
1. Eureka Discovery Server
2. Authentication Service
3. Course Service
4. Enrollment Service
5. Content Service
6. Assessment Service
7. API Gateway
8. Angular Frontend
Gateway URL:
http://localhost:8050
All requests should be routed through the API Gateway.
Client Application
│
▼
┌─────────────────────────┐
│ API Gateway │
│ Port 8050 │
└────────────┬────────────┘
│
┌───────────────┬───────────┼──────────────┬──────────────┐
│ │ │ │ │
▼ ▼ ▼ ▼ ▼
Authentication Course Enrollment Content Assessment
Service Service Service Service Service
│
▼
Eureka Discovery Server
The Authentication Service acts as the primary security layer of the platform.
- User Registration
- User Login
- JWT Token Generation
- User Validation
- Role Assignment
- Access Control
After successful authentication, users receive a JWT token which is used to access protected resources.
Although requests are routed through the Gateway Service, token validation is implemented across services to ensure secure access throughout the system.
The Course Service is the core domain service of the application.
It manages the complete learning structure using a three-level hierarchy.
Program
│
├── Course
│ │
│ └── Module
Java Full Stack Development
│
├── Core Java
│ ├── OOP Concepts
│ ├── Collections
│ └── Exception Handling
│
├── Spring Boot
│ ├── REST APIs
│ ├── Spring Security
│ └── JPA
- Program Management
- Course Management
- Module Management
- Learning Progress Tracking
A student must enroll in a Program before accessing its Courses and Modules.
The Enrollment Service manages student participation within learning programs.
- Program Enrollment
- Enrollment Tracking
- Student Registration Records
- Attendance Management
This service ensures that only enrolled students can access learning content associated with a program.
The Content Service is responsible for managing and delivering learning materials.
- Content Creation
- Content Storage
- Content Retrieval
- Learning Resource Management
When a student selects a module, the corresponding learning content is fetched from this service.
The Assessment Service handles quizzes, evaluations, and result processing.
Students can attempt an assessment only after completing all modules associated with a course.
This ensures that learners complete the required content before evaluation.
The system supports flexible question banks.
For example:
Question Bank Size : 30 Questions
Quiz Size : 10 Questions
The platform randomly selects 10 questions from the available pool whenever a quiz is generated.
This approach:
- Prevents repetition
- Improves assessment fairness
- Creates unique quiz experiences
- Question Management
- Quiz Generation
- Assessment Creation
- Submission Evaluation
- Result Processing
- Performance Analysis
The API Gateway acts as the single entry point for all client requests.
- Request Routing
- Centralized API Access
- Service Resolution
- Communication with Eureka Discovery
/api/auth/** -> Authentication Service
/api/users/** -> Authentication Service
/api/programs/** -> Course Service
/api/courses/** -> Course Service
/api/modules/** -> Course Service
/api/progress/** -> Course Service
/api/enrollments/** -> Enrollment Service
/api/attendance/** -> Enrollment Service
/api/content/** -> Content Service
/api/assessments/** -> Assessment Service
/api/questions/** -> Assessment Service
/api/submissions/** -> Assessment Service
/api/analysis/** -> Assessment Service
All requests are processed through the Gateway Service running on Port 8050.
The Admin has complete control over the platform.
- Create Programs
- Update Programs
- Delete Programs
- Manage Users
- Manage Courses
- Manage Content
- Manage Assessments
- Manage Enrollments
The Instructor is responsible for academic content management.
- Create Programs
- Create Courses
- Create Modules
- Upload Learning Content
- Create Assessments
- Create Question Banks
- Monitor Student Progress
The Student is the learner within the platform.
- Enroll in Programs
- Access Courses
- View Module Content
- Track Progress
- Attempt Assessments
- View Results
- Java
- Spring Boot
- Spring Security
- Spring Cloud Gateway
- Eureka Discovery Server
- JWT Authentication
- REST APIs
- Angular
- TypeScript
- HTML
- CSS
- Microservices Architecture
- API Gateway Pattern
- Service Discovery Pattern
- Role-Based Access Control (RBAC)
- Maven
- Git
- GitHub
Edutrack-Full-Stack-Microservices-project
├── authentication-service
├── gateway-service
├── discovery-service
├── course-service
├── enrollment-service
├── content-service
├── assessment-service
└── EduTrackFrontEnd
This project was developed as part of a collaborative team effort focused on designing and implementing a Learning Management Platform using Microservices Architecture.
https://github.com/EduTrack-MicroServices
The organization repository contains the collective work and contributions from all team members involved in the project.
- Docker Containerization
- Kubernetes Deployment
- CI/CD Pipeline Integration
- Distributed Logging
- Centralized Configuration Server
- Notification Service
- Recommendation Engine
- Monitoring with Prometheus and Grafana
Jeevan Kumar
Software Engineer at Cognizant
Interested in:
- Backend Engineering
- Distributed Systems
- Microservices Architecture
- Cloud-Native Applications
- Full Stack Development
GitHub: https://github.com/KurvaJeevan