... | ... | @@ -29,7 +29,7 @@ Esta seção irá abordar a arquitetura selecionada para o Backend e Frontend, a |
|
|
## Arquitetura Geral da Aplicação
|
|
|
|
|
|
* **Backend:** aplicação SpringBoot que contém os serviços que espelham as regras de negócio
|
|
|
* *Frontend:** aplicação React com Javascript que representa a interface de usuário.
|
|
|
* **Frontend:** aplicação React com Javascript que representa a interface de usuário.
|
|
|
|
|
|
## Deploy
|
|
|
|
... | ... | @@ -45,11 +45,23 @@ TBD |
|
|
|
|
|
<h3 id="back-end-def-tec">Definições de Tecnologias</h3>
|
|
|
|
|
|
TBD
|
|
|
É uma RESTful API construída utilizando Spring, que é um dos frameworks Java mais populares do mercado. Executando em um container Docker dentro de uma EC2 da AWS, o banco de dados está hospedado na mesma plataforma, porém executando em um container separado. Para a documentação e teste dos endpoints da aplicação, foi utilizado o Swagger, uma ferramenta de documentação e testes que utiliza JSON. Referente a estrutura, utilizamos o Layers Pattern (padrão camadas). Contendo três camadas:
|
|
|
* Presentation layer: responsável por fornecer os endpoints da aplicação. Possui o controller, Data Transfer Objects (DTOs) e entidades.
|
|
|
* Business logic layer: possui toda lógica do sistema, como cálculos, transformações de dados e processamento de dados, neste caso está presente no pacote services.
|
|
|
* Data access layer: responsável pela comunicação com o banco de dados, criando, buscando, atualizando e deletando dados do banco. Neste caso temos esta camada no pacote repository.
|
|
|
|
|
|
<h3 id="back-end-mods-sis">Módulos do Sistema</h3>
|
|
|
|
|
|
TBD
|
|
|
* **config:** contém as configurações de cors e do Swagger.
|
|
|
* **controller:** é o ponto de entrada do backend, onde ficam definidos os endpoints da aplicação.
|
|
|
* **entity:** camada que contém entidades que espelham o banco de dados.
|
|
|
* **dto:** possui os objetos utilizados para transportar dados entre as camadas.
|
|
|
* **enums:** possui as enumerações utilizadas nos dtos ou entidades.
|
|
|
* **message:** centraliza todas as mensagens que são devolvidas para o frontend.
|
|
|
* **repository:** é responsável por fazer toda comunicação com o banco de dados.
|
|
|
* **security:** define configurações de acesso aos endpoints e controla login e autenticação de usuários cadastrados.
|
|
|
* **service:** camada que contém as regras de negócio.
|
|
|
* **util:** possui classes que tem métodos que são utilizados em diversas serviçõs, como por exemplo o Validations.java que contém validações de campos de um objeto. Nessa camada também ficam as exceptions personalizadas e os handlers dessas exceptions.
|
|
|
|
|
|
### Diagrama de Fluxo
|
|
|
|
... | ... | |