Engenharia-de-Software-UFRPE / lanterna-verde

Lanterna verde é um sistema de avaliação do nível de práticas de greenwashing de uma organização ou produto.
2 stars 5 forks source link

[Feature] Telas de análise, assinatura de pacotes de serviços e outros #59

Closed tiaobraw closed 2 years ago

tiaobraw commented 2 years ago

Nessa Pull Request implementamos as funcionalidades referentes as telas das análises, integração back/front, assinatura de pacote de serviços, entre outras funcionalidades descritas abaixo.

Problemas

Front-end

Integração dos componentes do Front-end

Para que a integração do Front-end das três equipes ocorra sem problemas, é necessário que os seletores no css estejam especificando apenas os componentes que o importam, pois caso contrário, alterações no css de um componente podem alterar componentes que já estão finalizados.

Implementação da tela de análises no Front-end

Para que a empresa logada possa visualizar todas suas análises realizadas e ter acesso a funções como solicitação de reanálise, é necessária a implementação de uma tela no Front-end

Implementação da tela de alterar cadastro no Front-end

Para que a empresa logada possa alterar seus dados cadastrados é necessária a implementação de uma tela no Front-end

Implementação do pop-up de confirmação de pagamento

Para que a empresa logada assine um pacote, é necessária a implementação de um pop-up que solicite o preechimento de alguns campos para confirmação do pagamento

Responsividade das telas no Front-end

Para que o sistema seja acessível em diversas resoluções diferentes, é necessária a implementação da responsividade das telas no Front-end

Front-end e Back-end

Integração do Front-end com o Back-end da tela de cadastro

Para que o cadastro de empresas no sistema funcione corretamente, é necessário que a tela de cadastro no Front-end realize uma requisição Http ao Back-end, para que este mesmo adicione uma nova empresa ao banco de dados .

Back-end

Implementação de funções para listar análises da empresa logada

Para que a empresa logada tenha acesso a todas suas análises e tenha possibilidade de filtra-las por alguns atributos, é necessária a implementação de funções no Back-end

Implementação de função que retorna a empresa logada

Para que a empresa logada tenha acesso aos seus dados após o login ter sido realizado, é necessária a implementação de uma função no Back-end

Implementação da assinatura de pacotes

Implementação da função de solicitação de reanálise

Implementação

Front-end

Integração dos componentes do Front-end

No arquivo ContainerAdm.js a div que engloba todos os elementos foi nomeada "admBoard-container" e, no arquivo ContainerAdm.css antes de cada seletor foi adicionado o nome dessa div.

Nos arquivos DadosDaAnalise.js, TelaQuestionario.js, analisesDaEmpresa.js e listaDeAnaliseEmpresa.js a div que engloba todos os elementos foi nomeada "requestListArea" e, nos seus respectivos arquivos css, antes de cada seletor foi adicionado o nome dessa div.

Implementação da tela de análises no Front-end

Foram criados os arquivos CompanyAnalyzesFiltersSection.js, CompanyAnalyzes.js e seus respectivos arquivos css. Essa tela apresenta todas as análises prontas da empresa logada e possui opções de filtros para as análises exibidas.

Implementação da tela de alterar cadastro no Front-end

Foram criados os arquivos CompanyProfileChange.js e company-profile-changes.css. Essa tela possui possui campos para alterar os dados cadastrados e botões de confirmar e cancelar

Implementação do pop-up de confirmação de pagamento

Foram criados os arquivos CompanyPaymentForm.js e company-payment-form.css. Este pop-up é aberto ao clicar em um dos botões de "assine agora" na tela de contratar serviços, o mesmo possui os campos CNPJ e serviço e, os botões de confirmar e cancelar

Responsividade das telas no Front-end

Foram adicionadas media queries ao css de cada componente da empresa, conforme o comportamento observado em cada resolução.

Front-end e Back-end

Integração do Front-end com o Back-end da tela de cadastro

O Front-end envia uma objeto no formato JSON ao Back-end por meio de uma requisição do tipo POST, o Back-end carrega o JSON da requisição e cria um usuário Empresa caso o username, email e CNPJ ainda não tenham sido utilizados por nenhum outro usuário cadastrado.

Back-end

Implementação de funções para listar análises da empresa logada

listar_analises_empresa: lista todas as análises da empresa logada listar_analises_empresa_data: lista todas as análises da empresa logada de forma cronológica listar_analises_passiveis_reanalise: lista todas as análises em que o boolean reanalyzed é False

Implementação de função que retorne a empresa logada

get_logged_empresa: retorna os dados da empresa logada

Implementação da assinatura de pacotes

A primeira ideia implementada havia sido a de um objeto PacoteAnalise, que guardaria um atributo correspondente para a escolha dos tipos de pacote, sendo eles MONTHLY, BIANNUAL e YEARLY. Por razões de praticidade, resolvemos apenas adicionar o atributo package ao model Empresa, contendo os tipos de pacote, junto com a adição de uma quarta escolha, NOPACK, que será o padrão inicializado logo após o cadastro.

Implementação da função de solicitação de reanálise

Como Testar

Front-end

Todas as telas podem ser testadas acessando sua url associada, a responsividade pode ser testada por meio das ferramentas de desenvolvedor do navegador e, o pop-up de confirmação de pagamento pode ser testado ao clicar em um dos botões de "assine agora" na tela de contratar serviços.

Front-end e Back-end

Para o cadastro ser testado basta acessar o link (http://127.0.0.1:3000/companyRegistration) com os servidores do Front-end e Back-end ativos, preencher os campos necessários e confirmar o cadastro, se o username, email e CNPJ ainda não tiverem sido cadastrados no sistema, o sistema irá exibir um alerta de confirmação de cadastro.

Para verificar ser a empresa foi cadastrada no banco de dados pode ser utilizada a página de administrador do Django ou o link (http://127.0.0.1:8000/empresas)

Back-end

Notas do desenvolvedor

Objetivos

SteffanoP commented 2 years ago

Caros times de @Engenharia-de-Software-UFRPE/joyce-e-cia e @Engenharia-de-Software-UFRPE/mavericks-backend, eu verifiquei que algumas alterações envolvem funcionalidades de Administrador e Analista. Vocês poderiam me ajudar a revisar as suas respectivas funcionalidades que foram afetadas.

SteffanoP commented 2 years ago

@Engenharia-de-Software-UFRPE/joyces-frontend consertei o bug de solicitação de análise, mas não pude deixar de notar que aconteceu um erro por aqui quando acesso a tela de Admin. Gostaria que vocês pudessem apurar esse problema, visto que não consegui entender o erro.

Creio que vocês estiveram com um problema relacionado, sei que está relacionado com o fato de existir uma Solicitação de Análise aguardando avaliação de um administrador para ser aprovado.

Como testar

  1. Tenha um usuário Administrador e um outro Usuário do tipo Empresa;
  2. Entre na conta do usuário de Empresa e solicite uma análise;
  3. Faça o logout (não acho que é necessário limpar o sessionID);
  4. Faça o login com o usuário Administrador.
Igor-Britoo commented 2 years ago

Alguns de nossos arquivos (que dizem respeito ao analista) foram alterados, gostariamos de saber o porque dessas alterações e como elas afetam as telas de empresa de um modo geral. Gostariamos de saber também o motivo de ter uma pasta chamada registration com um arquivo chamado COntainerRegistration.js e qual o intuito deste arquivo.

@multi-megaman Todas as alterações nos componentes do analista foram por conta de seletores no css, que causavam problemas em outras telas. Para resolver isso foram utilizados containers para deixar os seletores mais específicos. Com relação ao arquivo chamado ContainerRegistration.js, nenhuma das nossas telas utiliza esse componente então ele provavelmente foi puxado da main anteriormente.

SteffanoP commented 2 years ago

@Igor212 vou avaliar assim que possível, pelo que vi, provavelmente já devo levar para a main.

Muito Obrigado!