Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • V Vou Imigrar Wiki
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Create a new issue
  • Jobs
  • Issue Boards
Collapse sidebar
  • Vou Imigrar
  • Vou Imigrar Wiki
  • Wiki
  • arquitetura

Last edited by Arthur Kunzler Jun 18, 2022
Page history
This is an old version of this page. You can view the most recent version or browse the history.

arquitetura

Home Escopo e Cronograma Processo Design/Mockups Configuração Arquitetura Código BD Qualidade Utilização

Arquitetura do Sistema

Descrição

Esta seção irá abordar a arquitetura selecionada para o Backend e Frontend, além dos dados relativos ao deploy.

Sumário

  • Arquitetura do Sistema
    • Descrição
    • Sumário
    • Arquitetura Geral da Aplicação
    • Deploy
      • Recipes API
      • Diagrama de Deploy
    • Backend
      • Definições de Tecnologias
      • Módulos do Sistema
      • Diagrama de Fluxo
    • Frontend
      • Definições de Tecnologias
      • Módulos do Sistema
      • Diagramas de Componentes
      • Diagrama do Sistema

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.

Deploy

Recipes API

TBD

Diagrama de Deploy

arqVouImigrar.drawio

Backend

Definições de Tecnologias

É 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.

Módulos do Sistema

  • 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

TBD

Frontend

Definições de Tecnologias

Desenvolvido com a biblioteca React utilizando Javascript, utiliza Progressive Web Application (PWA) para termos a experiência de uso muito próxima da oferecida pelos mobile apps em smartphones. Armazenado no Amazon S3 como um website estático e utiliza um padrão de múltiplas camadas.

Módulos do Sistema

  • assets: armazena os conteúdos estáticos, como as imagens e logo usados na aplicação.
  • components: contém os elementos utilizados nas páginas e podem ser reaproveitados e utilizados em várias.
  • config: possui as configurações gerais da aplicação, como a configuração de tema do Chakra.
  • pages: contém as páginas da aplicação, que normalmente são compostas por diversos componentes.
  • store: contém as funções responsáveis por fazer a comunicação com o backend e armazenamento dos dados através do Redux.
  • utils: contém funções utilizadas em diversos componentes para fazer validação, como por exemplo o formato do e-mail.

Diagramas de Componentes

TBD

Diagrama do Sistema

TBD

Clone repository
  • Infraestrutura
  • Instalação
  • Mockups
  • Utilizando a wiki
    • adicionando imagens
    • escrevendo em markdown
    • wiki no editor de texto
  • arquitetura
  • banco_dados
  • codigo
  • configuracao
  • escopo
  • estudos
  • gerencia
  • Home
  • processo