# kauagabr/class-management architecture

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

- Interactive diagram: https://gitdiagram.com/kauagabr/class-management
- Repository: https://github.com/kauagabr/class-management

## Overview

This is a class-management application for an educational institution. Its central workflow is managing classes and their scheduling resources, alongside administration of courses, cohorts, semesters, and user accounts. The tree shows a Spring backend organized around REST controllers, services, repositories, and JPA entities; the README describes users managing these records. Source evidence is strongest for login, turma, and aula service dependencies, so other documented product areas are included without speculative call edges.

Main entry points: [`Back-end ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/service`](https://github.com/kauagabr/class-management/tree/main/Back-end%20ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/service) (Academic services), [`Back-end ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/service/TurmaService.java`](https://github.com/kauagabr/class-management/blob/main/Back-end%20ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/service/TurmaService.java) (Cohort management), [`Back-end ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/service/LoginService.java`](https://github.com/kauagabr/class-management/blob/main/Back-end%20ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/service/LoginService.java) (Login service), [`Back-end ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/repository`](https://github.com/kauagabr/class-management/tree/main/Back-end%20ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/repository) (Repositories)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["REST API"]
  node_login_api["Login endpoints"]
  node_academic_api["Academic endpoints"]
  node_api_errors["API error handling"]
end

subgraph group_domain["Academic management"]
  node_aula_service["Class scheduling<br/>[AulaService.java]"]
  node_turma_service["Cohort management<br/>[TurmaService.java]"]
  node_curso_service["Course management<br/>[CursoService.java]"]
  node_other_services["Academic services"]
end

subgraph group_identity["Identity and access"]
  node_login_service["Login service<br/>[LoginService.java]"]
  node_jwt["JWT authentication"]
  node_security["Security configuration"]
end

subgraph group_data["Domain data"]
  node_repositories["Repositories"]
  node_entities["Academic entities"]
  node_projections["Query projections"]
end

node_users(("Institution users"))

node_users -.->|"manage accounts"| node_login_api
node_users -.->|"manage records"| node_academic_api
node_login_api -->|"delegates to"| node_login_service
node_login_service -->|"queries and saves"| node_repositories
node_login_service -->|"uses profile service"| node_other_services
node_login_service -->|"returns login projections"| node_projections
node_aula_service -->|"queries and saves"| node_repositories
node_aula_service -->|"resolves resources"| node_other_services
node_aula_service -->|"builds class records"| node_entities
node_turma_service -->|"queries and saves"| node_repositories
node_turma_service -->|"resolves course details"| node_other_services
node_turma_service -->|"builds cohort records"| node_entities
node_turma_service -->|"returns cohort projections"| node_projections
node_curso_service -->|"queries and saves"| node_repositories
node_curso_service -->|"resolves modality"| node_other_services
node_academic_api -.->|"dispatches requests"| node_other_services
node_security -.->|"uses JWT authentication"| node_jwt
node_api_errors -.->|"formats API errors"| node_users

click node_login_api "https://github.com/kauagabr/class-management/blob/main/Back-end%20ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/web/controller/LoginController.java"
click node_academic_api "https://github.com/kauagabr/class-management/tree/main/Back-end%20ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/web/controller"
click node_api_errors "https://github.com/kauagabr/class-management/tree/main/Back-end%20ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/web/exception"
click node_login_service "https://github.com/kauagabr/class-management/blob/main/Back-end%20ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/service/LoginService.java"
click node_jwt "https://github.com/kauagabr/class-management/tree/main/Back-end%20ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/jwt"
click node_security "https://github.com/kauagabr/class-management/blob/main/Back-end%20ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/config/SpringSecurityConfig.java"
click node_aula_service "https://github.com/kauagabr/class-management/blob/main/Back-end%20ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/service/AulaService.java"
click node_turma_service "https://github.com/kauagabr/class-management/blob/main/Back-end%20ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/service/TurmaService.java"
click node_curso_service "https://github.com/kauagabr/class-management/blob/main/Back-end%20ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/service/CursoService.java"
click node_other_services "https://github.com/kauagabr/class-management/tree/main/Back-end%20ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/service"
click node_repositories "https://github.com/kauagabr/class-management/tree/main/Back-end%20ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/repository"
click node_entities "https://github.com/kauagabr/class-management/tree/main/Back-end%20ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/entity"
click node_projections "https://github.com/kauagabr/class-management/tree/main/Back-end%20ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/repository/Projection"

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_login_api,node_academic_api,node_api_errors,node_users toneBlue
class node_aula_service,node_turma_service,node_curso_service,node_other_services toneAmber
class node_login_service,node_jwt,node_security toneMint
class node_repositories,node_entities,node_projections toneRose
```

## Components

### REST API

- [Login endpoints](https://github.com/kauagabr/class-management/blob/main/Back-end%20ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/web/controller/LoginController.java): `Back-end ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/web/controller/LoginController.java`
- [Academic endpoints](https://github.com/kauagabr/class-management/tree/main/Back-end%20ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/web/controller): `Back-end ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/web/controller`
- [API error handling](https://github.com/kauagabr/class-management/tree/main/Back-end%20ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/web/exception): `Back-end ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/web/exception`

### Academic management

- [Class scheduling](https://github.com/kauagabr/class-management/blob/main/Back-end%20ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/service/AulaService.java): `Back-end ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/service/AulaService.java`
- [Cohort management](https://github.com/kauagabr/class-management/blob/main/Back-end%20ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/service/TurmaService.java): `Back-end ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/service/TurmaService.java`
- [Course management](https://github.com/kauagabr/class-management/blob/main/Back-end%20ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/service/CursoService.java): `Back-end ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/service/CursoService.java`
- [Academic services](https://github.com/kauagabr/class-management/tree/main/Back-end%20ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/service): `Back-end ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/service`

### Identity and access

- [Login service](https://github.com/kauagabr/class-management/blob/main/Back-end%20ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/service/LoginService.java): `Back-end ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/service/LoginService.java`
- [JWT authentication](https://github.com/kauagabr/class-management/tree/main/Back-end%20ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/jwt): `Back-end ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/jwt`
- [Security configuration](https://github.com/kauagabr/class-management/blob/main/Back-end%20ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/config/SpringSecurityConfig.java): `Back-end ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/config/SpringSecurityConfig.java`

### Domain data

- [Repositories](https://github.com/kauagabr/class-management/tree/main/Back-end%20ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/repository): `Back-end ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/repository`
- [Academic entities](https://github.com/kauagabr/class-management/tree/main/Back-end%20ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/entity): `Back-end ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/entity`
- [Query projections](https://github.com/kauagabr/class-management/tree/main/Back-end%20ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/repository/Projection): `Back-end ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/repository/Projection`

### Other components

- **Institution users**

## Connections

- Institution users → Login endpoints: manage accounts
- Institution users → Academic endpoints: manage records
- Login endpoints → Login service: delegates to (evidence: `Back-end ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/web/controller/LoginController.java`)
- Login service → Repositories: queries and saves (evidence: `Back-end ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/service/LoginService.java`)
- Login service → Academic services: uses profile service (evidence: `Back-end ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/service/LoginService.java`)
- Login service → Query projections: returns login projections (evidence: `Back-end ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/service/LoginService.java`)
- Class scheduling → Repositories: queries and saves (evidence: `Back-end ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/service/AulaService.java`)
- Class scheduling → Academic services: resolves resources (evidence: `Back-end ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/service/AulaService.java`)
- Class scheduling → Academic entities: builds class records (evidence: `Back-end ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/service/AulaService.java`)
- Cohort management → Repositories: queries and saves (evidence: `Back-end ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/service/TurmaService.java`)
- Cohort management → Academic services: resolves course details (evidence: `Back-end ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/service/TurmaService.java`)
- Cohort management → Academic entities: builds cohort records (evidence: `Back-end ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/service/TurmaService.java`)
- Cohort management → Query projections: returns cohort projections (evidence: `Back-end ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/service/TurmaService.java`)
- Course management → Repositories: queries and saves (evidence: `Back-end ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/service/CursoService.java`)
- Course management → Academic services: resolves modality (evidence: `Back-end ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/service/CursoService.java`)
- Academic endpoints → Academic services: dispatches requests (evidence: `Back-end ClassManagement/src/main/java/com/kvy/demogerenciamentoaulas/web/controller/LoginController.java`)
- Security configuration → JWT authentication: uses JWT authentication
- API error handling → Institution users: formats API errors
