Acompanhamento transparente do que já foi entregue, o que está em desenvolvimento e o que ainda virá no Finblue.
Progresso geral
45%
40 de 88 itens concluídos
Fases concluídas
1 / 14
100% dos itens entregues
Em andamento
5
F1 — Fundação (Design System + Layout) ✅ · F2 — Autenticação + Multiempresa ✅ (parcial) · F3 — RBAC (Perfis e Permissões) ✅ (parcial) · F5 — Contas a Pagar ✅ (parcial) · F6 — Contas a Receber ✅ (parcial)
Implantação total45%
Fases
Fase 1 — Fundação (Design System + Layout)
Em andamento
5/6
Design system Navy Trust em src/styles.css (tokens oklch, dark mode)
Tipografia Sora (headings) + Manrope (body)
Layout base: sidebar recolhível + topbar + área de conteúdo
Toggle dark/light mode
Landing/login pública vs área autenticada _authenticated/
Componentes UI base (Card, DataTable, StatCard, PageHeader) — parcial: Card ok; faltam DataTable, StatCard e PageHeader reutilizáveis
Fase 2 — Autenticação + Multiempresa
Em andamento
9/10
Habilitar Lovable Cloud
Tabela companies (empresas/tenants)
Tabela profiles (vínculo com auth.users)
Tabela company_members (usuário ↔ empresa, N:N)
Login email/senha
Login com Google → movido para Backlog
Recuperação de senha (/forgot-password + /reset-password)
Seletor de empresa ativa (context global)
RLS em todas as tabelas com filtro por company_id
Guard _authenticated/ + redirect
Fase 3 — RBAC (Perfis e Permissões)
Em andamento
6/7
Enum app_role: super_admin, admin, financeiro, gestor, usuario, auditor (criado na Fase 2)
Tabela user_roles (user_id, company_id, role) (criada na Fase 2)
Function has_role() security definer (criada na Fase 2)
Matriz de permissões por módulo/ação (src/lib/permissions.ts)
Hook usePermission() no frontend (can, isAdmin, isSuperAdmin)
CRUD de usuários: convidar (e-mail), trocar papel, ativar/desativar, redefinir senha, remover da empresa (/app/usuarios)
Function SQL has_permission(module, action) → movido para Backlog (matriz vive no frontend; só vale puxar pro DB quando precisarmos validar permissões em policies de tabelas de domínio)
Fase 4 — Cadastros Auxiliares
Concluída
9/9
Fornecedores (/app/fornecedores)
Clientes (/app/clientes)
Categorias financeiras (/app/categorias) — hierárquica, separada por receita/despesa, validação de ciclo no DB
Centros de custo (/app/centros-custo) — código único por empresa
Tabela notifications + painel interno (sino no topbar)
Triggers: vencimento próximo, conta atrasada, aprovação pendente
Envio por e-mail (edge function ou server fn)
Fase 13 — Extras / Polimento
Planejada
0/4
Pesquisa global (Cmd+K)
Histórico de alterações por registro
Ajustes finos de UX
Documentação interna
Backlog
Melhorias e débitos técnicos identificados ao longo do desenvolvimento, agendados para entregas futuras.
Login com Google (OAuth) — habilitar Sign-in with Google via Lovable Cloud Managed OAuth na tela de login/cadastro (botão "Entrar com Google"), além do email/senha já existente.
has_permission(module, action) em SQL — replicar a matriz de src/lib/permissions.ts como função SECURITY DEFINER no Postgres para usar dentro de RLS policies das próximas tabelas (despesas, receitas, empenhos…).
Página /app/empresas — CRUD de empresas (apenas super_admin). Hoje só existe a criação via onboarding.
Páginas /app/auditoria e /app/configuracoes — links removidos do sidebar até existirem (Fase 11 / Fase 13).
Inativar categoria via UI — hoje a tela de categorias só edita/exclui; falta toggle de is_active (campo já existe no DB).
Endereço completo nos cadastros — formulário simplificado; falta máscara de CEP, autocompletar via ViaCEP e validação de CNPJ/CPF.
Linter Supabase: 4 warnings persistentes (SECURITY DEFINER chamáveis por authenticated) — necessários para que as RLS policies funcionem; aceitos como falso-positivo do linter.
CP/CR — Anexos (Fase 5/6) — upload de notas fiscais e comprovantes via Storage.
CP/CR — Exportação (Fase 5/6) — PDF/Excel/CSV das listagens.
CP — Aprovação multi-etapa (Fase 5) — fluxo configurável de aprovadores com histórico.
CR — Emissão de cobrança/boleto (Fase 6) — integração com gateway de pagamento.
Job de auto-vencido — cron diário para mover lançamentos pendente/aprovado com vencimento passado para vencido/atrasado direto no banco (hoje é calculado só no client-side).