Skip to content

refactor(PAV-181): reestrutura arquitetura modular do frontend Candidate - #334

Merged
hltav merged 15 commits into
Cla-Code-Community:developfrom
hltav:hltavdev/pav-181-frontend-clean
Nov 2, 2026
Merged

hltav merged 15 commits into
Cla-Code-Community:developfrom
hltav:hltavdev/pav-181-frontend-clean

Conversation

@hltav

@hltav hltav commented Nov 2, 2026 •

Copy link
Copy Markdown
Collaborator

Descrição

Reorganiza o frontend Candidate em Feature-Based Architecture para distribuir as responsabilidades antes concentradas em domains/new_dashboard e manter cada funcionalidade em seu módulo. Consolida domains em features, organiza a composição em app e os recursos reutilizáveis em shared, preservando contratos HTTP, schemas, autenticação, estado, cache, aparência e comportamento. Os modelos distintos de Job continuam separados.

Linear

Issue: PAV-181

Linear link

https://linear.app/candidateappbr/issue/PAV-181

Branch flow

  • Este PR é uma feature/fix/chore destinada a develop.
  • Este PR não contém alteração direta ou fluxo indevido para master.
  • A branch foi criada a partir da base prevista pelo fluxo do projeto.

Branch reconstruída de upstream/develop (4b786c1), com os 15 commits da PAV-181 aplicados em ordem e referência aos hashes originais. Os quatro commits exclusivos da PAV-178 foram excluídos; a branch original foi preservada.

Objetivo

Concluir a arquitetura modular do frontend sem misturar responsabilidades de catálogo de vagas, candidaturas e composição do dashboard.

Escopo

O que faz parte desta entrega:

  • Migração e padronização arquitetural exclusivamente em frontend/.
  • Atualização dos consumidores, imports, exports, mocks, testes e documentação.
  • Compatibilização dos imports com os filtros por família de vaga já existentes em develop e das três props correspondentes em um fixture de teste.

O que está fora do escopo:

  • Backend, scraper, front_admin, infraestrutura, alterações de negócio, redesenho visual e remoção de mocks funcionais.
  • Correção dos diagnósticos TypeScript e do warning de lint preexistentes.

Resumo das alterações

  • Remove src/domains após migrar seus consumidores para imports canônicos.
  • Distribui as funcionalidades entre applications, auth, dashboard, help, home, jobs, marketing, mentoring, notifications e profile.
  • Organiza app/routes, app/providers, app/layouts e app/dashboard.
  • Padroniza api, hooks, components e pages, preservando as camadas efetivas de domínio e mantendo providers/contextos fora de hooks.
  • Organiza cliente HTTP, erros de API, utilitários e hooks reutilizáveis em shared.
  • Preserva os contratos distintos em features/jobs/types/job.types.ts e features/jobs/domain/job.ts, assim como o contexto legado e os dados demonstrativos.

Arquivos e módulos afetados

  • frontend/src/app, frontend/src/features, frontend/src/shared e frontend/src/main.tsx.
  • frontend/tests, frontend/README.md e frontend/ARCHITECTURE.md.
  • Diff local validado: 176 arquivos, todos dentro de frontend/.

Como testar

cd frontend
npm test -- --maxWorkers=1 --no-file-parallelism
npm run lint
npm run build
npx --no-install tsc --noEmit -p tsconfig.json

O TypeScript ainda apresenta os 63 diagnósticos preexistentes; a comparação deve considerar os diagnósticos completos, e não apenas a quantidade.

Como foi testado

Validação executada novamente na branch reconstruída: 398 testes aprovados em 55 arquivos, Vitest em modo serial, build de produção aprovado e lint concluído com zero erros e um warning preexistente. Comparação completa TypeScript: 63 antes e 63 depois, sem diagnósticos novos ou removidos. Verificados 338 imports e 110 referências de mocks/imports dinâmicos, sem caminhos quebrados ou ciclos estáticos detectados. git diff --check aprovado.

Validation

  • Lint executado
  • Testes relevantes executados
  • Coverage permanece dentro do mínimo do projeto
  • Build executado quando aplicável
  • Validação manual realizada quando aplicável
  • Documentação atualizada quando necessária

Coverage e validação visual manual não foram repetidos nesta reconstrução; o gate de coverage deve ser confirmado na CI. Backend não foi testado nesta entrega restrita ao frontend.

Impacto de banco / migration

  • Não altera schema nem migrations
  • Altera schema ou migrations

Detalhes: nenhuma mudança de banco.

Impacto em contratos/API

  • Não altera contratos
  • Altera endpoint, payload, schema ou comportamento de API

Detalhes: endpoints, métodos, payloads, schemas Zod, autenticação, persistência, cache e mecanismos de atualização existentes foram preservados.

Impacto de configuração / infraestrutura

  • Não altera configuração
  • Altera env, Docker, filas, cache, serviços ou infraestrutura

Detalhes: sem alterações de dependências ou infraestrutura no diff do PR.

Impacto de segurança

  • Sem impacto relevante
  • Impacto de segurança avaliado

Detalhes: preservados fluxos de sessão, tokens, cookies, logout e rotas protegidas.

Impacto de dados pessoais / privacidade

  • Sem tratamento novo ou alteração de dados pessoais
  • Impacto avaliado

Detalhes: dados e fluxos existentes de perfil, mensagens e notificações foram preservados.

Compatibilidade / dependências

  • Não depende de outra task/PR
  • Existe dependência ou ordem de deploy/merge

Detalhes: baseada em develop, sem incluir os commits exclusivos da PAV-178. Mantidas as funcionalidades de famílias de vagas já presentes na base; conflitos foram resolvidos nos imports, com o fixture de teste atualizado para as props atuais.

Evidências

  • Vitest: 55 arquivos e 398 testes aprovados na branch reconstruída.
  • Build: 2445 módulos transformados; concluído com aviso de bundle acima de 500 kB.
  • TypeScript: comparação integral com o frontend original, 63 diagnósticos em ambos, zero adicionados/removidos.
  • Lint: zero erros; warning preexistente de dependência de useEffect em tests/unit/new_dashboard/theme.toast.test.tsx.
  • Implementações dos seis arquivos envolvidos nos conflitos comparadas com upstream/develop, excluindo apenas imports/reexports; corpos preservados integralmente.
  • Branch original e alterações locais externas preservadas em worktree separada.

Riscos

  • A amplitude da movimentação exige confirmação dos checks e revisão de ownership/imports antes do merge.
  • develop avançou 19 commits durante a validação (incluindo a PAV-178 já integrada). O comparativo remoto mantém somente os 15 commits da PAV-181 e 176 arquivos do frontend; não houve merge ou force push para incorporar o avanço da base. A CI deve validar a integração com o develop atual.
  • Permanecem 63 diagnósticos TypeScript preexistentes, um warning de lint e o aviso de tamanho do bundle; não foram corrigidos neste escopo.
  • A integração de consulta ao Linear estava indisponível; a referência ao card foi incluída, mas os critérios do card ainda devem ser conferidos no Linear pelo revisor.
  • A validação reutilizou as dependências já instaladas no ambiente; a CI deve confirmar a instalação a partir do lockfile da base atual.

Rollback

Reverter o merge deste PR ou seus commits arquiteturais em ordem inversa. Não há migrations ou transformações de dados a desfazer; não incluir os commits ou alterações paralelas da PAV-178 no rollback.

Checklist final

  • Escopo limitado ao card
  • Não inclui segredos, .env, certificados ou tokens
  • Não inclui arquivos temporários, builds, caches ou artefatos desnecessários
  • Não executa deploy como efeito desta PR
  • Critérios de aceite do card foram conferidos individualmente
  • Alterações de contrato possuem testes e documentação correspondentes
  • Alterações em banco/migrations foram validadas quando aplicável

Não houve alteração de contrato, banco ou migrations; os dois últimos itens são não aplicáveis. O merge depende dos checks, revisão e conferência dos critérios de aceite pendentes.

hltav added 15 commits November 2, 2026 13:32
(cherry picked from commit 4088b91c7a8930420222734fbb1f5329c07f915b)
(cherry picked from commit 4fa7a9f568c773931ef1f7733f2425098c0ebdca)
(cherry picked from commit 2b4c003a1be744a91a1cf0dc260c8f0f7eebcf44)
(cherry picked from commit 88e4ea7101557f183e4e54692189b2ae860dcff5)
(cherry picked from commit df77e85739da1c23adcfb0f079bf16bd3e038795)
(cherry picked from commit 2641443d8a45b223ef60a1267452ed441496e61d)
(cherry picked from commit 488d5a41ee99fd1bac42281c107406d466641ef2)
(cherry picked from commit bb4a44dd062fdf21c7502ccfa5eeb0a43b1313f7)
(cherry picked from commit fcd4609efbfd8ffb9597ee7ab8a27fecf367cb86)
(cherry picked from commit 590df90e1e029a2ffe8ce9909af7ec8fca3b98ec)
(cherry picked from commit 21a8624b9650cd004cda7ec7f1a6e829066346e1)
(cherry picked from commit b675136d7e1188ca102c22009df2f3c7bf1bf298)
(cherry picked from commit 0db3070f89c81e416057dd5e4ce4512ea003ca02)
(cherry picked from commit 25c842401f00ed8530760661aab09e875e6e5eaa)
(cherry picked from commit 2155f5673786d29bc796aaba8955aa72d3df7e2f)
@hltav
hltav merged commit 91c911c into Cla-Code-Community:develop Nov 2, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants