# isa-dgomes/conectavoluntarios architecture

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

- Interactive diagram: https://gitdiagram.com/isa-dgomes/conectavoluntarios
- Repository: https://github.com/isa-dgomes/conectavoluntarios

## Overview

Conecta-Voluntario appears to be a Spring Boot domain-model foundation for connecting volunteers and organizations. The visible model describes volunteer profiles, interests, availability, organization profiles, and opportunity/application status vocabularies. However, the request/response records and volunteer service are empty, and no controller or implemented user-to-result workflow is shown, so the graph reflects the modeled domain rather than an operational signup flow. Persistence links are based on JPA mappings; unsampled configuration and the root SQL file are not characterized.

Main entry points: [`conecta-voluntario/src/main/java/br/com/conectavoluntario/entity/Voluntario.java`](https://github.com/isa-dgomes/conectavoluntarios/blob/main/conecta-voluntario/src/main/java/br/com/conectavoluntario/entity/Voluntario.java) (Volunteer profile), [`conecta-voluntario/src/main/java/br/com/conectavoluntario/entity/Usuario.java`](https://github.com/isa-dgomes/conectavoluntarios/blob/main/conecta-voluntario/src/main/java/br/com/conectavoluntario/entity/Usuario.java) (User account), [`conecta-voluntario/src/main/java/br/com/conectavoluntario/entity/Organizacao.java`](https://github.com/isa-dgomes/conectavoluntarios/blob/main/conecta-voluntario/src/main/java/br/com/conectavoluntario/entity/Organizacao.java) (Organization profile), [`conecta-voluntario/src/main/java/br/com/conectavoluntario/entity/Endereco.java`](https://github.com/isa-dgomes/conectavoluntarios/blob/main/conecta-voluntario/src/main/java/br/com/conectavoluntario/entity/Endereco.java) (Address)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_runtime["Application Runtime"]
  node_signup_request["Signup request"]
  node_signup_response["Signup response"]
  node_volunteer_service["Volunteer service"]
  node_application["Spring Boot entry"]
end

subgraph group_profiles["Account Profiles"]
  node_user["User account<br/>[Usuario.java]"]
  node_address["Address<br/>[Endereco.java]"]
  node_organization["Organization profile<br/>[Organizacao.java]"]
  node_volunteer["Volunteer profile<br/>[Voluntario.java]"]
end

subgraph group_volunteering["Volunteer Domain"]
  node_area["Interest area<br/>[AreaAtuacao.java]"]
  node_weekday["Weekday availability<br/>[DiaSemana.java]"]
  node_period["Availability period<br/>[Periodo.java]"]
  node_opportunity_mode["Opportunity modality"]
  node_opportunity_status["Opportunity status"]
  node_application_status["Application status"]
end

node_relational_store[("Relational store")]

node_volunteer -->|"extends"| node_user
node_organization -->|"extends"| node_user
node_user -->|"maps address"| node_address
node_volunteer -->|"maps interests"| node_area
node_volunteer -->|"maps availability"| node_weekday
node_volunteer -->|"maps periods"| node_period
node_user -->|"maps entity"| node_relational_store
node_address -->|"maps entity"| node_relational_store
node_organization -->|"maps entity"| node_relational_store
node_volunteer -->|"maps entity"| node_relational_store
node_area -->|"maps entity"| node_relational_store
node_application -.->|"starts runtime"| node_volunteer_service

click node_user "https://github.com/isa-dgomes/conectavoluntarios/blob/main/conecta-voluntario/src/main/java/br/com/conectavoluntario/entity/Usuario.java"
click node_address "https://github.com/isa-dgomes/conectavoluntarios/blob/main/conecta-voluntario/src/main/java/br/com/conectavoluntario/entity/Endereco.java"
click node_organization "https://github.com/isa-dgomes/conectavoluntarios/blob/main/conecta-voluntario/src/main/java/br/com/conectavoluntario/entity/Organizacao.java"
click node_volunteer "https://github.com/isa-dgomes/conectavoluntarios/blob/main/conecta-voluntario/src/main/java/br/com/conectavoluntario/entity/Voluntario.java"
click node_area "https://github.com/isa-dgomes/conectavoluntarios/blob/main/conecta-voluntario/src/main/java/br/com/conectavoluntario/entity/AreaAtuacao.java"
click node_weekday "https://github.com/isa-dgomes/conectavoluntarios/blob/main/conecta-voluntario/src/main/java/br/com/conectavoluntario/enums/DiaSemana.java"
click node_period "https://github.com/isa-dgomes/conectavoluntarios/blob/main/conecta-voluntario/src/main/java/br/com/conectavoluntario/enums/Periodo.java"
click node_opportunity_mode "https://github.com/isa-dgomes/conectavoluntarios/blob/main/conecta-voluntario/src/main/java/br/com/conectavoluntario/enums/ModalidadeOportunidade.java"
click node_opportunity_status "https://github.com/isa-dgomes/conectavoluntarios/blob/main/conecta-voluntario/src/main/java/br/com/conectavoluntario/enums/StatusOportunidade.java"
click node_application_status "https://github.com/isa-dgomes/conectavoluntarios/blob/main/conecta-voluntario/src/main/java/br/com/conectavoluntario/enums/StatusCandidatura.java"
click node_signup_request "https://github.com/isa-dgomes/conectavoluntarios/blob/main/conecta-voluntario/src/main/java/br/com/conectavoluntario/dto/request/CadastroVoluntarioRequest.java"
click node_signup_response "https://github.com/isa-dgomes/conectavoluntarios/blob/main/conecta-voluntario/src/main/java/br/com/conectavoluntario/dto/response/CadastroVoluntarioResponse.java"
click node_volunteer_service "https://github.com/isa-dgomes/conectavoluntarios/blob/main/conecta-voluntario/src/main/java/br/com/conectavoluntario/service/VoluntarioService.java"
click node_application "https://github.com/isa-dgomes/conectavoluntarios/blob/main/conecta-voluntario/src/main/java/br/com/conectavoluntario/ConectaVoluntarioApplication.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_signup_request,node_signup_response,node_volunteer_service,node_application toneBlue
class node_user,node_address,node_organization,node_volunteer,node_relational_store toneAmber
class node_area,node_weekday,node_period,node_opportunity_mode,node_opportunity_status,node_application_status toneMint
```

## Components

### Application Runtime

- [Signup request](https://github.com/isa-dgomes/conectavoluntarios/blob/main/conecta-voluntario/src/main/java/br/com/conectavoluntario/dto/request/CadastroVoluntarioRequest.java): `conecta-voluntario/src/main/java/br/com/conectavoluntario/dto/request/CadastroVoluntarioRequest.java`
- [Signup response](https://github.com/isa-dgomes/conectavoluntarios/blob/main/conecta-voluntario/src/main/java/br/com/conectavoluntario/dto/response/CadastroVoluntarioResponse.java): `conecta-voluntario/src/main/java/br/com/conectavoluntario/dto/response/CadastroVoluntarioResponse.java`
- [Volunteer service](https://github.com/isa-dgomes/conectavoluntarios/blob/main/conecta-voluntario/src/main/java/br/com/conectavoluntario/service/VoluntarioService.java): `conecta-voluntario/src/main/java/br/com/conectavoluntario/service/VoluntarioService.java`
- [Spring Boot entry](https://github.com/isa-dgomes/conectavoluntarios/blob/main/conecta-voluntario/src/main/java/br/com/conectavoluntario/ConectaVoluntarioApplication.java): `conecta-voluntario/src/main/java/br/com/conectavoluntario/ConectaVoluntarioApplication.java`

### Account Profiles

- [User account](https://github.com/isa-dgomes/conectavoluntarios/blob/main/conecta-voluntario/src/main/java/br/com/conectavoluntario/entity/Usuario.java): `conecta-voluntario/src/main/java/br/com/conectavoluntario/entity/Usuario.java`
- [Address](https://github.com/isa-dgomes/conectavoluntarios/blob/main/conecta-voluntario/src/main/java/br/com/conectavoluntario/entity/Endereco.java): `conecta-voluntario/src/main/java/br/com/conectavoluntario/entity/Endereco.java`
- [Organization profile](https://github.com/isa-dgomes/conectavoluntarios/blob/main/conecta-voluntario/src/main/java/br/com/conectavoluntario/entity/Organizacao.java): `conecta-voluntario/src/main/java/br/com/conectavoluntario/entity/Organizacao.java`
- [Volunteer profile](https://github.com/isa-dgomes/conectavoluntarios/blob/main/conecta-voluntario/src/main/java/br/com/conectavoluntario/entity/Voluntario.java): `conecta-voluntario/src/main/java/br/com/conectavoluntario/entity/Voluntario.java`

### Volunteer Domain

- [Interest area](https://github.com/isa-dgomes/conectavoluntarios/blob/main/conecta-voluntario/src/main/java/br/com/conectavoluntario/entity/AreaAtuacao.java): `conecta-voluntario/src/main/java/br/com/conectavoluntario/entity/AreaAtuacao.java`
- [Weekday availability](https://github.com/isa-dgomes/conectavoluntarios/blob/main/conecta-voluntario/src/main/java/br/com/conectavoluntario/enums/DiaSemana.java): `conecta-voluntario/src/main/java/br/com/conectavoluntario/enums/DiaSemana.java`
- [Availability period](https://github.com/isa-dgomes/conectavoluntarios/blob/main/conecta-voluntario/src/main/java/br/com/conectavoluntario/enums/Periodo.java): `conecta-voluntario/src/main/java/br/com/conectavoluntario/enums/Periodo.java`
- [Opportunity modality](https://github.com/isa-dgomes/conectavoluntarios/blob/main/conecta-voluntario/src/main/java/br/com/conectavoluntario/enums/ModalidadeOportunidade.java): `conecta-voluntario/src/main/java/br/com/conectavoluntario/enums/ModalidadeOportunidade.java`
- [Opportunity status](https://github.com/isa-dgomes/conectavoluntarios/blob/main/conecta-voluntario/src/main/java/br/com/conectavoluntario/enums/StatusOportunidade.java): `conecta-voluntario/src/main/java/br/com/conectavoluntario/enums/StatusOportunidade.java`
- [Application status](https://github.com/isa-dgomes/conectavoluntarios/blob/main/conecta-voluntario/src/main/java/br/com/conectavoluntario/enums/StatusCandidatura.java): `conecta-voluntario/src/main/java/br/com/conectavoluntario/enums/StatusCandidatura.java`

### Other components

- **Relational store**

## Connections

- Volunteer profile → User account: extends (evidence: `conecta-voluntario/src/main/java/br/com/conectavoluntario/entity/Voluntario.java`)
- Organization profile → User account: extends (evidence: `conecta-voluntario/src/main/java/br/com/conectavoluntario/entity/Organizacao.java`)
- User account → Address: maps address (evidence: `conecta-voluntario/src/main/java/br/com/conectavoluntario/entity/Usuario.java`)
- Volunteer profile → Interest area: maps interests (evidence: `conecta-voluntario/src/main/java/br/com/conectavoluntario/entity/Voluntario.java`)
- Volunteer profile → Weekday availability: maps availability (evidence: `conecta-voluntario/src/main/java/br/com/conectavoluntario/entity/Voluntario.java`)
- Volunteer profile → Availability period: maps periods (evidence: `conecta-voluntario/src/main/java/br/com/conectavoluntario/entity/Voluntario.java`)
- User account → Relational store: maps entity (evidence: `conecta-voluntario/src/main/java/br/com/conectavoluntario/entity/Usuario.java`)
- Address → Relational store: maps entity (evidence: `conecta-voluntario/src/main/java/br/com/conectavoluntario/entity/Endereco.java`)
- Organization profile → Relational store: maps entity (evidence: `conecta-voluntario/src/main/java/br/com/conectavoluntario/entity/Organizacao.java`)
- Volunteer profile → Relational store: maps entity (evidence: `conecta-voluntario/src/main/java/br/com/conectavoluntario/entity/Voluntario.java`)
- Interest area → Relational store: maps entity (evidence: `conecta-voluntario/src/main/java/br/com/conectavoluntario/entity/AreaAtuacao.java`)
- Spring Boot entry → Volunteer service: starts runtime
