Procuro desenvolvedor experiente para construir e integrar o dashboard V1 de uma plataforma SaaS de automação com execução controlada por regras server-side. O backend já existe (FastAPI em Docker, configuração dinâmica via Redis). O trabalho é focado em dashboard, segurança, controle de acesso e integração correta. Não envolve lógica de negócio específica do domínio. O backend é a fonte de verdade. A interface não decide comportamento, apenas reflete estado e permissões. Escopo obrigatório (V1): Frontend:
Next.js (App Router), Dashboard moderno (padrão SaaS), Componentes reutilizáveis, Integração limpa com API existente. Auth & Segurança: Login por cliente, RBAC (admin / user), Multi-tenant com isolamento real (Nenhum acesso cross-tenant, Prevenção explícita de IDOR), Auditoria básica (Quem alterou, O quê, Quando). Modos de Operação (enforced server-side): monitor_only, build_only, live. Regras aplicadas no backend. A UI não pode contornar modos de operação. Configurações: Toggle de módulos por cliente, Persistência dinâmica via Redis, Modos de automação: off / assist / auto (a lógica já existe no backend; escopo é controle, limites e UI). Conta / Recursos: Visualização de saldo de recursos, Cache obrigatório (Evitar chamadas externas excessivas, Estratégia clara de invalidação).
Deploy & Qualidade
• Docker + Nginx
• Documentação curta
• Smoke tests mínimos
• Entrega via milestones + PRs
Milestones
1. Base
Next.js + Auth + RBAC
2. Multi-tenant real + auditoria + endpoints canónicos
3. Modos de operação + módulos + automação assistida
4. I18n + polish de UX + deploy + testes
Fora de escopo
• Lógica específica de negócio
• Algoritmos de decisão
• Estratégia operacional
• Infra além de Docker/Nginx
Para se candidatar (obrigatório responder objetivamente)
1. Como você impediria IDOR em um sistema multi-tenant?
2. Como garantiria que modos de operação não podem ser burlados via API?
3. Como estruturaria i18n no
Next.js App Router sem quebrar SSR?
4. Como implementaria cache seguro para chamadas externas?
Prazo de Entrega: Não estabelecido