npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@marcos_feitoza/personal-finance-frontend-feature-investments

v1.4.0

Published

Este pacote contém a implementação das telas para visualização e gerenciamento de todas as contas de investimento na aplicação Personal Finance Frontend.

Readme

Feature: Investimentos (Frontend Flutter)

Este pacote contém a implementação das telas para visualização e gerenciamento de todas as contas de investimento na aplicação Personal Finance Frontend.

Propósito

O objetivo deste pacote é fornecer ao usuário uma interface completa para acompanhar a performance de seus investimentos, registrar novas transações (compra/venda, dividendos) e gerenciar suas contribuições RRSP.

Conteúdo Principal

  • lib/screens/investment_account_screen.dart: Tela genérica para contas de investimento (ex: TFSA, Non-Registered, RRSP Wealthsimple), mostrando resumo e histórico de trades.
  • lib/screens/crypto_account_screen.dart: Tela específica para contas de criptomoedas, mostrando resumo e histórico de trades de cripto.
  • lib/screens/rrsp_sun_life_screen.dart: Tela específica para a conta RRSP Sun Life, focando em histórico de contribuições.
  • lib/screens/portfolio_screen.dart: Tela consolidada "Portfolio" que permite alternar entre contas (ou All) e ver uma tabela sintética unificada (stocks + crypto), além de registrar trades.
  • lib/screens/dividends_screen.dart: Tela consolidada "Dividends" para listar dividendos por conta (ou All) e registrar novos dividendos.

Tabela sintética unificada (stocks + crypto)

As telas de investimento (stocks e crypto) usam uma tabela sintética padronizada no core-ui:

  • personal-finance-frontend-core-ui/lib/widgets/portfolio_summary_table.dart

Colunas padronizadas:

  • Account
  • Date (primeiro BUY da posição)
  • Symbol, Shares, Avg Price, Book Cost, Live Price, Market Value, Unrealized P/L, % P/L
  • Account %, Portfolio %

Ela suporta ordenação por coluna ao clicar no header.

Resumo de conta (Total / Available to trade)

Na tela Portfolio, existe um card no topo com:

  • Total: valor total da conta (cash + market value)
  • Available to trade: saldo disponível em caixa para novas operações

Em modo All, o resumo mostra todas as contas. Em uma conta específica, mostra apenas a conta selecionada.


Como Usar (Instalação como Dependência)

Este pacote é uma dependência local para a aplicação principal (personal-finance-frontend).

No pubspec.yaml da aplicação principal, adicione a seguinte linha em dependencies:

personal_finance_frontend_feature_investments:
  path: ../personal-finance-frontend-feature-investments

Features

  • Resumo do Portfólio (Sintético): Visão geral da performance dos ativos em cada conta de investimento, com métricas como "Book Cost", "Market Value", "Unrealized P/L", "Total Return" e percentuais de alocação.
  • Histórico de Trades (Analítico): Listagem detalhada de todas as operações de compra e venda por conta.
  • Registro de Dividendos: Formulário para registrar dividendos recebidos.
  • Acompanhamento de Contribuições RRSP: Histórico e resumo das contribuições para contas RRSP.
  • Exclusão Suave (Soft Delete): Funcionalidade para deletar trades e contribuições de forma segura, marcando-os como excluídos em vez de remover permanentemente.

Como testar (manual)

Portfolio (tela consolidada)

  1. Abrir o app → Menu → Investments → Portfolio
  2. Validar o dropdown Account Type:
    • All: form de trade fica desabilitado e a tabela lista todas as contas
    • TFSA/RRSP/Non-Registered/Crypto: form de trade e tabela filtram para a conta selecionada
  3. Validar ordenação da tabela clicando nos headers (ex.: Account, Symbol, Market Value)
  4. Criar um trade (stocks/crypto) e confirmar que o resumo e a tabela atualizam

Coluna Date (first buy)

Validar que a coluna Date na tabela sintética é o primeiro BUY da posição por símbolo.

Dividends (tela consolidada)

  1. Abrir o app → Menu → Investments → Dividends
  2. Validar o dropdown Account:
    • All: form de dividendos fica desabilitado e a tabela lista dividendos de todas as contas
    • TFSA/RRSP/Non-Registered: habilita o DividendLogForm e a tabela filtra para a conta selecionada
  3. Validar filtro por Symbol (dropdown) e ordenação por coluna na tabela
  4. Validar o card Totals acima da tabela:
    • Em conta específica: mostra o total do que está sendo exibido (respeita o filtro por Symbol)
    • Em All: mostra o total geral + breakdown por conta (respeita o filtro por Symbol)