Plano para levar o curso espec_full_stack (Especialização em Aplicações Full Stack de Produção) do Grau C ao Grau A da auditoria de profundidade. É a Frente 2 do Plano do Catálogo de Projetos e Nomes das Pastas, que separou o curso do catálogo na Frente 1.


1. Diagnóstico (medido em 2026-10-04 com _scripts/audit_course_depth.py)

Métrica espec_full_stack Exigência do Grau A Referências Grau A
Linhas por tópico (média) 50,5 🔴 ≥ 130 Mod 09: 171,5 · Mod 10: 204,3
Linhas de código por exemplo 36,1 ✅ ≥ 20 Mod 09: 260,4 · Mod 10: 234,1
Linhas por gabarito 64,4 ✅ ≥ 20 Mod 09: 56,1 · Mod 10: 171,7
Stubs / texto genérico 0 / 0 ✅ 0 —
Texto repetido entre tópicos 4% ✅ baixo —

O gargalo é um só: os 20 tópicos. Todos têm entre 39 e 61 linhas. Os outros artefatos já atendem ao Grau A.

1.1 Como é um tópico hoje

Todos seguem o mesmo molde: um diagrama Mermaid, um parágrafo de abertura e três “Pilares Fundamentais” genéricos (contratos, segurança, escalabilidade), quase iguais em todos os capítulos. O assunto específico (Express, Prisma, TanStack Query, no capítulo 05) aparece no título e no diagrama, mas não é explicado. Não há código, comparação, armadilhas nem ligação com os projetos do Catálogo.

1.2 Os 5 artefatos por capítulo

Artefato Situação
topicos/ (20 + índice) 🔴 39 a 61 linhas, conteúdo genérico
exemplos/ (20 + índice) 🟡 49 a 115 linhas: atendem ao mínimo, mas abaixo dos cursos Grau A
exercicios/ (20 + índice) ✅ 133 a 190 linhas, 4 níveis e gabarito
slides/ (20 + índice) 🟡 47 a 65 linhas; precisam acompanhar o tópico novo
quizzes/ (20 + índice) 🟡 38 a 50 linhas; conferir as 3 questões com feedback por alternativa (AGENTS.md)

1.3 Fora do padrão

Item Situação
_legado_topicos/ 17 arquivos (1.063 linhas) de material antigo: WebSockets, API REST, MVC, login, Spring + Angular, Next + Nest. Não publicado. Fonte útil para os capítulos 02, 03, 08 e 09
_artefatos/ 8 arquivos de auditoria (lotes A a E) e 2 scripts. Mesmo padrão dos outros cursos, que também têm _artefatos/
projetos/index.md ❌ Não existe. Os outros cursos listam ali os projetos do Catálogo que praticam o conteúdo

2. Projetos do Catálogo por capítulo

O curso ensina as stacks que o Catálogo já implementa. Ligar cada capítulo aos projetos é o que dá prática real ao aluno (Frente 2, item 3 do plano original):

Cap. Assunto Projetos do Catálogo
01 Arquitetura e monorepo fullstack_tarefas_05_arquitetura
02 JWT e RBAC fullstack_estoque_02_spring_auth, fullstack_liston_01_spring_angular
03 MVC e Clean Architecture fullstack_tarefas_01_spring_api, fullstack_estoque_01_spring_spa
04 Contratos (Zod e Pydantic) fullstack_tecloja_02_fastapi_vue, fullstack_tecloja_03_nest_react
05 Express + React infra_nginx_01_nodejs (Express mínimo atrás do Nginx), fullstack_tecloja_03_nest_react (NestJS roda sobre Express + React), fullstack_tarefas_07_spring_react (React com useEffect, o “antes” do TanStack Query). Corrigido em 2026-10-04: os fullstack_pi_01 a _05 são só frontend React com dados fixos (data.ts), sem API; servem de base para exercício
06 Next.js + NestJS fullstack_tecloja_04_nest_nextjs, fullstack_tecloja_03_nest_react
07 Prisma, TypeORM, Drizzle fullstack_tecloja_04_nest_nextjs
08 WebSockets redes_01_sniffer_websocket_chat, sistemas_csharp_04_signalr_realtime (SignalR, o equivalente em .NET)
09 Spring Boot + Angular fullstack_tarefas_08_spring_angular, fullstack_tecloja_01_spring_angular
10 FastAPI + Vue fullstack_tecloja_02_fastapi_vue, fullstack_tarefas_06_spring_vue
11 HTMX + Thymeleaf javaweb_gastos_03_htmx, javaweb_gastos_04_htmx
12 Micro-frontends (nenhum hoje; está só no roteiro futuro do fullstack_tecloja_01_spring_angular, como v4)
13 Cache com Redis db_cache_03_redis_sharding_tuning, sistemas_csharp_04_signalr_realtime
14 Filas (BullMQ, Celery) backend_php_03_queues_redis_stripe (filas no Redis), backend_golang_04_eventdriven_kafka (eventos com Kafka)
15 Docker Compose fullstack_tarefas_05_arquitetura, infra_nginx_02_spring
16 Testes E2E (Playwright) fullstack_tecloja_04_nest_nextjs (módulo 13: Playwright); testes_03_performance_k6_load como contraste (carga × E2E)
17 Deploy em nuvem infra_terraform_05_iac_aws, devops_01_pipeline_git_actions
18 Observabilidade backend_golang_04_eventdriven_kafka (OpenTelemetry), infra_nginx_03_gatling (Grafana)
19 Projeto integrador TecLoja as 4 partes fullstack_tecloja_*
20 Projeto integrador SaaS fullstack_pi_* como base

Mapeamento conferido no conteúdo de cada projeto, não só no nome. Só o capítulo 12 (micro-frontends) fica sem projeto: registrado como lacuna do Catálogo, para um projeto futuro. Esta frente não cria projetos.


3. Padrão de chegada de cada tópico

É o molde dos tópicos Grau A (ex.: Mod 10, capítulo 05, com 208 linhas):

Seção Conteúdo
🗺️ Mapa conceitual O diagrama Mermaid atual, revisado
1. Problema e contexto Por que a técnica existe, o que resolve e o que havia antes
2–4. Conceitos centrais Cada um com explicação, código real e curto (TypeScript, Java ou Python, conforme a stack) e o “porquê”
5. Comparação Tabela entre as alternativas do capítulo (ex.: Prisma × TypeORM × Drizzle)
6. Armadilhas comuns Erros frequentes, com o sintoma e a correção
7. No Catálogo Os projetos da Seção 2, com o que observar em cada um
🔗 Recursos do capítulo Navegação para slides, quiz, exemplos e exercícios (já existe)

Meta: média de 150 linhas por tópico e nenhum abaixo de 120, para não depender da média. Isso fica acima do mínimo de 130 do Grau A e perto dos cursos de referência.

Os slides passam a resumir as seções do tópico novo. Os quizzes são conferidos contra o AGENTS.md (3 questões, feedback por alternativa) e ajustados ao conteúdo novo. Exemplos e exercícios só mudam se o tópico novo os contradisser (D5).


4. Qualidade do conteúdo (o risco principal)

Texto longo e genérico já é o problema de hoje, e encher linhas não resolve. Para evitar isso:

  1. Piloto antes de escalar: o Bloco 1 (capítulos 01 a 04) é feito primeiro e passa pela sua revisão, como no lote-piloto dos miniprojetos C.
  2. Código que compila: trechos em TypeScript, Java e Python são extraídos e checados (tsc --noEmit, javac, python -m py_compile) sempre que forem autocontidos.
  3. Ligação concreta com o Catálogo: a Seção 7 de cada tópico aponta arquivos reais dos projetos (ex.: o filtro JWT do fullstack_estoque_02_spring_auth), não descrições vagas.
  4. Auditoria por capítulo: audit_course_depth.py roda a cada lote, olhando o mínimo por capítulo além da média.

5. Decisões (aprovadas em 2026-10-04, todas na opção sugerida)

# Decisão Opções ✅ Aprovado
D1 Meta de profundidade só a média ≥ 130 · média 150 e mínimo de 120 por capítulo Média 150, mínimo 120: a média sozinha esconde capítulos fracos (ressalva que a própria auditoria já registra)
D2 Ordem por bloco (1→5) · capítulos mais acessados primeiro Por bloco, com o Bloco 1 como piloto revisado por você
D3 _legado_topicos/ apagar já · aproveitar como fonte e apagar no fim · manter Aproveitar e apagar no fim: tem material útil para os capítulos 02, 03, 08 e 09; fica no histórico do git
D4 projetos/index.md do curso criar · não criar Criar, com a tabela da Seção 2, igual aos outros cursos (a regra-alvo dos cursos permite projetos/index.md)
D5 Exemplos e exercícios manter (já são Grau A) · aprofundar também Manter, ajustando só o que o tópico novo contradisser; aprofundá-los dobraria o trabalho sem mudar a nota
D6 Entrega um PR no fim · um PR por bloco Um PR por bloco (5 PRs): cada um pequeno o bastante para revisar e publicar, com o piloto como primeiro

Revisão da D5 na prática (2026-10-04): os exercícios dos capítulos 01, 02, 05, 06 e 09 eram um modelo genérico, repetido entre capítulos (WebSockets, JWT e um “healthcheck” que devolve status fixo). A auditoria os aprovava porque só conta linhas. Os dos caps 01 e 02 já foram reescritos no piloto; os de 05, 06 e 09 entram nos Blocos 2 e 3. Os demais exercícios e os exemplos continuam mantidos.


6. Etapas de execução (após aprovação)

Etapa Ação Validação
0 Criar projetos/index.md (D4) e um checklist por capítulo em _artefatos/ check_estrutura_portal.py, test_links.py
1 Piloto, Bloco 1 (cap. 01 a 04): reescrever os tópicos no padrão da Seção 3, ajustar slides e quizzes, ligar ao Catálogo Auditoria por capítulo (≥ 120 linhas); código checado; revisão sua
2–5 Blocos 2 a 5 (cap. 05–08, 09–12, 13–16, 17–20), um PR cada Idem, sem nova revisão obrigatória se o piloto for aprovado
6 Remover _legado_topicos/ (D3); regenerar PLANO_CURRICULAR.md; rodar a auditoria completa Curso em Grau A; gerar_planos_curriculares.py --check limpo

Volume estimado: ~2.000 linhas novas de teoria (20 tópicos × ~100 linhas a mais), 20 slides ajustados e 20 quizzes conferidos.


7. Riscos

Risco Mitigação
Conteúdo longo, mas raso ou genérico Piloto revisado; código checado; ligação a arquivos reais do Catálogo (Seção 4)
Informação técnica desatualizada (versões de frameworks) Citar versões só quando necessário e seguir as do Catálogo (ex.: Spring Boot 3, Angular 18)
Slides e quizzes desalinhados do tópico novo Ajustados na mesma etapa e no mesmo PR do tópico
Links novos para o Catálogo quebrando test_links.py agora verifica todas as páginas publicadas

8. Estado e próximos passos (2026-10-18)

8.1 O que já foi mesclado na main

PR Conteúdo
#40 Este plano; piloto do Bloco 1 (caps 01–04: tópicos com 184–201 linhas, slides, quizzes; exercícios dos caps 01 e 02 reescritos com gabaritos executados); projetos/index.md do curso; Compose do fullstack_tarefas_05 corrigido; 534 tabelas corrigidas, 102 quizzes com <T>/<stdio.h> escapados e regras 3 e 4 do check_estrutura_portal.py.
#41 Navegação escrita à mão removida de 3.700 rodapés e 992 topos (as abas e os cartões anterior/próximo do layout já fazem isso); 80 páginas de React e TypeScript de layout: default para single, sem H1 repetido; regra 5 do CI; AGENTS.md com o layout real.
#47 Bloco 2 (caps 05 a 08): tópicos de 171 a 230 linhas, exercícios no padrão do piloto (os genéricos dos caps 05 e 06 e os que contradiziam os tópicos novos nos caps 07 e 08), código verificado rodando (PostgreSQL real no cap 07).
#48 Correção de concorrência no checkout da TecLoja (01, 03 e 04) para não vender o último item várias vezes.

8.2 Recomendações (checklist)

# Recomendação Status
R1 Enviar as duas branches ao GitHub antes da aprovação, para o trabalho não depender de uma máquina. Push em branch não roda o CI (o workflow só dispara em main e PR). ✅ Feito em 2026-10-04 (c3762c8e e d80ab92a)
R2 Revisar o piloto pelo que define o padrão dos 16 capítulos restantes: estrutura do tópico com a seção “No Catálogo de Projetos”; tamanho de 184–201 linhas; exercícios com gabarito executado; página sem navegação escrita à mão. O que mudar agora é repetido nos Blocos 2–5. ✅ Piloto aprovado pelo usuário em 2026-10-04
R3 Fazer o merge do PR da navegação logo depois do PR do Bloco 1. Ele toca ~4.600 páginas de todos os cursos e conflitaria com qualquer outra frente enquanto estiver aberto. ✅ Feito em 2026-10-04: #40 (Bloco 1), #41 (navegação) e #42 (catálogo) mesclados na ordem
R4 Antes dos Blocos 2–5, varrer o site atrás de exercícios idênticos ou quase idênticos entre capítulos. A busca de 2026-10-04 procurou só a frase exata do modelo do Full Stack; outros cursos podem ter modelos com outras palavras. ✅ Feito em 2026-10-04: a varredura dos 3.201 problemas achou exercícios genéricos em 4 cursos (MATLAB, Svelte, extra_redes, mod_03) e rasos em quase todos; numeração corrigida em 67 cadernos (#45)
R5 fullstack_estoque_02_spring_auth devolve 403 sem token (falta AuthenticationEntryPoint no SecurityConfig.java). Corrigir no projeto ou mantê-lo como estudo de caso, deixando isso escrito na página; o exercício 02.4 já cita o defeito. ✅ Corrigido no projeto em 2026-10-04 (PR #42): 401 sem token e com token expirado ou malformado, teste de integração com a cadeia de filtros, api.js só desloga no 401; o mesmo no fullstack_estoque_01_spring_spa. O exercício 02.4 descreve a correção
R6 Limpeza local: apagar branches já integradas na main (docs/atualiza-memoria-contexto, feat/paginas-internas-ui-ux, feat/unifica-*, docs/plano-migracao-projetos-cursos; conferir uma a uma); apagar as pastas não versionadas proj_aplicacoes_full_stack/; trocar a imagem gerada por IA do VS Code no curso de FastAPI por uma captura real. 🟡 Branches integradas apagadas; falta a imagem (depende do usuário)
R7 audit_course_depth.py avaliar conteúdo, não só tamanho: por exemplo, reprovar o capítulo cujo título de problema se repete em vários capítulos. Teria pegado os exercícios genéricos que a auditoria aprovou como Grau A. ✅ Feito em 2026-10-04 (#46): nota de exercícios A–D por curso; exercícios C limitam o curso a B, e D a C

8.3 Ordem sugerida ao retomar

  1. R2: piloto aprovado em 2026-10-04.
  2. PR do Bloco 1 → R3: feitos (#40, #41).
  3. R4 e R7: feitos (#45, #46).
  4. Bloco 2 (caps 05 a 08): concluído e mesclado (PR #47) + correção do checkout da TecLoja (PR #48).
  5. Próximo: Bloco 3 (caps 09 a 12), seguido dos Blocos 4 (caps 13 a 16) e 5 (caps 17 a 20), um PR cada. O cap 09 continua genérico (a auditoria não o acusa mais porque os caps com que ele se repetia já foram reescritos) e será refeito no Bloco 3. Faz parte da opção A do plano de melhoria dos 40 cursos (seção 0).
  6. R6 (imagem do FastAPI) e a Etapa 6 no fechamento da frente.

⬅️ Voltar à Central de Documentação 🏠 Página Inicial