Simulador de investimentos com juros compostos, desenvolvido em React e empacotado com Vite. Preencha os campos de investimento e veja a projeção anual de valor, juros e capital investido.
- Estrutura do projeto
- Tecnologias
- Requisitos
- Instalação
- Executar em desenvolvimento
- Build e Preview
- Scripts disponÃveis
- Arquitetura e arquivos principais
- Lógica de cálculo
react-investiment-calculator/
├─ index.html
├─ package.json
├─ vite.config.js
├─ public/
│ └─ investment-calculator-logo.png
└─ src/
├─ index.jsx # Bootstrap do React
├─ index.css # Estilos globais (fonts e layout)
├─ App.jsx # Estado global e renderização condicional
├─ assets/
│ └─ investment-calculator-logo.png
├─ components/
│ ├─ Header.jsx # Cabeçalho com logo e tÃtulo
│ ├─ Main.jsx # Container do formulário de inputs
│ ├─ InvestInputs.jsx# Campos do formulário
│ └─ InvestBoard.jsx # Tabela de resultados anuais
└─ util/
└─ investment.js # Cálculo e formatter de moeda
- React 19 (SPA com hooks)
- Vite 4 (dev server e build)
- JavaScript (ES6+)
- CSS3 (estilos globais)
- ESLint (qualidade de código)
- Node.js 18 ou superior (recomendado)
- npm 9 ou superior
npm installnpm run devO Vite exibirá a URL local (ex.: http://localhost:5173). Abra no navegador.
Geração de build de produção:
npm run buildPré-visualização do build localmente:
npm run previewnpm run dev— inicia o servidor de desenvolvimento (Vite)npm run build— gera o bundle de produçãonpm run preview— serve o build localmentenpm run lint— roda o ESLint no projeto
index.html— HTML base, aponta parasrc/index.jsxe define o elemento#root.src/index.jsx— cria a root do React e renderiza<App />.src/App.jsx— mantém o estado dos campos de investimento e controla a renderização da tabela. Exibe uma mensagem quando algum valor é inválido (nulo ou ≤ 0).src/components/Header.jsx— cabeçalho com logo e tÃtulo.src/components/Main.jsx— seção que contém os campos de entrada.src/components/InvestInputs.jsx— define e renderiza os inputs:initial-investment,expected-return,anual-investment(grafia conforme código),duration-investment.src/components/InvestBoard.jsx— recebe os valores e renderiza a tabela com ano, valor acumulado, juros do ano, juros totais e capital investido.src/util/investment.js—calculateInvestmentResults(...): calcula o resultado anual composto.formatter: formata valores monetários (USD) viaIntl.NumberFormat.
Em calculateInvestmentResults a cada ano:
- Calcula os juros do ano:
interest = currentValue * (expectedReturn / 100) - Atualiza o valor investido:
currentValue += interest + annualInvestment - Armazena
year,interest,valueEndOfYeareannualInvestment
A tabela em InvestBoard.jsx soma os juros ano a ano para exibir o total de juros e calcula o capital investido como valueEndOfYear - totalInterest.
