domingo, 10 de dezembro de 2017

A importância da revisão da literatura no projeto

Olá!

Nesta semana, a equipe 4labz passou pela última avaliação, na qual mostramos para os professores os ajustes feitos na documentação e na aplicação conforme havia sido apontado no dia da nossa banca.

Ao final da avaliação, o professor Aires nos questionou se a revisão da literatura que constava na nossa documentação tinha feito diferença durante o desenvolvimento do projeto.

Já adiantando, a resposta é sim!!!!

O ponto central era o fato de nós termos focado uma boa parte da revisão no tema do nosso projeto, e não somente nas tecnologias utilizadas. Nós propusemos uma aplicação para gerenciar Notas Fiscais Eletrônicas (NF-e), e foi justamente esse o maior foco da nossa revisão de literatura.

Estudar sobre notas fiscais, apesar de não ser, digamos, empolgante no início, acabou se mostrando interessante por nos ensinar bastante sobre um tema que é muito, mas muito maior do que nós imaginávamos.

E aqui podemos destacar dois grandes diferenciais que esse estudo teve durante todo o projeto: ele auxiliou na análise do sistema que seria desenvolvido e também forneceu elementos para justificar algumas mudanças que tivemos que fazer principalmente no início do projeto.

Para contextualizar o que estamos dizendo, é importante destacar que tivemos certa dificuldade no início do projeto em definir como seria o nosso sistema. Elencamos algumas características que desejávamos e as incluímos nas conversas iniciais com os professores da disciplina. Porém, com o passar dos dias, já fazendo o levantamento das informações em manuais oficiais da NF-e e outras fontes também, percebemos que algumas das propostas feitas aos professores não seriam possíveis de ser implementadas.

Ou seja, seria necessário fazer mudanças no sistema proposto e aprovado. E como justificar? Aqui a revisão da literatura teve papel fundamental. Como exemplo de mudança, podemos citar a proposta de fazer um sistema de comunicação com web services das Secretarias da Fazenda dos Estados para que todas as NF-e de um usuário específico fossem localizadas e baixadas pela nossa aplicação. Porém, buscando informações sobre como desenvolver tal funcionalidade, esbarramos na necessidade da utilização de certificado digital com o CPF do usuário para que fosse possível estabelecer comunicação com os web services. E, diferente das empresas, que geralmente possuem certificado digital com seu CNPJ, é raro encontrar pessoas físicas que possuam certificado digital.

Além disso, ela ajudou muito em várias decisões e implementações. Por exemplo, como fazer para identificar que uma chave de acesso de um documento fiscal pertence à uma NF-e? Ela poderia ser de outro tipo de documento, como uma Nota Fiscal de Consumidor Eletrônica (NFC-e) ou uma Nota Fiscal de Serviços Eletrônica (NFS-e). Uma vez que a nossa aplicação engloba, inicialmente, apenas NF-e, a utilização de uma chave de acesso de outro tipo de documento fiscal geraria um erro porque cada um está em uma base de dados diferente. Estudando sobre o tema, nós verificamos que as posições 21 e 22 da chave de acesso indicam o código do tipo do documento fiscal. As NF-e possuem o código 55. Assim, pudemos implementar um leitor de arquivos direcionado para o tipo de documento fiscal englobado pela nossa aplicação.

Enfim, para não alongar ainda mais esta publicação, deixamos duas dicas: a primeira, dê especial atenção à revisão da literatura do tema escolhido para sua aplicação. Ela possibilitará fazer uma melhor análise do sistema proposto. Também irá justificar eventuais mudanças na proposta inicial. E, durante todo o desenvolvimento, certamente ela ajudará a chegar em soluções para codificar funcionalidades da aplicação.

A segunda (e muito importante!!!!) dica é: estruture a revisão no documento que será entregue de modo que ela traga não só os conceitos, mas também que ela reflita aquilo que está englobado na aplicação. Lembre que os professores já conhecem as tecnologias, provavelmente eles já sabem a teoria e entenderão como elas foram aplicadas no projeto, mas o assunto-tema da aplicação possivelmente será algo novo para eles, daí a importância de detalhar melhor essa parte na documentação.

Um abraço!!!

domingo, 3 de dezembro de 2017

18ª Semana (27/11 - 04/12) - Apresentação para a banca e finalização do projeto

Olá.

Nesta segunda-feira, dia 27 de novembro de 2017, realizamos a nossa apresentação para a banca da disciplina de A6PGP. Estavam presentes os professores Aires, Daniel e Ivan, que, após a nossa apresentação, realizaram diversos comentários e apontaram correções pertinentes em nosso projeto.

Como nos sortearam para apresentar no último dia, tivemos apenas uma semana para realizar os ajustes necessários. Como a correção já estava em andamento desde a apresentação do primeiro grupo, conseguimos terminar algumas a tempo para a apresentação para a banca e as outras ficaram para a segunda entrega (e de novo, recomendamos o mesmo para as futuras equipes).

Na aplicação, realizamos as seguintes modificações:
  • Cadastro de garantia: agora o cadastro pode ser feito por produto, apenas informando o período da garantia, sem a necessidade de cadastrar um novo lembrete manualmente.
  • Recuperação de senha: o método de recuperação de senha foi alterado para que o usuário atualize sua nova senha, ao invés de sobrescrevermos com uma senha aleatória que era enviada por e-mail.
  • Lembretes: os lembretes enviados agora ficam em seções separadas dos lembretes a enviar.
  • Compartilhamento de nota: agora, a nota compartilhada só aparecerá para o usuário destinatário após confirmação do mesmo. 
Além destes ajustes, algumas outras pequenas correções apontadas pela banca foram aplicadas, como renomeação do pacote do projeto, reordenação do menu, alteração do tipo de gráfico do consumo e etc.

Na documentação, foram efetuadas as diversas correções apontadas pelos professores nos documentos impressos, além de inclusão de novas seções como a de justificativa de escolhas de tecnologias, alterações realizadas e o manual técnico.

Com isso, está tudo pronto para a entrega final do projeto! Amanhã, segunda-feira (04/12/2017), teremos a nossa última avaliação. 


Estamos muito orgulhosos com o trabalho realizado durante o semestre, tanto na documentação quanto na aplicação. Nosso esforço foi reconhecido pelos professores e colegas de turma. Parabéns equipe! 


17ª Semana (20/11 - 26/11) - Preparação para a apresentação (finalmente)

Olá.

Nesta penúltima semana de projeto, demos continuidade às correções tanto no aplicação quanto na documentação, além de concluirmos a apresentação para segunda-feira, dia 27 de novembro.

Seguindo o nosso levantamento de tópicos a serem corrigidos e aprimorados, demos prioridade para as tarefas que deveriam ser apresentadas para a banca.

Na aplicação, foi implementada a funcionalidade de leitura de arquivos PDF e XML das notas fiscais, anteriormente documentadas como implementação futura. Além disso, corrigimos bugs principalmente no cadastro das notas e a finalização da exportação dos gráficos da página de consumo. Também preparamos duas versões off-line da aplicação, nas quais uma utilizava o banco de dados que estava na Amazon e a outra com o banco de dados local. Com isso, a apresentação da aplicação não seria afetada caso o servidor falhasse ou tivéssemos problemas de conexão (recomendamos o mesmo para todos as futuras equipes).

A documentação foi atualizada de acordo com as novas funcionalidades implementadas, além de concluirmos o Diagrama de Atividades dos principais fluxos da Nota Digital.

E por fim, os nossa apresentação de slides ficou pronta! Assim, tudo estava devidamente preparado para a apresentação :D A seguir, estão alguns slides que apresentamos: 





O quadro a seguir apresenta mais detalhadamente as atividades realizadas por cada integrante da equipe durante a semana:

Resumo das atividades realizadas - 17ª semana
IntegranteAtividades
Caique BorgesDiagrama de classes; Leitor de XML; Correção de bugs. 
Fausto Tozo
Implementação Content Security Policy; Atualização dos requisitos, casos de uso e descrição dos casos de uso.
Maíra TabataApresentação de slides; Modal para explicação de chave de acesso para o usuário; Relatório de consumo; Correção de bugs.
Vivian BrazãoAjustes revisão da literatura; Diagrama de atividades; Novo relatório do StatsSVN; Nova versão do Gource.
Quadro 1 - Atividades realizadas durante a décima sétima semana

Até o próximo post (da última semana)!

domingo, 19 de novembro de 2017

16ª Semana (13/11 - 19/11) - Ajustes baseados nas apresentações anteriores

Olá!

A data de nossa apresentação está chegando. Pensando nisso, estamos seguindo com ajustes na aplicação e documentação para que tudo dê o mais certo possível enquanto estivermos na frente da banca avaliadora.

Temos feitos testes para verificar o funcionamento da aplicação e estamos corrigindo alguns bugs que eventualmente são encontrados.

Além disso, também estamos fazendo algumas modificações baseadas nos comentários feitos pela banca durante a apresentação das outras equipes. Uma vez que já sabemos algumas características apontadas como erro pela banca, e que algumas dessas características estavam presentes no nosso projeto, já estamos fazendo as devidas modificações.

Como exemplo, podemos citar o uso de índices no banco de dados e a integração dos serviços EC2 e RDS com o serviço S3 da Amazon Web Services. No nosso caso, as fotos dos usuários do sistema estavam armazenadas diretamente no servidor da aplicação (EC2), mas trocamos o armazenamento desses arquivos para o serviço S3 após isso ser apontado pela banca avaliadora como sendo uma prática mais adequada durante apresentações de equipes anteriores.

Outra característica apontada pela banca era a exclusão definitiva de informações pelos usuários do sistema e a dificuldade que isso traria em caso de necessidade de recuperação de alguma informação. Isso acontecia na nossa aplicação também, por exemplo, quando um cliente excluía alguma Nota Fiscal Eletrônica (NF-e). Agora, quando um cliente exclui uma NF-e, ela é desativada no sistema e desaparece de sua tela de visualização, dando a entender que houve exclusão física no banco de dados, mas na verdade nós podemos recuperar tal informação caso seja necessário.

O quadro a seguir apresenta mais detalhadamente as atividades realizadas por cada integrante da equipe durante a semana:

Resumo das atividades realizadas - 16ª semana
IntegranteAtividades
Caique BorgesCriação de índices no BD; Integração do EC2/RDS/S3. Correções de bugs na aplicação.
Fausto Tozo
Implementação de HSTS. Testes para Content Security Policy. Pesquisa para integração do S3.
Maíra TabataAjustes em páginas de recuperar senha, compartilhar nota, consumo e cadastrar usuário; exportação de dados.
Vivian BrazãoAjustes na documentação (MER, manual do administrador) e no leitor de PDF.
Quadro 1 - Atividades realizadas durante a décima sexta semana


Até o próximo post!

terça-feira, 14 de novembro de 2017

15º Semana (06/11 - 12/11) - Início das apresentações == ansiedade!

Olá!

Mais uma semana se passou e iniciaram-se as apresentações das equipes para a banca de professores, o que fez a ansiedade pela nossa apresentação aumentar cada vez mais. Anotamos sugestões de melhoria e correções que os professores da banca avaliadora fizeram para a equipe que apresentou-se essa semana e estamos ajustando nosso projeto de acordo com os pontos destacados por eles. Além disso, fizemos mais páginas de usuário administrador, validações importantes e habilitamos a exportação de dados de páginas específicas em PDF, CSV e XML.

Na parte de desenvolvimento back-end fizemos correções nos links de algumas páginas, pois eles direcionavam para outra página ao invés do dashboard. Também habilitamos a criação de tags para notas cadastradas manualmente.

Já na parte do front-end, permitimos a exportação de dados da página de consumo nos formatos PDF, CSV e XLS. Além disso, fizemos páginas de usuários administradores, validações de campos, correções no layout e validação para não permitir o compartilhamento de uma NFe com e-mail repetido. 

Na documentação fizemos correções de gramática, ajustes em títulos e legendas de figuras e tabelas, além de pesquisas sobre como fazer o glossário corretamente em LaTeX.

Ainda, fizemos diversos testes de funcionalidades e validações na nossa aplicação e produzimos um vídeo no canal da equipe para explicar melhor o funcionamento do Robô.

O quadro a seguir apresenta mais detalhadamente as atividades realizadas por cada integrante da equipe durante a semana: 

Resumo das atividades realizadas - 15ª semana
IntegranteAtividade
CaiqueCorreções de links; criação de tags nas notas de cadastro manual.
FaustoPáginas do administrador (dashboard e visualização de notas/usuários/produtos); vídeo sobre o Robô.
MaíraExportação de dados em PDF, CSV e XLS; validações de campos; não permitir compartilhamento da nota com o mesmo e-mail; correções no layout.
VivianAjustes e correções na documentação; testes de funcionalidades e validações.
Quadro 1 - Atividades realizadas durante a décima quinta semana

segunda-feira, 6 de novembro de 2017

14 º Semana (30/10 - 05/11) - Ajustes finais e preparação para apresentação!

Olá!

Nessa semana a equipe imprimiu e entregou as três vias da documentação para o professor orientador. Depois disso, seguimos fazendo ajustes na aplicação para que possamos apresentá-la à banca de professores da melhor maneira possível. Também foram feitos mais alguns ajustes e incrementos na documentação, já adiantando para a segunda entrega que será realizada.

Na parte de desenvolvimento back-end nos focamos principalmente na parte do compartilhamento das NFe e na página de consumo do cliente. Também finalizamos a parte de upload de fotos para o perfil do usuário e criamos as massas de dados para o banco.

Já na parte do front-end fizemos correções no index, página de gerenciamento de categorias, edição da conta do administrador, tratamento de valores nulos no cadastro automático, além de correções no style do modal, dentre outras coisas.

Na documentação ajustamos algumas coisas dos textos na parte de métricas, fizemos o manual do administrador e preparamos os slides para a apresentação que será feita à banca de professores.

O quadro a seguir apresenta mais detalhadamente as atividades realizadas por cada integrante da equipe durante a semana:

Resumo das atividades realizadas - 14ª semana
IntegranteAtividade
CaiqueCompartilhamento de notas; consumo do cliente; upload de imagem; massa para banco de dados; correções de bugs.
FaustoMassa para banco de dados; conteúdo da apresentação; testes no sistema.
MaíraSlides da apresentação; correções nas páginas do sistema; página de gerenciamento de categorias; edição da conta do administrador; sidebar do administrador; tratamento de valores nulos no cadastro automático.
VivianAjustes nas métricas; manual do administrador.
Quadro 1 - Atividades realizadas durante a décima quarta semana

segunda-feira, 30 de outubro de 2017

13ª SEMANA (23/10 - 29/10) - Documentando

Olá!

A primeira entrega chegou!!

Durante a semana que passou foram feitos alguns ajustes na aplicação, mas o principal foco foi a documentação. Como um dos critérios obrigatórios para aprovação em A6PGP, nós tínhamos uma preocupação em fazer uma boa documentação para compor nossa primeira entrega.

Muito do conteúdo estava pronto. Mas também havia partes do conteúdo em documentos separados, partes em word e outras em LaTex... Enfim, foi bastante trabalhoso juntar tudo em LaTex para formar o documento final.

Por isso, recomendamos que os conselhos dos professores sejam ouvidos e o LaTex passe a ser usado desde o início do projeto. 

Também foram gerados diversos testes e métricas sobre o projeto. Aqui vai um exemplo:




Depois de 86 figuras, 22 quadros e 206 páginas, nós compusemos o documento da primeira entrega.

Agora nossa expectativa está voltada para a banca. O sorteio da ordem de apresentação não será revelado pelos professores. Nós podemos ser os primeiros (espero profundamente que não!!!). E para que tudo saia bem, os dois grandes objetivos para a semana são elaborar uma boa apresentação e fazer os ajustes necessários para que a aplicação esteja funcionando corretamente.  

O quadro a seguir apresenta mais detalhadamente as atividades realizadas por cada integrante da equipe durante a semana:

Resumo das atividades realizadas - 13ª semana
IntegranteAtividades
Caique BorgesRelatório de testes unitários; Plano de testes funcionais; Ajustes na página de consumo.
Fausto Tozo
Documentação; Configuração e teste SSL no servidor.
Maíra TabataRelatório de métrica e de usabilidade; Manual do usuário; Ajustes no front-end.
Vivian BrazãoDocumentação; Vídeo do Gource; StatSVN.
Quadro 1 - Atividades realizadas durante a décima terceira semana


Até o próximo post!