Skip to content

Repositório para TCC - EACH - Cuidando do Meu Bairro 2.1

Notifications You must be signed in to change notification settings

jrafaelrn/cuidandomeubairro

Repository files navigation

Cuidando do Meu Bairro 2.1

Repositório para TCC - EACH-USP

❓ O que faz esse projeto?

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.


📝 Como foi feito?

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:
      1. Atualização da versão do node para 12
      2. Adição do pacote leaflet na versão 1.7.1

🕙 O que preciso fazer antes de iniciar o projeto?

Requisitos mínimos:

  • Docker e Docker Compose
  • 10 GB de espaço livre em disco
  • Tempo...

▶️ E para executar?

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

🤔 E agora?

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étodo run_city())
  • frontend: executa o VueJS, que é o front-end do CMB.

✅ Se você deu sorte, então...

Acesse o endereço http://localhost:8080 no seu navegador e veja o CMB em ação!

💻 E se eu quiser desenvolver/debugar?

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.

About

Repositório para TCC - EACH - Cuidando do Meu Bairro 2.1

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published