Este projeto oferece uma solução eficiente para o processamento e análise de grandes volumes de dados de negociações da B3. Utilizando o Phoenix Framework e Elixir, a aplicação baixa dados históricos de negociações, persiste-os em um banco de dados PostgreSQL e expõe uma API para consulta desses dados com agregações específicas.
A estrutura do projeto segue a organização padrão do Phoenix, com diretórios específicos para o código da aplicação (lib
), configurações (config
), testes (test
), e um script personalizado para processamento e importação dos dados (process_and_import.sh
).
- Elixir 1.14
- Erlang OTP 26
- PostgreSQL 14
- Phoenix Framework
- Configure o banco de dados: Atualize as variáveis de ambiente no arquivo
.env
com suas credenciais de banco de dados.
cp .env_example .env
-
Prepare o PostgreSQL: Para o funcionamento do script de processamento e importação de dados, certifique-se de configurar o método de autenticação do PostgreSQL local para
md5
editando o arquivopg_hba.conf
e reiniciando o serviço do PostgreSQL. -
Instale as dependências do projeto, crie e migre o banco de dados
mix setup
Rode o comando chmod +x process_and_import.sh
para dar permissão de execução ao script.
Execute o script process_and_import.sh
para baixar, processar e importar os dados dos últimos 7 dias úteis de negociações da B3.
./process_and_import.sh
Inicie o servidor Phoenix com o seguinte comando:
mix phx.server
A aplicação estará disponível em http://localhost:4000.
- Consultar dados por ticker:
GET /api/trades?ticker=PETR4
- Consultar dados por ticker e data:
GET /api/trades?ticker=PETR4&data_negocio=2024-02-08
- Sucesso:
{
"ticker": "PETR4",
"max_daily_volume": 61629200,
"max_range_value": 42.45
}
- Ticker ou DataNegocio não encontrados:
{
"errors": {
"detail": "Not Found"
}
}
Para executar os testes da aplicação, use:
mix test