How ruvinda-shaluka/examsy-microservice works
Examsy is a microservices examination platform. Students and teachers use the gateway-facing services to join classes, publish and take exams, and receive grading; administrators manage reports and platform metrics. Registration events create profile records, while exam submissions and released grades are distributed to grading, analytics, and notification consumers. The map follows the service boundaries and capabilities in the README and tree; source excerpts are interfaces rather than implementations, so internal call wiring and some event routes remain unverified.
Main entry points: GatewayRoutesConfig.java API gateway · AuthServiceImpl.java Authentication · StudentExamServiceImpl.java Exam lifecycle · StudentClassServiceImpl.java Class management
Components 22
Entry and identity
- API gateway
services/examsy-api-gateway/src/main/java/lk/ijse/examsy/gateway/config/GatewayRoutesConfig.java - Authentication
services/examsy-auth-service/src/main/java/lk/ijse/examsy/auth/service/impl/AuthServiceImpl.java - User accounts
services/examsy-auth-service/src/main/java/lk/ijse/examsy/auth/repository/UserAccountRepo.java - Registration events
services/examsy-auth-service/src/main/java/lk/ijse/examsy/auth/kafka/AuthEventProducer.java
Classes and exams
- Class management
services/examsy-class-service/src/main/java/lk/ijse/examsy/classservice/service/impl/StudentClassServiceImpl.java - Class records
services/examsy-class-service/src/main/java/lk/ijse/examsy/classservice/repository/CourseRepo.java - Exam lifecycle
services/examsy-exam-service/src/main/java/lk/ijse/examsy/examservice/service/impl/StudentExamServiceImpl.java - Exams and submissions
services/examsy-exam-service/src/main/java/lk/ijse/examsy/examservice/repository/ExamSubmissionRepo.java
Grading and results
- Submission event
services/examsy-exam-service/src/main/java/lk/ijse/examsy/examservice/kafka/ExamEventProducer.java - Smart grading
services/examsy-grading-service/src/main/java/lk/ijse/examsy/gradingservice/service/impl/SmartGradingServiceImpl.java - Answer OCR
services/examsy-grading-service/src/main/java/lk/ijse/examsy/gradingservice/service/impl/OCRServiceImpl.java - Grade release event
services/examsy-grading-service/src/main/java/lk/ijse/examsy/gradingservice/kafka/GradeEventProducer.java
Profiles and administration
- User profiles
services/examsy-profile-service/src/main/java/lk/ijse/examsy/profile/kafka/AuthEventConsumer.java - Profile records
services/examsy-profile-service/src/main/java/lk/ijse/examsy/profile/repository/StudentRepo.java - Reports and dashboard
services/examsy-admin-service/src/main/java/lk/ijse/examsy/adminservice/service/impl/AdminReportServiceImpl.java - Platform metrics
services/examsy-admin-service/src/main/java/lk/ijse/examsy/adminservice/repository/PlatformMetricRepo.java - Notifications
services/examsy-notification-service/src/main/java/lk/ijse/examsy/notificationservice/service/impl/NotificationServiceImpl.java - Email delivery
services/examsy-notification-service/src/main/java/lk/ijse/examsy/notificationservice/service/impl/EmailServiceImpl.java
Platform services
- Kafka broker
- Service discovery
services/examsy-eureka-server/src/main/java/lk/ijse/examsy/eurekaserver/ExamsyEurekaServerApplication.java - Central configuration
services/examsy-config-server/src/main/java/lk/ijse/examsy/configserver/ExamsyConfigServerApplication.java
Other components
- Student / teacher / admin
Connections 25
- Student / teacher / admin → API gateway: sends requests
- API gateway → Authentication: routes requests
- API gateway → Class management: routes requests
- API gateway → Exam lifecycle: routes requests
- API gateway → Reports and dashboard: routes requests
- Authentication → User accounts: reads/writes
- Authentication → Registration events: publishes registration
- Registration events → Kafka broker: publishes events
- Kafka broker → User profiles: delivers registration
- User profiles → Profile records: writes profiles
- Class management → Class records: reads/writes
- Exam lifecycle → Exams and submissions: reads/writes
- Exam lifecycle → Submission event: publishes submission
- Submission event → Kafka broker: publishes event
- Kafka broker → Smart grading: delivers submission
- Smart grading → Answer OCR: extracts answers
- Smart grading → Grade release event: publishes release
- Grade release event → Kafka broker: publishes event
- Kafka broker → Notifications: delivers events
- Notifications → Email delivery: sends email
- Reports and dashboard → Platform metrics: reads/writes metrics
- API gateway → Service discovery: uses discovery
- Authentication → Central configuration: loads configuration
- Class management → Central configuration: loads configuration
- Exam lifecycle → Central configuration: loads configuration