... | ... | @@ -67,11 +67,11 @@ Esta seção irá abordar a arquitetura selecionada para o Backend e Frontend, a |
|
|
- [Diagrama de Deploy](#diagrama-de-deploy)
|
|
|
- [Backend](#backend)
|
|
|
- [Definições de Tecnologias](#back-end-def-tec)
|
|
|
- [Módulos do Sistema](#back-end-mods-sis)
|
|
|
- [Módulos do Sistema Back-end](#módulos-do-sistema-back-end)
|
|
|
- [Diagrama de Fluxo](#diagrama-de-fluxo)
|
|
|
- [Front-end](#front-end)
|
|
|
- [Definições de Tecnologias](#front-end-def-tec)
|
|
|
- [Módulos do Sistema](#módulos-do-sistema)
|
|
|
- [Módulos do Sistema Front-end](#módulos-do-sistema-front-end)
|
|
|
- [Diagramas de Componentes](#diagramas-de-componentes)
|
|
|
- [Diagrama do Sistema](#diagrama-do-sistema)
|
|
|
|
... | ... | @@ -81,9 +81,31 @@ Abaixo está representado graficamente como funciona a comunicação do Front-en |
|
|
|
|
|
![Diagrama_Sistema.drawio__1_](uploads/b7952f5d265f23369f2e1d1a9792f3e4/Diagrama_Sistema.drawio__1_.png)
|
|
|
|
|
|
## Backend
|
|
|
|
|
|
### Módulos do sistema Back-end
|
|
|
O backend do um sistema é o código que conecta a internet com o banco de dados, gerencia as conexões dos usuários e alimenta a aplicação web, ele é responsável por receber, processar armazenar e enviar dados. Desta forma, existem diferentes tipos de arquitetura para gerenciar tudo isso, cada uma com seus prós e contras dependendo do contexto da aplicação que será desenvolvida.
|
|
|
|
|
|
### Diagrama de fluxo
|
|
|
|
|
|
![diagramaBack](uploads/4f05fcb189fc24e83793703a93137598/diagramaBack.png)
|
|
|
|
|
|
No projeto Focus foi decidido que a arquitetura será no padrão camadas, onde cada uma tem uma responsabilidade em relação aos dados, como segue:
|
|
|
|
|
|
**Controllers** É a camada de cima, a que recebe e envia os dados através de requisições HTTP, diante disto, sua responsabilidade é prover os endpoints, que são métodos onde são especificados os tipos de requisições aceitas, e o tipo de retorno das respostas através dos verbos HTTP (GET, PUT, POST, DELETE), para acessar essas requisições o client especifica o verbo e se for o caso o dado que quer buscar, atualizar ou deletar.
|
|
|
|
|
|
**Services** Camada de processamento de dados, onde se aplica a lógica de negócio da aplicação, além de mediar a comunicação entre as camadas de controller e repository.
|
|
|
|
|
|
**Repositories** É a camada de acesso a dados, normalmente uma interface, ela persiste os dados no banco de dados e os busca, normalmente a camada mais “embaixo” no sistema.
|
|
|
|
|
|
**DTOs** Data Transfer Objects, de acordo com regras de negócio os dados podem ser mostrados para os clientes e recebidos deles de forma diferente dos models salvos no banco de dados, assim os atributos dos models que serão mostrados nas requisições são implementados nesses objetos. Normalmente usado entre as camadas de controllers e services.
|
|
|
|
|
|
**Mappers**Fazem o mapeamento, a “transformação” de um model em um DTO e vice-versa, normalmente usada na camada de serviço.
|
|
|
|
|
|
|
|
|
## Front-end
|
|
|
|
|
|
### Módulos do sistema
|
|
|
### Módulos do sistema Front-end
|
|
|
Para o projeto, foi definida para o Front-end uma arquitetura chamada de MVC, que será utilizada no desenvolvimento com o Flutter. Todavia, a sua estrutura é definida em três partes:
|
|
|
|
|
|
**Model** é a camada de manipulação de dados. Ele é responsável pela leitura e escrita de dados, e também de suas validações. Sendo assim, ela acaba sendo completamente independente das outras duas camadas.
|
... | ... | |