← Voltar ao índice

💰 BWC Finance

Dashboard de orçamento pessoal em 3 camadas — renda, despesas categorizadas e metas de poupança com cálculo em tempo real.

URL: finance.blackcatcorp.com.br 🟡 DNS pendente
Frontend: Next.js 16 (React 19)
Banco: SQLite (Prisma + libsql)
Repo: vituulm/bwc-finance
Porta: 3046
Next.js 16 React 19 Prisma 7 SQLite / libsql Tailwind CSS 4 Recharts TypeScript Lucide React

Especificação do Produto

Missão

Dashboard pessoal de orçamento em 3 camadas: Renda (fontes de receita), Despesas (fixas + variáveis por categoria) e Poupança (meta percentual ou valor fixo). Calcula automaticamente o saldo livre, taxa de comprometimento e alerta quando o orçamento estoura.

Usuário-alvo

Uso pessoal — controle financeiro sem autenticação, direto ao ponto, sem fricção.

Infra

Next.js porta 3046 — Caddy → finance.blackcatcorp.com.br (DNS pendente). Banco SQLite local via libsql.

Modelos Prisma (6 models)
Model Campos principais Propósito
Income source, amount Fontes de renda
FixedExpense name, amount, category Despesas fixas mensais
VariableExpense name, amount, category Despesas variáveis do mês
Debt description, monthlyPayment, remainingMonths Dívidas com parcelas mensais
SavingsGoal type (percentage|fixed), value, objective Meta de poupança
MonthlyRecord month, year, totalIncome, totalFixed, totalVariable, totalDebts, totalSavings, actualSpent Histórico mensal consolidado
Lógica de cálculo — lib/calculations.ts

Função calculateBudget() retorna:

Endpoints da API

Resumo orçamentário — /api/summary

GET /api/summary

Agrega todas as fontes, calcula e retorna o resumo financeiro completo: totais, taxas, saldo livre e flag isOverBudget. Inclui a meta de poupança ativa.

Response: { totalIncome, totalFixed, totalVariable, totalDebts, committed,
            savings, free, savingsRate, committedRate, variableRate,
            freeRate, isOverBudget, savingsGoal }

Renda — /api/income

GET /api/income

Lista todas as fontes de renda, ordenadas por criação.

POST /api/income

Adiciona fonte de renda. Body: { source, amount }

PATCH /api/income/:id

Atualiza fonte de renda por ID.

DELETE /api/income/:id

Remove fonte de renda por ID.

Despesas Fixas — /api/fixed-expenses

GET /api/fixed-expenses

Lista todas as despesas fixas mensais com categoria.

POST /api/fixed-expenses

Cria despesa fixa. Body: { name, amount, category }

PATCH /api/fixed-expenses/:id

Atualiza despesa fixa por ID.

DELETE /api/fixed-expenses/:id

Remove despesa fixa por ID.

Despesas Variáveis — /api/variable-expenses

GET /api/variable-expenses

Lista despesas variáveis do período com categoria.

POST /api/variable-expenses

Registra despesa variável. Body: { name, amount, category }

PATCH /api/variable-expenses/:id

Atualiza despesa variável por ID.

DELETE /api/variable-expenses/:id

Remove despesa variável por ID.

Dívidas — /api/debts

GET /api/debts

Lista dívidas com parcela mensal e meses restantes (opcional).

POST /api/debts

Registra dívida. Body: { description, monthlyPayment, remainingMonths? }

PATCH /api/debts/:id

Atualiza dívida por ID.

DELETE /api/debts/:id

Remove dívida por ID.

Meta de Poupança — /api/savings-goal

GET /api/savings-goal

Retorna a meta de poupança ativa (sempre um único registro).

POST /api/savings-goal

Cria ou atualiza a meta (upsert). Body: { type: "percentage"|"fixed", value, objective? }. Exemplo: { type: "percentage", value: 20 } = poupar 20% da renda.

Páginas do Dashboard

/ — Dashboard

Resumo financeiro: totais, taxas, saldo livre e alerta de orçamento estourado. Usa Recharts para visualização.

/renda — Renda

Gerencia fontes de receita. CRUD inline com total acumulado.

/despesas — Despesas

Gerencia despesas fixas e variáveis por categoria em abas separadas.

/dividas — Dívidas

Controle de dívidas com parcelas mensais e meses restantes.

/poupanca — Poupança

Define e ajusta a meta de poupança (% ou R$ fixo) com campo objetivo.

Arquitetura de Deploy

blackcat-finance (Next.js 16 — porta 3046)
  └─ SQLite local via @libsql/client + Prisma 7
       ↑
  Caddy Reverse Proxy → 172.18.x.x:3046
       ↑
  finance.blackcatcorp.com.br (🟡 DNS pendente)

Gerado automaticamente — BlackCat Corp • Voltar ao índice