Como Uma Biblioteca de Amortização Salvou Minha Pele em um Hackathon (E Pode Salvar a Sua Também!)
Imagine: um hackathon em 2025, categoria frontend. Missão dada: desenvolver um app React Native para cadastrar produtos financeiros com taxa de juros anual, prazo máximo de financiamento, e — claro — permitir o usuário salvar simulações. Suave, certo? Bem... só que não.
O detalhe sutil: pedidos para que o app conversasse com um backend, em rotas específicas. Mas espera aí... nenhum endpoint fornecido. Nada. Nenhum código, nenhuma rota sequer. Um abraço, universo.
Encarei o desafio: Backend do zero, módulo de cálculo na mão
Não satisfeito em ficar só no frontend, me agarrei para criar um backend simples com Express.js. Afinal, o app precisava falar com alguma coisa, e o backend precisava calcular as prestações, amortizações e totais.
Foi aí que nasceu a ideia: criar um módulo de amortização que pudesse calcular os valores dos três principais sistemas financeiros:
- SAC (Sistema de Amortização Constante)
- PRICE, conhecido também como Sistema Francês de Amortização
- SAM, um meio-termo esperto entre os dois
Esse módulo serviria o backend, mas por que parar por aí? Por que não facilitar a vida do povo que enfrenta o mesmo perrengue?
Tornando o módulo um pacote NPM — para backend e frontend
Após embrulhar os cálculos em funções bem testadas, decidi publicar o código como biblioteca NPM pública no meu escopo pessoal @n0n3br, para que outros devs frontend ou backend possam integrar facilmente em seus projetos.
Graças ao uso do Rollup, entreguei a biblioteca pronta para qualquer ambiente JavaScript moderno, com builds para:
- CommonJS (
index.cjs.js) para backend Node.js clássico - ES Modules (
index.esm.js) para frontend moderno ou bundlers - UMD (
index.umd.js) para incluir via tag<script>direto no navegador — funcionalidade “plug and play” sem complicação
Ou seja, você pode puxar essa biblioteca no seu backend Express, no frontend React, React Native, ou até direto no browser se quiser fazer mágica no console.
Um pouco de gambiarra com precisão: decimal.js no comando!
Sabemos que JavaScript não é amigo da precisão decimal financeira — aparece aquele fantasma dos erros de ponto flutuante TODO SANTO DIA. Nada de números quebrados ou prejuízos imaginários no cálculo de parcelas.
Por isso, adotamos a robusta decimal.js para garantir que cada centavo seja calculado com extrema precisão e segurança (proteção anti-dó). Isso deixou nossa lib pronta para o mundo real — bastante confiável para qualquer aplicação financeira.
Como usar? Dois exemplos espertos pra salvar seu tempo
Backend Node.js (Express)
import express from 'express';
import Amortizacao from '@n0n3br/amortizacao-emprestimo';
const app = express();
app.use(express.json());
app.post('/simular-sac', (req, res) => {
const { valor, taxaAnual, prazo } = req.body;
try {
const resultado = Amortizacao.sac(valor, taxaAnual, prazo);
res.json(resultado);
} catch (e) {
res.status(400).json({ erro: e.message });
}
});
app.listen(3000, () => console.log('Backend rodando na porta 3000'));
Frontend moderno (React / React Native)
import React, { useState } from 'react';
import Amortizacao from '@n0n3br/amortizacao-emprestimo';
function Simulador() {
const [valor, setValor] = useState(100000);
const [taxa, setTaxa] = useState(0.12);
const [prazo, setPrazo] = useState(60);
const [resultado, setResultado] = useState(null);
const calcular = () => {
try {
const res = Amortizacao.sac(valor, taxa, prazo);
setResultado(res);
} catch (e) {
alert(Erro: ${e.message});
}
};
return (
<>
{/* inputs para valor, taxa, prazo /}
<button onClick={calcular}>Calcular</button>
{resultado && (
<div>
<p>Total de Juros: R$ {resultado.totalJuros.toFixed(2)}</p>
<p>Total Pago: R$ {resultado.totalPago.toFixed(2)}</p>
{/ renderizar detalhes das parcelas */}
</div>
)}
</>
);
}
E onde encontrar essa maravilha?
- GitHub do rogeriolaa/amortizacao-emprestimo — explore o código, abra issues, dê estrelas! ⭐
- NPM Package @n0n3br/amortizacao-emprestimo
Palavras finais
Seja você um desenvolvedor desesperado preparando seu app financeiro para hackathon, ou alguém que só quer evitar fazer malabarismo com juros e amortizações, essa biblioteca é sua amiga.
Já pensou em quantas vezes você já teve que reescrever essas contas, ou buscar calculadoras online no meio do desespero? Pois é, agora tem um jeito superfácil de integrar cálculos precisos e certificados no seu código, do frontend ao backend.
E não se preocupe que, ao contrário de todo bom sabotador de reunião, ela não vai te dar trabalho na hora do deploy — tudo pronto pra qualquer ambiente.
Agora é só instalar, importar e começar a simular como se não houvesse amanhã!
Este artigo foi escrito com carinho, café, algumas linhas de código e uma dose generosa de bom humor.
Se curtiu, compartilha com os colegas, estrela o repo, e vamos juntos construir códigos que salvam o dia!