-
Notifications
You must be signed in to change notification settings - Fork 0
8. Arquitetura As Is
Nesta página, será apresentada uma documentação acerca da arquitetura do projeto como está. O principal propósito é oferecer uma explicação sobre os diversos componentes envolvidos e destacar o funcionamento arquitetural que os interliga. A ideia é explicar como cada elemento contribui para o todo, garantindo uma visão clara e abrangente do sistema.
Serão abordados aspectos como a estrutura geral do projeto, a disposição dos módulos e suas interdependências, bem como a comunicação e troca de informações entre os componentes.
No projeto do grupo Academic Helper, a principio, não foi identificado qualquer estilo Arquitetural, e há somente a camada de visão do projeto.
Todos os componentes da aplicação estão localizados no diretório src, sem distinção entre eles. Cada componente se encontra em seu respectivo arquivo. As rotas são definidas no arquivo App.jsx, que faz uso dos demais componentes utilizados como pastas.
Não há também qualquer comunicação da aplicação com algum provedor de dados externo. A única relação entre componentes se dá entre App e os demais, de forma que ele cria a lógica das rotas importando cada outro componente e utilizando como páginas.
A arquitetura do Front-end se encontra dessa forma:
A tabela de responsabilidades abaixo inclui cada um desses participantes, bem como outros arquivos js presentes na aplicação:
Componentes/Arquivos | Responsabilidade |
---|---|
Index | Ponto de partida para uma aplicação em React. Arquivo que será referenciado pelo HTML. |
App | Este componente encapsula toda a aplicação em React. O componente de rotas fica dentro do App. |
Home | Componente utilizado como página inicial da aplicação. |
Login | Componente utilizado como menu na página inicial da aplicação. |
Sala | Componente utilizado para visualização das salas de comunicação entre os usuários. |
Contato | Componente utilizado para visualização de formulário para contato com os administradores do projeto. |
Teste | Componente destinado à aplicação de formulários avaliativos aos usuários da plataforma. |
reportWebVitals.js | Arquivo utilizado para coletar métricas importantes, como o tempo de carregamento da página e a interação do usuário, e enviar essas informações para ferramentas de análise. É criado pelo Create React App, e não está sendo utilizado no projeto. |
setupTests.js | Arquivo usado para testes em projetos React. É criado pelo Create React App, e também não está sendo utilizado no projeto. |
Não há casos de uso, pois não há ações programadas para serem realizadas dentro da plataforma no momento. A aplicação pode ser iniciada e há algumas páginas, todas elas estáticas. Da página inicial pode-se partir para as demais através dos links ou da inserção manual dos endereços correspondentes no navegador. Quando em cada página, o usuário pode apenas ler seu conteúdo, e em algumas preencher campos de texto, mas não há outros links ou ações disponíveis.
Considerando puramente o código desenvolvido, não há riscos de segurança.
Dados sensíveis nesse contexto são informações rastreáveis de caráter íntimo dos usuários do sistema e/ou colaboradores. Recursos sensíveis são dados relevantes para o sistema e o negócio envolvido. A segurança da aplicação depende da proteção dos dados e recursos sensíveis que ela utiliza ou armazena.
Uma vez que não há dados sensíveis à aplicação tampouco operações que possam mudar algum estado, não temos o necessário para considerar a qualidade desejada de segurança na arquitetura de software.
A aplicação não faz uso de recursos sensíveis, o que não permite a criação de uma política de segurança ou aplicações de padrões de segurança.
Contudo, considerando também as dependências do projeto, o maior problema identificado para a segurança do usuário foi o uso de pacotes desatualizados. Esses pacotes podem conter vulnerabilidades de segurança que permitem a execução de código arbitrário, a alteração de dados ou a exposição de informações sensíveis no computador do usuário. Para mitigar esse problema, é recomendável atualizar os pacotes através da edição do arquivo package.json, ou substituí-los por outros mais confiáveis e/ou atualizados.