Skip to content

Coleta e tratamento dos recursos (em valores) disponíveis para os ODS e criação de dashboard com a linguagem de programação python.

License

Notifications You must be signed in to change notification settings

microrepar/open-data-day-2024

Repository files navigation

Open Data Day - 2024

Oficina

Descrição

Oficina de dados para coleta e tratamento dos recursos disponíveis, em valores, a serem distribuídos entre os Objetivos de Desenvolvimento Sustentáveis (ODS), apoiado pelas Nações Unidas. Criação de dashboard com a linguagem de programação python e publicação do app na Cloud.

Fonte dos dados: https://brasil.un.org/pt-br/sdgs

Hands-On

  • Criação do ambiente de desenvolvimento nas Nuvens.

  • Construção de um dashboard com Python.

  • Publicação do dashboard em um servidor Cloud.

Pré-requisitos

Serão necessários as seguintes ferramentas para execução do projeto:

  • Visual Studio Code (VS Code) - é um editor de código-fonte desenvolvido pela Microsoft para Windows, Linux e macOS. Ele inclui suporte para depuração, controle de versionamento Git incorporado, realce de sintaxe, complementação inteligente de código, snippets e refatoração de código. Além disso, é customizável, permitindo que os usuários possam mudar o tema do editor e teclas de atalho de suas preferências.

  • Python 3.11 - é uma linguagem de programação de alto nível, interpretada, de script, imperativa, orientada a objetos, funcional, de tipagem dinâmica e forte. É frequentemente usada para desenvolvimento web, análise de dados, aprendizado de máquina, inteligência artificial, computação científica, entre outros. É conhecida por sua sintaxe clara e legível.

  • pipx - é uma ferramenta que facilita a instalação de aplicativos Python isolados, usando o PyPI como índice de pacotes. Ele é semelhante ao pip, que é um instalador de pacotes Python para bibliotecas e aplicativos. No entanto, o pipx é feito especificamente para aplicativos, criando um ambiente isolado para cada aplicativo e suas dependências.

  • Poetry - é uma ferramenta para gerenciar dependências em projetos Python. Ele simplifica o gerenciamento de dependências e garante a reprodutibilidade do ambiente de desenvolvimento. Com o Poetry, é fácil adicionar, atualizar e remover dependências, bem como criar e gerenciar ambientes virtuais de desenvolvimento.

  • Git - é um sistema de controle de versão moderno e amplamente utilizado, desenvolvido em 2005 por Linus Torvalds, o famoso criador do kernel do sistema operacional Linux. Ele é usado para controlar o histórico de alterações de arquivos, principalmente de projetos de desenvolvimento de software.

  • Conta no GitHub - é uma plataforma de hospedagem de código-fonte que utiliza o sistema de controle de versão Git. Ele permite que programadores, utilitários ou qualquer usuário cadastrado na plataforma contribuam em projetos privados e/ou de código aberto de qualquer lugar do mundo.

Instalação

A instalação deverá ser executada na seguinte ordem:

  1. Python - Página de download aqui

  2. Git - Página de download aqui

  3. Vscode - Página de download aqui

  4. pipx - Página de download aqui

  5. Poetry - Página de download aqui

Executar o projeto no pc

  1. Após configurado o ambiente e efetuado a instalação, agora é preciso fazer o clone do projeto no repositório remoto do GitHub.

    git clone https://github.com/microrepar/open-data-day-2024.git
  2. Entre no diretório o projeto clonado.

    cd open-data-day-2024
  3. Efetua uma cópia do arquivo .env-exemplo e renomeie o arquivo copiado para .env.

  4. Instale as dependências do projeto executando o comando a seguir, com o terminal aberto na raiz do projeto.

    poetry install
  5. Ative o ambiente virtual no qual foi instalado as dependências com o seguinte comando:

    poetry shell
  6. Após ativo o ambiente virtual, execute a aplicação streamlit.

    streamlit run streamlit_app.py

    Em seguida irá abrir o browser com a aplicação em execução.

  7. Implemente o seu dashboard no arquivo streamlit_app.py com a linguagem de programação python usando a documentação da API do streamlit em https://docs.streamlit.io/.

Executar o projeto no Codespaces - GitHub

Configuração manual do ambiente de desenvovimento

  1. Faça um fork no GitHub do projeto https://github.com/microrepar/open-data-day-2024

  2. Crie um Codespaces do projeto que foi efetuado o fork.

  3. Efetua uma cópia do arquivo .env-exemplo e renomeie o arquivo copiado para .env.

  4. Instale o gerenciador de intalação pipx:

    python3 -m pip install -U pipx
  5. Instale o gerenciador de dependências em projetos python poetry:

    pipx install poetry

    Verifique se a instalação foi bem sussedida poetry --version.

  6. Efetue criação do ambiente virtual e a instalação das dependências do projeto executando o comando seguir:

    poetry install
  7. Ative o ambiente virtual que foi construído com o comando anterior.

    poetry shell

    Se tudo correu bem, no inicio do prompt de comando, será exibido entre parenteses o nome do ambiente virtual ativo.

  8. Após ativo o ambiente virtual, execute a aplicação streamlit.

    streamlit run streamlit_app.py

    Obs.: Na caixa de diálogo que será aberta, confirme para "abrir no navegador".

    Em seguida irá abrir o browser com a aplicação em execução.

  9. Implemente o seu dashboard no arquivo streamlit_app.py com a linguagem de programação python usando a documentação da API do streamlit em https://docs.streamlit.io/.

Configuração via script do ambiente de desenvolvimento

  1. Faça um fork no GitHub do projeto https://github.com/microrepar/open-data-day-2024

  2. Acesse o repositório da sua conta e crie um Codespaces do projeto que foi efetuado o fork.

  3. Torne o arquivo executável com o seguinte comando:

    sudo chmod +x install_codespace_depen.sh
  4. Agora você pode executar o script com:

    source install_codespace_depen.sh
  5. Efetue uma cópia do arquivo .env-exemplo e altere o nome da cópia para .env.

  6. Abra o notebook coleta_tratamento_dados.ipynb e selecione o kernel (interpretador python do ambiente virtual).

    • Selecione a opção instalar/habilitar extensões sugeridas.
    • Em seguida selecione a opção Python Environments...
    • Escolha a opção de ambiente virtual que contém o nome open-data-day-2024...
  7. Execute todo o notebook jupyter clicando no botão >> Executar Tudo, ele fara a extração dos dados do site dos ODS.

    Após o término da execução do notebook jupyter, conterá no diretório data\processed\ o arquivo .pickle com todos os dados extraídos e tabulados da página do site alvo.

  8. Após ativo o ambiente virtual, execute a aplicação streamlit.

    streamlit run streamlit_app.py

    Obs.: Na caixa de diálogo que será aberta, confirme para "abrir no navegador".

    Em seguida irá abrir o browser com a aplicação em execução.

  9. Implemente o seu dashboard no arquivo streamlit_app.py com a linguagem de programação python usando a documentação da API do streamlit em https://docs.streamlit.io/.

Conteúdo Extra

Executar o selenium no Codespaces - GitHub

Atenção! - se a configuração do ambiente foi realizado com o comando source install_codespace_dep.sh), os passos do 1 ao 2 desta seção podem ser ignorados.

  1. Efetue a instalação do google-chrome via terminal manualmente.

    • Acesse o site em https://googlechromelabs.github.io/chrome-for-testing/ e copie o link da última versão do browser.

    • Baixe os binários da versão mais recente do google-chrome:

      sudo wget "https://storage.googleapis.com/chrome-for-testing-public/122.0.6261.94/linux64/chrome-linux64.zip"

      Se tudo deu certo será baixado um arquivo com o nome chrome-linux64.zip.

    • Descompacte o arquivo chrome-linux64.zip:

      unzip chrome-linux64.zip

      Ao término da descompactação surgira um novo diretório com o mesmo nome ´chrome-linux64´, ele deverá ser movido seguindo os passos adiante.

    • Crie um diretório como o nome /opt/google/.

      sudo mkdir /opt/google
    • Mova o diretório descompactado para /opt/google/chrome.

      sudo mv chrome-linux64 /opt/google/chrome
    • Crie um link simbólico para o binário do chrome e adicione em '/usr/bin/'.

      sudo ln -s /opt/google/chrome/chrome /usr/bin/google-chrome
    • Remova o arquivo .zip contendo os binários do google-chrome.

      sudo rm -rf chrome-linux64.zip
  2. Efetue uma cópia do arquivo .env-exemplo e altere o nome da cópia para .env.

  3. Abra o notebook coleta_tratamento_dados.ipynb e selecione o kernel (interpretador python do ambiente virtual).

    • Selecione a opção instalar/habilitar extensões sugeridas.
    • Em seguida selecione a opção Python Environments...
    • Escolha a opção de ambiente virtual que contém o nome open-data-day-2024...
  4. Execute todo o notebook jupyter clicando no botão >> Executar Tudo, ele fara a extração dos dados do site dos ODS.

Após o término da execução do notebook jupyter, conterá no diretório data\processed\ o arquivo .pickle com todos os dados extraídos e tabulados da página do site alvo.

Arquivo de configuração do VsCode settings.json

{
    "material-icon-theme.folders.associations": {
        "core": "rules",
        "adapters": "pipe",
        "external": "tools",
        "pages": "rules",
        "user": "admin",
        "notebook": "lib",
        "pagesection": "lib",
        "sentence": "lib",
        "alembic": "config",
        ".streamlit": "config",
        ".documentation": "resource",
        "persistence": "database",
        "meu_app": "app",    
        "open_data_day_2024": "app"       
    },
    "files.exclude": {
        "**/*.pyc": {"when": "$(basename).py"},
        "**/__pycache__": true,
        "**/*.pytest_cache": true,
    }
}

Links úteis

Licença

MIT license

About

Coleta e tratamento dos recursos (em valores) disponíveis para os ODS e criação de dashboard com a linguagem de programação python.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published