Home | Escopo | Processo | Design/Mockups | Configuração | Arquitetura | Gerência | Código | BD | Qualidade | Frontend | Backend | Analytics |
---|
Descrição
Esta seção da documentação visa apresentar os padrões arquiteturais gerais do projeto, bem como a infraestrutura adotada.
Sumário
Arquitetura E2E
Esta subseção visa apresentar o padrão arquitetural front-back adotado.
Diagrama em alto nível da arquitetura:
A arquitetura utilizada no projeto é a Model-View-Controller, que permite a separação entre as responsabilidades de uma aplicação em três camadas principais que serão responsáveis por organizar o código entre modelos, lógica de negócios e interfaces de forma separada.
Models
As Models representam a camada de dados da aplicação, representando a lógica de negócios, acesso aos dados além de sua validação e manipulação. Uma de suas responsabilidades é gerenciar o comportamento dos dados e atualizar o banco de dados com as informações mais recentes ou alteradas.
Views
A camada de Views é responsável por exibir os dados ao usuário final. Ela representa a interfaces do projeto, recebendo as interações do usuário e retornando respostas de acordo com o planejamento das interações.
Controller
A camada de Controllers age como um intermediário entre as camadas de Models e Views, recebendo as interações do usuário e enviando para a fonte de dados ou solicitando dados ao modelo para que eles possam ser exibidos em tela.
No projeto X, o usuário acessa o Frontend via plataforma web (Views) que contém componentes reutilizáveis e que se comunicam com as Controllers do Backend para buscar ou atualizar os dados presentes nos modelos (Models) inseridos no banco de dados.
Estrutura de Pastas do backend
A estrutura de pastas do Backend segue o padrão MVC, porém de uma forma mais modular e organizada, onde cada módulo possui suas próprias pastas de Controllers, Models, Dto e Services e repository. Exemplo de estrutura de pastas do módulo de usuários:
modules/
└── users/
├── controllers/ # Controladores responsáveis pelas rotas e lógica de entrada
├── dto/ # Data Transfer Objects (validação e tipagem de dados)
├── models/ # Modelos que representam as entidades e estruturas do banco
├── repository/ # Acesso ao banco de dados e queries
└── services/ # Regras de negócio e lógica da aplicação
## Arquitetura de Infraestrutura
#### Instâncias utilizadas: