Giter Site home page Giter Site logo

fga-eps-mds / 2017.2-querocultura Goto Github PK

View Code? Open in Web Editor NEW
15.0 22.0 11.0 5.95 MB

Projeto para Web Monitoramento de indicadores culturais da plataforma Mapas Culturais do Ministério da Cultura do Brasil, desenvolvido por alunos da Universidade de Brasília do curso de Engenharia de Software.

License: GNU General Public License v3.0

Python 55.77% CSS 24.18% JavaScript 14.38% HTML 5.33% Shell 0.10% Makefile 0.25%
python3 mapas-culturais quero-cultura indicadores data-visualization django

2017.2-querocultura's Introduction

O Projeto Quero Cultura

Build Status Code Health Code Climate Coverage Status AUR

O projeto Quero Cultura surgiu de uma demanda por visualização de dados do Ministério da Cultura (MinC) por meio do Mapas Culturais. O Mapas Culturais é um software livre para mapeamento colaborativo e gestão da cultura. O Quero Cultura tem como objetivos a visualização dos dados de eventos, projetos e espaços culturais e o relacionamento dos mesmos por meio de indicadores.

O repositório é mantido e gerenciado por alunos de Engenharia de Software da Universidade de Brasília no campus Gama (UnB/FGA). A equipe de alunos é reponsável pela ordem do repositório e compromente-se a ajudar e orientar a todos que desejam contribuir. Caso possua interesse, consulte nossas políticas. Dúvidas ou sugestões devem ser encaminhada aos gestores do projeto.

Ambiente de Desenvolvimento

O Quero Cultura utiliza a plataforma Docker para isolamento, criação e automação do ambiente de desenvolvimento para evitar problemas de compatibilidade. Os passos abaixo podem ser seguidos para executar a aplicação usando a plataforma:

  1. Instale o docker
  2. Instale o docker compose
  3. Clone o repositório usando o comando:
git clone https://github.com/fga-gpp-mds/2017.2-QueroCultura
  1. Crie e inicie os containers para os serviços:
docker-compose up
  1. Acesse a aplicação na porta 80 do seu localhost: http://localhost
  2. Obs: Modifique as chaves e senhas dos bancos de dados ao iniciar o sistema em produção. A chave do Django está localizada em quero_cultura/settings.py, a chave do Metabase está localizada em quero_cultura/views.py e as senhas dos bancos estão localizdas no arquivo docker-compose.yml

Mais informações

Informações adicionais podem ser obtidas consultando os links abaixo.

Licença

GNU General Public License v3.0

2017.2-querocultura's People

Contributors

caiooliv avatar cjjcastro avatar iagoneres100 avatar igorveludo2 avatar jefersonalves avatar josutk avatar lucassiqz avatar lukassxp avatar matheus-rn avatar pablodiegoss avatar rodrigocam avatar victorcmoura avatar

Stargazers

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

Watchers

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

2017.2-querocultura's Issues

TS03 - Pegar a cobertura de todo o código

Eu como desenvolvedor, desejo garantir que a cobertura de teste alcance todo o código

responsaveis : @pablodiegoss @IgorVeludo

Critérios de Aceitação :

Pegar a cobertura de testes de todo o código que não está sendo contabilizado na cobertura

US25 - Gráficos complexos do metabase

Eu como usuário, desejo gráficos mais complexos dos dados disponibilizados pelo nosso banco de dados através das APIs do Mapa Cultura.

  • Gráficos de Eventos por linguagem serem quantitativos e não porcentagem
  • Atualizar Gráfico de Faixa etária para classificação indicativa
  • Gráfico gerado por SQL que mostre o crescimento cumulativo de todas as instâncias de forma individual.
  • Gerar gráficos de indicadores mistos para o Metabase através de SQLs

TS29 - Refatorar informações dos gráficos

Eu como usuário, desejo ter informações corretas e coerentes nos gráficos apresentados.

  • Corrigir 'no results'
  • Traduzir urls para o português
  • Refatorar números apresentados pelo metabase

Identificação de atualizações do Feed

O feed está identificando marcadores através do ID, porém, os ID's se repetem entre instâncias não conectadas: São Paulo, Mapa nas Nuvens...
A identificação deve ser feita utilizando mais critérios do que apenas o ID para evitar que atualizações novas não sejam exibidas por terem o mesmo ID que outro marcador que já está sendo exibido.

Feedback - melhorias

Tem boas evidencias da aplicação da metodologia ágil. A organização das issues está ótima! Algumas melhorias são sugeridas

  • Melhorar a distribuição dos commits. Está bastante desnivelado. Alguns membros não tem commits na R2, e há grande discrepância entre os comitters. Faz parte das práticas ágeis garantir que a equipe possa ser auto-organizável. Se não há nivelamento de conhecimento técnico, nem das habilidades/competências necessárias para execução da metodologia, o auto-gerenciamento/auto-organização não é possível

  • Melhorar a comunicação nas issues e nos pull-request. A comunicação deve ser concentrada no próprio repositório para evidenciar troca de conhecimento, e evidenciar as análises feitas. Essa prática ágil e de comunidades de software livre deve ser exercitada no projeto.

  • O repositório atende a maioria das recomendações de software livre. Porém, vale refatorar o README e verificar as demais recomendações. Checklist:
    https://github.com/fga-gpp-mds/2017.2-QueroCultura/community
    https://opensource.guide/starting-a-project/

  • A wiki está bem desatualizada. Falta incluir as métricas de código, outros indicadores e fazer a análise dos indicadores e métricas referentes a uma sprint. A atualização dá transparência ao ciclo de vida de projeto, além de facilitar a tomada de decisão (uma vez que todos os indicadores e métricas podem ser analisados de uma só vez)

  • Falta o roadmap da R2

  • Gere pré releases ao final de cada sprint. Registre quais foram as histórias/features entregues, quais os bugs e pontos de melhorias encontradas. Além de ser um resumo da sprint, dá transparência às entregas.

US 22 - Utilizar o Metabase para geração dos Indicadores

Eu como usuário, desejo que os gráficos exibidos para os indicadores da aplicação sejam gerados utilizando o Metabase, para melhor visualização e flexibilidade dos indicadores exibidos. Assim como foi feito com os indicadores de Espaços da plataforma Mapas Culturais.

  • Utilizar o Metabase seguindo o padrão implementado nos espaços.
  • Verificar se os dados estão sendo inseridos no banco de forma correta ( sem duplicação/redundância de dados)
  • Gráficos com dados ordenados quando possível.
  • Gráficos de cada categoria em dashboards diferentes.
  • Resolved #66

US19 - Refatorar acesso a Bibliotecas e Museus

Eu como usuário desejo que o acesso aos museus e bibliotecas seja feito através da API do mapas e das outras instâncias, não utilizando o link de museus e bibliotecas direto para maior clareza da aplicação.

  • Fazer mock dos dados da API

US15 - Indicadores de Projeto

Eu como usuário, desejo visualizar indicadores para os dados de Projetos da plataforma mapas culturais.

  • Utilizar o arquivo YAML pra obter os links para as APIs
  • Deve-se utilizar os métodos do ChartJS do app quero_cultura para exibir os gráficos e dados
  • Os dados exibidos devem estar ordenados, filtrados e de forma sucinta.

Melhorar Trava de tela no Mapa

A trava de tela do mapa está atrapalhando a utilização pelo usuário, onde, por exemplo, caso o zoom esteja suficiente para visualizar o país completamente, não é possível centralizar a tela em São Paulo, sendo sempre resetado para uma posição centralizada no país todo.
A trava não está permitindo estas movimentações dentro do próprio país com o zoom diminuído.

Nginx Cache

Utilizar o Nginx como cache para as requisições da aplicação, diminuindo o impacto nos servidores utilizando menos requisições e sob demanda

US02 - Filtros para Visualização de marcadores

Eu como cidadão, desejo ter filtros para visualizar edições de uma categoria específica de marcador.

Responsáveis: @cjjcastro @rodrigocam

Critérios de aceitação:

  • Exibir por tipo de marcador
  • Especificar horário de atualização nos marcadores
  • Multiplos filtros ao mesmo tempo
  • Filtro de tempo de atualização

US10 - Extrair Indicadores culturais de Bibliotecas [Backend]

Eu como sistema desejo criar indicadores culturais sobre as bibliotecas cadastradas na plataforma dos mapas culturais e suas instâncias.

  • Os indicadores criados não devem ser globais (comparativos entre instâncias)
  • Os indicadores devem englobar os dados de todas as instâncias.
  • #29

US03 - Feed de Marcadores

Eu como cidadão, desejo ter um feed que mostre atualizações em tempo real dos marcadores que estão sendo exibidos

Responsáveis: @hugonxc , @pablodiegoss

Critérios de aceitação:

  • Feed na lateral mostrando as atualizações recentes de marcadores
  • Adaptável aos filtros de exibição
  • Opção de ocultar
  • Informar horário, tipo do marcador e existir link para o marcador

US04 - Tour do Site

Eu como cidadão, desejo ter um tour com mais dinamicidade, que não seja apenas um botão de next, mas indique os botões e funcionalidades.

Responsáveis: @caiooliv, @m7rodrigues

Critérios de aceitação:

  • As funcionalidades devem executadas durante o tour
  • Pouco texto e mais imagens e indicações.

Incluir filtro de janela temporal para tela de indicadores

Eu como gestor gostaria de poder analisar os gráficos e demais indicadores para um determinado período temporal onde eu defino os dias inicial e final.

Incluir também um valor padrão. Sugestão: início com valor de um ano atrás; e final com a data de agora.

US17 Microserviço para queries

Eu como sistema desejo diminuir o impacto das requisições da aplicação nos servidores das instâncias do Mapas Culturais.

  • Utilizar Varnish no projeto ou similar para criar Cache de requisições.

Varnish cache

Utilizar um microserviço Varnish para criação de um cache entre a aplicação e os servidores do Mapas Culturais, diminuindo a frequência e quantidade de requisições.

Marcadores que param de piscar no Mapa

Alguns marcadores recentes (no prazo de 1 hora, que deveriam estar piscando) parecem parar de piscar após alguns segundos na tela. É necessário conferir os dados recebidos pela aplicação e os dados na API pra garantir que isso não é um bug e são apenas marcadores que passaram de 1h desde sua edição.

US06 - Extrair Indicadores Culturais de Agentes [Backend]

Eu como usuário desejo visualizar indicadores culturais sobre os agentes cadastrados na plataforma dos mapas culturais e suas instâncias.

  • Os indicadores criados não devem ser globais (comparativos entre instâncias)
  • A implementação (de pelo menos um indicador) deve abranger todos os níveis da arquitetura
  • Utilizar dados diversos (tags, descrição, área, gênero do agente, etc)

US20 - Criar Documentação para o BD e sua Arquitetura

Eu como usuário desejo uma documentação detalhada da arquitetura do banco, sua utilização e funcionamento na aplicação para que seja possível continuar o trabalho futuramente com manutenções, evoluções e possíveis integrações com as outras aplicações do MinC.

US23 - Incluir endereço das outras instâncias rodando Mapas Culturais

US26 - Nginx container

Eu como usuário, desejo que o metabase esteja acessivel através da URL do quero cultura, sendo necessário um container Nginx para que ambos Metabase e QueroCultura estejam na porta 80 e sejam redirecionados individualmente através da URL.

  • Os gráficos do QueroCultura.lab não tenham problemas para serem exibidos em computadores com a porta 3000 bloqueada.

US09 - Extrair Indicadores Culturais de Eventos [Backend]

Eu como sistema desejo criar indicadores culturais sobre os eventos cadastrados na plataforma dos mapas culturais e suas instâncias.

  • Os indicadores criados não devem ser globais (comparativos entre instâncias)
  • Os indicadores devem englobar os dados de todas as instâncias.
  • #29

US18 - Desenvolver indicadores de Espaço na plataforma Metabase

Esta issue é uma sugestão de mudança arquitetural para utilização da plataforma Metabase para produção dos paineis de indicadores. O Metabse é um software livre, ao estilo BI para produção de visualizações dinâmicas, que possibilita a construção de gráficos de maneira visual e componentizada.

No caso ele pode ser conectado diretamente ao MongoDB para geração dinâmica das visualizações.

No MinC estamos experimentando o Metabase há algumas semanas. Temos uma instância em http://metabase.lab.cultura.gov.br/
Um exemplo de uso simples é este painel que conheci ontem: https://meta.mostre.me/public/dashboard/af26d09e-2994-4e39-8593-49e8a87fe5f5

Na perspectiva acadêmica, vale essa empreitada.

US27 - Melhorar usabilidade da plataforma

Eu como usuário, desejo que realizem as melhorias propostas para a plataforma, melhorando a usabilidade da mesma

Critérios de Aceitação

  • #38
  • #58
  • #57
  • Ser possível selecionar o intervalo de tempo das edições exibidas no mapa
  • Responsividade da tela de gráficos
  • Responsividade do tour

TS 21 - Incluir cache no carregamento do Mapa de atividades

O carregamento do mapa dispara consultas para API de todas as instâncias listadas como fontes dos dados, isso se tornará um problema enorme com a popularidade da ferramenta. A solução é fazer cache no servidor e enviar o pacote de dados consolidado para o App.

US05 - Refatorar Requisições do Mapa

Eu como sistema desejo realizar menos requisições e aproveitar melhor os dados requisitados, para diminuir o impacto aos servidores.

  • Cache que armazene as informações por um minuto
  • Apresentar no mapa simulando em tempo real os dados do último minuto

Dar zoom no mapa ao clicar em uma atualização no feed

Eu como usuário, desejo poder saber a localização de uma atualização que surgiu no feed, de forma que clicando sobre ela, o mapa guie para a localização ou indique de alguma forma onde está aquela nova atualização.

  • Movimentação do mapa ou indicação visual para o ponto clicado no feed

US07 - Integração com o Jenkins

Eu como usuário desejo ter a aplicação com deploy contínuo utilizando a ferramenta Jenkins, para permitir o acesso a aplicação via servidores do Ministério de Cultura.

  • A aplicação deve estar sendo continuamente publicada nos servidores do MinC

US14- Relacionar o Link dos marcadores com suas respectivas Instâncias

Atualmente os links dos marcadores redirecionam para a página das APIs gerais. Um marcador de projeto que foi obtido através do MapasCulturais central, irá ser referenciado sempre para o site mapas.cultura.gov.br e não para sua instância onde foi cadastrado.
Utilizando informações da API de um marcador é possível redirecionar para a instância específica onde este marcador foi criado, tendo então por exemplo:
ao invés de: http://mapas.cultura.gov.br/agente/24346/
o link: http://laguna.sc.mapas.cultura.gov.br/agente/24346/

TS28 - Aumentar a segurança das informações

Eu como desenvolvedor, desejo que informações de senha e variáveis de ambiente sejam ocultados e externalizados em um arquivo de configuração.

  • Externalizar variáveis de ambiente para aquivos .env
  • Ocultar senhas e chaves

US 24 - Refatorar página de indicadores

Eu como usuário, desejo uma prévisualização dos indicadores e gráficos antes de escolher algo específico para visualizar.

  • Semelhante a página de informações da Block Chain
  • Utilizar como exemplo os indicadores de Espaço que já estão implementados utilizando metabase
  • Todas as páginas de indicadores devem seguir este novo modelo, evitando repetição de código.
  • Linkar os gráficos utilizando a URL da página: querocultura.lab.gov.br/space_indicators/graphic_1

Caso os gráficos do ChartJS não se adaptem a nova proposta de layout, podem ser removidos pois estão sendo construidos no metabase por outro pareamento.

TS02 - Refatorar interface do Mapa

Eu como desenvolvedor, desejo refatorar as requisições para melhor manutenibilidade do código.

responsaveis : @cjjcastro, @Jefersonalves

  • Ajustar paleta de cor responsiva(day/night)
  • Estabelecer web tour no primeiro acesso
  • Remover bugs na navegação no mapa

US16 - Filtros de gráficos dos Indicadores

Eu como usuário, desejo ter a possibilidade de filtrar os gráficos exibidos por instância, para que seja possível análisar diferenças entre os dados contidos nelas.

  • Ordenar os dados exibidos nos indicadores existentes
  • Remover as cores dos gráficos existentes ou deixar mais sóbrio
  • Agrupar categorias com poucos dados somando os valores e chamando de "outros"
  • Seja possível visualizar os dados de uma instância específica

TS04 - Testar Mapa

Eu como desenvolvedor , desejo testar o mapa, para garantir a qualidade do código

responsáveis: @hugonxc @m7rodrigues @caiooliv

Critérios de Aceitação :

  • Melhorar os testes já existentes
  • Cobertura do teste no mapa em 90%
  • Configurar ferramenta de cobertura
  • Criar integração com o Travis CI para execução dos testes

US01 - Mapa Multi-instância

Eu como cidadão, desejo visualizar edições que acontecem em várias instâncias do mapas culturais.

Responsáveis: @Jefersonalves, @lukassxp

Critérios de Aceitação:

  • Visualização de pelomenos da base nacional, de São paulo e Ceará
  • Verificar se existe duplicidade entre pontos

US13 - Indicadores de Museus

Eu como usuário, desejo visualizar indicadores para os dados de Museus da plataforma mapas culturais.

  • Utilizar o arquivo YAML pra obter os links para as APIs
  • Incluir os indicadores de Museus na atual aba de biblioteca, que deve ser renomeada para Museus e exibir indicadores de ambos.
  • Refazer a requisição de Museus para não utilizar o link direto de Museus
  • Refazer a requisição de Biblioteca para não utilizar o link direto de Bibliotecas
  • Fazer mock dos dados da API

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.