Give your agent a wallet you control.
에이전트가 일회용 카드나 기계 결제 프로토콜로 온라인 결제하고, 모든 요청을 직접 승인
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Sistema Financeiro para projetos de campanhas eleitorais
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗SaaS compacto de gestão financeira (BPO) para campanhas eleitorais — multi-campanha, com
importador da planilha Resultado_Campanha_2026.xlsx, motor de cálculo 100% derivado (nada é
digitado ou armazenado como agregado) e dashboard executivo.
provider em prisma/schema.prisma e a DATABASE_URL)xlsx) para importar a planilha, ExcelJS para exportar relatórios, jsPDF para o PDFnpm install
cp .env.example .env # ajuste DATABASE_URL/NEXTAUTH_URL se necessário
npx prisma migrate dev # cria o dev.db e aplica o schema
npm run db:seed # cria os 6 grupos padrão + usuário admin
npm run dev
O seed cria o primeiro admin a partir de SEED_ADMIN_EMAIL e SEED_ADMIN_PASSWORD (mínimo 12
caracteres) do .env — não existe senha padrão. Depois, gerencie acessos em Configurações.
| Comando | O que faz |
|---|---|
npm run dev | sobe o servidor de desenvolvimento |
npm run build / npm start | build e start de produção |
npm test | roda a suíte de testes (Vitest) uma vez |
npm run test:watch | testes em modo watch |
npm run db:seed | garante os 6 grupos padrão e o usuário admin |
npm run db:reset | reseta o banco de dev (prisma migrate reset) |
npm test
src/lib/calc.test.ts — testes unitários do motor de cálculo, com um fixture pequeno e
controlado (não é o dataset da planilha real).src/lib/import/excel.test.ts — parsing puro do importador (datas, parcelas, rateio, hash de
idempotência), sem tocar o banco.src/lib/import/service.test.ts — integração do importador com um SQLite temporário: upsert
case-insensitive de fornecedor/grupo/cliente, classificação de rateio, modos
"substituir"/"ignorar duplicados".src/lib/import/golden.test.ts — teste "dourado": importa a planilha real e compara com os
números de referência do enunciado. Fica skip até você colocar o arquivo em
fixtures/Resultado_Campanha_2026.xlsx (veja fixtures/.gitkeep). Assim que o arquivo existir,
o teste roda de verdade — não fabricamos números para simular esse dataset, porque não há como
reproduzir com fidelidade uma planilha que não está disponível neste ambiente.resultadoPorCampanha)Esta é a regra mais importante do sistema (src/lib/calc.ts). Nenhum valor é digitado — tudo é
derivado dos lançamentos de receita e despesa a cada carregamento de página:
poolTodas = soma das despesas com rateio TODAS (despesas que beneficiam todas as
campanhas — ex.: consultoria geral, ADS institucional).baseRateio = soma do contrato total (Σ receitas.valor) apenas dos clientes com
isCandidato = true. Serviços específicos (ex.: "PARTIDO NOVO") não entram nessa base.receita = soma das receitas daquele cliente.despesaEspecifica = soma das despesas com rateio ESPECIFICA vinculadas àquele cliente.rateioTodas = isCandidato ? poolTodas × (receita / baseRateio) : 0 — o pool de despesas
compartilhadas é distribuído proporcionalmente ao tamanho do contrato de cada candidato.resultado = receita − despesaEspecifica − rateioTodas.NAO_ALOCADA (despesas sem
campanha definida — sempre um alerta no dashboard) com resultado negativo.Invariante testada: a soma de todos os resultado (incluindo "Não alocado") é sempre igual a
resultadoProjetado do resumo executivo (receitaContratada − despesaTotal), com tolerância de
R$ 0,01. Isso é verificado tanto no teste com fixture pequeno (calc.test.ts) quanto no teste
dourado com a planilha real.
Veja docs/IMPORTACAO.md para o formato aceito, as transformações e as
regras de idempotência.
prisma/schema.prisma modelo de dados (Cliente, Fornecedor, GrupoDespesa, Receita, Despesa)
prisma/seed.ts 6 grupos padrão + usuário admin
src/lib/calc.ts motor de cálculo — funções puras, 100% testadas
src/lib/import/excel.ts parsing puro do Excel (sem I/O de banco)
src/lib/import/service.ts relatório de dry-run + confirmação (grava no banco)
src/lib/schemas.ts validação Zod (mesmas regras de integridade do banco)
src/app/(app)/ telas autenticadas: dashboard, receitas, despesas, clientes,
fornecedores, grupos, fluxo, importar, relatórios
src/app/api/ rotas REST usadas pelas telas acima