Skip to content

ETL do resultado final do Concurso do Banco do Brasil de 2022.

Notifications You must be signed in to change notification settings

calilisantos/concurso_bb_2022

Repository files navigation

Boas vindas ao Levantamento dos resultados do Concurso do Banco do Brasil 2022!

Para executar o projeto, observe as orientações descritas a seguir, e se tiver qualquer dúvida, sugestão, contribuição, considere abrir uma issue ou entrar em contato. 🚀

Aqui você vai encontrar os detalhes de como está estruturado e foi desenvolvido o levantamento.

Desenvolvimento

Objetivo

O objetivo é fazer a extração e tratamento dos dados do resultado final do concurso para o cargo de Agente Comercial, um arquivo pdf, limpando e transformando os dados em csv, gerando interface de visualização através do pivottablejs e habilitando análise dos dados com algumas funções de análise pré definidas.

Para isso, foi consultado no site da Cesgranrio, banca organizadora do concurso, o resultado final divulgado em 14 de julho de 2023 (TAC - Agente Comercial).


Estrutura do projeto
  • Na pasta src estão os diretórios:
    • data com o arquivo de origem dos dados do resultado do concurso.
    • notebooks com os notebooks que executam a extração, tratamento e disponibilização dos dados trabalhados (transformation), e o código que constrói algumas funções pré definidas para análise descritiva dos dados (analysis).
  • Na pasta views estão os arquivos:

Tecnologias utilizadas

O projeto foi desenvolvido em Python, com o script de ETL construído em Jupyter Notebook através da extensão Jupyter do Vs Code*.

Para o processamento dos dados, essas foram as bibliotecas utilizadas:

  • Pandas:
    • Ferramenta open source focada na facilidade para manipulação e análise de dados, totalmente integrada com a linguagem python
  • Pivot Table JS:
    • Módulo usado no jupyter notebook que cria uma interface gráfica para manipulação e criação de visualizações à partir de tabelas dinâmicas.
  • Plotly:
    • Biblioteca python para construção de gráficos interativos e de qualidade.
  • Tabula:
    • É uma pacote que adapta para o python a biblioteca tabula-java, usado na leitura de tabelas PDF, convertendo-as por padrão em dataframes pandas.

*No arquivo de dependências dev-requirements.txt é listada a versão compatível com o projeto da biblioteca jupyter. Caso prefira executar o projeto localmente, apague a hashtag (#) em #jupyter==1.0.0 antes da instalação das dependências demonstrada abaixo.


Orientações

Requisitos para execução

É necessária a instalação prévia do python e do gerenciador de pacotes pip para os passos a seguir.

O projeto foi construído com o python na versão 3.8, porém não se espera indisponibilidades da sua execução em versões posteriores nem à partir da versão 3.4. Qualquer incompatibilidade com a versão da sua máquina por favor informe.

Construindo um ambiente Python

Para controlar o impacto da instalação das dependências do projeto, recomenda-se fortemente a construção de um ambiente python, que encapsula as instalações feitas.

Com o python instalado na sua máquina, abra o terminal dentro da pasta clonada do projeto concurso_bb_2022, e execute o seguinte comando:

python3 -m venv concurso_bb_2022

Para ativar o ambiente no terminal, execute o seguinte comando:

source concurso_bb_2022/bin/activate (para terminal Linux ou Mac)

ou

source concurso_bb_2022\bin\activate (para terminal Windows)


Instalando as dependências do projeto

O arquivo dev-requirements lista as dependências utilizadas na construção desse projeto (versões das bibliotecas) e que devem ser instaladas para execução do código. Tendo o python e o pacote pip instalado na sua máquina, e após a ativação do ambiente python caso tenha feito, na pasta concurso_bb_2022 que é resultado do clone do repositório, execute o seguinte comando:

pip install -r dev-requirements.txt

Com a instalação feita, é possível executar o notebook de análise para gerar as estatísticas do seu interesse.


Implementações

Consumindo os dados transformados

Como resultado da transformação, são gerados os arquivos bb_2023_report.csv e bb_2023_views.html que tem respectivamente os dados limpos e uma interface gráfica para exploração dos resultados.

Ps: O arquivo bb_2023_report.csv é separado por ponto e vírgula ( ; ). Considere essa estrutura para consumo do arquivo.


Utilizando funções de análise pré-definidas

O notebook analysis.ipynb implementa funções de análise descritiva dos dados e exemplifica seu uso.

A descrição das funções são apresentadas abaixo:

  • Análise dos dados:

    • Imagem 01 - Estatísticas por coluna. column_stats_by_uf

    • Imagem 02 - Estatísticas por estado. uf_stats

    • Imagem 03 - Estatísticas por região. region_stats

  • Visualização dos dados:

    • Imagem 04 - Visualização por coluna. column_histogram

    • Imagem 05 - Visualização por estado. uf_histogram

    • Imagem 06 - Visualização por região. region_histogram

Próximos passos

As features mapeadas são:

  • Adotar o paradigma POO para processamento dos dados coletados, utilizando o TDD para garantir o design da aplicação;

  • Construir uma esteira de CI/CD para garantir a governança das implementações do projeto;

  • Orquestrar o ambiente com Kubernetes, garantido a escala e disponibilidade da execução do projeto para qualquer usuário.


About

ETL do resultado final do Concurso do Banco do Brasil de 2022.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published