Repositório para TCC - EACH-USP
Adiciona os dados do Tribunal de Contas do Estado de São Paulo (TCESP) relativos ao ano de 2.023 ao projeto Cuidando do Meu Bairro (CMB) 2.0, permitindo a visualização no mapa das despesas públicas de diversos municípios do estado.
Para o back-end foi desenvolvido um script em Python que faz o download deste arquivo de dados CSV do TCESP, processa-o e em seguida envia as informações para um banco de dados, que é utilizado pelo front-end.
Esse script é executado automaticamente dentro de um container Docker e pode ser encontrado aqui.
O front-end foi adaptado a partir dos seguintes repositórios:
- Projeto base do CMB disponível no GitLab com os principais elementos da página, com o objetivo de manter a experiência de uso próxima à plataforma do CMB já existente.
- Atualização de pacotes e script de execução desenvolvido por Silas B. Reis e disponível no GitLab através da branch
projeto-executavel
.- A partir desse script de execução, foram realizadas 2 alterações:
- Atualização da versão do
node
para 12 - Adição do pacote
leaflet
na versão 1.7.1
- Atualização da versão do
- A partir desse script de execução, foram realizadas 2 alterações:
Requisitos mínimos:
- Docker e Docker Compose
- 10 GB de espaço livre em disco
Tempo...
Clone o repositório:
git clone https://github.com/jrafaelrn/cuidandomeubairro.git
Acesse a pasta do projeto:
cd cuidandomeubairro
Atualize as variáveis de ambiente no arquivo .env
Para dúvidas em como obter as chaves de API do Telegram, consulte a documentação oficial clicando aqui.
Execute o comando:
docker-compose up
Os seguintes containers serão executados:
database
: cria um banco de dados PostgreSQL e executar o script de criação das tabelas.graphql
: cria um servidor GraphQL para o backend.nominatim
: cria um servidor Nominatim para o backend, que é utilizado para converter endereços em coordenadas geográficas.- A primeira vez que este container for executado ele irá baixar os dados do OpenStreetMap, o que pode demorar mais de 2..3...60 horas, dependendo da sua conexão com a internet e do seu computador.
backend
: executa o script de ETL que:- Procura por scripts na pasta scripts
- Em cada script ele executa o método
run()
que:- Realiza o download do arquivo de dados (nesse caso, do TCESP, com cerca de 1,2GB em set/23)
- Descompacta o arquivo (gerando um arquivo CSV com cerca de 7,8GB)
- Separa os arquivos por município
- Chama o método
run_multiprocessing()
que executa de forma paralela o processo de ETL de cada município (métodorun_city()
)
frontend
: executa o VueJS, que é o front-end do CMB.
Acesse o endereço http://localhost:8080 no seu navegador e veja o CMB em ação!
Para isso foi criado o arquivo devcontainer.json, que serve como base para o VS Code criar todo o ambiente de desenvolvimento e ser executado a partir do container Docker.
Por padrão, o VS Code abre o projeto do front-end, mas isso pode ser alterado no arquivo devcontainer.json na propriedade service
.
Para mais informações, confira a documentação oficial clicando aqui.