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 Geral da Aplicação
A aplicação usa uma versão adaptada do paradigma Model-View-Controller (MVC). O MVC é composto por três agentes, que desempenham funções distintas, mas relacionadas:
- O "controller" ("controlador") é a parte que o usuário usa para interagir com a aplicação, comunicando, com ela, dados.
- O "model" ("modelo") é a parte escondida ao usuário; ela recebe informação do controlador, e faz o trabalho lógico necessário para tentar realizar ações solicitadas pelo usuário, atualizando a view com as suas atividades.
- A "view" ("visualização") é a parte que o usuário consome, enquanto usa a aplicação. Inclui qualquer componente (visual ou não) que seja usado, pela aplicação, para comunica, ao usuário, informação sobre o estado do model.
Deploy
Recipes API
TBD
Diagrama de Deploy
TBD
Backend
Definições de Tecnologias
TBD
Módulos do Sistema
- config: contém as configurações de cors e do Swagger.
- controller: é o ponto de entrada do backend, onde ficam os endpoints da aplicação.
- entity: camada que contém entidades que se espelham ao banco de dados.
- dto: possui os objetos utilizados para o transporte de dados entre as camadas.
- enums: possui as enumerações que são usados nos dtos ou nas entidades.
- message: Possui todas as mensagens que são devolvidas para o frontend, para a visualização do usuário.
- repository: é responsável por fazer toda comunicação com o banco de dados.
- security: define configurações de acesso aos endpoints e controla o login e autenticação de usuários cadastrados.
- service: camada que contém as regras de negócio.
- util: possui classes que contém métodos que são utilizados em diversas serviços, como 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
- React JavaScript: biblioteca de JavaScript, utilizada para definir a parte lógica, e criar componentes HTML, para aplicações web de página única.
- Material UI: biblioteca de componentes para interfaces gráficas de usuário de aplicações web.
- CSS: linguagem de marcação de texto, utilizada para estilizar componentes HTML.
- npm: gerenciador de pacotes de módulos JavaScript, utilizado para instalar funcionalidades em aplicações web.
- Axios: biblioteca de JavaScript, utilizada para realizar solicitações HTTP, permitindo o uso de promises.
Módulos do Sistema
- assets: guarda informações importantes a nível global, como cores, imagens, e o endereço do servidor do banco de dados na internet.
- components: guarda componentes de interface gráfica, como botões e menus, para possibilitar reuso em toda a aplicação.
- contexts: guarda os scripts utilizados para reter informações que precisarão ser reutilizadas ao longo da sessão de utilização da aplicação.
- enums: guarda listas de itens importantes a nível global: rotas, códigos de HTTP, e chaves de armazenamento local.
- screens: guarda as telas, e seus respectivos modais, utilizadas para a GUI da aplicação
- services: guarda os scripts utilizados para transferir informações entre o banco de dados e o front-end.
- utility: guarda scripts utilizados para operações que não sejam específicas a páginas específicas: conversor de notação monetária, e o assistente ao serviço do Axios.
Diagramas de Componentes
TBD
Diagrama do Sistema
TBD