Skip to content

Zuno — Seu hub de investimentos inteligente para acompanhamento de ações, FIIs e Cripto.

License

Notifications You must be signed in to change notification settings

ilanzgx/zuno-app

Repository files navigation

Contributors Forks Stargazers Issues ISC License LinkedIn


Zuno - Consolidador de Investimentos

Centralize sua vida financeira em uma única plataforma!
Explore a documentação »

Ver Demo · Reportar Bug · Solicitar Feature

Índice
  1. Sobre o Projeto
  2. Começando
  3. Uso
  4. API Endpoints
  5. Estrutura do Projeto
  6. Roadmap
  7. Contribuindo
  8. Licença
  9. Contato
  10. Agradecimentos

Sobre o Projeto

Product Screenshot

O Zuno é uma aplicação full-stack projetada para centralizar a vida financeira de um investidor em uma única plataforma. O objetivo principal é agregar dados de diversas fontes, como corretoras e outras instituições financeiras, para fornecer uma visão holística e unificada do patrimônio.

Por que Zuno?

  • Centralização Total: Não perca mais tempo alternando entre múltiplas plataformas e planilhas complexas
  • Visão em Tempo Real: Acompanhe a performance de suas carteiras, análise de alocação de ativos e recebimento de dividendos em tempo real
  • Insights Inteligentes: Obtenha análises valiosas para otimizar suas estratégias de investimento
  • Gestão Simplificada: Simplifique a gestão de portfólios complexos com uma interface moderna e intuitiva

A plataforma oferece dashboards interativos, rastreamento completo de transações, monitoramento de eventos (dividendos), e integração com dados de mercado em tempo real da B3 e criptomoedas.

(voltar ao topo)

Construído Com

O projeto utiliza tecnologias de ponta para garantir performance, escalabilidade e excelente experiência do usuário:

Frontend

  • Next
  • React
  • TypeScript
  • TailwindCSS

Backend

  • Spring
  • Java
  • PostgreSQL
  • Redis

Market API

  • FastAPI
  • Python

(voltar ao topo)

Arquitetura

O projeto é composto por três aplicações principais em um monorepo:

  1. API (Spring Boot) - Backend principal responsável por:

    • Autenticação e autorização de usuários (JWT)
    • Gerenciamento de transações e posições
    • Persistência de dados (PostgreSQL)
    • Cache de dados (Redis)
  2. Market API (FastAPI) - Microserviço especializado em dados de mercado:

    • Cotações em tempo real de ações da B3
    • Histórico de dividendos
    • Cotações de criptomoedas
    • Integração com Yahoo Finance via yfinance
  3. Web (Next.js) - Interface do usuário:

    • Dashboard interativo com gráficos
    • Visualização de posições e patrimônio
    • Gerenciamento de transações
    • Análise de eventos (dividendos)

(voltar ao topo)

Começando

Para obter uma cópia local funcionando, siga estes passos simples.

Pré-requisitos

Certifique-se de ter as seguintes ferramentas instaladas:

  • Java 21+
  • Node.js 20+
  • Python 3.13+
  • Maven
  • Docker (para PostgreSQL e Redis)

Verifique as versões instaladas:

java --version
node --version
python --version
docker --version

Instalação

  1. Clone o repositório

    git clone https://github.com/ilanzgx/zuno-app.git
    cd zuno-app
  2. Instale as dependências do Frontend (Next.js)

    cd apps/web
    npm install
    cd ../..
  3. Instale as dependências do Backend (Spring Boot)

    cd apps/api
    mvnw dependency:resolve
    cd ../..
  4. Instale as dependências da Market API (FastAPI)

    cd apps/market
    pip install uv
    uv sync
    cd ../..
  5. Suba os containers do banco de dados (PostgreSQL e Redis)

    docker-compose up -d
  6. Configure as variáveis de ambiente

    cd apps/api
    cp .env.example .env
    # Edite o arquivo .env com suas configurações
  7. Inicie todas as aplicações

    npm run dev

(voltar ao topo)

Uso

Comandos Disponíveis

  • Rodar todas as aplicações: npm run dev
  • Rodar apenas o backend: npm run start:api
  • Rodar apenas o frontend: npm run start:web
  • Rodar apenas a Market API: npm run start:market

Funcionalidades Principais

Dashboard Financeiro

  • Visualize seu patrimônio total e rentabilidade
  • Gráficos interativos de evolução patrimonial
  • Distribuição de ativos por tipo

Gestão de Transações

  • Cadastre compras e vendas de ativos
  • Preços atualizados automaticamente via integração com Yahoo Finance
  • Histórico completo de movimentações

Monitoramento de Posições

  • Acompanhe suas posições em tempo real
  • Visualize ganhos e perdas por ativo
  • Análise de rentabilidade individual

Eventos de Dividendos

  • Rastreie todos os dividendos recebidos
  • Histórico completo de proventos
  • Análise de rendimento passivo

(voltar ao topo)

API Endpoints

API Principal (Spring Boot)

A API fornece os seguintes endpoints:

  • Autenticação: /v1/auth

    • POST /v1/auth/register - Registro de novo usuário
    • POST /v1/auth/login - Login de usuário
  • Usuários: /v1/users

    • GET /v1/users/me - Informações do usuário autenticado
  • Posições: /v1/positions

    • GET /v1/positions - Lista todas as posições do usuário
  • Transações: /v1/transactions

    • GET /v1/transactions - Lista todas as transações
    • POST /v1/transactions - Cria nova transação
  • Portfólio: /v1/portfolio

    • GET /v1/portfolio/summary - Resumo do portfólio
    • GET /v1/portfolio/history - Histórico do portfólio
  • Dividendos: /v1/dividends

    • GET /v1/dividends - Lista todos os dividendos
  • Mercado: /v1/market

    • GET /v1/market/{ticker} - Dados de mercado de um ativo

Market API (FastAPI)

A Market API fornece dados em tempo real do mercado financeiro:

  • Cotações B3: GET /b3/quote/{ticker} - Obtém cotação de ações da B3
  • Cotações por Data: GET /b3/quote/{ticker}/date/{date} - Cotação histórica
  • Dividendos B3: GET /b3/dividends/{ticker} - Histórico de dividendos
  • Notícias: GET /b3/news/{ticker} - Notícias de um ativo
  • Cotações Crypto: GET /crypto/quote/{ticker} - Cotação de criptomoedas

(voltar ao topo)

Estrutura do Projeto

O projeto é um monorepo com a seguinte estrutura:

zuno-app/
├── apps/
│   ├── api/                    # Backend Spring Boot
│   │   ├── src/
│   │   │   └── main/
│   │   │       └── java/
│   │   │           └── com/ilanzgx/demo/
│   │   │             └── config/
│   │   │             └── modules/
│   │   │                 ├── auth/
│   │   │                 ├── dividend/
│   │   │                 ├── market/
│   │   │                 ├── portfolio/
│   │   │                 ├── position/
│   │   │                 ├── shared/
│   │   │                 ├── transaction/
│   │   │                 └── user/
│   │   └── pom.xml
│   │
│   ├── market/                 # Market API (FastAPI)
│   │   ├── app/
│   │   │   ├── api/
│   │   │   │   └── v1/
│   │   │   ├── core/
│   │   │   └── services/
│   │   ├── pyproject.toml
│   │   └── uv.lock
│   │
│   └── web/                    # Frontend Next.js
│       ├── src/
│       │   ├── app/
│       │   │   ├── (protected)/
│       │   │   └── (public)/
│       │   ├── components/
│       │   ├── lib/
│       │   ├── resources/
│       │   └── stores/
│       └── package.json
│
├── docker-compose.yml
├── package.json
└── README.md

(voltar ao topo)

Contribuindo

Contribuições são o que tornam a comunidade open source um lugar incrível para aprender, inspirar e criar. Qualquer contribuição que você fizer será muito apreciada.

Se você tiver uma sugestão para melhorar o projeto, por favor faça um fork do repositório e crie um pull request. Você também pode simplesmente abrir uma issue com a tag "enhancement". Não se esqueça de dar uma estrela ao projeto! Obrigado!

  1. Fork o Projeto
  2. Crie sua Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit suas Mudanças (git commit -m 'Add some AmazingFeature')
  4. Push para a Branch (git push origin feature/AmazingFeature)
  5. Abra um Pull Request

Principais Contribuidores:

contrib.rocks image

(voltar ao topo)

Licença

Este projeto é licenciado sob a GNU Affero General Public License v3.0 (AGPLv3). Isso significa que qualquer pessoa que modificar ou utilizar este software para oferecer um serviço (SaaS) deve disponibilizar o código-fonte dessas modificações.

Para mais detalhes, consulte o arquivo LICENSE.

(voltar ao topo)

Contato

Ilan Fonseca - @ilanzgx

Link do Projeto: https://github.com/ilanzgx/zuno-app

(voltar ao topo)

About

Zuno — Seu hub de investimentos inteligente para acompanhamento de ações, FIIs e Cripto.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published