尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗Assistente financeiro pessoal pelo WhatsApp, vendido por assinatura. O cliente escreve “gastei 50 no posto” e o sistema registra, categoriza, responde consultas, corrige e exclui lançamentos — com isolamento total de dados entre clientes.
| Parte | Onde | Estado |
|---|---|---|
| Motor financeiro (centavos, cartão, fatura, parcelas, estornos, transferências, recorrências, histórico) | src/server/finance | Pronto e testado |
| Agente (IA + contingência por regras, confirmações, ambiguidade, idempotência) | src/server/agent | Pronto e testado com IA simulada; falta testar com chave real da OpenAI |
| WhatsApp Cloud API (webhook assinado, dedupe, fila, worker, botões, vínculo de número) | src/server/whatsapp, scripts/worker.ts | Pronto e testado de ponta a ponta em modo simulado; falta número/credenciais da Meta |
| Assinaturas Asaas (checkout, webhooks, inadimplência, tolerância, cancelamento) | src/server/billing | Pronto e testado com Asaas simulado; falta chave sandbox/produção |
| Painel do cliente e área administrativa | src/app/app, src/app/admin | Pronto |
| Página de vendas, cadastro e onboarding | src/app/page.tsx, src/app/(auth) | Pronto |
| Segurança e LGPD (RLS, sessões, rate limit, retenção, exportação, exclusão) | vários | Pronto; textos legais são minuta |
Detalhes do que está pronto e do que depende de terceiros: docs/STATUS.md.
WhatsApp (Meta) ──webhook──▶ Next.js /api/whatsapp/webhook ──▶ Postgres (inbound_messages, chave única)
│ │
└── fila BullMQ (Redis) ──▶ worker ─┤
├─ entitlement / limites do plano
├─ agente: IA interpreta → Zod valida → backend executa
├─ motor financeiro (SQL, centavos, RLS por cliente)
└─ resposta salva → enviada pela Cloud API
Asaas ──webhook──▶ /api/billing/asaas/webhook ──▶ reconsulta o pagamento na API ──▶ assinatura
Navegador ──▶ Next.js (landing, painel, admin) ──▶ mesmas regras do motor
drizzle/), Redis + BullMQ, OpenAI (Structured Outputs), Asaas, Vitest.withUser(userId), que ativa uma política de Row Level Security forçada no PostgreSQL. Mesmo uma consulta que esqueça o filtro por usuário não vê dados de outro cliente. Chaves estrangeiras compostas impedem um lançamento de apontar para conta/categoria de outro cliente.Requisitos: Node 20+, PostgreSQL 16, Redis 7 (ou Docker).
cp .env.example .env # preencha APP_SECRET e DATABASE_URL; deixe WHATSAPP_DRY_RUN=true
npm install
npm run db:migrate
npm run db:seed -- --activate # planos-modelo ativos + proprietário (OWNER_EMAIL/OWNER_PASSWORD)
npm run dev # site em http://localhost:3000
npm run worker # em outro terminal: fila do WhatsApp e rotinas
Com Docker: docker compose up -d --build (sobe Postgres, Redis, migrações, site e worker).
O banco da aplicação não pode usar um usuário superusuário do PostgreSQL: superusuários ignoram RLS.
createdb financezap_test # banco separado; o nome precisa conter "_test"
npm test # 60 testes: motor, isolamento, agente, WhatsApp+fila, Asaas, admin, LGPD
npm run smoke # com o servidor rodando: rotas protegidas e webhooks
Os testes usam apenas dados fictícios, em banco e Redis (db 15) próprios.