Skip to content

Navigation Menu

Sign in
Sign up

Latest commit

History

257 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

MeuSalário Pro

Status

Next.js React TypeScript Tailwind Supabase pnpm

🚀 Evolução: de simulador para copiloto fiscal

De → Para: deixa de ser só um simulador de salário e passa a copiloto fiscal-financeiro contínuo para PJ e MEI.

Novas funcionalidades: importação de extrato bancário (CSV/OFX) com classificação automática de receitas; cálculo de DAS/DARF e provisão mensal de impostos; alerta de teto ao atingir 75% do limite anual do MEI; projeção de quanto guardar por mês e fluxo de caixa.

Mudanças na lógica: o cálculo passa a usar dados reais importados (não só valores digitados); o histórico vira base contínua mês a mês, não simulações avulsas; regras fiscais isoladas em módulo testável, versionado por ano-calendário.

Plataforma web para previsão salarial, simulações e dashboards (CLT/PJ), com Supabase (Auth/DB) e Asaas (pagamentos - PIX, cartão, boleto).

Funcionalidades

  • Simulação mensal (CLT e PJ) com cálculo automático de INSS e IRRF
  • Comparador CLT x PJ para ajudar na decisão de carreira
  • Simulação de rescisão (sem justa causa, acordo, pedido de demissão)
  • Simulação de 13o salário (1a e 2a parcela)
  • Simulação de férias (vencidas e proporcionais)
  • Dashboard com gráficos e estatísticas
  • Histórico de simulações com filtros
  • Exportação PDF e CSV das simulações
  • Planos Free e Pro com pagamento via Asaas

Rodar local

Instalar deps:

pnpm install

Configurar variáveis:

  • Copie env.example.env.local
  • Preencha:
    • NEXT_PUBLIC_SUPABASE_URL
    • NEXT_PUBLIC_SUPABASE_ANON_KEY
    • SUPABASE_SERVICE_ROLE_KEY (necessária para webhook/admin)
    • Asaas: ASAAS_API_KEY, ASAAS_WEBHOOK_TOKEN, ASAAS_SANDBOX
    • NEXT_PUBLIC_APP_URL

Para acessar /admin, defina no Supabase o cargo do seu usuário:

update public.profiles
set role = 'admin'
where email = 'SEU_EMAIL_AQUI';

Subir o app:

pnpm dev

Documentação de planejamento

  • docs/planejamento-compatibilidade-salarial.md — proposta da nova atualização de compatibilidade salarial com custo de vida, benefícios e comparação CLT/PJ.

Testes

O projeto usa Vitest para testes unitários dos cálculos de impostos.

pnpm test

Os testes cobrem:

  • Cálculo de INSS (tabela progressiva 2026)
  • Cálculo de IRRF (com isenção até R$ 5.000)
  • DAS do Simples Nacional (Anexos III e V)
  • Simulação mensal CLT e PJ
  • Cálculo de rescisão
  • Cálculo de férias
  • Cálculo de 13o salário

Supabase (schema + RLS)

Rode o SQL do arquivo:

  • supabase/schema.sql

Isso cria:

  • profiles (1-para-1 com auth.users)
  • simulations
  • plans
  • trigger de criação de profile
  • RLS básico

Asaas (Pagamentos)

O MeuSalario usa o Asaas como gateway de pagamentos, que suporta:

  • Cartão de crédito (parcelado ou à vista)
  • Boleto bancário
  • PIX

Configuração

  1. Crie uma conta no Asaas (use ambiente sandbox para desenvolvimento)
  2. Obtenha sua ASAAS_API_KEY no painel (Integrações > API)
  3. Configure o webhook no painel do Asaas apontando para:
    • https://seu-dominio.com/api/billing/webhook
  4. Eventos recomendados: PAYMENT_RECEIVED, SUBSCRIPTION_CREATED
  5. Defina o token do webhook em ASAAS_WEBHOOK_TOKEN
  6. Configure ASAAS_SANDBOX=true para desenvolvimento, false para produção

Os preços dos planos são definidos na tabela plans do Supabase.

Monitoramento de Erros (Sentry)

O projeto suporta monitoramento de erros via Sentry (opcional).

  1. Crie uma conta em sentry.io
  2. Crie um projeto Next.js
  3. Copie o DSN e adicione em NEXT_PUBLIC_SENTRY_DSN no .env

Funções disponíveis:

  • captureException(error) - Captura exceções
  • captureMessage(message, level) - Captura mensagens
  • setUser({ id, email }) - Define usuário atual

Estrutura do Projeto

src/
├── app/ # Rotas Next.js (App Router)
│ ├── (auth)/ # Páginas de autenticação
│ ├── app/ # Área logada do usuário
│ ├── admin/ # Painel administrativo
│ └── api/ # Rotas de API
├── components/ # Componentes React
│ ├── auth/ # Formulários de auth
│ ├── billing/ # Componentes de pagamento
│ ├── charts/ # Gráficos (Recharts)
│ ├── dashboard/ # Componentes do dashboard
│ ├── historico/ # Histórico de simulações
│ ├── layout/ # Layout e navegação
│ ├── simulations/ # Formulários de simulação
│ └── ui/ # Componentes base (Button, Input, etc)
├── lib/ # Utilitários e lógica
│ ├── calculators/ # Cálculos de impostos e simulações
│ │ └── __tests__/ # Testes unitários
│ ├── payments/ # Integração com Asaas
│ └── supabase/ # Cliente Supabase
└── types/ # Tipos TypeScript

Notas de dependências

  • ESLint 8 e subdependências deprecated: O pnpm install pode mostrar avisos de que eslint@8.57.1 e pacotes como glob, inflight, rimraf estão deprecated. Isso é esperado: o Next.js 14 usa eslint-config-next, que ainda declara suporte apenas a ESLint 7/8. Migrar para ESLint 9 exigiria atualizar o Next.js para uma versão que suporte o plugin em flat config (ex.: Next 15). Por enquanto o lint continua funcionando normalmente.

Licença

Privado - Todos os direitos reservados.

About

Simulador e comparador de salário CLT vs PJ/MEI com cálculo de INSS/IRRF e gestão financeira pessoal. Next.js + TypeScript.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

AltStyle によって変換されたページ (->オリジナル) /