Skip to content

Processo de extração, carregamento e transformação de dados (ELT), utilizando um sistema de CRM de Vendas.

License

Notifications You must be signed in to change notification settings

ianlucasch/crm-de-vendas

Folders and files

NameName
Last commit message
Last commit date

Latest commit

335dbb1 · Jan 27, 2025

History

16 Commits
Oct 26, 2024
Oct 25, 2024
Oct 27, 2024
Oct 25, 2024
Oct 24, 2024
Oct 24, 2024
Oct 24, 2024
Jan 27, 2025
Oct 25, 2024
Oct 25, 2024
Oct 24, 2024
Oct 25, 2024
Oct 24, 2024
Oct 25, 2024

Repository files navigation

Projeto de CRM de Vendas

Sistema de CRM de Vendas para registrar e analisar os dados de vendas realizadas em um período específico, utilizando uma arquitetura moderna de ELT (Extract, Load and Transform).

Índice

Sobre o projeto

Este projeto tem como objetivo criar um sistema de CRM de Vendas para registrar e analisar os dados de vendas realizadas num período específico. Esses dados são extraídos do CRM de Vendas que é implementado em Streamlit, carregados diretamente no banco de dados PostgreSQL e posteriormente são tratados pelo DBT Core.

A plataforma Render foi utilizada para subir um PostgreSQL Server na nuvem.

Como funciona

Task 01: Extrair os dados do CRM de Vendas e carregar no banco de dados

O script frontend é responsável por criar um frontend simples através da biblioteca Streamlit para registrar os dados das vendas, e depois carregar esses dados diretamente no PostgreSQL, criando uma tabela vendas no banco de dados.

Task 02: Transformar os dados

O DBT Core é responsável pela limpeza e transformação dos dados. Após instalar o dbt-postgres e configurar o arquivo profiles.yml, o DBT se conecta ao banco de dados PostgreSQL para ter acesso as tabelas.

A pasta models define as transformações dos dados usando SQL. As transformações foram divididas em três camadas: bronze, silver e gold.

Para mais informações, acesse as pastas dbt_crm_vendas/docs onde contém toda a documentação do projeto DBT.

Estrutura de diretórios

.
├── LICENSE
├── README.md
├── dbt_crm_vendas
│   ├── docs
│   │   └── homepage.md
│   ├── models
│   │   ├── bronze
│   │   │   ├── bronze_vendas.sql
│   │   │   └── schema.yml
│   │   ├── gold
│   │   │   ├── gold_vendas_por_produto.sql
│   │   │   ├── gold_vendas_por_vendedor.sql
│   │   │   └── schema.yml
│   │   ├── silver
│   │   │   ├── schema.yml
│   │   │   └── silver_vendas.sql
│   │   └── sources.yml
│   └── dbt_project.yml
├── docs
│   └── index.md
├── exemplo.env
├── imagens
│   ├── fluxograma-dbt.jpeg
│   └── fluxograma-elt.jpeg
├── mkdocs.yml
├── profiles.yml
├── pyproject.toml
├── requirements.txt
└── src
    ├── contrato.py
    ├── database.py
    └── frontend.py

Como executar

Todas as etapas foram executadas no terminal bash.

  1. Clone o repositório localmente:

    git clone https://github.com/ianlucasch/crm-de-vendas.git
  2. Acesse a pasta do projeto:

    cd crm-de-vendas
  3. Instale o python versão 3.12.3:

    pyenv install 3.12.3
  4. Defina a versão local do python para 3.12.3:

    pyenv local 3.12.3
  5. Crie um ambiente virtual e ative-o:

    python -m venv .venv
    source .venv/Scripts/activate
  6. Instale todas as dependências do projeto:

    pip install -r requirements.txt
  7. Execute o script frontend:

    streamlit run src/frontend.py
  8. Crie um novo projeto DBT:

    dbt init dbt_crm_vendas
    cd dbt_crm_vendas
  9. Configure a conexão com PostgreSQL:

    Configure o arquivo profiles.yml com suas variáveis de ambiente para conectar o DBT ao PostgreSQL. O arquivo deve estar no diretório ~/.dbt/ ou no diretório especificado pela variável de ambiente DBT_PROFILES_DIR.

    Exemplo de profiles.yml:

    dbt_crm_vendas:
       outputs:
          dev:
             dbname: <DB_NAME>
             host: <DB_HOST>
             pass: <DB_PASS>
             port: <DB_PORT>
             schema: public
             threads: 1
             type: postgres
             user: <DB_USER>
       target: dev
  10. Verifique o estado do projeto:

    dbt debug
  11. Execute as transformações do DBT:

    dbt run

Conclusão

Este README apresenta o passo a passo e as principais ferramentas utilizadas para a criação de um sistema de CRM de Vendas e transformação dos seus dados.

About

Processo de extração, carregamento e transformação de dados (ELT), utilizando um sistema de CRM de Vendas.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages