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.
main. Próximo passo: Bloco 3 (capítulos 09 a 12)._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.
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.
| 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) |
| 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 |
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.
É 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).
Texto longo e genérico já é o problema de hoje, e encher linhas não resolve. Para evitar isso:
tsc --noEmit, javac, python -m py_compile) sempre que forem autocontidos.fullstack_estoque_02_spring_auth), não descrições vagas.audit_course_depth.py roda a cada lote, olhando o mínimo por capítulo além da média.| # | 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.
| 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.
| 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 |
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. |
| # | 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 |
| ⬅️ Voltar à Central de Documentação | 🏠 Página Inicial |