# s4-shivampatel/campusos-backend architecture

> Architecture diagram of the GitHub repository s4-shivampatel/campusos-backend, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-15). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/s4-shivampatel/campusos-backend
- Repository: https://github.com/s4-shivampatel/campusos-backend

## Overview

CampusOS is a Spring Java backend for student and campus administration. Its visible workflow includes student-account creation and login, then management of student records such as profiles, documents, guardians, and enrollments; user administration is a separate API branch. The tree also identifies course content, student-course progress, and assignments, but their runtime wiring was not sampled. The README gives only the project name, so those capabilities are represented without inferred call relationships.

Main entry points: [`src/main/java/com/campusos/campusos/student/repository/StudentRepository.java`](https://github.com/s4-shivampatel/campusos-backend/blob/main/src/main/java/com/campusos/campusos/student/repository/StudentRepository.java) (Student records), [`src/main/java/com/campusos/campusos/auth/service/AuthService.java`](https://github.com/s4-shivampatel/campusos-backend/blob/main/src/main/java/com/campusos/campusos/auth/service/AuthService.java) (Authentication), [`src/main/java/com/campusos/campusos/user/service/UserService.java`](https://github.com/s4-shivampatel/campusos-backend/blob/main/src/main/java/com/campusos/campusos/user/service/UserService.java) (User administration), [`src/main/java/com/campusos/campusos/student/service/StudentEnrollmentService.java`](https://github.com/s4-shivampatel/campusos-backend/blob/main/src/main/java/com/campusos/campusos/student/service/StudentEnrollmentService.java) (Student enrollment)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_identity["Identity and access"]
  node_auth_api["Authentication API"]
  node_auth_service["Authentication<br/>[AuthService.java]"]
  node_user_api["User API"]
  node_user_service["User administration<br/>[UserService.java]"]
  node_user_data[("Users and roles")]
end

subgraph group_student["Student records"]
  node_student_api["Student APIs"]
  node_student_data[("Student records")]
  node_profile_service["Student profiles"]
  node_document_service["Student documents"]
  node_guardian_service["Student guardians"]
  node_enrollment_api["Enrollment API"]
  node_enrollment_service["Student enrollment"]
  node_address_api["Address API"]
end

subgraph group_learning["Learning management"]
  node_course_content["Courses and materials"]
  node_student_course["Course progress"]
  node_assignments["Assignments"]
end

subgraph group_shared["Shared handling"]
  node_errors["Exception handling"]
end

node_client(("API client"))

node_client -.->|"sends login requests"| node_auth_api
node_auth_api -.->|"delegates authentication"| node_auth_service
node_auth_service -->|"checks and creates users"| node_user_data
node_auth_service -->|"checks students"| node_student_data
node_client -.->|"sends user requests"| node_user_api
node_user_api -.->|"delegates user operations"| node_user_service
node_user_service -->|"reads and deletes users"| node_user_data
node_user_service -->|"reads and deletes students"| node_student_data
node_client -.->|"sends student requests"| node_student_api
node_client -.->|"sends enrollment requests"| node_enrollment_api
node_enrollment_api -.->|"delegates enrollment operations"| node_enrollment_service
node_enrollment_service -->|"looks up students"| node_student_data
node_client -.->|"sends address requests"| node_address_api
node_profile_service -->|"looks up students"| node_student_data
node_document_service -->|"looks up students"| node_student_data
node_guardian_service -->|"looks up students"| node_student_data
node_enrollment_service -->|"raises not-found errors"| node_errors

click node_auth_api "https://github.com/s4-shivampatel/campusos-backend/blob/main/src/main/java/com/campusos/campusos/auth/controller/AuthController.java"
click node_auth_service "https://github.com/s4-shivampatel/campusos-backend/blob/main/src/main/java/com/campusos/campusos/auth/service/AuthService.java"
click node_user_api "https://github.com/s4-shivampatel/campusos-backend/blob/main/src/main/java/com/campusos/campusos/user/controller/UserController.java"
click node_user_service "https://github.com/s4-shivampatel/campusos-backend/blob/main/src/main/java/com/campusos/campusos/user/service/UserService.java"
click node_user_data "https://github.com/s4-shivampatel/campusos-backend/blob/main/src/main/java/com/campusos/campusos/user/repository/UserRepository.java"
click node_student_api "https://github.com/s4-shivampatel/campusos-backend/blob/main/src/main/java/com/campusos/campusos/student/controller/StudentController.java"
click node_student_data "https://github.com/s4-shivampatel/campusos-backend/blob/main/src/main/java/com/campusos/campusos/student/repository/StudentRepository.java"
click node_profile_service "https://github.com/s4-shivampatel/campusos-backend/blob/main/src/main/java/com/campusos/campusos/student/service/StudentProfileService.java"
click node_document_service "https://github.com/s4-shivampatel/campusos-backend/blob/main/src/main/java/com/campusos/campusos/student/service/StudentDocumentService.java"
click node_guardian_service "https://github.com/s4-shivampatel/campusos-backend/blob/main/src/main/java/com/campusos/campusos/student/service/StudentGuardianService.java"
click node_enrollment_api "https://github.com/s4-shivampatel/campusos-backend/blob/main/src/main/java/com/campusos/campusos/student/controller/StudentEnrollmentController.java"
click node_enrollment_service "https://github.com/s4-shivampatel/campusos-backend/blob/main/src/main/java/com/campusos/campusos/student/service/StudentEnrollmentService.java"
click node_address_api "https://github.com/s4-shivampatel/campusos-backend/blob/main/src/main/java/com/campusos/campusos/student/controller/StudentAddressController.java"
click node_course_content "https://github.com/s4-shivampatel/campusos-backend/tree/main/src/main/java/com/campusos/campusos/course"
click node_student_course "https://github.com/s4-shivampatel/campusos-backend/tree/main/src/main/java/com/campusos/campusos/studentcourse"
click node_assignments "https://github.com/s4-shivampatel/campusos-backend/tree/main/src/main/java/com/campusos/campusos/assignment"
click node_errors "https://github.com/s4-shivampatel/campusos-backend/blob/main/src/main/java/com/campusos/campusos/common/exception/GlobalExceptionHandler.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_auth_api,node_auth_service,node_user_api,node_user_service,node_user_data,node_client toneBlue
class node_student_api,node_student_data,node_profile_service,node_document_service,node_guardian_service,node_enrollment_api,node_enrollment_service,node_address_api toneAmber
class node_course_content,node_student_course,node_assignments toneMint
class node_errors toneRose
```

## Components

### Identity and access

- [Authentication API](https://github.com/s4-shivampatel/campusos-backend/blob/main/src/main/java/com/campusos/campusos/auth/controller/AuthController.java): `src/main/java/com/campusos/campusos/auth/controller/AuthController.java`
- [Authentication](https://github.com/s4-shivampatel/campusos-backend/blob/main/src/main/java/com/campusos/campusos/auth/service/AuthService.java): `src/main/java/com/campusos/campusos/auth/service/AuthService.java`
- [User API](https://github.com/s4-shivampatel/campusos-backend/blob/main/src/main/java/com/campusos/campusos/user/controller/UserController.java): `src/main/java/com/campusos/campusos/user/controller/UserController.java`
- [User administration](https://github.com/s4-shivampatel/campusos-backend/blob/main/src/main/java/com/campusos/campusos/user/service/UserService.java): `src/main/java/com/campusos/campusos/user/service/UserService.java`
- [Users and roles](https://github.com/s4-shivampatel/campusos-backend/blob/main/src/main/java/com/campusos/campusos/user/repository/UserRepository.java): `src/main/java/com/campusos/campusos/user/repository/UserRepository.java`

### Student records

- [Student APIs](https://github.com/s4-shivampatel/campusos-backend/blob/main/src/main/java/com/campusos/campusos/student/controller/StudentController.java): `src/main/java/com/campusos/campusos/student/controller/StudentController.java`
- [Student records](https://github.com/s4-shivampatel/campusos-backend/blob/main/src/main/java/com/campusos/campusos/student/repository/StudentRepository.java): `src/main/java/com/campusos/campusos/student/repository/StudentRepository.java`
- [Student profiles](https://github.com/s4-shivampatel/campusos-backend/blob/main/src/main/java/com/campusos/campusos/student/service/StudentProfileService.java): `src/main/java/com/campusos/campusos/student/service/StudentProfileService.java`
- [Student documents](https://github.com/s4-shivampatel/campusos-backend/blob/main/src/main/java/com/campusos/campusos/student/service/StudentDocumentService.java): `src/main/java/com/campusos/campusos/student/service/StudentDocumentService.java`
- [Student guardians](https://github.com/s4-shivampatel/campusos-backend/blob/main/src/main/java/com/campusos/campusos/student/service/StudentGuardianService.java): `src/main/java/com/campusos/campusos/student/service/StudentGuardianService.java`
- [Enrollment API](https://github.com/s4-shivampatel/campusos-backend/blob/main/src/main/java/com/campusos/campusos/student/controller/StudentEnrollmentController.java): `src/main/java/com/campusos/campusos/student/controller/StudentEnrollmentController.java`
- [Student enrollment](https://github.com/s4-shivampatel/campusos-backend/blob/main/src/main/java/com/campusos/campusos/student/service/StudentEnrollmentService.java): `src/main/java/com/campusos/campusos/student/service/StudentEnrollmentService.java`
- [Address API](https://github.com/s4-shivampatel/campusos-backend/blob/main/src/main/java/com/campusos/campusos/student/controller/StudentAddressController.java): `src/main/java/com/campusos/campusos/student/controller/StudentAddressController.java`

### Learning management

- [Courses and materials](https://github.com/s4-shivampatel/campusos-backend/tree/main/src/main/java/com/campusos/campusos/course): `src/main/java/com/campusos/campusos/course`
- [Course progress](https://github.com/s4-shivampatel/campusos-backend/tree/main/src/main/java/com/campusos/campusos/studentcourse): `src/main/java/com/campusos/campusos/studentcourse`
- [Assignments](https://github.com/s4-shivampatel/campusos-backend/tree/main/src/main/java/com/campusos/campusos/assignment): `src/main/java/com/campusos/campusos/assignment`

### Shared handling

- [Exception handling](https://github.com/s4-shivampatel/campusos-backend/blob/main/src/main/java/com/campusos/campusos/common/exception/GlobalExceptionHandler.java): `src/main/java/com/campusos/campusos/common/exception/GlobalExceptionHandler.java`

### Other components

- **API client**

## Connections

- API client → Authentication API: sends login requests
- Authentication API → Authentication: delegates authentication (evidence: `src/main/java/com/campusos/campusos/auth/controller/AuthController.java`)
- Authentication → Users and roles: checks and creates users (evidence: `src/main/java/com/campusos/campusos/auth/service/AuthService.java`)
- Authentication → Student records: checks students (evidence: `src/main/java/com/campusos/campusos/auth/service/AuthService.java`)
- API client → User API: sends user requests
- User API → User administration: delegates user operations (evidence: `src/main/java/com/campusos/campusos/user/controller/UserController.java`)
- User administration → Users and roles: reads and deletes users (evidence: `src/main/java/com/campusos/campusos/user/service/UserService.java`)
- User administration → Student records: reads and deletes students (evidence: `src/main/java/com/campusos/campusos/user/service/UserService.java`)
- API client → Student APIs: sends student requests
- API client → Enrollment API: sends enrollment requests
- Enrollment API → Student enrollment: delegates enrollment operations (evidence: `src/main/java/com/campusos/campusos/student/controller/StudentEnrollmentController.java`)
- Student enrollment → Student records: looks up students (evidence: `src/main/java/com/campusos/campusos/student/service/StudentEnrollmentService.java`)
- API client → Address API: sends address requests
- Student profiles → Student records: looks up students (evidence: `src/main/java/com/campusos/campusos/student/service/StudentProfileService.java`)
- Student documents → Student records: looks up students (evidence: `src/main/java/com/campusos/campusos/student/service/StudentDocumentService.java`)
- Student guardians → Student records: looks up students (evidence: `src/main/java/com/campusos/campusos/student/service/StudentGuardianService.java`)
- Student enrollment → Exception handling: raises not-found errors (evidence: `src/main/java/com/campusos/campusos/student/service/StudentEnrollmentService.java`)
