Projeto ainda em desenvolvimento!
Este projeto se trata de uma reescrita do Cuidando do Meu Bairro, que busca mapear a execução do orçamento municipal de São Paulo, não só em regiões, mas também colocando um ponto no mapa para cada despesa.
Como os dados que pegamos da prefeitura não têm as latitudes e longitudes de cada despesa (no máximo algumas tem a região a que se destinam), tentamos mapeá-las procurando automaticamente por endereços nos textos das descrições dessas despesas. Para isso usamos expressões regulares. Uma vez extraídos esses endereços usamos serviços como Open Street Maps ou Google Maps para obter suas latitudes e longitudes e então, finalmente, colocá-los em um mapa. Porém, esse processo não é perfeito, e muitas despesas não são mapeadas, ou acabam exibidas no local errado...
Nessa segunda versão do Cuidando, pretendemos melhorar aquilo que o ele já fazia e adicionar novas funcionalidades.
Abaixo estão representados os diversos módulos nos quais esse projeto se baseia:
As setas avermelhadas indicam conexões em que as escritas provavelmente necessitarão de um token.
Linkando para os respectivos repositórios:
- Gastos Abertos: Geolocalização e fornecimento dos dados de execução orçamentária. (endpoint)
- Vira-Lata: Autenticação via token (usados para acessar os outros serviços) e informações sobre o usuário. (endpoint)
- Tagarela: Comentários. (endpoint)
- EsicLivre: Interface com eSIC para a realização de pedidos de informação. (endpoint - ainda não online)
Para instalar todos os repositórios necessários para executar esse projeto, há um shell script "guia" aqui.
Caso só queira instalar esse repositório, clone-o e rode dentro dele:
$ npm i
Depois configure um src/config.js
.
Para rodar o site:
$ npm run dev
Depois acesse localhost:5001
em um navegador. Se quiser que o código atualize automaticamente conforme editar os arquivos, acesse localhost:5001/webpack-dev-server/
.
Como o esse projeto depende de vários micro serviços, sugiro que você tenha um script para rodar todos eles quando quiser. Há um exemplo aqui.
Para compilar o site para produção, rode:
$ npm run dist
Caso queira usar um arquivo de configuração diferente do config.js
, por exemplo um config_prod.js
, passe a especificação desse arquivo através da variável de ambiente CONFIG_FILE_ENV
. Para o arquivo config_prod.js
ela deveria ser ajustada para prod
. A seguinte linha rodaria o site localmente, mas usando a configuração de produção:
$ CONFIG_FILE_ENV=prod npm run dev
O site compilado (estático, com JS minificado etc) deverá estar na pasta build
.
Você pode testá-lo entrando na pasta, servindo-o com o comando a seguir e abrindo o endereço em um navegador:
$ npm run viewdist
- localStorage: IE8+
- history: IE10+ (suporte manual minimamente implementado)
- Muitos outros...
A estrutura do código foi inspirada em: https://github.com/txchen/feplay/tree/gh-pages/riot_webpack