# Engenharia de IA Aplicada à Programação Web

Formação prática para desenvolver aplicações web modernas com Inteligência Artificial, utilizando TypeScript de ponta a ponta, Angular no front-end, NestJS no back-end e MySQL como banco de dados relacional.

## Objetivo

Ao concluir a formação, o aluno será capaz de projetar, implementar, testar, publicar e defender tecnicamente um Micro-SaaS que combine:

- interface web responsiva;
- API segura;
- persistência em MySQL;
- integração com modelos de IA;
- RAG sobre documentos;
- ferramentas, MCP e agentes;
- aprovação humana para ações críticas;
- testes, observabilidade e controle de custos;
- fluxo de entrega contínua.

## Organização do conteúdo

- [Contexto, andamento e continuidade](docs/CONTEXTO-E-ANDAMENTO.md)
- [Matriz curricular](docs/matriz-curricular.md)
- [Arquitetura técnica](docs/arquitetura-tecnica.md)
- [Módulo 1 - Fundamentos da Web](modulos/01-fundamentos-web/README.md)
- [Aula 1.1 - Como a Web funciona](modulos/01-fundamentos-web/aulas/01-como-a-web-funciona.md)
- [Aula 1.2 - HTML semântico, formulários e acessibilidade](modulos/01-fundamentos-web/aulas/02-html-semantico.md)
- [Aula 1.3 - CSS e design responsivo](modulos/01-fundamentos-web/aulas/03-css-responsivo.md)
- [Aula 1.4 - JavaScript no navegador](modulos/01-fundamentos-web/aulas/04-javascript-navegador.md)
- [Aula 1.5 - DevTools, acessibilidade, desempenho e segurança](modulos/01-fundamentos-web/aulas/05-devtools-acessibilidade-seguranca.md)
- [Aula 1.6 - Git, documentação, publicação e apresentação](modulos/01-fundamentos-web/aulas/06-git-publicacao-apresentacao.md)
- [Lista de verificação de auditoria web](modulos/01-fundamentos-web/materiais/checklist-auditoria-web.md)
- [Rubrica do Projeto do Módulo 1](modulos/01-fundamentos-web/materiais/rubrica-projeto-modulo-1.md)
- [Roteiro de apresentação](modulos/01-fundamentos-web/materiais/roteiro-apresentacao.md)
- [Projeto executável do Módulo 1](modulos/01-fundamentos-web/exemplos/aula-1.2/index.html)

## Aulas renderizadas do Módulo 1

- [Aula 1.1 - Como a Web funciona](modulos/01-fundamentos-web/renderizadas/aula-01.html)
- [Aula 1.2 - HTML semântico, formulários e acessibilidade](modulos/01-fundamentos-web/renderizadas/aula-02.html)
- [Aula 1.3 - CSS e design responsivo](modulos/01-fundamentos-web/renderizadas/aula-03.html)
- [Aula 1.4 - JavaScript no navegador](modulos/01-fundamentos-web/renderizadas/aula-04.html)
- [Aula 1.5 - DevTools, acessibilidade, desempenho e segurança](modulos/01-fundamentos-web/renderizadas/aula-05.html)
- [Aula 1.6 - Git, documentação, publicação e apresentação](modulos/01-fundamentos-web/renderizadas/aula-06.html)

## Módulo 2 - JavaScript moderno

- [Plano do módulo](modulos/02-javascript-moderno/README.md)
- [Aula 2.1 - Valores, variáveis, tipos e operadores](modulos/02-javascript-moderno/renderizadas/aula-01.html)
- [Laboratório - Explorador de tipos](modulos/02-javascript-moderno/exemplos/aula-2.1/index.html)
- [Aula 2.2 - Condições e repetições](modulos/02-javascript-moderno/renderizadas/aula-02.html)
- [Laboratório - Classificador de tarefas](modulos/02-javascript-moderno/exemplos/aula-2.2/index.html)
- [Aula 2.3 - Funções, escopo e closures](modulos/02-javascript-moderno/renderizadas/aula-03.html)
- [Laboratório - Biblioteca de regras](modulos/02-javascript-moderno/exemplos/aula-2.3/index.html)
- [Aula 2.4 - Arrays e transformação de dados](modulos/02-javascript-moderno/renderizadas/aula-04.html)
- [Laboratório - Painel de métricas](modulos/02-javascript-moderno/exemplos/aula-2.4/index.html)
- [Aula 2.5 - Objetos, JSON e modelagem](modulos/02-javascript-moderno/renderizadas/aula-05.html)
- [Laboratório - Modelador de tarefas](modulos/02-javascript-moderno/exemplos/aula-2.5/index.html)
- [Aula 2.6 - Módulos e tratamento de erros](modulos/02-javascript-moderno/renderizadas/aula-06.html)
- [Laboratório - Aplicação modular](modulos/02-javascript-moderno/exemplos/aula-2.6/index.html)
- [Aula 2.7 - Promises, async/await e Fetch](modulos/02-javascript-moderno/renderizadas/aula-07.html)
- [Laboratório - Cliente de API](modulos/02-javascript-moderno/exemplos/aula-2.7/index.html)
- [Aula 2.8 - Armazenamento, testes e projeto final](modulos/02-javascript-moderno/renderizadas/aula-08.html)
- [Laboratório - Painel final de tarefas](modulos/02-javascript-moderno/exemplos/aula-2.8/index.html)

## Módulo 3 - TypeScript, Git e qualidade

- [Plano do módulo](modulos/03-typescript-git-qualidade/README.md)
- [Aula 3.1 - Introdução ao TypeScript](modulos/03-typescript-git-qualidade/renderizadas/aula-01.html)
- [Laboratório - Primeiro projeto TypeScript](modulos/03-typescript-git-qualidade/exemplos/aula-3.1/index.html)
- [Aula 3.2 - Interfaces, aliases e contratos](modulos/03-typescript-git-qualidade/renderizadas/aula-02.html)
- [Laboratório - Modelador de contratos](modulos/03-typescript-git-qualidade/exemplos/aula-3.2/index.html)
- [Aula 3.3 - Unions, narrowing e generics](modulos/03-typescript-git-qualidade/renderizadas/aula-03.html)
- [Laboratório - Biblioteca genérica de estados](modulos/03-typescript-git-qualidade/exemplos/aula-3.3/index.html)
- [Aula 3.4 - Configuração, lint e formatação](modulos/03-typescript-git-qualidade/renderizadas/aula-04.html)
- [Laboratório - Fluxo local de qualidade](modulos/03-typescript-git-qualidade/exemplos/aula-3.4/index.html)
- [Aula 3.5 - Git, branches e pull requests](modulos/03-typescript-git-qualidade/renderizadas/aula-05.html)
- [Laboratório - Fluxo Git local e remoto](modulos/03-typescript-git-qualidade/exemplos/aula-3.5/index.html)
- [Aula 3.6 - Testes, documentação e projeto final](modulos/03-typescript-git-qualidade/renderizadas/aula-06.html)
- [Laboratório - Painel de entrega TypeScript](modulos/03-typescript-git-qualidade/exemplos/aula-3.6/index.html)

## Módulo 4 - Angular

- [Plano do módulo](modulos/04-angular/README.md)
- [Aula 4.1 - Introdução ao Angular e componentes](modulos/04-angular/renderizadas/aula-01.html)
- [Laboratório - Anatomia de um componente](modulos/04-angular/exemplos/aula-4.1/index.html)
- [Aula 4.2 - Templates, bindings e control flow](modulos/04-angular/renderizadas/aula-02.html)
- [Laboratório - Lista dinâmica de tarefas](modulos/04-angular/exemplos/aula-4.2/index.html)
- [Aula 4.3 - Composição, inputs e outputs](modulos/04-angular/renderizadas/aula-03.html)
- [Laboratório - Fluxo entre componentes](modulos/04-angular/exemplos/aula-4.3/index.html)
- [Aula 4.4 - Serviços e injeção de dependência](modulos/04-angular/renderizadas/aula-04.html)
- [Laboratório - Mapa de serviços e injetores](modulos/04-angular/exemplos/aula-4.4/index.html)
- [Aula 4.5 - Rotas, layouts e navegação](modulos/04-angular/renderizadas/aula-05.html)
- [Laboratório - Simulador do Angular Router](modulos/04-angular/exemplos/aula-4.5/index.html)
- [Aula 4.6 - Formulários e validação](modulos/04-angular/renderizadas/aula-06.html)
- [Laboratório - Cadastro acessível de tarefa](modulos/04-angular/exemplos/aula-4.6/index.html)
- [Aula 4.7 - HTTP, APIs e RxJS](modulos/04-angular/renderizadas/aula-07.html)
- [Laboratório - Console de requisições](modulos/04-angular/exemplos/aula-4.7/index.html)
- [Aula 4.8 - Signals e estado da interface](modulos/04-angular/renderizadas/aula-08.html)
- [Laboratório - Grafo reativo de tarefas](modulos/04-angular/exemplos/aula-4.8/index.html)
- [Aula 4.9 - Interceptors, erros e acessibilidade](modulos/04-angular/renderizadas/aula-09.html)
- [Laboratório - Fluxo HTTP resiliente](modulos/04-angular/exemplos/aula-4.9/index.html)
- [Aula 4.10 - Testes, compilação e projeto final](modulos/04-angular/renderizadas/aula-10.html)
- [Laboratório - Auditoria final do painel Angular](modulos/04-angular/exemplos/aula-4.10/index.html)

## Módulo 5 - Node.js, NestJS e APIs

- [Plano do módulo](modulos/05-node-nestjs-apis/README.md)
- [Aula 5.1 - Introdução ao Node.js e NestJS](modulos/05-node-nestjs-apis/renderizadas/aula-01.html)
- [Laboratório - Ciclo de uma API NestJS](modulos/05-node-nestjs-apis/exemplos/aula-5.1/index.html)
- [Aula 5.2 - Módulos, controladores e provedores](modulos/05-node-nestjs-apis/renderizadas/aula-02.html)
- [Laboratório - Mapa do contêiner NestJS](modulos/05-node-nestjs-apis/exemplos/aula-5.2/index.html)
- [Aula 5.3 - REST, rotas e respostas HTTP](modulos/05-node-nestjs-apis/renderizadas/aula-03.html)
- [Laboratório - Console REST da Knowledge API](modulos/05-node-nestjs-apis/exemplos/aula-5.3/index.html)
- [Aula 5.4 - DTOs, pipes e validação](modulos/05-node-nestjs-apis/renderizadas/aula-04.html)
- [Laboratório - Fluxo de validação](modulos/05-node-nestjs-apis/exemplos/aula-5.4/index.html)
- [Aula 5.5 - Erros, filtros e configuração](modulos/05-node-nestjs-apis/renderizadas/aula-05.html)
- [Laboratório - Centro de erros e configuração](modulos/05-node-nestjs-apis/exemplos/aula-5.5/index.html)
- [Aula 5.6 - OpenAPI e documentação](modulos/05-node-nestjs-apis/renderizadas/aula-06.html)
- [Laboratório - Explorador de contrato OpenAPI](modulos/05-node-nestjs-apis/exemplos/aula-5.6/index.html)
- [Aula 5.7 - Registros, interceptadores e testes](modulos/05-node-nestjs-apis/renderizadas/aula-07.html)
- [Laboratório - Central de observação e testes](modulos/05-node-nestjs-apis/exemplos/aula-5.7/index.html)
- [Aula 5.8 - Compilação e projeto final](modulos/05-node-nestjs-apis/renderizadas/aula-08.html)
- [Laboratório - Painel de entrega da Knowledge API](modulos/05-node-nestjs-apis/exemplos/aula-5.8/index.html)

## Arquitetura pedagógica

A formação principal possui 240 horas, distribuídas em cinco níveis:

1. Fundamentos de programação web.
2. Desenvolvimento full-stack.
3. Aplicações web com IA.
4. Agentes, MCP e arquitetura AI-first.
5. Produção, governança e projeto final.

Os assuntos de Kubernetes, Terraform, AIOps, LoRA e sistemas multiagente avançados serão oferecidos como trilhas de aprofundamento.

## Projeto evolutivo

Durante o curso, o aluno construirá uma plataforma inteligente de conhecimento. O produto começa como uma página web e evolui até se tornar um Micro-SaaS completo.

Cada módulo adiciona uma capacidade real ao produto:

1. página responsiva;
2. aplicação Angular;
3. API NestJS;
4. autenticação e MySQL;
5. chat com IA;
6. documentos e RAG;
7. ferramentas e MCP;
8. agentes com aprovação humana;
9. observabilidade e segurança;
10. publicação do produto.

## Padrão das aulas

Cada aula deve conter:

- introdução para quem ainda não conhece o assunto;
- objetivos mensuráveis;
- pré-requisitos;
- explicação conceitual;
- demonstração;
- implementação guiada;
- exercício de fixação;
- desafio individual;
- erros comuns;
- critérios de aceite;
- material produzido para o portfólio.

A introdução deve responder, em linguagem direta:

- o que é o assunto;
- para que ele serve;
- onde funciona;
- com quais conceitos costuma ser confundido;
- o que não é necessário saber antecipadamente;
- como ele se conecta ao projeto do curso.

O ciclo pedagógico adotado é:

> Entender -> observar -> implementar -> testar -> corrigir -> publicar.
