Skip to content

Paulo-Ricard0/Compra-Programada-Acoes

Repository files navigation

Compra Programada de Ações — Itaú Corretora

Sistema de compra programada de ações inspirado na funcionalidade da Itaú Corretora. O projeto implementa um motor de execução automática, distribuição proporcional entre carteiras filhotes, rebalanceamento e cálculo de impostos.


Como Executar (Ambiente Local Docker)

Pré-requisitos

Inicialização

# 1. Clone o repositório
git clone https://github.com/Paulo-Ricard0/Compra-Programada-Acoes.git

# 2. Entre no projeto
cd Compra-Programada-Acoes

# 3. Suba a infraestrutura do projeto
docker-compose up -d --build

# 4. Acesse o endpoint da API
http://localhost:8080/

Nota: As migrations do Entity Framework são aplicadas automaticamente no startup da aplicação para facilitar a execução local.

Endpoints e Dashboards

Serviço URL
Swagger UI http://localhost:8080/swagger
Health Check http://localhost:8080/health-ui#/healthchecks
Seq (Logs) http://localhost:5341
Kafka UI http://localhost:8081

Arquitetura e Camadas

O projeto foi desenhado sob os princípios de Clean Architecture e Domain-Driven Design (DDD), isolando regras de negócio da infraestrutura de entrega e persistência.

graph TD
    A["API Layer<br/>(Controllers, Middlewares, Extensions)"] --> B["Application Layer<br/>(Use Cases, DTOs)"]
    B --> C["Domain Layer<br/>(Entities, Enums, Services, Repositories)"]
    A --> D["Infrastructure Layer<br/>(EF Core, Kafka, Parser B3)"]
    D --> C
    D --> E[("MySQL 8.0")]
    D --> F[("Apache Kafka")]

    style A fill:#1a73e8,stroke:#1557b0,color:#fff
    style B fill:#34a853,stroke:#2d8e47,color:#fff
    style C fill:#ea8600,stroke:#c47200,color:#fff
    style D fill:#9334e6,stroke:#7b2bc4,color:#fff
    style E fill:#f5f5f5,stroke:#ccc,color:#333
    style F fill:#f5f5f5,stroke:#ccc,color:#333

Loading

Estrutura do Repositório

src/
├── CompraProgramada.API/              # Entrypoint, Middlewares de resiliência e Endpoints
├── CompraProgramada.Application/      # Casos de uso e orquestração do negócio
├── CompraProgramada.Domain/           # Entidades, Regras e Contratos
└── CompraProgramada.Infrastructure/   # Persistência (EF Core) e Integração

tests/
├── CompraProgramada.Domain.Tests/   
├── CompraProgramada.Application.Tests/
└── CompraProgramada.Infrastructure.Tests/

docs/                                  # Documentação técnica e manuais de arquitetura
cotacoes/                              # Repositório de arquivos históricos da B3 (COTAHIST)


Stack

Camada Tecnologia Versão
Runtime .NET 10.0
ORM Entity Framework Core + Pomelo MySQL 9.0.2 / 9.0.0
Banco de Dados MySQL 8.0
Mensageria Apache Kafka (Confluent) 7.5.0
Logging Serilog + Seq 10.0.0
API Docs Swagger / OpenAPI (Swashbuckle) 10.1.4
Health Checks AspNetCore.HealthChecks (MySQL + Kafka) 9.0.0

Infraestrutura

A orquestração local de dependências é feita via Docker Compose:

graph LR
    API["API .NET 10<br/>:8080"] --> MySQL["MySQL 8.0<br/>:3306"]
    API --> Kafka["Apache Kafka<br/>:29092"]
    API --> Seq["Seq (Logs)<br/>:5341"]
    Kafka --> Zookeeper["Zookeeper<br/>:2181"]
    KafkaUI["Kafka UI<br/>:8081"] -. Monitora .-> Kafka

    style API fill:#1a73e8,stroke:#1557b0,color:#fff
    style MySQL fill:#00758f,stroke:#005f73,color:#fff
    style Kafka fill:#231f20,stroke:#000,color:#fff
    style Seq fill:#5c2d91,stroke:#4a2375,color:#fff
    style Zookeeper fill:#555,stroke:#333,color:#fff
    style KafkaUI fill:#e53935,stroke:#b71c1c,color:#fff
Loading

Fluxo de Processamento de Negócios

sequenceDiagram
    participant C as Clientes
    participant CES as Cesta de Recomendação
    participant P as Processador Cotahist
    participant M as Motor de Compra (Background)
    participant K as Kafka / Eventos

    C->>C: Adesão e Definição de Aporte Mensal
    CES->>CES: Ativação e Definição de Composição (Ativos)
    
    P->>P: Recepção de Arquivo Diário (B3)
    P->>M: Atualização de Preços na Base
    
    M->>C: Verifica Contas Filhotes Ativas
    M->>CES: Verifica Composição Atual
    
    M->>M: Consolidação de Ordens de Compra (Lote/Fracionário)
    M->>M: Rateio e Distribuição para Filhotes
    M->>M: Recálculo de Preço Médio e Custódia
    M->>M: Apuração de Eventos de IR / Custos
    
    M->>K: Publicação de Eventos Analíticos e Tributários
Loading

Modelagem de Dados

Diagrama de Entidade-Relacionamento representando a persistência dos dados do domínio:

Fluxo do Motor


Testes Automatizados

# Execução da suíte de testes
dotnet test

Documentação Complementar

Os documentos de aprofundamento técnico estão disponíveis no diretório docs/:
Acessar a documentação do sistema e seus requisitos


Projeto desenvolvido por Paulo Ricardo

About

Um sistema para compra programada de ações inspirado no Itaú Corretora

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages