Home | Escopo | Gerência | Processo | Design | Configuração | Arquitetura | Banco de Dados |
---|
Sumário
Arquitetura Utilizada no Projeto
Arquitetura do Programa
Para a realização do projeto utilizamos a seguinte infraestrutura:
Nela, estamos utilizando de um modelo baseado no VIPER no frontend e MVC no backend.
Para tal, o usuário interage com uma View, que por sua vez tem seus dados manipulados por um presenter, que pode tanto mudar qual View está sendo demonstrada, através de sua interação com o Router, quanto solicitar dados do servidor, utilizando-se de um Service.
Já no backend, as rotas são expostas por um Controller, que expõe as entidades através dos DTOS delas, e realiza o mapeamento dos dados recebidos até um service, que processa as chamadas e, caso necessário, através do uso de um Entity Mapper, realiza as mudanças necessárias nas Entities, que, através do Repository, atualiza o banco de dados utilizado.
Arquitetura da Infraestrutura
Para a infraestrutura de nossa aplicação, utilizaremos uma EC2, para realizar o host de nosso servidor backend, escrito em NESTJS, além de hospedar nossa banco de dados em PostgreSQL e executar nossa pipeline do gitlab.
Ademais, utilizaremos o Amplify para realizar o deploy de nossa aplicação frontend web, além do uso de uma S3 para guardarmos as imagens e os dados da aplicação.
Diagrama de Deploy
Em nosso diagrama de Deploy, iniciamos criando uma Tag nova (para o Frontend ou para o Backend). A tag então inicia o processo de pipeline do respectivo repositório, que acaba gerando uma imagem docker de cada um dos componentes (build do front no repositório Frontend e build do back / banco (caso necessário) no repositório do Backend.