# lvprasadchiliveru/soa_project_sdp-ps031 architecture

> Architecture diagram of the GitHub repository lvprasadchiliveru/soa_project_sdp-ps031, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/lvprasadchiliveru/soa_project_sdp-ps031
- Repository: https://github.com/lvprasadchiliveru/soa_project_sdp-ps031

## Overview

EduPulse is a microservices backend for student administration, attendance tracking, results, and authentication. The main workflows are managing student records, recording attendance and marks against known students, and assembling a report card from student, attendance, and result data. The sampled controllers show service-to-service calls and repository access; the tree identifies a gateway and discovery server, but does not establish gateway routing or detailed security-filter wiring.

Main entry points: [`result-service/src/main/java/com/edupulse/result/controller/ResultController.java`](https://github.com/lvprasadchiliveru/soa_project_sdp-ps031/blob/main/result-service/src/main/java/com/edupulse/result/controller/ResultController.java) (Result controller), [`attendance-service/src/main/java/com/edupulse/attendance/controller/AttendanceController.java`](https://github.com/lvprasadchiliveru/soa_project_sdp-ps031/blob/main/attendance-service/src/main/java/com/edupulse/attendance/controller/AttendanceController.java) (Attendance controller), [`student-service/src/main/java/com/edupulse/student/controller/StudentController.java`](https://github.com/lvprasadchiliveru/soa_project_sdp-ps031/blob/main/student-service/src/main/java/com/edupulse/student/controller/StudentController.java) (Student controller), [`eureka-server/src/main/java/com/edupulse/eureka/EurekaServerApplication.java`](https://github.com/lvprasadchiliveru/soa_project_sdp-ps031/blob/main/eureka-server/src/main/java/com/edupulse/eureka/EurekaServerApplication.java) (Service registry)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_edge["API entry"]
  node_gateway["API gateway"]
  node_registry["Service registry"]
end

subgraph group_identity["Identity"]
  node_auth["Auth controller"]
  node_users[("User repository")]
  node_jwt["JWT utility<br/>[JwtUtil.java]"]
  node_authapp["Auth service"]
end

subgraph group_students["Student records"]
  node_student["Student controller"]
  node_studentstore[("Student repository")]
  node_studentapp["Student service"]
end

subgraph group_attendance["Attendance"]
  node_attendance["Attendance controller"]
  node_attendancestore[("Attendance repository")]
  node_attendanceclient["Student client<br/>[StudentClient.java]"]
  node_attendanceapp["Attendance service"]
end

subgraph group_results["Results"]
  node_result["Result controller"]
  node_resultstore[("Result repository")]
  node_resultstudent["Student client<br/>[StudentClient.java]"]
  node_resultattendance["Attendance client"]
  node_resultapp["Result service"]
end

node_caller(("API consumer"))

node_caller -->|"sends requests"| node_gateway
node_caller -->|"registers or logs in"| node_auth
node_caller -->|"manages students"| node_student
node_caller -->|"records attendance"| node_attendance
node_caller -->|"records marks"| node_result
node_auth -->|"reads and writes"| node_users
node_auth -->|"generates token"| node_jwt
node_student -->|"reads and writes"| node_studentstore
node_attendance -->|"checks student"| node_attendanceclient
node_attendance -->|"reads and writes"| node_attendancestore
node_attendanceclient -->|"fetches student"| node_student
node_result -->|"checks student"| node_resultstudent
node_result -->|"fetches summary"| node_resultattendance
node_result -->|"reads and writes"| node_resultstore
node_resultstudent -->|"fetches student"| node_student
node_resultattendance -->|"requests summary"| node_attendance
node_authapp -->|"registers service"| node_registry
node_studentapp -->|"registers service"| node_registry
node_attendanceapp -->|"registers service"| node_registry
node_resultapp -->|"registers service"| node_registry

click node_gateway "https://github.com/lvprasadchiliveru/soa_project_sdp-ps031/blob/main/api-gateway/src/main/java/com/edupulse/gateway/ApiGatewayApplication.java"
click node_registry "https://github.com/lvprasadchiliveru/soa_project_sdp-ps031/blob/main/eureka-server/src/main/java/com/edupulse/eureka/EurekaServerApplication.java"
click node_auth "https://github.com/lvprasadchiliveru/soa_project_sdp-ps031/blob/main/auth-service/src/main/java/com/edupulse/auth/controller/AuthController.java"
click node_users "https://github.com/lvprasadchiliveru/soa_project_sdp-ps031/blob/main/auth-service/src/main/java/com/edupulse/auth/repository/UserRepository.java"
click node_jwt "https://github.com/lvprasadchiliveru/soa_project_sdp-ps031/blob/main/auth-service/src/main/java/com/edupulse/auth/security/JwtUtil.java"
click node_authapp "https://github.com/lvprasadchiliveru/soa_project_sdp-ps031/blob/main/auth-service/src/main/java/com/edupulse/auth/AuthServiceApplication.java"
click node_student "https://github.com/lvprasadchiliveru/soa_project_sdp-ps031/blob/main/student-service/src/main/java/com/edupulse/student/controller/StudentController.java"
click node_studentstore "https://github.com/lvprasadchiliveru/soa_project_sdp-ps031/blob/main/student-service/src/main/java/com/edupulse/student/repository/StudentRepository.java"
click node_studentapp "https://github.com/lvprasadchiliveru/soa_project_sdp-ps031/blob/main/student-service/src/main/java/com/edupulse/student/StudentServiceApplication.java"
click node_attendance "https://github.com/lvprasadchiliveru/soa_project_sdp-ps031/blob/main/attendance-service/src/main/java/com/edupulse/attendance/controller/AttendanceController.java"
click node_attendancestore "https://github.com/lvprasadchiliveru/soa_project_sdp-ps031/blob/main/attendance-service/src/main/java/com/edupulse/attendance/repository/AttendanceRepository.java"
click node_attendanceclient "https://github.com/lvprasadchiliveru/soa_project_sdp-ps031/blob/main/attendance-service/src/main/java/com/edupulse/attendance/client/StudentClient.java"
click node_attendanceapp "https://github.com/lvprasadchiliveru/soa_project_sdp-ps031/blob/main/attendance-service/src/main/java/com/edupulse/attendance/AttendanceServiceApplication.java"
click node_result "https://github.com/lvprasadchiliveru/soa_project_sdp-ps031/blob/main/result-service/src/main/java/com/edupulse/result/controller/ResultController.java"
click node_resultstore "https://github.com/lvprasadchiliveru/soa_project_sdp-ps031/blob/main/result-service/src/main/java/com/edupulse/result/repository/ResultRepository.java"
click node_resultstudent "https://github.com/lvprasadchiliveru/soa_project_sdp-ps031/blob/main/result-service/src/main/java/com/edupulse/result/client/StudentClient.java"
click node_resultattendance "https://github.com/lvprasadchiliveru/soa_project_sdp-ps031/blob/main/result-service/src/main/java/com/edupulse/result/client/AttendanceClient.java"
click node_resultapp "https://github.com/lvprasadchiliveru/soa_project_sdp-ps031/blob/main/result-service/src/main/java/com/edupulse/result/ResultServiceApplication.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_gateway,node_registry toneBlue
class node_auth,node_users,node_jwt,node_authapp toneAmber
class node_student,node_studentstore,node_studentapp,node_caller toneMint
class node_attendance,node_attendancestore,node_attendanceclient,node_attendanceapp toneRose
class node_result,node_resultstore,node_resultstudent,node_resultattendance,node_resultapp toneIndigo
```

## Components

### API entry

- [API gateway](https://github.com/lvprasadchiliveru/soa_project_sdp-ps031/blob/main/api-gateway/src/main/java/com/edupulse/gateway/ApiGatewayApplication.java): `api-gateway/src/main/java/com/edupulse/gateway/ApiGatewayApplication.java`
- [Service registry](https://github.com/lvprasadchiliveru/soa_project_sdp-ps031/blob/main/eureka-server/src/main/java/com/edupulse/eureka/EurekaServerApplication.java): `eureka-server/src/main/java/com/edupulse/eureka/EurekaServerApplication.java`

### Identity

- [Auth controller](https://github.com/lvprasadchiliveru/soa_project_sdp-ps031/blob/main/auth-service/src/main/java/com/edupulse/auth/controller/AuthController.java): `auth-service/src/main/java/com/edupulse/auth/controller/AuthController.java`
- [User repository](https://github.com/lvprasadchiliveru/soa_project_sdp-ps031/blob/main/auth-service/src/main/java/com/edupulse/auth/repository/UserRepository.java): `auth-service/src/main/java/com/edupulse/auth/repository/UserRepository.java`
- [JWT utility](https://github.com/lvprasadchiliveru/soa_project_sdp-ps031/blob/main/auth-service/src/main/java/com/edupulse/auth/security/JwtUtil.java): `auth-service/src/main/java/com/edupulse/auth/security/JwtUtil.java`
- [Auth service](https://github.com/lvprasadchiliveru/soa_project_sdp-ps031/blob/main/auth-service/src/main/java/com/edupulse/auth/AuthServiceApplication.java): `auth-service/src/main/java/com/edupulse/auth/AuthServiceApplication.java`

### Student records

- [Student controller](https://github.com/lvprasadchiliveru/soa_project_sdp-ps031/blob/main/student-service/src/main/java/com/edupulse/student/controller/StudentController.java): `student-service/src/main/java/com/edupulse/student/controller/StudentController.java`
- [Student repository](https://github.com/lvprasadchiliveru/soa_project_sdp-ps031/blob/main/student-service/src/main/java/com/edupulse/student/repository/StudentRepository.java): `student-service/src/main/java/com/edupulse/student/repository/StudentRepository.java`
- [Student service](https://github.com/lvprasadchiliveru/soa_project_sdp-ps031/blob/main/student-service/src/main/java/com/edupulse/student/StudentServiceApplication.java): `student-service/src/main/java/com/edupulse/student/StudentServiceApplication.java`

### Attendance

- [Attendance controller](https://github.com/lvprasadchiliveru/soa_project_sdp-ps031/blob/main/attendance-service/src/main/java/com/edupulse/attendance/controller/AttendanceController.java): `attendance-service/src/main/java/com/edupulse/attendance/controller/AttendanceController.java`
- [Attendance repository](https://github.com/lvprasadchiliveru/soa_project_sdp-ps031/blob/main/attendance-service/src/main/java/com/edupulse/attendance/repository/AttendanceRepository.java): `attendance-service/src/main/java/com/edupulse/attendance/repository/AttendanceRepository.java`
- [Student client](https://github.com/lvprasadchiliveru/soa_project_sdp-ps031/blob/main/attendance-service/src/main/java/com/edupulse/attendance/client/StudentClient.java): `attendance-service/src/main/java/com/edupulse/attendance/client/StudentClient.java`
- [Attendance service](https://github.com/lvprasadchiliveru/soa_project_sdp-ps031/blob/main/attendance-service/src/main/java/com/edupulse/attendance/AttendanceServiceApplication.java): `attendance-service/src/main/java/com/edupulse/attendance/AttendanceServiceApplication.java`

### Results

- [Result controller](https://github.com/lvprasadchiliveru/soa_project_sdp-ps031/blob/main/result-service/src/main/java/com/edupulse/result/controller/ResultController.java): `result-service/src/main/java/com/edupulse/result/controller/ResultController.java`
- [Result repository](https://github.com/lvprasadchiliveru/soa_project_sdp-ps031/blob/main/result-service/src/main/java/com/edupulse/result/repository/ResultRepository.java): `result-service/src/main/java/com/edupulse/result/repository/ResultRepository.java`
- [Student client](https://github.com/lvprasadchiliveru/soa_project_sdp-ps031/blob/main/result-service/src/main/java/com/edupulse/result/client/StudentClient.java): `result-service/src/main/java/com/edupulse/result/client/StudentClient.java`
- [Attendance client](https://github.com/lvprasadchiliveru/soa_project_sdp-ps031/blob/main/result-service/src/main/java/com/edupulse/result/client/AttendanceClient.java): `result-service/src/main/java/com/edupulse/result/client/AttendanceClient.java`
- [Result service](https://github.com/lvprasadchiliveru/soa_project_sdp-ps031/blob/main/result-service/src/main/java/com/edupulse/result/ResultServiceApplication.java): `result-service/src/main/java/com/edupulse/result/ResultServiceApplication.java`

### Other components

- **API consumer**

## Connections

- API consumer → API gateway: sends requests
- API consumer → Auth controller: registers or logs in
- API consumer → Student controller: manages students
- API consumer → Attendance controller: records attendance
- API consumer → Result controller: records marks
- Auth controller → User repository: reads and writes
- Auth controller → JWT utility: generates token
- Student controller → Student repository: reads and writes
- Attendance controller → Student client: checks student
- Attendance controller → Attendance repository: reads and writes
- Student client → Student controller: fetches student
- Result controller → Student client: checks student
- Result controller → Attendance client: fetches summary
- Result controller → Result repository: reads and writes
- Student client → Student controller: fetches student
- Attendance client → Attendance controller: requests summary
- Auth service → Service registry: registers service
- Student service → Service registry: registers service
- Attendance service → Service registry: registers service
- Result service → Service registry: registers service
