尚未偵測到更新。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.