# schutzl22/gestao-de-doacao architecture

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

- Interactive diagram: https://gitdiagram.com/schutzl22/gestao-de-doacao
- Repository: https://github.com/schutzl22/gestao-de-doacao

## Overview

This repository is a donation-management application for students and administrators. Students sign in, browse campaigns and priority items, submit donations, and track their history; administrators manage campaigns and review donations. The frontend controller coordinates views and API models, which communicate with the Spring backend. The tree shows backend service and repository layers plus notification, reporting, and certificate features, but backend implementation excerpts and detailed README documentation were not provided, so their internal call relationships are left unspecified.

Main entry points: [`backend/src/main/java/com/example/demo/services`](https://github.com/schutzl22/gestao-de-doacao/tree/main/backend/src/main/java/com/example/demo/services) (Domain services), [`frontend/js/controller/DoacaoController.js`](https://github.com/schutzl22/gestao-de-doacao/blob/main/frontend/js/controller/DoacaoController.js) (UI coordinator), [`frontend/js/view/shared/LoginView.js`](https://github.com/schutzl22/gestao-de-doacao/blob/main/frontend/js/view/shared/LoginView.js) (Login and profile), [`frontend/js/model/UsuarioModel.js`](https://github.com/schutzl22/gestao-de-doacao/blob/main/frontend/js/model/UsuarioModel.js) (User API model)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_frontend["Frontend experience"]
  node_login["Login and profile<br/>[LoginView.js]"]
  node_guard["Session guard<br/>[routeGuard.js]"]
  node_controller["UI coordinator"]
  node_campaignviews["Campaign views"]
  node_studentcampaigns["Student campaigns"]
  node_userapi["User API model<br/>[UsuarioModel.js]"]
  node_campaignapi["Campaign API model<br/>[CampanhaModel.js]"]
end

subgraph group_donations["Donation workflow"]
  node_validationview["Validation view"]
  node_historyview["Donation history"]
  node_donationmodel["Donation API model<br/>[DoacaoModel.js]"]
end

subgraph group_backend["Backend capabilities"]
  node_backendapi["Donation endpoints"]
  node_campaignendpoint["Campaign endpoints"]
  node_userendpoint["User endpoints"]
  node_priority["Priority items"]
  node_notifications["Notifications"]
  node_reports["Reports"]
  node_certificates["Certificates"]
  node_services["Domain services"]
end

subgraph group_persistence["Persistence"]
  node_repositories["Data repositories"]
  node_database[("Relational database<br/>[criacaodobanco.sql]")]
end

node_student(("Student"))
node_admin(("Administrator"))

node_student -->|"signs in"| node_login
node_admin -->|"signs in"| node_login
node_login -->|"submits credentials"| node_userapi
node_guard -->|"redirects unauthenticated"| node_login
node_student -->|"browses"| node_studentcampaigns
node_admin -->|"manages"| node_campaignviews
node_admin -->|"reviews"| node_validationview
node_student -->|"views history"| node_historyview
node_controller -->|"requests donation data"| node_donationmodel
node_controller -->|"requests campaigns"| node_campaignapi
node_controller -->|"renders campaigns"| node_campaignviews
node_controller -->|"renders campaigns"| node_studentcampaigns
node_controller -->|"renders validation"| node_validationview
node_controller -->|"renders history"| node_historyview
node_donationmodel -->|"HTTP requests"| node_backendapi
node_campaignapi -->|"HTTP requests"| node_campaignendpoint
node_userapi -->|"HTTP requests"| node_userendpoint
node_backendapi -->|"domain operations"| node_services
node_campaignendpoint -->|"domain operations"| node_services
node_userendpoint -->|"domain operations"| node_services
node_priority -->|"domain operations"| node_services
node_notifications -->|"domain operations"| node_services
node_reports -->|"domain operations"| node_services
node_certificates -->|"domain operations"| node_services
node_services -->|"data access"| node_repositories
node_repositories -->|"reads and writes"| node_database

click node_login "https://github.com/schutzl22/gestao-de-doacao/blob/main/frontend/js/view/shared/LoginView.js"
click node_guard "https://github.com/schutzl22/gestao-de-doacao/blob/main/frontend/js/routeGuard.js"
click node_controller "https://github.com/schutzl22/gestao-de-doacao/blob/main/frontend/js/controller/DoacaoController.js"
click node_campaignviews "https://github.com/schutzl22/gestao-de-doacao/blob/main/frontend/js/view/admin/CampanhasAdminView.js"
click node_studentcampaigns "https://github.com/schutzl22/gestao-de-doacao/blob/main/frontend/js/view/aluno/CampanhasAlunoView.js"
click node_validationview "https://github.com/schutzl22/gestao-de-doacao/blob/main/frontend/js/view/admin/ValidarDoacoesView.js"
click node_historyview "https://github.com/schutzl22/gestao-de-doacao/blob/main/frontend/js/view/aluno/HistoricoAlunoView.js"
click node_donationmodel "https://github.com/schutzl22/gestao-de-doacao/blob/main/frontend/js/model/DoacaoModel.js"
click node_userapi "https://github.com/schutzl22/gestao-de-doacao/blob/main/frontend/js/model/UsuarioModel.js"
click node_campaignapi "https://github.com/schutzl22/gestao-de-doacao/blob/main/frontend/js/model/CampanhaModel.js"
click node_backendapi "https://github.com/schutzl22/gestao-de-doacao/blob/main/backend/src/main/java/com/example/demo/controllers/DoacaoController.java"
click node_campaignendpoint "https://github.com/schutzl22/gestao-de-doacao/blob/main/backend/src/main/java/com/example/demo/controllers/CampanhaController.java"
click node_userendpoint "https://github.com/schutzl22/gestao-de-doacao/blob/main/backend/src/main/java/com/example/demo/controllers/UsuarioController.java"
click node_priority "https://github.com/schutzl22/gestao-de-doacao/blob/main/backend/src/main/java/com/example/demo/controllers/ItemPrioritarioController.java"
click node_notifications "https://github.com/schutzl22/gestao-de-doacao/blob/main/backend/src/main/java/com/example/demo/controllers/NotificacaoController.java"
click node_reports "https://github.com/schutzl22/gestao-de-doacao/blob/main/backend/src/main/java/com/example/demo/controllers/RelatorioController.java"
click node_certificates "https://github.com/schutzl22/gestao-de-doacao/blob/main/backend/src/main/java/com/example/demo/controllers/CertificadoController.java"
click node_services "https://github.com/schutzl22/gestao-de-doacao/tree/main/backend/src/main/java/com/example/demo/services"
click node_repositories "https://github.com/schutzl22/gestao-de-doacao/tree/main/backend/src/main/java/com/example/demo/repositories"
click node_database "https://github.com/schutzl22/gestao-de-doacao/blob/main/visualizacao/criacaodobanco.sql"

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,node_guard,node_controller,node_campaignviews,node_studentcampaigns,node_userapi,node_campaignapi toneBlue
class node_validationview,node_historyview,node_donationmodel toneAmber
class node_backendapi,node_campaignendpoint,node_userendpoint,node_priority,node_notifications,node_reports,node_certificates,node_services toneMint
class node_repositories,node_database toneRose
class node_student,node_admin toneIndigo
```

## Components

### Frontend experience

- [Login and profile](https://github.com/schutzl22/gestao-de-doacao/blob/main/frontend/js/view/shared/LoginView.js): `frontend/js/view/shared/LoginView.js`
- [Session guard](https://github.com/schutzl22/gestao-de-doacao/blob/main/frontend/js/routeGuard.js): `frontend/js/routeGuard.js`
- [UI coordinator](https://github.com/schutzl22/gestao-de-doacao/blob/main/frontend/js/controller/DoacaoController.js): `frontend/js/controller/DoacaoController.js`
- [Campaign views](https://github.com/schutzl22/gestao-de-doacao/blob/main/frontend/js/view/admin/CampanhasAdminView.js): `frontend/js/view/admin/CampanhasAdminView.js`
- [Student campaigns](https://github.com/schutzl22/gestao-de-doacao/blob/main/frontend/js/view/aluno/CampanhasAlunoView.js): `frontend/js/view/aluno/CampanhasAlunoView.js`
- [User API model](https://github.com/schutzl22/gestao-de-doacao/blob/main/frontend/js/model/UsuarioModel.js): `frontend/js/model/UsuarioModel.js`
- [Campaign API model](https://github.com/schutzl22/gestao-de-doacao/blob/main/frontend/js/model/CampanhaModel.js): `frontend/js/model/CampanhaModel.js`

### Donation workflow

- [Validation view](https://github.com/schutzl22/gestao-de-doacao/blob/main/frontend/js/view/admin/ValidarDoacoesView.js): `frontend/js/view/admin/ValidarDoacoesView.js`
- [Donation history](https://github.com/schutzl22/gestao-de-doacao/blob/main/frontend/js/view/aluno/HistoricoAlunoView.js): `frontend/js/view/aluno/HistoricoAlunoView.js`
- [Donation API model](https://github.com/schutzl22/gestao-de-doacao/blob/main/frontend/js/model/DoacaoModel.js): `frontend/js/model/DoacaoModel.js`

### Backend capabilities

- [Donation endpoints](https://github.com/schutzl22/gestao-de-doacao/blob/main/backend/src/main/java/com/example/demo/controllers/DoacaoController.java): `backend/src/main/java/com/example/demo/controllers/DoacaoController.java`
- [Campaign endpoints](https://github.com/schutzl22/gestao-de-doacao/blob/main/backend/src/main/java/com/example/demo/controllers/CampanhaController.java): `backend/src/main/java/com/example/demo/controllers/CampanhaController.java`
- [User endpoints](https://github.com/schutzl22/gestao-de-doacao/blob/main/backend/src/main/java/com/example/demo/controllers/UsuarioController.java): `backend/src/main/java/com/example/demo/controllers/UsuarioController.java`
- [Priority items](https://github.com/schutzl22/gestao-de-doacao/blob/main/backend/src/main/java/com/example/demo/controllers/ItemPrioritarioController.java): `backend/src/main/java/com/example/demo/controllers/ItemPrioritarioController.java`
- [Notifications](https://github.com/schutzl22/gestao-de-doacao/blob/main/backend/src/main/java/com/example/demo/controllers/NotificacaoController.java): `backend/src/main/java/com/example/demo/controllers/NotificacaoController.java`
- [Reports](https://github.com/schutzl22/gestao-de-doacao/blob/main/backend/src/main/java/com/example/demo/controllers/RelatorioController.java): `backend/src/main/java/com/example/demo/controllers/RelatorioController.java`
- [Certificates](https://github.com/schutzl22/gestao-de-doacao/blob/main/backend/src/main/java/com/example/demo/controllers/CertificadoController.java): `backend/src/main/java/com/example/demo/controllers/CertificadoController.java`
- [Domain services](https://github.com/schutzl22/gestao-de-doacao/tree/main/backend/src/main/java/com/example/demo/services): `backend/src/main/java/com/example/demo/services`

### Persistence

- [Data repositories](https://github.com/schutzl22/gestao-de-doacao/tree/main/backend/src/main/java/com/example/demo/repositories): `backend/src/main/java/com/example/demo/repositories`
- [Relational database](https://github.com/schutzl22/gestao-de-doacao/blob/main/visualizacao/criacaodobanco.sql): `visualizacao/criacaodobanco.sql`

### Other components

- **Student**
- **Administrator**

## Connections

- Student → Login and profile: signs in
- Administrator → Login and profile: signs in
- Login and profile → User API model: submits credentials
- Session guard → Login and profile: redirects unauthenticated
- Student → Student campaigns: browses
- Administrator → Campaign views: manages
- Administrator → Validation view: reviews
- Student → Donation history: views history
- UI coordinator → Donation API model: requests donation data
- UI coordinator → Campaign API model: requests campaigns
- UI coordinator → Campaign views: renders campaigns
- UI coordinator → Student campaigns: renders campaigns
- UI coordinator → Validation view: renders validation
- UI coordinator → Donation history: renders history
- Donation API model → Donation endpoints: HTTP requests
- Campaign API model → Campaign endpoints: HTTP requests
- User API model → User endpoints: HTTP requests
- Donation endpoints → Domain services: domain operations
- Campaign endpoints → Domain services: domain operations
- User endpoints → Domain services: domain operations
- Priority items → Domain services: domain operations
- Notifications → Domain services: domain operations
- Reports → Domain services: domain operations
- Certificates → Domain services: domain operations
- Domain services → Data repositories: data access
- Data repositories → Relational database: reads and writes
