Home | Escopo e Cronograma | Processo | Design/Mockups | Configuração | Arquitetura | Código | BD | Qualidade | Utilização | Instruções AWS |
---|
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.
Arquitetura de software é como todos os componentes do software do sistema são organizados e montados. Como eles se comunicam e a restrição pela qual toda a UI é governada.
Sumário
Arquitetura Geral da Aplicação
Service-Oriented Architecture (Arquitetura Orientada a Serviços).
Deploy
EC2/Docker
Recipes API
TBD
Diagrama de Deploy
TBD
Backend
Definições de Tecnologias
- Java/Spring
- PostgreSQL
- Docker
- AWS (S3, SES, SNS, EC2)
Módulos do Sistema
TBD
Diagrama de Fluxo
TBD
Frontend
Definições de Tecnologias
- Dart/Flutter
Módulos do Sistema
TBD
Arquitetura Básica do Frontend
A arquitetura selecionada inicialmente para o front-end foi o MVC. MVC significa Model-View-Controller, onde o foco principal é separar a interface do projeto da funcionalidade e dos dados que são usados na aplicação. O MVC torna a base de código limpa e organizada e consegue isso com três de seus componentes.
-
Model: Comprometimentos do modelo da fonte de dados pode ser de qualquer banco de dados, API, JSON, etc. Em alguns casos, pode consistir em alguma lógica de negócios.
-
View: View tem tudo a ver com a interface do usuário, ou seja, exibir dados e obter entradas do usuário.
-
Controller: Contém a lógica de negócios, ou seja, controle de quais dados serão mostrados ao usuário, manipulação de entrada do usuário, etc.
Após reuniões realizadas pelo arquiteto do projeto e os gerentes, chegamos à uma escolha de arquitetura única: um "híbrido" da arquitetura MVC, onde teríamos a Model-View-Controller comum neste padrão de arquitetura mas também um Router, responsável pelas rotas da aplicação. De certa forma podemos dizer que a arquitetura do projeto é algo maior que um MVC mas menor que uma arquitetura VIPER (View, Interactor, Presenter, Entity e Routing).
Como pode se ver na imagem, o fluxo de informações começa na View, onde todas as informações são exibidas e todas interações do usuário são recebidas. A Router então é responsábel por exibir as novas telas, se houver necessidade. A Controller é encarregada de verificar os dados recebidos, e na Model é onde se recebe os pedidos da Controller para mandar ou receber dados do banco de dados.
Diagramas de Componentes
TBD