Essa aplicação contempla um dashboard (para visualização e interação com os dados), uma API (com endpoints que fornecem os dados provindo de arquivos csv) e um python bot (verifica disponibilidade de dados online de forma automática).
Esse projeto contempla três entregas que formam um desafio:
- API: Escrita em Python por meio do micro framework Flask possui três endpoints. Esses endpoints fornecem informações provindas de arquivos csv (para baixá-los ver a seção de 'Outras Observações').
- Dashboard: Um dashboard com três filtros (ANO, MOVIMENTACAO e PRODUTO) e quatro campos de visualização de dados: Card de total movimentado; Gráfico de Barras com a quantidade de importação ou exportação, Gráfico de Pizza com percentual de utilização da VIA e Tabela com total por estado brasileiro e nível de influência na importação ou exportação. Utilizou-se Dash para construção do dashboard.
- Python Bot: Verifica se há bases disponíveis de forma automático para os três últimos anos no site do Comércio Extreio - Governo Federal. Foi escrito em python e para melhor entendimento, usou-se o Jupyter.
A REST-API possui três endpoints:
- /products
- /vias
- /comex
A seguir é mostrado a utilização de um dos endpoints.
Três tecnologias constituem o núcleo do Dash:
- Flask fornece a funcionalidade do servidor web.
- React.js renderiza a interface do usuário da página da web.
- Plotly.js gera os gráficos usados em seu aplicativo.
Demonstração do aplicativo de dashboard.
Após realizada a instalação das bibliotecas do projeto, disponíveis em 'requirements.txt', coloque no terminal o seguinte comando:
# Inicializando o jupyter notebook
$ jupyter notebook
Depois basta em ir 'Kernel' e 'Restart & Run All'. Após isso o bot fará tudo sozinho. Se houver disponibilidade de dados o bot retornará uma base de dados chamada 'f_comex.csv' com movimentação de exportação e importação dos últimos três anos.
Para clonar essa aplicação, você precisará ter instalado em seu computador o Git. Ademais, você precisa do Python instalado para funcionar a aplicação. Do ser terminal digite:
# Clonar esse repositório
$ git clone https://github.com/MiqSA/app-data-visualization.git
# Entrar no pasta do projeto
$ cd app-data-visualization
# Criar ambiente virtual da API
$ python3 -m venv venv
# Ativar ambiente virtual
$ source venv/bin/activate
# Instalar dependências para aplicação de dashboard
$ pip install -r requirements.txt
# Entrar no pasta da API
$ cd api
# Iniciar API
$ python app.py
# API REST estará disponível em http://127.0.0.1:5000/
# Em outra janela do terminal vá para pasta do diretório raiz do projeto
$ cd app-data-visualization
# Criar ambiente virtual da aplicação
$ python3 -m venv venv
# Ativar ambiente virtual
$ source venv/bin/activate
# Instalar dependências para aplicação de dashboard
$ pip install -r requirements.txt
# Iniciar app
$ python app.py
# A aplicação estará disponível em http://127.0.0.1:8050/
Algumas melhorias nesta aplicação, podem ser sugeridas:
- Serviço de autenticação da API;
- Paginação para o endpoint /comex;
- Alguns tratamentos de dados já na API ao invés do DASH;
- Criar models para melhorar manutenção do código.
Foram utilizadas algumas bases de dados, siga as seguintes intruções para as utilizar:
-
Acessar as bases por meio do link: https://drive.google.com/drive/u/1/folders/1GzRgHjeUFPkrseYln9uwISmhbiys6rUj
-
Fazer o download dos arquivos.
-
Colocar arquivos na pasta 'datasets' na raiz do projeto.