# thiago105/extensao architecture

> Architecture diagram of the GitHub repository thiago105/extensao, 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/thiago105/extensao
- Repository: https://github.com/thiago105/extensao

## Overview

Sistema de Doações de Materiais Escolares: estudantes podem solicitar materiais; instituições administram pedidos, estoque e pontos de coleta, enquanto usuários consultam áreas próprias. Os controllers e modelos amostrados confirmam solicitações, autenticação, estoque institucional e pontos de coleta. O README também descreve cadastro, doações recebidas e relatórios, mas a implementação dessas áreas não foi amostrada; suas ligações internas são omitidas quando não confirmadas.

Main entry points: [`extensao/routes/web.php`](https://github.com/thiago105/extensao/blob/main/extensao/routes/web.php) (Rotas web), [`extensao/app/Http/Controllers/PedidoDeDoacaoController.php`](https://github.com/thiago105/extensao/blob/main/extensao/app/Http/Controllers/PedidoDeDoacaoController.php) (Pedidos de doação), [`extensao/app/Http/Controllers/Auth/LoginController.php`](https://github.com/thiago105/extensao/blob/main/extensao/app/Http/Controllers/Auth/LoginController.php) (Login e cadastro), [`extensao/app/Http/Controllers/EstoqueInstituicaoController.php`](https://github.com/thiago105/extensao/blob/main/extensao/app/Http/Controllers/EstoqueInstituicaoController.php) (Estoque institucional)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Acesso web"]
  node_routes["Rotas web<br/>[web.php]"]
  node_student_area["Área do estudante"]
  node_institution_area["Área da instituição"]
end

subgraph group_identity["Contas e acesso"]
  node_auth["Login e cadastro"]
  node_registration["Cadastro de usuários"]
end

subgraph group_requests["Solicitações"]
  node_request_controller["Pedidos de doação"]
  node_request_items_controller["Itens do pedido"]
end

subgraph group_institution["Operação institucional"]
  node_inventory_controller["Estoque institucional"]
  node_collection_controller["Pontos de coleta"]
  node_donation_controller["Doações recebidas"]
  node_delivery_controller["Entregas"]
  node_admin_controller["Administração"]
end

subgraph group_domain["Dados de domínio"]
  node_user_model["Usuário<br/>[Usuario.php]"]
  node_institution_model["Instituição<br/>[Instituicao.php]"]
  node_material_model["Material<br/>[Material.php]"]
  node_request_model["Pedido de doação"]
  node_request_item_model["Item solicitado"]
  node_stock_model["Estoque institucional"]
  node_collection_model["Ponto de coleta"]
  node_donation_model["Doação recebida"]
  node_delivery_model["Entrega<br/>[Entrega.php]"]
end

node_visitor(("Estudante ou instituição"))

node_visitor -->|"acessa"| node_routes
node_routes -->|"despacha"| node_auth
node_routes -->|"despacha"| node_registration
node_routes -->|"despacha"| node_student_area
node_routes -->|"despacha"| node_institution_area
node_routes -->|"despacha"| node_request_controller
node_routes -->|"despacha"| node_inventory_controller
node_routes -->|"despacha"| node_collection_controller
node_auth -->|"autentica"| node_user_model
node_auth -->|"autentica"| node_institution_model
node_registration -->|"cria usuário"| node_user_model
node_request_controller -->|"consulta"| node_material_model
node_request_controller -->|"cria e consulta"| node_request_model
node_request_controller -->|"cria e remove"| node_request_item_model
node_request_controller -->|"consulta usuário"| node_user_model
node_inventory_controller -->|"consulta e altera"| node_stock_model
node_inventory_controller -->|"consulta material"| node_material_model
node_collection_controller -->|"consulta e altera"| node_collection_model

click node_routes "https://github.com/thiago105/extensao/blob/main/extensao/routes/web.php"
click node_student_area "https://github.com/thiago105/extensao/blob/main/extensao/app/Http/Controllers/AreaDoUsuarioController.php"
click node_institution_area "https://github.com/thiago105/extensao/blob/main/extensao/app/Http/Controllers/AreaDaIntituicaoController.php"
click node_auth "https://github.com/thiago105/extensao/blob/main/extensao/app/Http/Controllers/Auth/LoginController.php"
click node_registration "https://github.com/thiago105/extensao/blob/main/extensao/app/Http/Controllers/Auth/RegisterController.php"
click node_request_controller "https://github.com/thiago105/extensao/blob/main/extensao/app/Http/Controllers/PedidoDeDoacaoController.php"
click node_request_items_controller "https://github.com/thiago105/extensao/blob/main/extensao/app/Http/Controllers/MaterialPedidoDeDoacaoController.php"
click node_inventory_controller "https://github.com/thiago105/extensao/blob/main/extensao/app/Http/Controllers/EstoqueInstituicaoController.php"
click node_collection_controller "https://github.com/thiago105/extensao/blob/main/extensao/app/Http/Controllers/Ponto_de_coletaController.php"
click node_donation_controller "https://github.com/thiago105/extensao/blob/main/extensao/app/Http/Controllers/DoacaoRecebidaController.php"
click node_delivery_controller "https://github.com/thiago105/extensao/blob/main/extensao/app/Http/Controllers/EntregaController.php"
click node_admin_controller "https://github.com/thiago105/extensao/blob/main/extensao/app/Http/Controllers/AdminController.php"
click node_user_model "https://github.com/thiago105/extensao/blob/main/extensao/app/Models/Usuario.php"
click node_institution_model "https://github.com/thiago105/extensao/blob/main/extensao/app/Models/Instituicao.php"
click node_material_model "https://github.com/thiago105/extensao/blob/main/extensao/app/Models/Material.php"
click node_request_model "https://github.com/thiago105/extensao/blob/main/extensao/app/Models/Pedido_de_doacao.php"
click node_request_item_model "https://github.com/thiago105/extensao/blob/main/extensao/app/Models/Material_pedido_de_doacao.php"
click node_stock_model "https://github.com/thiago105/extensao/blob/main/extensao/app/Models/Estoque_instituicao.php"
click node_collection_model "https://github.com/thiago105/extensao/blob/main/extensao/app/Models/Ponto_de_coleta.php"
click node_donation_model "https://github.com/thiago105/extensao/blob/main/extensao/app/Models/Doacao_recebida.php"
click node_delivery_model "https://github.com/thiago105/extensao/blob/main/extensao/app/Models/Entrega.php"

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_routes,node_student_area,node_institution_area,node_visitor toneBlue
class node_auth,node_registration toneAmber
class node_request_controller,node_request_items_controller toneMint
class node_inventory_controller,node_collection_controller,node_donation_controller,node_delivery_controller,node_admin_controller toneRose
class node_user_model,node_institution_model,node_material_model,node_request_model,node_request_item_model,node_stock_model,node_collection_model,node_donation_model,node_delivery_model toneIndigo
```

## Components

### Acesso web

- [Rotas web](https://github.com/thiago105/extensao/blob/main/extensao/routes/web.php): `extensao/routes/web.php`
- [Área do estudante](https://github.com/thiago105/extensao/blob/main/extensao/app/Http/Controllers/AreaDoUsuarioController.php): `extensao/app/Http/Controllers/AreaDoUsuarioController.php`
- [Área da instituição](https://github.com/thiago105/extensao/blob/main/extensao/app/Http/Controllers/AreaDaIntituicaoController.php): `extensao/app/Http/Controllers/AreaDaIntituicaoController.php`

### Contas e acesso

- [Login e cadastro](https://github.com/thiago105/extensao/blob/main/extensao/app/Http/Controllers/Auth/LoginController.php): `extensao/app/Http/Controllers/Auth/LoginController.php`
- [Cadastro de usuários](https://github.com/thiago105/extensao/blob/main/extensao/app/Http/Controllers/Auth/RegisterController.php): `extensao/app/Http/Controllers/Auth/RegisterController.php`

### Solicitações

- [Pedidos de doação](https://github.com/thiago105/extensao/blob/main/extensao/app/Http/Controllers/PedidoDeDoacaoController.php): `extensao/app/Http/Controllers/PedidoDeDoacaoController.php`
- [Itens do pedido](https://github.com/thiago105/extensao/blob/main/extensao/app/Http/Controllers/MaterialPedidoDeDoacaoController.php): `extensao/app/Http/Controllers/MaterialPedidoDeDoacaoController.php`

### Operação institucional

- [Estoque institucional](https://github.com/thiago105/extensao/blob/main/extensao/app/Http/Controllers/EstoqueInstituicaoController.php): `extensao/app/Http/Controllers/EstoqueInstituicaoController.php`
- [Pontos de coleta](https://github.com/thiago105/extensao/blob/main/extensao/app/Http/Controllers/Ponto_de_coletaController.php): `extensao/app/Http/Controllers/Ponto_de_coletaController.php`
- [Doações recebidas](https://github.com/thiago105/extensao/blob/main/extensao/app/Http/Controllers/DoacaoRecebidaController.php): `extensao/app/Http/Controllers/DoacaoRecebidaController.php`
- [Entregas](https://github.com/thiago105/extensao/blob/main/extensao/app/Http/Controllers/EntregaController.php): `extensao/app/Http/Controllers/EntregaController.php`
- [Administração](https://github.com/thiago105/extensao/blob/main/extensao/app/Http/Controllers/AdminController.php): `extensao/app/Http/Controllers/AdminController.php`

### Dados de domínio

- [Usuário](https://github.com/thiago105/extensao/blob/main/extensao/app/Models/Usuario.php): `extensao/app/Models/Usuario.php`
- [Instituição](https://github.com/thiago105/extensao/blob/main/extensao/app/Models/Instituicao.php): `extensao/app/Models/Instituicao.php`
- [Material](https://github.com/thiago105/extensao/blob/main/extensao/app/Models/Material.php): `extensao/app/Models/Material.php`
- [Pedido de doação](https://github.com/thiago105/extensao/blob/main/extensao/app/Models/Pedido_de_doacao.php): `extensao/app/Models/Pedido_de_doacao.php`
- [Item solicitado](https://github.com/thiago105/extensao/blob/main/extensao/app/Models/Material_pedido_de_doacao.php): `extensao/app/Models/Material_pedido_de_doacao.php`
- [Estoque institucional](https://github.com/thiago105/extensao/blob/main/extensao/app/Models/Estoque_instituicao.php): `extensao/app/Models/Estoque_instituicao.php`
- [Ponto de coleta](https://github.com/thiago105/extensao/blob/main/extensao/app/Models/Ponto_de_coleta.php): `extensao/app/Models/Ponto_de_coleta.php`
- [Doação recebida](https://github.com/thiago105/extensao/blob/main/extensao/app/Models/Doacao_recebida.php): `extensao/app/Models/Doacao_recebida.php`
- [Entrega](https://github.com/thiago105/extensao/blob/main/extensao/app/Models/Entrega.php): `extensao/app/Models/Entrega.php`

### Other components

- **Estudante ou instituição**

## Connections

- Estudante ou instituição → Rotas web: acessa
- Rotas web → Login e cadastro: despacha
- Rotas web → Cadastro de usuários: despacha
- Rotas web → Área do estudante: despacha
- Rotas web → Área da instituição: despacha
- Rotas web → Pedidos de doação: despacha
- Rotas web → Estoque institucional: despacha
- Rotas web → Pontos de coleta: despacha
- Login e cadastro → Usuário: autentica
- Login e cadastro → Instituição: autentica
- Cadastro de usuários → Usuário: cria usuário
- Pedidos de doação → Material: consulta
- Pedidos de doação → Pedido de doação: cria e consulta
- Pedidos de doação → Item solicitado: cria e remove
- Pedidos de doação → Usuário: consulta usuário
- Estoque institucional → Estoque institucional: consulta e altera
- Estoque institucional → Material: consulta material
- Pontos de coleta → Ponto de coleta: consulta e altera
