domingo, 27 de agosto de 2017

4ª semana (21/08 - 27/08) - Realocação de tarefas pendentes e início do desenvolvimento

Olá!
Conforme a última postagem, algumas tarefas planejadas ficaram pendentes por não terem sido iniciadas na semana passada. Deste modo, para não acumulá-las, estas atividades tiveram prioridade maior no Sprint Backlog atual.

No início da semana, após a conclusão dos testes das tecnologias a serem utilizadas e criação da estrutura do projeto, foi dado início ao desenvolvimento. Por conta da limitação de consultas utilizando o webservice da Sefaz, desenvolvemos outro meio para suprir a necessidade de automatização do preenchimento dos dados de cada nota fiscal informada pelo usuário. Para resolver este problema, criamos uma aplicação que utiliza o PhantomJS e a API Selenium com o objetivo de automatizar as interações em páginas web, e, assim, eliminar a necessidade da digitação manual de todas as informações da nota fiscal. Desta maneira, agrega-se valor à usabilidade da aplicação, automatizam-se processos, aumenta-se a comodidade do usuário e garante que as informações serão mais precisas, sem eventuais erros de digitação. A seguir, apresentamos um resumo do funcionamento:

  1. Abre a página da NFe e devolve o Captcha e campo de digitação da chave de acesso para nossa página.
  2. Mantém a página salva na sessão do servidor (assim, ela não será perdida e o captcha que está no nosso site para o usuário digitar ainda irá funcionar). 
  3. Transporta a chave de acesso e Captcha informados pelo usuário da nossa página para a página da NF-e, em seguida clica no botão continuar.
  4. Na página em que as informações da nota são exibidas, a aplicação automaticamente seleciona o botão "Preparar documento para impressão" (este botão abre uma nova aba em que estão apenas as informações importantes pra nós. Ou seja, não terá o banner, menus e etc. que atrapalhariam a recuperação dos dados importantes). 
  5. Fecha a aba que a consulta retornou e foca apenas na nova, que possui as informações necessárias.
  6. Devolve o código HTML dessa nova aba para uma página JSP, que é exibida no final de todo o processo. Com esse código HTML, fazemos o "scraping", uma técnica para percorrer o código fonte da página para recuperarmos apenas os dados importantes para nós. 
Com isso, todas as informações da nota fiscal estarão disponíveis para uso apenas com o fornecimento da chave de acesso, tornando o processo muito mais ágil e preciso. Para as próximas semanas, pretendemos refatorar o código desenvolvido. 

Em paralelo, foi concluído o levantamento de requisitos funcionais, não funcionais e regras de negócio da aplicação, englobando todas as funcionalidades atualizadas e que temos certeza que conseguiremos implantar no sistema. Junto à isso, também foi dado início a parte visual, no qual foram selecionadas e testadas as cores, fontes, temas e ícones a serem utilizados no site. 

Por fim, na sexta-feira, finalmente tivemos acesso ao servidor em que hospedaremos a aplicação. Conforme apresentado anteriormente, utilizaremos o Azure da Microsoft. Com o acesso concedido, poderemos iniciar os testes com o código que já temos e verificar o comportamento da aplicação durante o desenvolvimento. 

Em síntese, o quadro a seguir apresenta as atividades realizadas por cada integrante da equipe durante a semana:

Resumo das atividades realizadas - 4ª semana
IntegranteAtividades
Caique BorgesTestes e configuração das tecnologias; Pesquisa para leitura de informações em páginas externas e desenvolvimento do script de consulta no site da Sefaz. 
Fausto Tozo
Levantamento de requisitos funcionais, não funcionais e regras de negócio; Pesquisa para revisão da literatura e acesso e configuração do servidor. 
Maíra TabataPesquisa para leitura de informações em páginas externas; Leitura de dos dados de página HTML utilizando Javascript e definição da parte visual. 
Vivian BrazãoLevantamento de requisitos funcionais, não funcionais e regras de negócio; descrição das funcionalidades e pesquisa de leitura de QRCode das notas. 
Quadro 1 - Atividades realizadas durante a quarta semana
 

Para essa semana é isso. Até o próximo post :)

domingo, 20 de agosto de 2017

3ª semana (14/08 - 20/08) - Apresentação da proposta, aprovação e início dos trabalhos

Por conta das apresentações realizadas na segunda-feira (14/08), na qual nossa proposta foi oficialmente aprovada, a reunião para definição das atividades da semana foi executada na terça (15/08). Nesta, foi possível discutir e detalhar melhor as atividades que dariam efetivamente início aos trabalhos do projeto. E agora, para melhor organização, todos os nossos encontros estão sendo devidamente documentadas em uma ata padronizada, explicando os tópicos a serem tratados e os planos de ação a serem tomados. O sprint backlog (lista de atividades a serem realizadas na semana) está sendo registrado semanalmente em cards no Trello e documentado externamente. Posteriormente disponibilizaremos todos os arquivos das reuniões. 

Conforme planejado, foi dado início ao levantamento de requisitos e regras de negócio do projeto. Em primeira instância, todos da equipe auxiliaram no desenvolvimento, aprimoramento do escopo e levantamento dos requisitos, mas no decorrer da semana a tarefa ficou sob responsabilidade de parte dos integrantes para que os outros pudessem dar continuidade às outras atividades necessárias. 

Em relação às tecnologias a serem utilizadas e que foram mencionadas na apresentação, os seguintes componentes foram testados e configurados para o projeto:
  • Java Persistence API (JPA) 
  • Hibernate
  • Maven
  • PMD
  • EclEmma JaCoCo (Java Code Coverage)
  • JUnit
  • Log4j
  • Lombok (adicionado posteriormente como item a ser utilizado)
  • Arquivo manifest e Service Workers (adicionado posteriormente como item a ser utilizado)
Na próxima semana, postaremos mais conteúdo em relação aos testes realizados. 

Também foi criada a estrutura do projeto para codificação, realizadas pesquisas sobre leitura de arquivos (como XML e PDF), rascunhos para o conteúdo da documentação final, estruturação do layout da aplicação e criação do logo da equipe (já apresentado na segunda-feira). 

 Figura 1 - Logo da equipe e contatos

Por fim, entramos em contato com profissionais especialistas em NF-e para tirar dúvidas e verificar a viabilidade em relação à uma de nossas funcionalidades do sistema. Assim, teremos opiniões embasadas para argumentarmos sobre as nossas possíveis escolhas.

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


Resumo das atividades realizadas - 3ª semana
IntegranteAtividades
Caique BorgesAprimoramento da lista de tecnologias a serem utilizadas; Testes e configuração das tecnologias; Auxílio no levantamento de requisitos e aprimoramento do escopo
Fausto Tozo
Pesquisa sobre NF-e; Contato com especialistas; Criação de tópicos especializados; Levantamento de requisitos e aprimoramento do escopo. 
Maíra TabataEstruturação front-end; Configuração manifest e Service Workers; Padronização e documentação das reuniões; Criação do logo da equipe e auxílio no levantamento de requisitos e aprimoramento do escopo.
Vivian BrazãoContribuição no conteúdo da proposta; Levantamento de requisitos, regras de negócio e aprimoramento do escopo; e pesquisa sobre leitura de arquivos específicos.  
Quadro 1 - Atividades realizadas durante a terceira semana

Algumas atividades planejadas não foram realizadas nesta semana pois não eram prioritárias como imaginávamos. Deste modo, estas tarefas serão realocadas nas semanas posteriores. 

Para essa semana é isso. Até o próximo post :)

quarta-feira, 16 de agosto de 2017

Proposta aprovada!

Na última segunda-feira (14/08), realizamos a apresentação da nossa proposta de projeto para os professores orientadores e clientes Aires e Daniel. Por ordem de sorteio, fomos o terceiro grupo a apresentar e, depois de alguns questionamentos e discussões construtivas para o desenvolvimento do projeto, nossa proposta foi aprovada.

O documento que foi entregue e os slides da apresentação já se encontram na nossa pasta do SVN. 

Com isso, estamos nos planejando para darmos início aos trabalhos o mais rápido possível. Estamos muito animados e desejamos boa sorte a todos os outros grupos :)



domingo, 13 de agosto de 2017

2ª Semana (07/08 - 13/08) - Definição do tema, reunião com os clientes e preparação para apresentação da proposta

Olá!
Dando continuidade as atividades desenvolvidas na semana anterior, tivemos uma segunda semana extremamente agitada. 

Na aula de segunda-feira, realizamos nossa primeira reunião com os clientes (no caso, os professores Daniel e Aires), visando a apresentação das nossas ideias para o desenvolvimento do projeto da disciplina. Em um único documento, consolidamos os principais temas que considerávamos possuir um diferencial no mercado, elencando as suas funcionalidades. Após cerca de 40 minutos de conversa, tivemos uma proposta pré-aprovada: uma plataforma de gerenciamento de comprovantes fiscais para pessoas físicas.

Imediatamente após o término da reunião, para segurança do projeto, começamos a pesquisar maneiras de implementar uma parte do sistema que considerávamos crítica: consumir o webservice da Sefaz, através da entrada da chave da nota fiscal, que retornaria o XML com as informações relevantes para armazená-las em nossa aplicação. Além das pesquisas, realizamos testes de código e nos consultamos com profissionais da área e professores, mas infelizmente não obtivemos êxito pois nos deparamos com diversas limitações, o que nos deixou com receio de que a ideia se tornasse inviável.

A partir disso, começamos a procurar segundas opções para desenvolvermos ao longo do semestre. Consideramos, principalmente, sistemas especialistas em enfermagem e gestão de eventos acadêmicos, mas não chegamos em um consenso. Porém, após conversa com três professores do IF e incentivo dos mesmos, decidimos investir na ideia inicial, procurando outros meios de torná-la viável para a implementação. Posteriormente, em reunião interna discutimos e incrementamos funcionalidades para a plataforma, visando o aprimoramento da ideia. Com isso, foi possível dar continuidade aos requisitos exigidos, no qual foi necessário criar um documento descrevendo a proposta, a montagem da apresentação que será realizada nas próximas duas semanas e o vídeo explicativo, que serão disponibilizados para acesso em breve.

Ademais, foi realizado o nosso primeiro acesso ao SVN para a criação da estrutura de pastas necessárias; incremento das tecnologias a serem utilizadas; organização das primeiras atividades no Trello; planejamento para o controle de reuniões e, principalmente, definição dos papéis e responsabilidades no projeto. O quadro abaixo apresenta as atividades atribuídas à cada membro da equipe, em ordem de prioridade:

IntegranteResponsabilidade
Caique BorgesProgramação back-end, banco de dados, documentação
Fausto TozoAnálise, documentação, programação
Maíra TabataGerenciamento, front-end, análise, documentação
Vivian BrazãoProgramação back-end, documentação, análise
Quadro 1 - Papéis e responsabilidades dos integrantes da equipe no projeto

Por fim, o quadro a seguir representa as atividades realizadas por cada integrante da equipe durante a semana:

Resumo das atividades realizadas - 2ª semana
IntegranteAtividades
Caique BorgesConsulta da NF-e com Java; Aprimoramento da lista de tecnologias a serem utilizadas; Vídeo de apresentação; Contribuição no conteúdo da proposta; Levantamento de alternativas para o projeto.
Fausto TozoPesquisa sobre limitações da consulta de nota fiscal; Pesquisa LaTeX; Vìdeo de apresentação; Estruturação e conteúdo do documento e apresentação da proposta; Levantamento de alternativas para o projeto.
Maíra TabataConsulta da NF-e com Java; Controle de cronograma; Posts no Blog; Estrutura inicial de pastas no Subversion e tutorial para conexão; Apresentação da proposta; Contribuição no conteúdo da proposta; Levantamento de alternativas para o projeto.
Vivian BrazãoPesquisa LaTeX; formatação da documentação; Contribuição no conteúdo da proposta; Levantamento de alternativas para o projeto. 
Quadro 2 - Atividades realizadas durante a segunda semana

Além das atividades previstas no cronograma, para a próxima semana pretendemos reestruturar o modo em que apresentamos as atividades realizadas e aumentar o número de postagens no blog, detalhando mais as nossas tarefas para facilitar a leitura e a pesquisa de conteúdos. 
Para essa semana é isso. Até o próximo post :)

quinta-feira, 3 de agosto de 2017

1ª Semana (31/07 - 06/08) - Introdução à disciplina, formação das equipes e levantamento de ideias


Sejam bem-vindos ao blog da Equipe 4labz :)

Nesta semana, realizamos o levantamento de alguns temas para o projeto que serão melhor desenvolvidos e apresentados na semana seguinte para a banca avaliadora. Selecionaremos as ideias mais interessantes para estruturar uma boa proposta para aprovação. 

Para melhor organização das atividades ao longo do semestre, definimos algumas datas importantes, como a data para conclusão das funcionalidades do sistema em relação à codificação, programação para cada integrante postar no blog, conclusão da documentação, intervalo para revisão da documentação, testes finais, ajustes e melhoramentos de código e performance no sistema, além de data para impressão de todas as vias da documentação e gravação dos arquivos no CD/DVD para que sejam entregues aos professores da banca avaliadora. Todas as atividades em nível macro foram planejadas utilizando o Google Sheets, e semanalmente as tarefas detalhadas de cada processo serão atualizadas em um quadro do Trello para que haja melhor controle da realização de cada atividade.  

Além disso, foram definidas algumas das ferramentas de desenvolvimento a serem utilizadas, como a IDE, ferramentas para teste unitário, análise estática, logs, dentre outras.

Contribuição dos integrantes para as atividades realizadas:
Resumo das atividades realizadas - 1ª semana
IntegranteAtividade
CaiquePesquisa e definição das ferramentas a serem utilizadas; Levantamento de temas
FaustoLevantamento de temas
MaíraControle de atividades; criação do blog e canal no YT; Levantamento de temas
VivianPrimeira postagem no blog; Levantamento de temas
Quadro 1 - Atividades realizadas durante a primeira semana


Postado por Vivian Brazão. Editado por Maíra Tabata.