Giter Club home page Giter Club logo

2017.2-merendamais's Introduction

Merenda+

License: GPL

2017.2 - Merenda+ - Auxílio aos Conselheiros do Conselho de Alimentação Escolar (CAE).

O Merenda+ é uma aplicação mobile, que auxilia o conselheiro nas tarefas pertinentes a assuntos sobre a fiscalização da merenda escolar de determinada escola da sua região de atuação, de modo que as atividades realizadas - desde o planejamento da visita até a consolidação dos dados - possam ser executadas de forma mais ágil e intuitiva do que como é efetuada atualmente - a mão, através de “caneta e papel” -.

Outro olhar também se aplica a esse projeto ao analisar o fato de que este oferece informações relevantes a respeito das fiscalizações ao Tribunal de Contas da União (TCU), que por sua vez analisará estes dados a fim de encontrar anomalias que possam prejudicar de qualquer forma a distibuição da merenda escolar ao alunos da rede pública de ensino.

O sistema foi inicialmente desenvolvido por estudantes do curso de Engenharia de Software da UnB-Gama como projeto das disciplinas Método de Desenvolvimento de Software e Gerência de Gestão de Portifólios e Projetos de Software.

Se tem o interesse em contribuir para a Merenda+, confira o guia de contribuições.

Acesso à Aplicação

Para realizar o acesso a aplicação na versão atual mais estável deve-se seguir os seguintes passos:

  1. Instalar o EXPO no seu aparelho mobile:

  2. Acessar o link da aplicação na barra de pesquisa ou ler o QRCode abaixo:

    • Link da Aplicação: https://expo.io/@rogerlenke/merendamais

    • QRCode:

  1. Caso queira, veja um vídeo da aplicação no YouTube

  2. Desfrute, se você for um Conselheiro 😉;

Resumo Arquitetural

A aplicação é formada por 2 camadas principais:

Para entender a arquitetura com mais detalhes acesse o Documento de Arquitetura do projeto e os repositórios de cada camada.

Instalação

Os comandos abaixo foram voltados para usuários que utilizam o sistema operacional Linux. Dessa forma, o primeiro passo para a instalação do projeto é baixar o repositório com o seguinte comando:

git clone https://github.com/fga-gpp-mds/2017.2-MerendaMais.git

Após clonar o repositório, configure o ambiente para a execução de projetos que utilizem React Native. Para seguir um pequeno tutorial clique aqui.

Após configurar o ambiente, entre na pasta do projeto e rode os seguintes comandos:

  • Para instalar as dependências do projeto:

npm install

  • Para gerar o QRCode de feedback instantâneo do React Native e ver as mudanças do código em tempo real:

npm start

Docker

A equipe não utilizou Docker durante o desenvolvimento, pois como os membros já estavam com o ambiente configurado não houve necessecidade de utilizá-lo. Porém caso não deseje configurar o ambiente, recomenda-se utilizar o Docker pois ele faz toda a configuração de ambiente automáticamente. Para utilizá-lo deve-se ter o Docker e o Docker-compose instalados.

Após instalar o Docker e o Docker-compose, entre na pasta do projeto e rode o seguinte comando no terminal e o projeto já estará funcionado:

  • Para subir o ambiente do projeto:

Docker-compose up

  • Para parar o docker de rodar:

Ctrl+c

Caso deseje instalar alguma dependência no package.json ou acessar o container via bash, rode os seguintes comandos no terminal, depois de ter seguido o passo anterior:

  • Para iniciar o container:

docker start 20172merendamais_merenda_mais_1

  • Para executar o docker via bash:

docker exec -it 20172merendamais_merenda_mais_1 bash

  • Para sair do bash do container:

Ctrl+d

  • Para parar a execução do container:

docker stop 20172merendamais_merenda_mais_1

Principais funcionalidades

  • Manter Conselheiro;
  • Realizar denúncia;
  • Anexar arquivos;
  • Consultar informações sobre a cartilha do Conselheiro, legislação e reuniões efetuadas;
  • Agendar visita;
  • Agendar reunião;
  • Convidar conselheiros para eventos;
  • Convida um agente da vigilância sanitário para a visita em uma escola;
  • Pesquisar escola;
  • Acessar dados de visitas;
  • Acessar relatórios de fiscalizações;
  • Gerenciar registros de Conselheiros;

Como contribuir

Os contribuintes podem colaborar para manter e evoluir o sistema através da correção de bugs e implementação de novas funcionalidades, que estão listados na pipeline "Opened Issues" no zenhub Boards. Para contribuir, o projeto deve ser clonado do repositório oficial.

Documentação

Toda a documentação pode ser acessada através da Wiki do projeto.

2017.2-merendamais's People

Contributors

allannobre avatar gabrielademoraes avatar hugo-asb avatar igor-gme avatar kahcosta avatar kamillacosta avatar lucaslermen avatar lucaspenido avatar matheusoliveira30 avatar miguel-alves avatar mlfaa avatar rdlenke avatar ronyell avatar sabinogs avatar thalissonmelo avatar victorcmoura avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

2017.2-merendamais's Issues

T05 - Atualizar Labels

Atualizar a documentação das Labels no documento de GSC, ou criar um documento separado.

US04 - Agendar Visita

Eu, como conselheiro, desejo agendar uma visita à para realizar a fiscalização.

Tasks:

  • Estudar estrutura de postagens e objetos na Nuvem;
  • Criar tela de agendamento de visitas;
  • Escolher data na qual será realizada a visita;
    • Deve ser um campo de data.
  • Escolher hora na qual será realizada a visita;
    • Deve ser um campo de hora.
  • Utilizar a estrutura de postagens e conteúdos de postagens na Nuvem.
  • Realizar o armazenamento na Nuvem dos dados de um agendamento.
  • Testar.

US20 - Consultar Cartilha

Eu, como conselheiro, desejo consultar informações da cartilha para saber detalhes relacionados ao procedimento de fiscalização.

Tasks:

  • Criar um botão na SideBar que leve a consulta da Cartilha;
  • Deve-se abrir uma tela com as seções maiores das cartilhas em formato de botões em um lista;
  • Ao pressionar o botão da seção deve-se abrir a seção da Cartilha correspondente a ela;
  • A seção da cartilha deve ser acessada localmente, e deve abrir na própria aplicação ou utilizando um software de terceiros para abrir PDFs;
  • Estudar soluções para realização de pesquisas por String no PDF.

TS09 - Testar Actions Não Assíncronas

Eu, como desenvolvedor, desejo testar as actions não assíncronas do código para garantir que elas estão livres de erros.

Tasks:

  • Arquivo de actions totalmente testado.

US08 - Adicionar Escola ao Agendamento

Eu, como conselheiro, desejo adicionar a escola ao agendamento de visitas para informar o local da fiscalização.

  • Ao clicar no botão de encontrar escola, na tela de agendar visita, deve-se ir para a tela de pesquisar escolas;
  • Ao clicar em uma escola, se a região dela for correspondente a região de atuação do CAE do conselheiro, deve aparecer além das informações da escola, um botão para fazer o agendamento da visita;
  • Ao clicar nesse botão, o conselheiro deve voltar a tela de agendamento para continuar a realizar a visita com os dados já preenchidos anteriormente;
  • Quando o conselheiro voltar para a tela de visita com a escola escolhida, deve-se mostrar os dados principais da escola na tela de Agendamento;
  • Ao completar o Agendamento, o código da escola escolhida deve ser enviado para o armazenamento na estrutura de postagem da Nuvem Cívica, a fim de identificar qual escola é o alvo da fiscalização agendada.
  • Testar.

T02 - Configurar ferramenta de análise

Essa issue está relacionada com a configuração da ferramenta para análise do código, como análise de complexidade ciclomática, LOC, etc.

A ferramenta a ser configurada pode ser de escolha de quem fizer. Uma sugestão é a
Complexity-report.

T07 - Refatorar Código

Refatoração constante do código.

  • Organizar pastas do projeto;
  • Modificar loggers do código para o novo padrão;
  • Ajustar o código da aparição do botão de gerenciar conselheiros para os presidentes na side Bar para evitar código duplicado;
  • Dar feedback quando o Login for mal sucedido;
  • Caso algum campo de busca da escola esteja em branco, mandar escrever que "Não foi encontrado na base de dados.", e não deixar em branco;
  • Desabilitar a opção do menu lateral que pode ser aberto com o gesto de deslizar do canto direito para o esquerdo;
  • Verificar no "Gerenciar Conselheiro" se o usuário que vai aparecer na lista é o presidente ou não, no caso de ser o presidente, ele não deve aparecer;
  • Verificar quais CAEs devem aparecer no cadastro no caso do DF;
  • Padronizar validações para campos em arquivos reutilizáveis;
  • Usar "Promise" para esperar a requisição dos conselheiros na tela de agendamento, travando-a com o "Spin" enquanto a requisição e o ordenação por ordem alfabética não é finalizada @Rdlenke ;
  • Na tela de Agendar Reunião, a localização escolhida deve aparecer como um link que abre o maps do celular do conselheiro na localização escolhida @Miguel-Alves ;
  • No cadastro, no campo de escolher a UF, não pode começar com uma UF padrão, deve-se começar com o campo vazio e um placeholder: "Escolha a UF do seu CAE" @LucasLermen ;
  • Utilizar o Master Token para criar novos grupos ao invés do Token do usuário;
  • Mudar as asyncs para um modelo que esperem a execução das demais funções @Rdlenke @AllanNobre ;
  • (Pós-Release) Ajustar styles para tornar o layout da aplicação mais amigável e padronizado;
  • Ajustar validações na tela de cadastro para aparecer de forma mais amigável @Rdlenke @AllanNobre;
  • Verificar todas as telas que tem campos de preencher dados para limpar os dados dos campos preenchidos caso o usuário saia da tela com o botão de retornar quando for necessário - Deve-se verificar a necessidade de alertá-lo que irá perder os dados ao voltar a tela anterior @AllanNobre @LucasPenido ;
  • Verificar acessos diretos a store devido a problemas com acesso de funções pelas props @LucasPenido @AllanNobre;
  • Quando um relatório é concluído e marcado com o check de concluído, caso algo seja desmarcado, o relatório ainda permanece com o check de concluído, isso deve ser corrigido @AllanNobre @LucasPenido ;
  • Ao sair do fluxo de Agendamento da Visita, os dados devem ser tratados de forma que quando abra a tela novamente para agendar alguma visita, ela esteja limpa @AllanNobre @LucasPenido ;
  • (Pós-Release) Transformar blocos de estilo em componentes;
  • Ajustar visão de validações para o usuário @AllanNobre @Rdlenke ;
  • Utilizar Promise para fazer com que as telas que dependem de respostas assíncronas esperem o carregamento completo para visualizar a informação (Colocar spinning enquanto aguarda o carregamento);
  • Verificar telas que não renderizam novamente corretamente após ações do usuário (Gerenciar Conselheiros) @LucasPenido ;
  • Colocar frases para indicar se uma busca não gerou resultados, como: lista de convidar conselheiros, etc;
  • Refatorar layout da tela de encontrar localização para Reunião @LucasPenido ;
  • Resetar store ao sair da aplicação e resetar os dados da store correspondente a telas que devem perder os dados ao sair destas @LucasPenido @AllanNobre ;
  • Aumentar a cobertura dos testes.
  • Utilizar o pointerEvents nas Views em telas onde há requisições para que o usuário não interaja com a tela enquanto algo estiver carregando. @LucasPenido @AllanNobre;

US16 - Realizar Denúncia

Eu, como conselheiro, desejo realizar uma denúncia para informar aos órgãos fiscalizadores uma irregularidade.

Tasks:

  • Criar botão na Sidebar de realizar denúncia;
  • Ao clicar deve abrir uma tela explicando o procedimento para ser realizar uma denúncia de acordo com a explicação do Cliente:

US19 - Agendar Reunião

Eu, como conselheiro, desejo agendar uma reunião para realizar decisões acerca do CAE.

Tasks:

  • Criar botão na sideBar;
  • Deve seguir a mesma estrutura do Agendamento de Visita;
  • Em vez de escolher uma escola, deve-se escolher uma localização no Maps e armazenar a latitude longitude do local, ou o link referente ao acesso do local (Tomar de exemplo o link que abre o maps no schoolInformation);
    • Caso nada dê certo ao pegar a localização, pode ser um campos de texto para informação em linguagem natural do endereço da Reunião;
  • Deve-se poder convidar somente os conselheiros do CAE do próprio conselheiro;
  • Deve-se criar um campo opcional de Descrição da Reunião;
  • As opções serão: Escolher localização, Data, Hora, Convidar conselheiros, Descrição da Reunião.
  • A reunião só pode ser marcada caso os campos Escolher localização, Data, Hora e Convidar conselheiros estejam preenchidos;
  • Testar;

TS19 - Dar um feedback ao usuário

Eu, como desenvolvedor, desejo dar um feedback ao usuário para informá-lo do resultado obtido em ações tomadas por ele.

Tasks:

  • Verificar todos os locais que necessitam de interação com o usuário;
  • Dar feedback ao usuário em relação as operações que ele realiza, como: cadastro com sucesso ou não, pesquisa que não retorna resultados, alteração do perfil, login incorreto, campos de pesquisa em branco que devem ser preenchidos com valores padrões etc.
  • Verificar personalização do Alert onde for necessário usar;
  • Pode ser interessante utilizar o conceito de Toast em alguns casos. Exemplo: https://github.com/crazycodeboy/react-native-easy-toast
  • Testar.

TS08 - Transferir usuário para Nuvem Cívica

Eu, como desenvolvedor, desejo transferir o cadastro do usuário para Nuvem Cívica para que o Tribunal de Contas de União tenha um controle dos conselheiros cadastrados.

Tasks:

  • Estudar como o usuário é tratado na Nuvem Cívica;
  • Cadastrar usuários na Nuvem Cívica pelo login do aplicativo;
  • Verificar se há a necessidade de passar o usuário pela API;
  • Verificar como ficam os atributos extras na Nuvem Cívica (CAE, CAE_Type, Presidente/Conselheiro, etc), observando a estrutura de perfil;
  • Modificar a estrutura do React para utilizar a Nuvem ao invés da API (Registro, Login, Editar Dados);

US22 - Convidar Agente

Eu, como conselheiro, desejo convidar um agente da vigilância sanitária para auxiliar na realização da fiscalização em uma escola.

  • Estudar como enviar emails utilizando o React Native. Pode ser dentro do aplicativo, ou um aplicativo de e-mail do celular do conselheiro.
  • Abrir e-mail com um texto padrão para que o agente seja convidado.
    • Algo como "Solicito a presença do agente X para a realização da fiscalização no dia D, hora H, na Escola X, localizada no endereço 123. Link do maps, assinatura do conselheiro, etc".
    • É importante verificar se os CAEs pedem um agente aleatório, se mandam e-mail pro órgão como um todo, quais informações ele precisa informar - (PO deve mandar e-mail para a Marcela perguntando sobre como ou o que deve ter nesse e-mail além do padrão, e pra quem deve ser enviado, se terá algum e-mail padrão de agente ou se será aleatório, ou se terá um dropDown de emails para mandar).
  • Permitir que o usuário só convide um agente após selecionar a escola.
  • Enviar o e-mail quando o agendamento for concluído (Caso seja muito complexo, informar durante a Sprint para que soluções sejam encontradas).
  • Quando os dados, o corpo do e-mail e o e-mail para o qual deve ser enviado for definido e confirmado, devem aparecer na tela de Agendamento com a mesma estrutura usada para mostrar os dados da escola.
  • Testar

TS07 - Validar Campos no React

Eu, como desenvolvedor, desejo validar os campos de entrada do aplicativo para impedir erros de entrada.

Tasks:

  • Não permitir a entrada de campos que estejam em formatos incorretos.
  • Informar ao usuário que o campo está incorreto e indicar o formato correto.

TS20 - Organizar as rotas

Eu, como desenvolvedor, desejo organizar as rotas do aplicativo para que o fluxo fique correto.

  • Sobrescrever o método de hardware Back do Android, de maneira que nas telas que são as primeiras folhas (as primeiras telas a partir da Main), o botão chame a função Actions.popTo('mainScreen');
  • Sobrescrever a chamada de função do botão de Back que fica no canto superior esquerdo das telas, para que, nas telas que são as primeiras folhas a partir da Main, o botão chame a função Actions.popTo('mainScreen');
  • Estudar e Aplicar solução a respeito do Actions.pop, para que, onde for necessário, a volta para a página na pilha seja feita de modo que ela seja renderizada novamente (Sugestões, verificar types nas routes, ou Actions.refresh que possa solucionar o problema - https://github.com/aksonov/react-native-router-flux/blob/master/README2.md);
  • Verificar se existem fluxos no aplicação de resultem em loops não tratados por essas implementações anteriores;

US06 - Preencher todos os checklists

Eu, como conselheiro, desejo preencher todos os checklists para que os relatórios da fiscalização possam ser gerados posteriormente em sua completude.

Tasks:

  • Deve-se corrigir o relatório já criado para que siga as regras:
    • Caso o conselheiro não marque a opção, ela deve ser considerada como não fiscalizada (Mesmo que tenha aberto ou não o relatório);
    • As opções possíveis de marcação no relatório devem ser armazenadas na store da melhor forma possível e devem aparecer para o usuário poder marcá-las, também, dá melhor forma (Pode-se usar como base o Material Design);
  • Criar tela para listar os relatórios possíveis de serem feitos;
  • Os relatórios devem ser listados em forma de botões com seus respectivos títulos, onde o conselheiro pode navegar de um relatório a outro sem perder os dados armazenados;
  • Criar todos os 5 checklists restantes para que o conselheiro possa respondê-los;

TS04 - Refatorar Tela de Perfil

Eu, como desenvolvedor, desejo refatorar a Tela de Perfil, para aplicar a folha de estilo ao código.

Tasks:

  • Instalar a dependência no package.json (npm install);

  • Instalar o Plug-in no Atom: Linter-Eslint;

  • Código sem erros com a folha de estilo;

  • Criar o container referente a própria Tela;

  • Refatorar o arquivo App;

  • Refatorar o arquivo Store;

  • Refatorar o arquivo Routes;

US03 - Atualizar Informações de Perfil

Eu, como conselheiro, desejo editar meus dados de perfil para manter minhas informações atualizadas.

Tasks:

  • Fazer comunicação com a API do django, utilizando PUT.
  • Ser capaz de editar o telefone, o email, o nome, ou todos.
  • Receber os dados atualizados do conselheiro.

US18 - Consultar Legislação

Eu, como conselheiro, desejo consultar informações sobre a legislação para verificar quais providencias posso tomar quanto a fiscalização.

Tasks:

  • Deve-se aguardar a Cliente enviar a organização da Legislação que ajudará o conselheiro;
  • Deve-se criar um botão na SideBar que leve para a consulta da Legislação;;

Informações de acordo com a Marcela (Cliente)

Seguem os materiais que devem constar na parte de “legislação/manuais” nas aplicações:

TS01 - Refatorar Tela de Cadastro

Eu, como desenvolvedor, desejo refatorar a Tela de Cadastro, para aplicar a folha de estilo ao código.

Tasks:

  • Instalar a dependência no package.json (npm install);

  • Instalar o Plug-in no Atom: Linter-Eslint;

  • Código sem erros com a folha de estilo;

  • Criar o container referente a própria Tela;

  • Refatorar o Reducer (arquivo counselorReducer).

US01 - Pesquisar Escola

Eu, como conselheiro, desejo pesquisar por escolas para saber quais posso escolher com o objetivo de sediar eventos.

Tasks:

  • Criar a tela principal do aplicativo.
  • Criar side bar.
  • Criar tela para pesquisa de escola, com os campos idênticos ao do Protótipo de Alta Fidelidade.
  • Realizar a comunicação com a API do django.
  • Realizar a comunicação com a API com a Nuvem.
  • Não é possível realizar pesquisas com os dois campos em branco.
  • Mostrar escolas filtrando por nome escrito.
  • Mostrar escolas filtrando por município.
  • Mostrar filtrando pelos dois.
  • O Campo de município deve vir preenchido automaticamente com o do conselheiro, contudo ele pode alterar.

TS15 - Testar Tela de Editar Perfil

Eu, como desenvolvedor, desejo testar a tela de editar perfilpara garantir que ela está livre de erros.

Tasks:

  • As tasks dessa TS foram transferidas para #92;

US02 - Visualizar Informação da Escola

Eu, como conselheiro, desejo visualizar as informações de uma escola para acessar seus relatórios e informações.

Tasks:

  • Criar a tela para visualizar os dados mais relevantes (Nome, Localização, telefone e email da escola);
  • Localização deve ser, no mínimo, um link clicável e abrir no maps ou navegador, a localização da escola;
  • Criar um botão que leva para o histórico de visitas (Ainda não funcional);
  • Criar um botão para iniciar o agendamento de uma visita a partir dessa escola (Ainda não funcional);
  • Pegar o nuvemCode da escola junto com o nome no momento da listagem para que fique mais fácil pegar os dados da escola em telas posteriores;
  • Adicionar UF a pesquisa da Escola;
  • Utilizar somente a Nuvem Cívica, retirando a utilização da API;
  • Testar;

S02 - Estudar Tipos de Testes

Estudar quais são os tipos de teste realizados em React Native/Javascript e definir quais são viáveis de serem realizados no projeto.

Tasks:

  • Conjunto de tipos de teste que podem ser realizados.
  • Demonstrar como realizar os testes do tipo definido.
  • Conversar com o Fábio, pra descobrir informações sobre os testes que ele está realizando.
  • Descobrir como ver a cobertura dos testes do React Native (travis.yml do projeto do Fábio).

US24 - Obter Relatório

Eu, como conselheiro, desejo obter um relatório dos checklists preenchidos para ter um documento formal da fiscalização realizada.

Tasks:

  • Estudar como é possível gerar um PDF utilizando o React ou alguma outra coisa.
  • Dispor os checklists e as observações em um padrão de relatório do conselheiro.
  • Estudar como é possível armazenar o relatório gerado na Nuvem.

US14 - Desativar conselheiros da aplicação

Eu, como presidente, desejo desativar conselheiros da aplicação para remover os conselheiros que não devem mais estar associados ao software.

Tasks:

  • Ao clicar no botão de desvincular Conselheiro, o perfil da nossa aplicação deve ser desassociado da conta da Nuvem do conselheiro, e ele deve desaparecer da lista de conselheiros do CAE;
  • Deve aparecer uma mensagem de confirmação na tela: "Você deseja realmente desassociar esse Conselheiro da Aplicação?";
  • * Ao clicar em Sim deve aparecer uma confirmação na tela caso o conselheiro seja desassociado com sucesso;
  • * Caso dê algum erro ao desassociar o conselheiro, o usuário também deve ser informado;
  • Para realizar essas ações, será usado o token do usuário dono da aplicação na Nuvem, logo deve ser autenticado no código para que o token seja obtido. Contudo, os dados de e-mail e senha do usuário dono da aplicação na Nuvem não podem estar armazenados diretamente no código, pois todos terão acesso, e isso é perigoso, logo deve-se fazer de uma forma que esses dados sejam protegidos de acessos indevidos;
  • O conselheiro deve ser removido do Grupo do CAE na Nuvem;
  • Testar.

OBS: * essas tasks devem seguir o modelo de feedback utilizado na #45.

US05 - Preencher Checklist de Estoque de Alimentos

Eu, como conselheiro, desejo preencher a checklist de estoque de alimentos para que os relatórios da fiscalização possam ser gerados posteriormente.

Tasks:

  • Criar tela da checklist;
  • Criar cada pergunta da checklist e suas possívels opções (sim e não);
  • Escolher melhor forma de armazenar a resposta na store;
  • Indicar quantas telas/perguntas faltam para finalizar aquela checklist.
  • Criar campo opcional de informações extras para a checklist.

US17 - Anexar Arquivo

Eu, como conselheiro, desejo anexar um arquivo à minha denúncia para mostrar a irregularidade que percebi.

Tasks:

  • Deve-se criar um botão que permite anexar um arquivo tanto na tela da lista de de relatórios, no momento da fiscalização, quanto na tela de denuncia;
  • Deve-se verificar como armazenar uma imagem na nuvem cívica para o anexo na tela de fiscalização;
  • Deve-se manter o arquivo anexado somente até o envio do e-mail de denuncia;

US23 - Convidar Conselheiro

Eu, como conselheiro, desejo convidar outro(s) conselheiro(s) para realizarem à visita à escola comigo.

Tasks:

  • Deve-se abrir um Pop-Up com uma lista dos conselheiros do CAE do autor do agendamento (Caso o POP-Up fique muito complexo, verificar com o ProductOwner a criação de uma tela);
  • Cada conselheiro deve aparecer na lista de uma forma default e quando for selecionado de alguma forma pelo autor do agendamento, deve ficar marcado;
  • Quando todos os conselheiros convidados forem marcados na lista, o conselheiro - autor do agendamento - terá a opção de cancelar ou confirmar;
  • Após os conselheiros serem convidados, eles devem aparecer como uma lista na tela de Agendamento, para indicar quais foram escolhidos (Usar mesma estrutura de aparição dos dados da escola);
  • Ao enviar a postagem para ser salva com os dados dos convidados, deve-se armazenar o ID deles com uma variável booleana que indicará se o conselheiro convidado confirmou ou não a presença.

US07 - Acessar lista de todos conselheiros do meu CAE

Eu, como presidente, desejo acessar a lista com todos os conselheiros relacionados ao meu CAE para saber quais deles devem ser gerenciados.

Tasks:

  • Estudar como funciona a estrutura de grupos da nuvem cívica e avaliar se é possível.
  • Criar tela e botão na sidebar para que o presidente possa ter acesso a tela de gerência.
    • Somente o Presidente pode ver esse botão;
  • Utilizar sistema de grupos da Nuvem Cívica para organizar os conselheiros por CAE.
  • A lista deve ter o nome do conselheiro, o cpf e o telefone,
  • Testar.

S01 - Estudar Testes

Estudar a respeito da aplicação de testes em React Native - prioritariamente Testes Unitários - utilizando a ferramenta JEST.

Tasks:

  • Apresentar teste feito de alguma parte do código já concluído na Release 1.

TS21 - Testar Containers

Eu, como desenvolvedor, desejo testar os containers do aplicativo para garantir que eles estão livres de erros.

Tasks:

  • Os containers são testados junto com as suas respectivas telas;

TS02 - Refatorar Tela de Login

Eu, como desenvolvedor, desejo refatorar a Tela de Login, para aplicar a folha de estilo ao código.

Tasks:

  • Instalar a dependência no package.json (npm install);

  • Instalar o Plug-in no Atom: Linter-Eslint;

  • Código sem erros com a folha de estilo;

  • Criar o container referente a própria Tela;

TS11 - Testar Tela de Cadastro

Eu, como desenvolvedor, desejo testar a tela de cadastro para garantir que ela está livre de erros.

Tasks:

  • Tela de Cadastro totalmente testado.

TS10 - Testar Reducer do Conselheiro

Eu, como desenvolvedor, desejo testar o reducer do conselheiro para garantir que ele está livre de erros.

Tasks:

  • Reducer totalmente testado.

TS05 - Refatorar tela de Atualizar Informações

Eu, como desenvolvedor, desejo refatorar a Tela de Alterar Dados, para aplicar a folha de estilo ao código.

Tasks:

  • Instalar a dependência no package.json (npm install);

  • Instalar o Plug-in no Atom: Linter-Eslint;

  • Código sem erros com a folha de estilo;

  • Criar o container referente a própria Tela;

US21 - Consultar Reunião

Eu, como conselheiro, desejo consultar uma reunião marcada para saber suas informações.

Tasks:

  • Ao clicar no botão da sideBar "Notificações" será aberta uma tela com dois botões, a tela criada nessa história deverá ser aberta ao clicar no botão "Convites de Reuniões", que será criado na História #95 ;
  • Deve-se seguir o modelo da tela de Notificações referentes a Visitas feita na História #95;
  • Só devem aparecer as notificações na tela correspondentes a reuniões que ainda estão pra acontecer;
    • Exemplo: Hoje é dia 12/04/17. Reuniões para até o dia 11/04/17 devem aparecer, depois disso, não aparecem mais.
  • Deve ser possível abrir a localização da reunião no maps, assim como acontece nas informações da escola;
  • Deve-se ter um botão (+ Informações) para cada reunião para acessar as informações completas da reunião e os convidados para esta reunião em questão;
  • Testar;

TS03 - Refatorar Tela Inicial

Eu, como desenvolvedor, desejo refatorar a Tela Principal, para aplicar a folha de estilo ao código.

Tasks:

  • Instalar a dependência no package.json (npm install);

  • Instalar o Plug-in no Atom: Linter-Eslint;

  • Código sem erros com a folha de estilo;

  • Criar o container referente a própria Tela;

  • Refatorar as Actions (counselorActions).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.