尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗Sistema web de gestão financeira para pessoa física e pequena empresa, em português do Brasil. Controla contas a pagar e a receber, fluxo de caixa, contas bancárias e cartões de crédito, com importação de extratos e faturas.
No ar: https://cladindin.vercel.app
| Área | Recursos |
|---|---|
| Acesso | Login com senha ou link mágico. Workspaces separados (ex.: Pessoal e Empresa). Membros com papéis (proprietário, admin, editor, leitor), convites por link com validade. Isolamento total por RLS. Auditoria de alterações. |
| Cadastros | Contas (corrente, poupança, carteira, investimento, cartão). Categorias hierárquicas já semeadas para PF e PJ. Clientes e fornecedores com CPF/CNPJ validado. |
| Lançamentos | Receitas, despesas e transferências (que não contam como receita nem despesa). Filtros, ações em massa, exportação CSV, parcelamento, comprovantes. |
| Importação | OFX 1.x/2.x (conta e cartão, UTF-8 e Windows-1252, arquivos malformados). CSV com layouts de emissores e mapeador de colunas com modelos salvos. Fatura em PDF (melhor esforço). Deduplicação por FITID e fingerprint, conciliação com previstos, conferência de saldo, desfazer. |
| Cartões | Faturas por fechamento e vencimento. Parcelas detectadas e projetadas nas faturas seguintes. Estornos, IOF e encargos. "Pagar fatura" como transferência, sem contar duas vezes. Limite usado. |
| Recorrências | Diária a anual, dia fixo, último dia ou N-ésimo dia útil, feriados nacionais, término por data ou quantidade, valor variável. Editar "todas" ou "a partir de". Pausar e encerrar. Job diário. Sugestões automáticas de recorrência. |
| A pagar/receber | Agrupado por vencimento. Baixa em massa, ou individual com pagamento parcial, juros, multa, desconto e comprovante. |
| Regras | Categorização automática (contém, começa com, igual, regex, valor, sentido, conta), aplicada na importação. Reaplicar e "criar regra para parecidos". |
| Relatórios | Fluxo de caixa (realizado × previsto), por categoria, contato ou centro de custo, comparativo mês a mês, DRE simplificado, evolução do saldo. Regime de competência ou caixa. CSV e impressão/PDF. |
| Orçamento | Limite mensal por categoria (padrão ou só de um mês), com alertas no dashboard. |
| Privacidade (LGPD) | Exportação completa do workspace em JSON e exclusão definitiva pelo proprietário. |
Next.js 15 (App Router, TypeScript strict), Supabase (Postgres, Auth, Storage, RLS), Tailwind CSS 4, Zod, Recharts, Vitest, Playwright e pnpm. Deploy na Vercel.
Requisitos: Node 20+ e pnpm.
pnpm install
cp .env.example .env.local # preencha a URL e a chave publishable do Supabase
pnpm dev # http://localhost:3000
supabase/setup-completo.sql no SQL Editor e rode.supabase/migrations que ainda faltam, ou use supabase db push.No Supabase, em Authentication → URL Configuration:
http://localhost:3000/auth/callback e https://SEU-DOMINIO/auth/callbackPara conhecer o sistema, abra Configurações → Dados de demonstração num workspace vazio.
| Variável | Onde | Descrição |
|---|---|---|
NEXT_PUBLIC_SUPABASE_URL | todas | URL do projeto Supabase |
NEXT_PUBLIC_SUPABASE_ANON_KEY | todas | Chave publishable (pública; a segurança vem do RLS) |
NEXT_PUBLIC_SITE_URL | todas | URL base usada nos links de convite |
SUPABASE_SERVICE_ROLE_KEY | só servidor (Vercel) | Chave secreta, usada apenas pelos jobs diários (recorrências e avisos) |
CRON_SECRET | só servidor (Vercel) | Protege a rota do job diário |
RESEND_API_KEY | só servidor (Vercel) | Envia os avisos de vencimento e o resumo semanal (resend.com); sem ela, nenhum e-mail é enviado |
EMAIL_FROM | só servidor (Vercel) | Remetente, ex.: Cladindin <[email protected]> (domínio verificado no Resend) |
O app em si nunca usa a chave secreta. As duas últimas variáveis são opcionais: sem elas, as telas completam os previstos quando são abertas.
pnpm lint && pnpm typecheck
pnpm test # Vitest: parsers OFX/CSV/PDF, deduplicação, parcelas, recorrência, feriados, regras, relatórios, orçamento
pnpm e2e # Playwright: fluxos públicos; o fluxo importar → deduplicar → dashboard → desfazer
# roda com E2E_EMAIL e E2E_PASSWORD de um usuário de TESTE
O isolamento por RLS é provado em supabase/tests/rls_isolamento.sql. Rode com supabase test db ou cole no SQL Editor de um banco de desenvolvimento: tudo é desfeito no final.
As fixtures em fixtures/ são sintéticas: nomes e valores fictícios, sem nenhum dado bancário real.
main publica sozinho. O job diário está em vercel.json e roda às 06:00 (Brasília).Antes de abrir o site ao público, preencha os campos entre colchetes em lib/legal.ts (razão social, CNPJ, endereço, contatos, Encarregado e foro). Enquanto houver campo vazio, as páginas legais mostram um aviso. Ao mudar o texto dos Termos ou da Política, atualize versao: quem já tem conta verá o pedido de novo aceite.
/termos, /privacidade, /cookies, /reembolso, /lgpd (formulário de pedidos do titular, gravado em privacy_requests), /acessibilidade.user_metadata); exportação dos dados da conta e de cada workspace; exclusão da conta em Configurações.access_log (Marco Civil, art. 15), apagados pelo job diário.tests/e2e/acessibilidade.spec.ts.privacy_requests) em até 15 dias.docs/lgpd/registro-de-operacoes.md (art. 37) e docs/lgpd/plano-de-incidentes.md (art. 48).https://SEU-SITE/api/saude num monitor gratuito (ex.: UptimeRobot); responde 200 quando site e banco estão no ar.