Table of Contents
Aplicativos Informatizados 💻
Domine o uso profissional do computador, ferramentas de produtividade em nuvem e softwares de escritório essenciais para o mercado de trabalho.
Foco do Curso
Metodologia: Aprendizado 100% prático focado na construção de competências digitais, integrando teoria fundamental com projetos aplicados de produtividade.
🎯 O Que Você Vai Aprender
-
Sistemas Operacionais --- Conheça o coração do computador, aprenda a gerenciar arquivos e entenda as diferenças entre os principais sistemas. Ir para Módulo 1
-
Produtividade Office --- Domine Word e Excel (ou equivalentes) para criar documentos e planilhas profissionais com fórmulas e automações. Ver Ferramentas
-
Ferramentas em Nuvem --- Aprenda a trabalhar de forma colaborativa com Google Workspace, armazenamento inteligente e segurança de dados. Ver Nuvem
-
Redes e Comunicação --- Entenda como a internet funciona, domine técnicas de pesquisa avançada e descubra como publicar conteúdo de forma segura. Ver Projetos
📚 Jornada de Aprendizado (16 Aulas)
O curso é estruturado em quatro trilhas de especialização.
🖥️ Módulo 1: Fundamentos e Escrita (Aulas 01-03)
- Aula 01 - Fundamentos de Sistemas Operacionais ⚙️
- Aula 02 - Edição de Textos I (Formatação) ✍️
- Aula 03 - Edição de Textos II (Recursos Avançados) 📑
📈 Módulo 2: Domínio de Planilhas (Aulas 04-07)
- Aula 04 - Planilhas I (Interface e Base) 📊
- Aula 05 - Planilhas II (Fórmulas) ➕
- Aula 06 - Planilhas III (Funções) 🧮
- Aula 07 - Planilhas IV (Gráficos) 📉
📽️ Módulo 3: Design e Nuvem (Aulas 08-11)
- Aula 08 - Apresentações I (Slides) 📽️
- Aula 09 - Apresentações II (Design) 🎨
- Aula 10 - Armazenamento em Nuvem ☁️
- Aula 11 - Segurança de Dados 🔐
🚀 Módulo 4: Produtividade e Web (Aulas 12-16)
- Aula 12 - Webmail e Agenda 📧
- Aula 13 - Colaboração em Nuvem 👥
- Aula 14 - Redes de Comunicação 🌐
- Aula 15 - Pesquisa Avançada na Web 🔍
- Aula 16 - Publicação e Redes Sociais 🚀
Plano de Ensino 📅
Curso: Aplicativos Informatizados (Fundamentos, Office e Nuvem)
Ementa
- Fundamentos e Sistemas: Introdução à informática, hardware, software e sistemas operacionais.
- Produtividade com Textos: Formatação, estruturação de documentos, objetos e etiquetas.
- Gestão com Planilhas: Cálculos, fórmulas, funções lógicas, gráficos e análise de dados.
- Apresentações e Design: Criação de slides profissionais e técnicas de comunicação.
- Nuvem e Colaboração: Armazenamento, segurança, e-mail, agenda e ferramentas de produtividade.
- Redes e Web: Noções de redes, pesquisa avançada, segurança digital e publicação na web.
Cronograma (16 Aulas)
Módulo 1: Fundamentos e Softwares de Escrita
- Aula 01: Fundamentos de Sistemas Operacionais
- Aula 02: Edição de Textos I (Formatação Básica)
- Aula 03: Edição de Textos II (Recursos Avançados e Etiquetas)
Módulo 2: Domínio de Planilhas Eletrônicas
- Aula 04: Planilhas I (Interface e Formatação)
- Aula 05: Planilhas II (Fórmulas Matemáticas)
- Aula 06: Planilhas III (Funções Lógicas e de Dados)
- Aula 07: Planilhas IV (Gráficos e Relatórios)
Módulo 3: Apresentações e Nuvem
- Aula 08: Apresentações I (Slides Profissionais)
- Aula 09: Apresentações II (Técnicas e Design)
- Aula 10: Armazenamento em Nuvem (Sync e Backup)
- Aula 11: Segurança de Dados e Privacidade
Módulo 4: Produtividade e Web
- Aula 12: Aplicativos de Produtividade I (Webmail/Agenda)
- Aula 13: Aplicativos de Produtividade II (Colaboração)
- Aula 14: Conceitos de Redes de Comunicação
- Aula 15: Técnicas de Pesquisa Avançada
- Aula 16: Publicação na Internet e Redes Sociais
Avaliação
- Exercícios: 16 listas de fixação (teoria e prática).
- Projetos: 16 mini-projetos aplicados.
- Quizzes: 16 testes de progresso.
- Projeto Final: Criação de um portfólio digital integrando todas as ferramentas aprendidas.
Aulas
Aula 01 - Introdução a Serviços e Microsserviços 🌐
Objetivo
Objetivo: Compreender a evolução das arquiteturas de software, diferenciar Monólitos de Microsserviços e entender o papel das APIs no ecossistema moderno de desenvolvimento.
1. O que são Serviços e Microsserviços? 🧩
No desenvolvimento moderno, um serviço é uma unidade funcional que entrega um valor específico (ex: processar um pagamento, enviar um e-mail).
🏛️ O Monólito
Historicamente, sistemas eram construídos como Monólitos: um único bloco de código onde tudo (interface, lógica, banco de dados) está fortemente acoplado.
- Vantagens: Simples de desenvolver inicialmente, fácil de testar localmente.
- Desvantagens: Difícil de escalar, uma falha em um módulo pode derrubar o sistema todo, barreira tecnológica (difícil mudar a linguagem após o início).
🏗️ Os Microsserviços
A arquitetura de Microsserviços decompõe a aplicação em serviços pequenos, independentes e focados em uma única responsabilidade (Single Responsibility Principle).
- Vantagens: Escalabilidade granular, resiliência (isolamento de falhas), liberdade tecnológica (cada serviço pode usar uma linguagem diferente).
- Desvantagens: Complexidade operacional, dificuldade em manter a consistência de dados, latência de rede.
Aula 01 - Fundamentos de Sistemas Operacionais 🖥️
Bem-vindo à nossa primeira aula! Hoje vamos entender o que é o "cérebro" do computador: o Sistema Operacional. Sem ele, o hardware seria apenas um amontoado de peças sem utilidade.
🧠 O que é um Sistema Operacional?
O Sistema Operacional (SO) é o conjunto de programas que gerencia recursos de hardware e fornece serviços aos programas de aplicativo. Ele atua como uma ponte entre o usuário e a máquina.
Conceito Chave
O SO é responsável por gerenciar a CPU, a memória RAM, o armazenamento (HD/SSD) e os dispositivos de entrada/saída (teclado, mouse, monitor).
📊 Visão Geral da Arquitetura
graph TD
User["👤 Usuário"] --> UI["🖥️ Interface (GUI/CLI)"]
UI --> App["📂 Aplicativos (Navegador, Word, Games)"]
App --> OS["⚙️ Sistema Operacional"]
OS --> HW["💻 Hardware (CPU, RAM, Disco)"]
style OS fill:#f96,stroke:#333,stroke-width:4px
🏗️ Tipos de Sistemas Operacionais
Existem diferentes tipos de SOs, cada um projetado para uma finalidade específica:
- Desktop/Laptop: Focados em produtividade pessoal (Ex: Windows, macOS, Linux).
- Mobile: Otimizados para toque e eficiência energética (Ex: Android, iOS).
- Servidores: Projetados para alta disponibilidade e rede (Ex: Ubuntu Server, Windows Server).
- Sistemas Embarcados: SOs simples "dentro" de dispositivos como micro-ondas ou painéis de carros.
⚙️ Funções Básicas
Abaixo, as principais tarefas que o seu computador realiza o tempo todo "por trás das cenas":
| Função | Descrição |
|---|---|
| Gerenciamento de Processos | Decide qual programa usa o processador e por quanto tempo. |
| Gerenciamento de Memória | Aloca espaço na RAM para que os programas possam rodar sem travar. |
| Sistema de Arquivos | Organiza como os dados são gravados e lidos no HD/SSD. |
| Interface com Usuário | Permite que você clique em ícones ou use o teclado. |
💻 Mão na Massa: Explorando o SO via Terminal
Embora a maioria use interfaces visuais, o terminal é a forma mais poderosa de interagir com o SO.
📝 Exercícios de Fixação
- Identificação: Qual SO você está usando neste momento? Ele é do tipo Desktop ou Mobile?
- Multitarefa: O que acontece se o SO não gerenciar bem a memória RAM ao abrir muitos programas?
- Conceitual: Explique com suas palavras a diferença entre Hardware e Software.
Dica do Professor
Tente abrir o Gerenciador de Tarefas (Ctrl + Shift + Esc no Windows) e observe as abas de Desempenho. Ali você vê o SO trabalhando em tempo real!
🚀 Mini-Projeto: Relatório de Sistema
Objetivo: Criar um documento simples identificando as características do seu computador atual.
- Abra o bloco de notas.
- Liste: Nome do SO, Versão, Quantidade de RAM instalada e Processador.
- Salve como
meu_sistema.txte guarde na sua pasta do curso.
3. A Economia das APIs 📡
API (Application Programming Interface) é a "ponte" que permite a comunicação entre esses serviços ou entre sistemas diferentes.
- REST: O padrão de mercado baseado no protocolo HTTP.
- Endpoints: URLs específicas que expõem funcionalidades (ex:
GET /produtos). - Contratos: Acordos sobre como os dados devem ser enviados e recebidos (geralmente via JSON).
4. Ferramentas Essenciais 🛠️
Para trabalhar com backend e APIs, você precisará de um "cinto de utilidades" moderno:
- Client HTTP (Postman/Insomnia): Para testar endpoints sem precisar de um frontend.
- Docker: Para "empacotar" seus serviços e garantir que rodem em qualquer máquina.
- Git/GitHub: Para versionamento e colaboração.
- Runtime: Node.js, Java (JDK) ou Python (dependendo do projeto).
5. Estrutura de um Projeto Moderno 📂
Diferente de um app mobile, um ecossistema de microsserviços geralmente é organizado em Mono-repos ou Multi-repos.
Visão de Pastas (Padrão Backend)
$ ls -R backend-master
auth-service/ (Nodejs)
├── src/
├── package.json
└── Dockerfile
catalog-service/ (Java/Spring)
├── src/
├── pom.xml
└── Dockerfile
api-gateway/ (Go)
└── main.go
6. Mini-Projeto: Configurando o Cinto de Utilidades 🚀
Sua missão é preparar o ambiente para o desenvolvimento backend:
- Instalar o Visual Studio Code (ou IntelliJ CE).
- Instalar o Postman ou a extensão Thunder Client no VS Code.
- Instalar o Docker Desktop.
- Garantir que o Git esteja configurado no seu terminal.
Veja o passo a passo detalhado na seção Configuração > Setup Backend.
7. Exercício de Fixação 🧠
Responda em seu caderno/arquivo de notas:
- Explique o conceito de "Escalabilidade Horizontal" no contexto de microsserviços.
- Qual a função de um API Gateway em um sistema distribuído?
- Por que a consistência de dados é um desafio maior em microsserviços do que em monólitos?
Próxima Aula: Vamos mergulhar na Arquitetura de Microsserviços e API Gateway! 🏗️
Aula 02 - Processamento e Edição de Textos I ✍️
Nesta aula, vamos mergulhar no mundo dos documentos digitais. Aprenderemos a transformar textos simples em documentos profissionais e bem estruturados.
📄 O que é um Processador de Texto?
Um processador de texto é um software que permite criar, editar, formatar e imprimir documentos. Diferente de um simples editor de notas, ele oferece recursos visuais avançados.
Exemplos Comuns
- Microsoft Word: O padrão da indústria.
- Google Docs: Focado em colaboração em tempo real.
- LibreOffice Writer: Uma alternativa poderosa e gratuita.
🎨 Formatação Básica
A formatação é o que dá "personalidade" ao texto. Os elementos fundamentais incluem:
- Tipografia (Fontes): Escolha entre fontes Serifadas (ex: Times New Roman) para textos longos ou Não Serifadas (ex: Arial) para telas.
- Estilos de Destaque:
- Negrito (B): Para dar ênfase.
- Itálico (I): Para palavras estrangeiras ou títulos.
- Sublinhado (U): Para links ou destaques específicos.
- Parágrafos: Alinhamento (Esquerda, Centralizado, Direita, Justificado).
🏗️ Estrutura e Hierarquia
Documentos profissionais usam Títulos e Subtítulos (Heading 1, Heading 2, etc.) para organizar o conteúdo.
mindmap
root((Documento Profissional))
Estrutura
Título Principal
Subtítulos
Corpo do Texto
Formatacao
Fonte Arial/Inter
Tamanho 12pt
Espaçamento 1.5
Elementos
Listas
Tabelas
Imagens
💻 Mão na Massa: Atalhos de Produtividade
Aumente sua velocidade de edição aprendendo estes comandos universais:
📝 Exercícios de Fixação
- Prática: Abra um processador de texto e escreva um parágrafo sobre seu hobby favorito. Aplique Negrito no nome do hobby e Itálico em uma curiosidade.
- Análise: Por que o alinhamento "Justificado" é preferido em documentos formais?
- Comparação: Cite uma vantagem de usar o Google Docs em relação ao Word instalado no PC.
Atenção
Cuidado com o excesso de fontes diferentes! Um documento profissional raramente usa mais de duas famílias de fontes.
🚀 Mini-Projeto: Carta de Apresentação
Objetivo: Criar uma carta de apresentação simples para uma vaga de estágio.
- Cabeçalho: Nome, Cidade e Data (Centralizado).
- Corpo: Três parágrafos (Justificado).
- Assinatura: Seu nome (Direita).
- Requisito: Use fonte Arial, tamanho 12, e aplique Negrito apenas nas informações de contato.
- Salve como
carta_apresentacao_seunome.pdf.
Próxima Aula: Vamos avançar nos recursos editoriais com Edição de Textos II (Recursos Avançados)! 📡
Aula 03 - Modelagem REST
* `400 Bad Request`: Requisição inválida (falta de dados).
* `401 Unauthorized`: Falta de autenticação.
* `403 Forbidden`: Autenticado, mas sem permissão.
* `404 Not Found`: Recurso não existe.
- 5xx (Erro do Servidor):
500 Internal Server Error: O servidor "quebrou".
5. O Formato JSON 🏗️
O JSON (JavaScript Object Notation) é o padrão de facto para troca de dados em APIs REST por ser leve e fácil de ler (por humanos e máquinas).
{
"id": 123,
"nome": "Smartphone X",
"preco": 1500.00,
"disponivel": true,
"categorias": ["Eletrônicos", "Ofertas"]
}
6. Mini-Projeto: Desenhando um Contrato ✍️
Imagine que você está criando uma API para uma Biblioteca.
- Defina a URI para listar todos os livros.
- Defina a URI e o Verbo para cadastrar um novo livro.
- Qual Status Code você retornaria se alguém tentasse deletar um livro que não existe?
- Desenhe o JSON de um objeto "Livro" com pelo menos 5 campos.
7. Exercício de Fixação 🧠
- Diferencie
PUTdePATCHcom um exemplo prático. - Por que não devemos usar verbos nas URIs (ex:
/deletarUsuario/123)? - O que significa uma API ser "Stateless"?
Próxima Aula: Vamos aprender a documentar essas APIs com Swagger e criar Mocks! 📝
Aula 04 - Planilhas Eletrônicas I: Fundamentos 📊
As planilhas são ferramentas poderosas para organizar dados, realizar cálculos automáticos e analisar informações de forma rápida.
📅 O que é uma Planilha?
Uma planilha é uma grade composta por Linhas (identificadas por números) e Colunas (identificadas por letras). O cruzamento de uma linha com uma coluna chama-se Célula.
Endereço de Célula
Cada célula tem um "nome" único. Por exemplo, a célula na coluna B e linha 4 chama-se B4.
🏗️ Estrutura da Interface
- Célula Ativa: A célula que está selecionada no momento.
- Barra de Fórmulas: Onde você digita ou visualiza o conteúdo real da célula.
- Guias/Abas: Diferentes folhas de cálculo dentro do mesmo arquivo.
📊 Organização de Dados
graph LR
Col["🔤 Colunas (A, B, C...)"] --- Cell(("📦 Célula"))
Line["🔢 Linhas (1, 2, 3...)"] --- Cell
Cell --> Data["📝 Dados (Texto, Números, Datas)"]
🎨 Formatação de Células
Diferente de um texto comum, nas planilhas formatamos o tipo de dado:
- Moeda/Contábil: Para valores em dinheiro (R$).
- Porcentagem: Para taxas e descontos (%).
- Data/Hora: Formata números como datas válidas.
- Bordas e Preenchimento: Essencial para criar tabelas legíveis.
💻 Mão na Massa: Criando sua Primeira Tabela
📝 Exercícios de Fixação
- Localização: Qual é o nome da célula que fica na coluna D e na linha 10?
- Prática: Digite a data de hoje em uma célula e tente mudar a formatação para "Data Longa" (ex: Segunda-feira, 22 de fevereiro...).
- Lógica: Por que é melhor digitar o valor
25,00em uma célula e formatar como moeda, em vez de digitarR$ 25,00como se fosse um texto?
🚀 Mini-Projeto: Controle de Mesada ou Gastos Semanais
Objetivo: Criar uma planilha organizada para controle financeiro simples.
- Abra o Excel ou Google Sheets.
- Crie as colunas:
Data,Descrição,CategoriaeValor. - Insira 5 gastos fictícios.
- Requisito de Formatação:
- Títulos em Negrito com fundo colorido.
- Coluna de Valor formatada como Moeda (R$).
- Coluna de Data formatada como Data Curta.
- Salve como
projeto_04_gastos.xlsx. - Mockoon / Prism: Servidores locais para rodar mocks.
- Postman Mock Servers: Transforma uma collection em um servidor online.
DX é o equivalente ao UX (User Experience), mas focado no programador. Uma API com boa DX possui:
* Nomes intuitivos.
* Documentação sempre atualizada.
* Exemplos de código em várias linguagens.
* Mensagens de erro claras (ex: "O campo 'email' é obrigatório" em vez de apenas 400 Bad Request).
5. Estrutura de Documentação Profissional 📂
Uma boa documentação de endpoint deve conter: 1. Título e Descrição: O que o endpoint faz? 2. Parâmetros: Quais dados enviar na URL (Path) ou no Filtro (Query)? 3. Corpo (Body): Qual o esquema do JSON de entrada? 4. Respostas: Quais Status Codes ele retorna e qual o JSON de saída para cada um?
6. Mini-Projeto: Criando Documentação no Swagger 🚀
Vamos criar um pequeno contrato para uma Loja de Games:
- Acesse o Editor do Swagger.
- Crie um endpoint
GET /gamesque retorna uma lista de objetos. - Adicione um parâmetro de filtro chamado
categoria. - Crie o modelo de dados para um
Game(id, titulo, plataforma, preco).
7. Exercício de Fixação 🧠
- Qual a diferença entre a Especificação OpenAPI e a Ferramenta Swagger?
- Como o uso de Mocks pode acelerar o cronograma de um projeto de software?
- Por que retornar apenas o Status Code (ex: 400) sem uma mensagem explicativa é considerado uma má prática de DX?
Próxima Aula: Fim do Módulo 1! No Módulo 2, iniciaremos a Implementação de APIs (Controllers/Services/Rep)! 💻
Aula 05 - Planilhas Eletrônicas II: Fórmulas Matemáticas ➕
Hoje vamos aprender a transformar as planilhas em calculadoras automáticas gigantes. O segredo está nas Fórmulas.
🔑 A Regra de Ouro das Fórmulas
Toda fórmula no Excel ou Google Sheets DEVE começar com o sinal de IGUAL (=). Se você não colocar o =, o programa entenderá que você está apenas digitando um texto comum.
O Símbolo Mágico
10 + 10=> O computador mostra "10 + 10".=10 + 10=> O computador mostra 20.
➗ Operadores Matemáticos
Usamos símbolos específicos para as quatro operações básicas:
| Operação | Símbolo | Exemplo |
|---|---|---|
| Soma | + |
=A1 + B1 |
| Subtração | - |
=A1 - B1 |
| Multiplicação | * |
=A1 * B1 |
| Divisão | / |
=A1 / B1 |
🔗 Referências de Células
Em vez de somar números fixos (como =10 + 5), somamos o conteúdo das células.
Vantagem das Referências
Se você mudar o valor da célula A1, o resultado da fórmula =A1 + 10 será atualizado automaticamente!
📊 Fluxo do Cálculo Automático
flowchart LR
Data["✍️ Altere o valor na Célula A1"] --> Trigger["⚡ Planilha detecta mudança"]
Trigger --> Calc["🧮 Recalcula a fórmula =A1+B1"]
Calc --> Update["✅ Mostra o resultado novo na Célula C1"]
💻 Mão na Massa: Calculando Subtotais
📝 Exercícios de Fixação
- Sintaxe: O que acontece se você esquecer o sinal de
=no início de uma soma? - Operação: Qual símbolo usamos para multiplicar dois números na planilha?
- Prática: Se a célula
A1vale50e aB1vale2, qual será o resultado da fórmula=A1 / B1?
🚀 Mini-Projeto: Calculadora de Preço de Venda
Objetivo: Criar uma planilha que calcule o preço final de um produto com lucro.
- Crie as colunas:
Nome do Produto,Preço de Custo,Lucro Desejado (R$)ePreço Final. - Insira 3 produtos.
- Na coluna Preço Final, use uma fórmula de Soma para somar o Custos + Lucro.
- Desafio Extra: Crie uma nova coluna chamada
Preço com Descontoe subtraia2,00do Preço Final usando uma fórmula. - Salve como
projeto_05_calculadora_precos.xlsx. | Query Params | Na URL (após o?) |/produtos?categoria=games| Filtros, ordenação e paginação. | | Request Body | No "corpo" da mensagem |{ "nome": "Novo Item" }| Criação ou atualização (POST/PUT). |
Não basta retornar os dados, precisamos seguir o contrato REST.
O Controller deve garantir:
* Status Code Errado: Jamais retorne 200 OK se ocorreu um erro.
* Corpo Padronizado: Envie as mensagens de erro dentro de um JSON para facilitar o trabalho do frontend.
5. Injeção de Dependência (Introdutório) 💉
Para que o Controller não tenha que "criar" outras classes, ele as recebe prontas. Isso facilita testes e troca de tecnologias.
6. Mini-Projeto: Dashboard de Usuários 👥
- Crie uma rota
GET /usuarios. - Crie uma rota
POST /usuarios. - Crie uma rota
DELETE /usuarios/:id. - Use o Postman para testar se os dados estão sendo recebidos e enviados corretamente.
7. Mini-Projeto: Criando seu primeiro Controller ⌨️
Imagine que você está criando o Controller de um Carrinho de Compras.
- Defina a rota para adicionar um item (POST).
- Como você capturaria o
iddo produto vindo no Body? - Crie a rota para remover um item específico (DELETE via Path Param).
- Qual o Status Code ideal se o usuário tentar remover um item que não está no carrinho?
7. Exercício de Fixação 🧠
- Por que o Controller não deve conter regras de negócio (ex: cálculo de desconto)?
- Qual a diferença prática entre usar um Query Param e um Path Param?
- O que acontece se um Controller tentar acessar
req.bodymas o cliente não enviou o headerContent-Type: application/json?
Próxima Aula: Vamos tirar a lógica do Controller e levar para o lugar certo: Services e Regras de Negócio 🧠
Aula 06 - Persistência e Banco
O Controller, então, captura esse erro e "traduz" para o HTTP:
```javascript
// No Controller
try {
await service.cadastrar(dados);
} catch (erro) {
return res.status(400).json({ mensagem: erro.message });
}
5. ViewModels e DTOs (Data Transfer Objects) 📦
Muitas vezes, não queremos devolver todos os dados do banco para o cliente (ex: não queremos devolver a senha!). Usamos DTOs para filtrar o que entra e o que sai do sistema.
🆚 Comparação: MVVM (Mobile/Frontend)
Se você já ouviu falar de MVVM, o Service no Backend é muito similar ao papel do ViewModel no Frontend: ambos lidam com a lógica e os dados, deixando a "View" (ou Controller) limpa de complexidade.
6. Mini-Projeto: Refatorando para Service 🛠️
Imagine o sistema de Transferência Bancária.
1. Crie a função transferir(origem, destino, valor) no Service.
2. Quais validações você faria antes de confirmar a transferência? (Saldo, conta ativa, valores negativos...).
3. Simule o lançamento de um erro caso o saldo seja insuficiente.
7. Exercício de Fixação 🧠
- O que acontece com a manutenção do sistema se um Service for reaproveitado por dois Controllers diferentes?
- Por que o Service não deve saber que o
reqe oresdo Express existem? - Qual a vantagem de "limpar" os dados (DTO) antes de enviá-los ao cliente?
Próxima Aula: Onde guardamos esses dados? Repositories e Banco de Dados (PostgreSQL) 🗄️
Aula 07 - Repositories e Banco de Dados (PostgreSQL) 🗄️
Objetivo
Objetivo: Entender a camada de persistência, aprender os fundamentos de Bancos de Dados Relacionais (SQL) e como o padrão Repository isola o acesso aos dados da lógica de negócio.
1. Onde os dados moram? 🏠
Até agora, se reiniciarmos nosso servidor, todos os dados (usuários, produtos, etc) somem. Para que a informação sobreviva, precisamos de um Banco de Dados.
Neste curso, usaremos o PostgreSQL, um dos bancos relacionais mais robustos e utilizados no mundo backend.
2. Bancos Relacionais vs SQL 📊
Um banco relacional organiza os dados em Tabelas (linhas e colunas), como uma planilha de Excel gigante, mas com "superpoderes" de relacionamento.
O SQL (Structured Query Language) é a linguagem que usamos para falar com o banco.
Comandos Essenciais (CRUD):
- CREATE:
INSERT INTO tabela (campos) VALUES (valores); - READ:
SELECT * FROM tabela WHERE condicao; - UPDATE:
UPDATE tabela SET campo = valor WHERE id = 1; - DELETE:
DELETE FROM tabela WHERE id = 1;
3. Relacionamentos (O "Relacional") 🔗
O grande poder do SQL é ligar tabelas: * 1:N (Um para Muitos): Um Usuário tem muitos Pedidos. * N:N (Muitos para Muitos): Um Estudante está em muitos Cursos, e um Curso tem muitos Estudantes.
4. O# Aula 07 - Planilhas Eletrônicas IV: Gráficos 📉
Números contam histórias, mas os Gráficos as tornam visíveis. Hoje aprenderemos a transformar tabelas em relatórios visuais profissionais.
💡 Por que usar Gráficos?
Um gráfico permite identificar tendências, comparar valores e entender proporções de forma muito mais rápida que lendo uma tabela cheia de números.
A Regra Visual
Se você quer mostrar crescimento no tempo, use Linhas. Se quer comparar itens, use Colunas. Se quer mostrar partes de um todo, use Pizza.
📊 Principais Tipos de Gráficos
| Tipo | Melhor uso | Exemplo |
|---|---|---|
| Colunas / Barras | Comparação entre categorias. | Vendas por Vendedor. |
| Linhas | Evolução ao longo do tempo. | Aumento da temperatura global. |
| Pizza | Proporções de um total (100%). | Gastos por Categoria. |
| Área | Similar à linha, mas destaca o volume. | Consumo de energia mensal. |
🎨 Anatomia de um Gráfico
graph TD
Chart["📊 Gráfico"] --> Title["📝 Título (O que é isso?)"]
Chart --> AxisX["↔️ Eixo X (Categorias/Meses)"]
Chart --> AxisY["↕️ Eixo Y (Valores/R$)"]
Chart --> Legend["🎨 Legenda (O que cada cor significa?)"]
Chart --> Labels["🔢 Rótulos de Dados (Valores exatos)"]
💻 Mão na Massa: Criando um Gráfico de Colunas
📝 Exercícios de Fixação
- Escolha: Se você quer mostrar a porcentagem de votos de 3 candidatos, qual o gráfico ideal?
- Análise: O que acontece com o gráfico se você mudar algum número na tabela de origem?
- Estética: Por que não devemos usar 20 fatias diferentes em um gráfico de pizza?
🚀 Mini-Projeto: Gráfico de Desempenho Pessoal
Objetivo: Criar um gráfico que mostre sua evolução ou interesses.
- Crie uma tabela simples:
AtividadeeHoras por Semana. - Ex: (Estudos: 15h, Lazer: 20h, Exercícios: 5h, Sono: 56h).
- Gere um Gráfico de Pizza para ver como você distribui seu tempo.
- Gere um Gráfico de Barras para comparar as atividades.
- Requisito: Adicione títulos claros e ative os "Rótulos de Dados" para mostrar as horas em cima das fatias/barras.
- Salve como
projeto_07_meu_tempo.xlsx. os](./aula-08.md) ✅
Aula 08 - Ferramentas de Apresentações I: Fundamentos 🎭
Uma boa apresentação não é apenas um conjunto de slides; é uma forma de contar histórias e transmitir ideias de maneira visual e impactante.
📽️ O que é um Software de Apresentação?
É uma ferramenta que permite organizar informações em Slides sequenciais, integrando textos, imagens, vídeos e animações.
Softwares Populares
- Microsoft PowerPoint: O mais tradicional e completo.
- Google Apresentações (Slides): Excelente para colaboração online.
- Canva: Focado em design moderno e intuitivo.
- Reveal.js: Para apresentações baseadas em código (como as deste curso!).
📐 Estrutura de um Slide Profissional
O maior erro em apresentações é colocar texto demais. Siga a regra do "Menos é Mais":
- Título: Curto e direto.
- Tópicos (Bullets): Use frases curtas, não parágrafos.
- Visual: Use imagens de alta qualidade que ajudem a explicar o conceito.
- Espaço em Branco: Não tente preencher cada centímetro do slide.
⚖️ A Regra 10/20/30 de Guy Kawasaki
Para apresentações de negócios ou propostas: - 10 Slides: O número ideal para não cansar o público. - 20 Minutos: O tempo máximo de atenção das pessoas. - 30 Pontos: O tamanho mínimo da fonte (para que todos consigam ler).
📊 Fluxo de Criação
graph LR
Idea["💡 Ideia / Roteiro"] --> Draft["✏️ Esboço dos Slides"]
Draft --> Design["🎨 Cores e Imagens"]
Design --> Review["👀 Revisão e Ensaio"]
💻 Mão na Massa: Criando o Slide de Título
📝 Exercícios de Fixação
- Crítica Visual: Você já assistiu a uma apresentação com "muito texto"? O que você sentiu como espectador?
- Prática: No seu software de slides, insira um novo slide e experimente mudar o "Layout" para "Duas Colunas".
- Lógica: Por que o tamanho da fonte deve ser grande (geralmente acima de 24pt)?
🚀 Mini-Projeto: Minha Primeira Apresentação
Objetivo: Criar uma estrutura básica de 3 slides sobre um tema que você gosta.
- Slide 1: Título e seu nome.
- Slide 2: "Por que eu gosto de [Tema]" (Use 3 tópicos curtos e 1 imagem).
- Slide 3: "Onde saber mais" (Links ou curiosidades).
- Requisito: Use um tema/modelo pronto do software para garantir cores harmônicas.
- Salve como
projeto_08_apresentacao_base.pptxou PDF.
Próxima Aula: Vamos dar vida aos seus slides com Apresentações II (Design e Impacto) ✨
Aula 09 - Segurança e Autenticação com JWT 🔐
Objetivo
Objetivo: Entender os conceitos de Autenticação e Autorização, aprender como funciona o padrão JWT (JSON Web Token) e como implementar um login seguro e sem estado (stateless).
1. Autenticação vs Autorização 🚦
Embora pareçam iguais, são processos diferentes: * Autenticação: "Quem é você?" (Validar e-mail e senha). * Autorização: "O que você pode fazer?" (Checar se você tem permissão de Admin, por exemplo).
2. O Problema das Sessões (Stateful) 🍪
Antigamente, o servidor guardava uma "sessão" na memória para cada usuário logado. * Problema: Se você tivesse 1 milhão de usuários, a memória do servidor estourava.
Aula 09 - Ferramentas de Apresentações II: Design e Impacto ✨
Agora que você já sabe criar slides, vamos aprender a torná-los memoráveis através de transições suaves e um design visual coeso.
🌈 Identidade Visual
Uma apresentação profissional deve seguir uma paleta de cores e fontes consistente do início ao fim.
Dica de Design
Use sites como Adobe Color para encontrar combinações de cores que funcionam bem juntas. Evite o "Efeito Arco-Íris" (muitas cores sem sentido).
🎞️ Transições vs Animações
- Transições: É o efeito de passagem de um slide para o outro (ex: Empurrar, Esmaecer). Use transições simples para não distrair o público.
- Animações: São efeitos aplicados aos objetos dentro de um slide (ex: um texto que "voa" para dentro).
- Regra de Ouro: Use animações apenas se elas ajudarem a explicar a ordem lógica das coisas.
📊 Hierarquia Visual
graph TD
Visual["👁️ Impacto Visual"] --> Contrast["🌗 Contraste (Texto escuro em fundo claro)"]
Visual --> Alignment["📏 Alinhamento (Elementos organizados)"]
Visual --> Repetition["🔁 Repetição (Padrão de cores/fontes)"]
Visual --> Proximity["↔️ Proximidade (Itens relacionados ficam juntos)"]
📢 Técnicas de Oratória Online
Ao apresentar via videoconferência (Meet, Zoom, Teams): 1. Olhe para a câmera: Isso simula o "olho no olho". 2. Iluminação: Garanta que seu rosto esteja bem iluminado. 3. Interação: Use chats ou enquetes para manter o público acordado.
💻 Mão na Massa: Aplicando Transições e Animações
📝 Exercícios de Fixação
- Raciocínio: Por que transições muito barulhentas ou espalhafatosas podem ser prejudiciais?
- Identificação: Qual o nome do princípio de design que diz que "coisas parecidas devem ter a mesma aparência"?
- Técnica: Explique a importância do contraste entre a cor da fonte e a cor do fundo do slide.
🚀 Mini-Projeto: Apresentação com Design Polido
Objetivo: Refinar a apresentação da aula anterior aplicando técnicas de design.
- Abra o arquivo da Aula 08.
- Aplique uma Transição de "Esmaecer" em todos os slides.
- No slide 2, aplique uma Animação de "Surgir" nos tópicos (bullets), para que eles apareçam um por um.
- Desafio de Cores: Mude o fundo dos slides para uma cor escura e o texto para branco (Modo Escuro).
- Adicione uma imagem de fundo com transparência (marca d'água).
- Salve a versão final como
projeto_09_design_impacto.pdf.
7. Exercício de Fixação 🧠
- Por que o JWT é chamado de "Stateless" (Sem estado)?
- O que acontece se uma pessoa mal-intencionada mudar o
rolede 'user' para 'admin' dentro do Payload do JWT? Por que a assinatura (Signature) impede isso? - Qual o perigo de usar uma "Chave Secreta" muito Curta ou óbvia (ex: "123")?
Próxima Aula: Como proteger rotas específicas? Controle de Acesso (RBAC) e Permissões 🛡️
Aula 10 - Armazenamento em Nuvem ☁️
A nuvem não é mágica, ela é apenas o computador de outra pessoa que você acessa via internet. Hoje aprenderemos a salvar e organizar arquivos fora do nosso HD físico.
💾 O que é "A Nuvem"?
Armazenamento em nuvem é o serviço que permite salvar dados na internet através de um provedor, em vez de salvá-los apenas no seu computador ou pen drive.
Principais Vantagens
- Acesso de qualquer lugar: Do celular, tablet ou PC.
- Backup Automático: Se o seu PC quebrar, seus arquivos estão salvos.
- Colaboração: Várias pessoas podem editar o mesmo arquivo.
📂 Principais Provedores
| Serviço | Empresa | Integração Principal |
|---|---|---|
| Google Drive | Documentos, Planilhas e Gmail. | |
| OneDrive | Microsoft | Windows e Pacote Office. |
| iCloud | Apple | iPhone, Mac e iPad. |
| Dropbox | Dropbox | Foco em sincronização de arquivos. |
🏗️ Organização de Pastas na Nuvem
Manter a nuvem organizada é essencial para não perder tempo procurando arquivos.
graph TD
Cloud["☁️ Meu Drive"] --> Work["💼 Trabalho / Escola"]
Cloud --> Personal["🏠 Pessoal"]
Work --> Docs["📄 Documentos"]
Work --> Projects["🚀 Projetos"]
Personal --> Photos["📸 Fotos"]
Personal --> Finances["💰 Finanças"]
💻 Mão na Massa: Upload e Compartilhamento
📝 Exercícios de Fixação
- Comparação: Por que usar a nuvem é mais seguro do que usar apenas um Pen Drive?
- Identificação: Qual o nome do serviço de nuvem que já vem "instalado" no Windows?
- Lógica: Se você editar um arquivo no Google Drive pelo celular, ele estará atualizado quando você abrir no computador? Por quê?
🚀 Mini-Projeto: Estrutura de Portfólio na Nuvem
Objetivo: Criar uma estrutura de pastas organizada no seu serviço de nuvem preferido.
- Acesse seu Google Drive ou OneDrive.
- Crie uma pasta principal chamada
Curso_Aplicativos_Informatizados. - Dentro dela, crie subpastas para:
Textos,Planilhas,ApresentaçõeseCertificados. - Mova os arquivos que você criou nas aulas anteriores para as pastas corretas.
- Desafio: Crie um link de compartilhamento (apenas visualização) da pasta principal e cole em um documento de texto.
- Salve o documento com o link como
projeto_10_meu_drive.pdf.
Próxima Aula: Proteja seus dados na rede com Segurança de Dados em Nuvem 🔐
Aula 11 - Segurança de Dados em Nuvem 🔐
Dormir tranquilo sabendo que seus arquivos e senhas estão protegidos é fundamental. Hoje aprenderemos as melhores práticas para não ser vítima de ataques digitais.
🛡️ A Primeira Linha de Defesa: Senhas
Uma senha segura não precisa ser impossível de lembrar, mas deve ser impossível de adivinhar por computadores.
O que evitar
- Datas de nascimento.
- Sequências óbvias (123456, qwerty).
- Usar a mesma senha em todos os sites.
🎫 Autenticação de Dois Fatores (2FA/MFA)
A autenticação de dois fatores adiciona uma camada extra: além da senha, você precisa de um código enviado ao celular ou gerado por um aplicativo (como o Google Authenticator).
📊 Fluxo de Acesso Seguro
sequenceDiagram
participant User
participant App
participant Phone
User->>App: Digita Senha
App->>App: Valida Senha
App->>Phone: Envia Código (SMS/App)
Phone-->>User: Mostra Código (123456)
User->>App: Digita Código
App-->>User: Acesso Liberado ✅
🕵️♂️ Privacidade e Permissões
Ao compartilhar um arquivo na nuvem, você deve decidir o que a outra pessoa pode fazer: 1. Leitor: Só pode ver o arquivo. 2. Comentador: Pode ver e sugerir mudanças. 3. Editor: Pode apagar e mudar tudo.
Dica de Segurança
Sempre que possível, compartilhe links com a opção "Apenas Leitor". Se a pessoa não precisar editar o arquivo, não dê permissão de edição.
💻 Mão na Massa: Verificando a Segurança da Conta
📝 Exercícios de Fixação
- Análise: Por que é perigoso salvar todas as suas senhas no "Bloco de Notas" do computador?
- Definição: O que é o 2FA e por que ele é considerado a ferramenta mais poderosa de segurança atual?
- Prática: Se você perder seu celular, como poderá acessar sua conta que tem a verificação de dois fatores ativada? (Dica: Códigos de Reserva).
🚀 Mini-Projeto: Checklist de Segurança Digital
Objetivo: Realizar uma auditoria simples na sua presença digital.
- Crie uma lista de verificação (Checklist) com os itens:
- [ ] Troquei senhas fracas por senhas fortes?
- [ ] Ativei o 2FA no meu e-mail principal?
- [ ] Ativei o 2FA nas minhas redes sociais?
- [ ] Verifiquei quais dispositivos estão conectados na minha nuvem?
- Escreva um pequeno parágrafo explicando qual ação você tomou hoje para deixar seus dados mais seguros.
- Salve como
projeto_11_seguranca_digital.pdf.
Próxima Aula: Entre no mundo da produtividade moderna com Aplicativos de Produtividade I (Forms e Agenda) 📅
Aula 12 - Aplicativos de Produtividade I: Forms e Agenda 📅
A produtividade moderna depende de como organizamos nosso tempo e como coletamos informações. Hoje aprenderemos a usar formulários digitais e agendas compartilhadas.
📝 Formulários Digitais (Forms)
Os formulários permitem coletar dados de muitas pessoas de forma organizada e automática. Em vez de perguntar um por um, você envia um link.
Recursos do Google Forms / Microsoft Forms
- Tipos de Questões: Múltipla escolha, resposta curta, data, escala linear.
- Respostas em Tempo Real: Veja os gráficos de resultados assim que as pessoas respondem.
- Integração: Os dados podem ir direto para uma planilha (Excel ou Sheets).
🗓️ Agenda Digital (Calendar)
A agenda não serve apenas para lembrar aniversários, mas para gerenciar compromissos, definir lembretes e organizar reuniões.
📊 Benefícios da Agenda em Nuvem
mindmap
root((Google Agenda))
Lembretes
Notificação no Celular
E-mail de aviso
Organizacao
Cores para categorias
Várias agendas (Pessoal/Trabalho)
Integracao
Links do Meet automáticos
Anexar arquivos ao evento
💻 Mão na Massa: Criando um Evento e um Formulário
# Na Agenda:
1. Clique no botão 'Criar' -> 'Evento'
2. No título digite 'Reunião de Projeto'
3. Defina o horário e adicione um 'Convidado' (e-mail)
4. Clique em 'Salvar'
# No Forms:
1. Escolha o modelo 'Informações de Contato'
2. Adicione uma pergunta: 'Qual sua cor favorita?'
3. Altere o tipo para 'Múltipla Escolha'
4. Clique em 'Enviar' e copie o link longo
📝 Exercícios de Fixação
- Cenário: Você precisa organizar um churrasco e quer saber quem vai levar o quê. Qual ferramenta você usaria: Forms ou Agenda? Por quê?
- Lógica: Qual a vantagem de uma agenda digital em relação a uma agenda de papel quando o assunto é "Lembretes"?
- Análise: No Google Forms, para que serve a opção "Tornar esta pergunta obrigatória"?
🚀 Mini-Projeto: Pesquisa de Satisfação e Agendamento
Objetivo: Criar um sistema simples de coleta de dados e organização.
- Formulário: Crie um formulário com o título "Avaliação do Curso de TI".
- Adicione uma pergunta de "Escala Linear" (1 a 5) para a satisfação.
- Adicione uma pergunta de "Resposta Longa" para sugestões.
- Agenda: Crie um evento na sua agenda para "Entrega do Projeto 12" na próxima sexta-feira às 14h.
- Adicione uma notificação para 30 minutos antes.
- Entrega: Tire um print do formulário pronto e do evento na agenda.
- Cole os prints em um documento chamado
projeto_12_produtividade.pdf.
Próxima Aula: Domine suas tarefas diárias com Aplicativos de Produtividade II (Gestão de Tarefas - Kanban) 📋
Aula 13 - Aplicativos de Produtividade II: Gestão de Tarefas 📋
Ter muitas ideias e tarefas é ótimo, mas sem organização elas geram estresse. Hoje aprenderemos a usar métodos visuais para gerenciar projetos e notas rápidas.
🧱 O Método Kanban (Trello / Notion)
O Kanban é um sistema visual para gerenciar trabalho conforme ele se move por um processo. Ele usa quadros, listas e cartões.
As 3 Listas Básicas
- A Fazer (To Do): Tarefas que ainda não começaram.
- Fazendo (Doing): O que você está trabalhando agora.
- Feito (Done): Tarefas finalizadas e conferidas.
📊 Fluxo de Trabalho Kanban
kanban
Todo
Criar Slide 01
Estudar Fórmulas
Doing
Refatorar Aula 13
Done
Prova de Windows
Configurar Drive
💡 Notas Rápidas e Insights (Google Keep)
O Google Keep funciona como "Post-its" digitais. É ideal para capturar ideias rápidas que não podem ser perdidas.
- Lembretes por Local: "Me lembre de comprar pão quando eu chegar no mercado".
- Listas de Verificação: Listas de compras ou de malas para viagem.
- Digitalização de Texto: Tire foto de um papel e o Keep transforma em texto editável.
💻 Mão na Massa: Criando seu Quadro de Estudos
# No Trello:
1. Crie um quadro chamado 'Meu Semestre'
2. Crie as listas: 'Matérias', 'Trabalhos Pendentes', 'Concluído'
3. Adicione um cartão em 'Matérias' chamado 'Informática'
4. Mude a cor do cartão para 'Verde'
# No Google Keep:
1. Crie uma nota em formato de Lista
2. Título: 'Meta da Semana'
3. Itens: [ ] Terminar Aula 13, [ ] Revisar Planilhas
📝 Exercícios de Fixação
- Definição: O que acontece com a produtividade se colocarmos 20 tarefas na lista "Fazendo" ao mesmo tempo? (Dica: Multitarefa excessiva).
- Prática: No Trello, para que servem as "Etiquetas" coloridas nos cartões?
- Comparação: Quando você usaria o Google Keep em vez do Google Docs para escrever algo?
🚀 Mini-Projeto: Gestão do Projeto Final
Objetivo: Organizar as etapas do seu projeto final do curso usando Kanban.
- Acesse o Trello (ou use papel e post-it se não tiver internet).
- Crie as colunas do Kanban.
- Adicione cartões para:
Pesquisa de Tema,Criação da Tabela,Design dos Slides,Revisão de Texto. - Mova o cartão
Pesquisa de Temapara a coluna Feito. - Adicione uma data de entrega (Deadline) em um dos cartões.
- Tire um print do seu quadro organizado.
- Salve como
projeto_13_meu_kanban.pdf.
Próxima Aula: Como os computadores conversam? Conheça as Noções Básicas de Redes de Comunicação 🌐
Aula 14 - Noções Básicas de Redes de Comunicação 🌐
Como os computadores conversam entre si? Hoje vamos entender a mágica por trás da internet, dos cabos e do Wi-Fi que nos conectam ao mundo.
🌎 O que é uma Rede?
Uma rede de computadores é um conjunto de dispositivos interconectados que trocam dados e compartilham recursos.
A maior rede do mundo
A Internet é uma gigantesca "rede de redes" que conecta bilhões de dispositivos globalmente através de protocolos padronizados.
🏗️ Tipos de Redes (Simbologia)
| Tipo | O que significa? | Onde encontramos? |
|---|---|---|
| LAN | Rede Local (Local Area Network). | Na sua casa ou escola. |
| WAN | Rede de Longa Distância (Wide Area Network). | Conecta cidades ou países. |
| VPN | Rede Privada Virtual (Criptografada). | Usada para trabalhar de casa com segurança. |
📡 Como a conexão chega até você?
graph LR
Server["🌍 Servidor (Site)"] -- "Cabos Submarinos" --> Provider["🏢 Provedor (ISP)"]
Provider -- "Fibra Óptica" --> Router["📶 Roteador (Sua Casa)"]
Router -- "Cabo/Wi-Fi" --> Device["💻 Seu Computador"]
🔢 O Endereço IP (Seu RG na Rede)
Cada dispositivo na rede possui um endereço único chamado IP (Internet Protocol).
- Exemplo de IPv4: 192.168.0.1
- DNS: É a "lista telefônica" da internet. Ele traduz nomes como google.com para endereços IP numéricos que os computadores entendem.
💻 Mão na Massa: Testando sua Conexão
📝 Exercícios de Fixação
- Definição: Qual a diferença entre Wi-Fi e Internet? (Muitos acham que é a mesma coisa!).
- Lógica: Se o DNS falhar, você ainda conseguirá acessar sites digitando o nome deles (ex: youtube.com)? Por quê?
- Análise: Por que a conexão via Cabo é geralmente mais rápida e estável que o Wi-Fi para jogos ou vídeos em 4K?
🚀 Mini-Projeto: Diagnóstico de Rede Residencial
Objetivo: Entender a infraestrutura que te conecta à internet.
- Identifique o modelo do seu roteador (geralmente está escrito em uma etiqueta embaixo dele).
- Abra o terminal do seu PC e use o comando
ipconfig(Windows) ouifconfig(Mac/Linux). - Anote o seu "Gateway Padrão" (é o endereço do seu roteador).
- Realize um teste de velocidade em Speedtest.net e anote os valores de Download e Upload.
- Salve seu relatório como
projeto_14_minha_rede.pdf.
Próxima Aula: Aprenda a ser um detetive digital com Técnicas de Pesquisa Avançada na Web 🔍
Aula 15 - Navegação com React Router 🚦
Objetivo
Objetivo: Aprender a criar aplicações de múltiplas páginas (multi-page) dentro de uma SPA, configurando rotas, links e parâmetros de URL.
1. Por que precisamos de um Roteador? 🧭
Em uma Single Page Application (SPA), o navegador nunca "recarrega" de verdade. Se você clicar em um link comum, ele tenta buscar um novo arquivo HTML no servidor.
O React Router intercepta os cliques e troca apenas o componente na tela, mantendo a sensação de um site completo com /home, /sobre, etc.
2. Instalação e Configuração ⚙️
O roteador não vem no React por padrão. Precisamos instalar:
npm install react-router-dom
No seu App.jsx, configuramos a estrutura básica:
import { BrowserRouter, Routes, Route } from 'react-router-dom';
function App() {
return (
<BrowserRouter>
<Routes>
<Route path="/" element={<Home />} />
<Route path="/sobre" element={<Sobre />} />
<Route path="*" element={<NotFound />} />
</Routes>
</BrowserRouter>
);
}
3. Navegando entre Páginas 🏃♂️
Aula 15 - Técnicas de Pesquisa Avançada na Web 🔍
Pesquisar no Google parece fácil, mas encontrar a informação exata no meio de milhões de resultados exige técnica. Hoje aprenderemos a ser "detetives da internet".
🛠️ Operadores de Pesquisa (Filtros Mágicos)
O Google entende comandos especiais que filtram os resultados instantaneamente:
| Operador | O que faz? | Exemplo |
|---|---|---|
| Aspas (" ") | Busca o termo exato. | "Aplicativos Informatizados" |
| Hífen (-) | Exclui uma palavra. | Receita de bolo -chocolate |
| site: | Busca apenas dentro de um site. | site:g1.globo.com tecnologia |
| filetype: | Busca formatos específicos. | currículo administrativo filetype:pdf |
🕵️♂️ Combatendo Fake News: Verificação de Fatos
Nem tudo o que está na internet é verdade. Aprenda a verificar: 1. A Fonte: O site é conhecido? Tem credibilidade? 2. A Data: A notícia é recente ou de 10 anos atrás? 3. Comparação: Outros sites de confiança estão dizendo a mesma coisa?
📊 Ciclo da Informação Confiável
graph TD
Finding["💡 Encontrou uma notícia"] --> CheckSrc["🔍 Verificou a fonte?"]
CheckSrc --> CheckDate["📅 Verificou a data?"]
CheckDate --> Compare["⚖️ Comparou com outros sites?"]
Compare --> Trust["✅ Informação Confiável"]
Compare -- Nao --> Ignore["❌ Fake News / Duvidosa"]
📚 Inteligência Artificial na Pesquisa
Ferramentas como o ChatGPT ou Google Gemini podem ajudar a resumir pesquisas complexas, mas cuidado: elas também podem "alucinar" e dar informações erradas. Use-as como apoio, nunca como única fonte.
💻 Mão na Massa: Buscando como um Pro
📝 Exercícios de Fixação
- Aplicação: Como você buscaria especificamente por arquivos de imagem sobre "Meio Ambiente" dentro do site da ONU?
- Senso Crítico: Você recebeu um link no WhatsApp dizendo que a internet vai acabar amanhã. O que você faz antes de compartilhar?
- Filtros: Para que serve o filtro de "Imagens" -> "Direitos de Uso" no Google Imagens?
🚀 Mini-Projeto: Investigação de Tema Tecnológico
Objetivo: Realizar uma pesquisa profunda sobre um tema e filtrar as melhores fontes.
- Escolha um tema:
Inteligência Artificial,BlockchainouCidades Inteligentes. - Use o operador
filetype:pdfpara achar um artigo sobre o tema. - Use o operador
site:youtube.compara achar um vídeo explicativo. - Encontre uma notícia sobre o tema em um portal de notícias confiável.
- Monte um mini-relatório com os 3 links encontrados e um resumo de 2 frases sobre o que você aprendeu.
- Salve como
projeto_15_pesquisa_avancada.pdf.
Próxima Aula: O grande final! Projeto Full-Stack Integrado 🏆
Aula 16 - Projeto Final e Conclusão 🏆
Objetivo
Objetivo: Aplicar TODO o conhecimento adquirido (Node.js, Express, JWT, RBAC, React, Hooks e Router) para criar uma aplicação Full-Stack completa e funcional.
Aula 16 - Publicação de Informações na Internet 🚀
Chegamos ao final da nossa jornada! Hoje aprenderemos a transformar tudo o que criamos em um site ou portfólio real, visível para o mundo todo.
🌐 Onde e Como Publicar?
Hoje em dia, publicar um site simples ou um portfólio não custa nada. Existem ferramentas que facilitam muito esse processo:
Caminhos para Publicação
- GitHub Pages: Ideal para desenvolvedores e estudantes de TI (grátis).
- Google Sites: Criador visual de sites (arrastar e soltar).
- Carrd / Linktree: Para sites de uma única página e cartões de visita digitais.
🛠️ O que é Hospedagem e Domínio?
- Hospedagem: É o "aluguel" do espaço no servidor onde seus arquivos moram.
- Domínio: É o endereço amigável que as pessoas digitam (ex:
www.seunome.com.br).
📊 Fluxo da Publicação
graph LR
Local["💻 Arquivos no seu PC"] -- "Upload / Git Push" --> Host["☁️ Hospedagem (Nuvem)"]
Host -- "Vínculo" --> Domain["🌍 Domínio (www.site.com)"]
Domain --> User["👤 Público Acessa"]
🎓 O Caminho Adiante: Carreira em TI
Este curso foi o seu primeiro passo no mundo da tecnologia. As competências que você adquiriu (Office, Nuvem, Pesquisa, Segurança) são a base para qualquer profissão moderna: - Auxiliar Administrativo (Planilhas e Nuvem). - Desenvolvedor de Software (GitHub e Lógica). - Analista de Suporte (Sistemas Operacionais e Redes).
💻 Mão na Massa: Criando sua Presença Digital
📝 Exercícios de Fixação
- Reflexão: Qual foi a ferramenta que você mais gostou de aprender neste curso? Por quê?
- Planejamento: Como você pretende usar os conhecimentos de planilhas e apresentações daqui para frente?
- Finalização: O que significa o cadeado (HTTPS) ao lado do endereço de um site publicado?
🚀 Projeto Final: Portfólio do Aluno
Objetivo: Reunir todos os mini-projetos do curso em um único local organizado.
- Crie um documento final chamado
MEU_PORTFOLIO_ADM_AI.pdfou um site no Google Sites. - Liste os 16 mini-projetos realizados ao longo das aulas.
- Para cada projeto, escreva uma frase sobre o que ele resolve.
- Adicione seu e-mail de contato e LinkedIn (se tiver).
- Parabéns! Você completou o curso de Aplicativos Informatizados! 🎓🎉
- README.md Profissional: Explique o problema que você resolveu, como rodar o projeto (frontend e backend) e liste as tecnologias (ex: Vite, Express, Helmet).
- Tratamento de Erros: Se o servidor cair, o frontend deve avisar o usuário amigavelmente.
- Aesthetics: Capriche no CSS! Use cores harmônicas e uma tipografia limpa.
- Segurança: Não esqueça de configurar o CORS no backend para aceitar os pedidos do seu frontend.
4. Onde continuar estudando? 📚
A jornada de um desenvolvedor Full-Stack está apenas começando. O que aprender agora? 1. TypeScript: O "superpoder" do Javascript para evitar erros de tipos. 2. Bancos de Dados SQL: Postgres ou MySQL para aplicações ainda mais robustas. 3. Next.js: O framework React que domina o mercado atual (com SSR e rotas nativas). 4. Docker: Para empacotar sua aplicação e rodar em qualquer lugar.
5. Mensagem Final 🌟
Parabéns! Você saiu do básico de requisições HTTP e hoje é capaz de construir uma ponte sólida entre o usuário e os dados. Você domina a arte de criar APIs seguras e interfaces vivas.
"A tecnologia é apenas uma ferramenta. Em termos de conseguir que as pessoas trabalhem juntas e as motivem, o desenvolvedor é o artista."
FIM DO CURSO 🚀🚀🚀 Desejamos muito sucesso na sua jornada como Desenvolvedor Full-Stack!
Exercícios
Listas de Exercícios 🏋️
Pratique o que aprendeu com desafios graduais para cada aula.
-
Módulo 1: Fundamentos de Backend ---
-
Módulo 2: Manipulação de Dados ---
-
Módulo 3: Segurança e Autenticação ---
-
Módulo 4: Aplicações SPA (React) ---
Exercícios 01 - Fundamentos de Sistemas Operacionais 🖥️
Pratique o que aprendemos sobre o funcionamento e a gestão dos sistemas operacionais.
🟢 Nível Básico
- Questionário: Liste três sistemas operacionais que você conhece e identifique se eles são usados em computadores (Desktop) ou celulares (Mobile).
- Definição: Explique, com suas palavras, qual é a diferença entre Hardware e Software. Dê um exemplo de cada um presente no seu dia a dia.
🟡 Nível Intermediário
- Análise de Funções: Escolha uma das quatro funções básicas do SO (Processos, Memória, Arquivos ou Interface) e descreva o que aconteceria se o computador tentasse funcionar sem essa função específica.
- Exploração Prática:
- No seu computador, identifique a quantidade total de memória RAM instalada.
- Qual é o espaço total do seu disco rígido (HD ou SSD) e quanto dele ainda está livre?
- Dica: No Windows, use "Este Computador" ou o "Gerenciador de Tarefas".
🔴 Desafio Especial
- Simulação de Multitarefa: Imagine que você está com 20 abas do navegador abertas, um jogo pesado rodando e um editor de vídeo exportando um arquivo.
- Qual componente do hardware estará mais "sobrecarregado"?
- Como o Sistema Operacional decide qual desses programas deve receber mais atenção do processador no momento?
- Pesquise o termo "Memória Virtual" e explique como o SO a utiliza quando a memória RAM física acaba.
Exercícios 02 - Processamento e Edição de Textos I ✍️
Aperfeiçoe suas habilidades de formatação e organização de documentos.
🟢 Nível Básico
- Estética Textual: Escreva uma frase curta e aplique nela três formatações diferentes simultaneamente: Negrito, Itálico e Sublinhado.
- Tipografia: Qual é a diferença visual entre uma fonte Arial (Não Serifada) e uma Times New Roman (Serifada)? Em qual tipo de documento você usaria cada uma?
🟡 Nível Intermediário
- Estrutura Hierárquica: Crie um esboço de um índice para um trabalho escolar sobre "Poluição Ambiental". Use três níveis de títulos (Ex: 1. Introdução, 1.1 Causas, 1.1.1 Plásticos).
- Atalhos de Velocidade:
- Sem usar o mouse, descreva a sequência de teclas para selecionar todo um texto, copiá-lo e colá-lo em um novo parágrafo.
- Qual atalho você usaria para salvar seu trabalho rapidamente antes de fechar o programa?
🔴 Desafio Especial
- Padronização Profissional: Você recebeu um texto totalmente bagunçado, com fontes coloridas, tamanhos variados e sem alinhamento.
- Liste o passo a passo (pelo menos 4 etapas) que você faria para "limpar" esse documento e deixá-lo com um aspecto profissional e sóbrio.
- Explique por que o uso de Estilos (como "Título 1", "Normal") é muito mais eficiente do que formatar cada parágrafo manualmente.
Exercícios 03 - Edição de Textos II: Recursos Avançados 📑
Pratique a criação de elementos visuais e a automação de documentos.
🟢 Nível Básico
- Formas Geográficas: No seu editor de texto, insira três formas diferentes (um Círculo, um Triângulo e uma Estrela). Mude a cor de cada uma delas.
- Imagens: Baixe uma imagem de um computador na internet e insira-a no seu documento. Tente movê-la para o canto superior direito da página. O que você precisou fazer para conseguir movê-la?
🟡 Nível Intermediário
- Hierarquia: Desenhe um pequeno organograma de uma escola, contendo: Diretor, Secretário, Professores e Alunos. Use setas para conectar os cargos.
- Simulação de Etiquetas: Imagine que você precisa criar etiquetas para os 50 computadores do laboratório (Ex: Computador 01, Computador 02...). Como você faria isso de forma rápida usando as ferramentas da guia "Correspondências"?
🔴 Desafio Especial
- Análise de Fluxo: Desenhe um fluxo de processo (Fluxograma) para a tarefa: "Fazer um Café".
- Use um Losango para uma decisão (ex: "Tem açúcar?").
- Use Retângulos para ações (ex: "Ferver a água").
- Use cores para diferenciar o início e o fim do processo.
- Por que é mais fácil entender esse processo via desenho do que apenas lendo um parágrafo longo?
Exercícios 04 - Planilhas Eletrônicas I 📊
🟢 Nível Básico
- Localização: Identifique os endereços de 3 células aleatórias na sua planilha selecionada.
- Formatação: Digite o número
1500e formate-o como Moeda. Como ele ficou?
🟡 Nível Intermediário
- Abas: Renomeie a "Plan1" para "Janeiro" e crie uma nova aba chamada "Fevereiro".
- Estética: Crie uma tabela de 3 colunas e 5 linhas. Aplique uma cor de fundo escura nos títulos e uma cor clara nas linhas de dados.
🔴 Desafio Especial
- Análise de Erro: O que acontece se você digitar um texto muito longo em uma célula pequena e a célula ao lado estiver ocupada? Como resolver isso usando "Quebrar Texto Automaticamente"?
Exercícios 05 - Planilhas Eletrônicas II: Fórmulas ➕
🟢 Nível Básico
- Soma Simples: Na célula A1 coloque 10 e na A2 coloque 20. Na A3, faça a fórmula para somar as duas.
- Subtração: Calcule a diferença entre 100 e 37 usando uma fórmula de planilha.
🟡 Nível Intermediário
- Multiplicação e Divisão: Crie uma pequena calculadora onde você digita o
Valor Totalem uma célula e aQuantidade de Parcelasem outra. A terceira célula deve mostrar o valor de cada parcela. - Automação: Mude os valores do exercício anterior. O valor da parcela mudou sozinho? Por quê?
🔴 Desafio Especial
- Precedência Matemática: Digite a fórmula
=10 + 5 * 2. Qual foi o resultado? Agora digite=(10 + 5) * 2. Por que os resultados foram diferentes? (Dica: O computador segue as regras de prioridade da matemática).
Exercícios 06 - Planilhas Eletrônicas III: Funções 🧮
🟢 Nível Básico
- Somatória: Use a função
=SOMApara somar uma lista de 5 números diferentes. - Contagem: Use
=CONT.NÚMpara contar quantos números existem em um intervalo que também possui células com nomes (texto).
🟡 Nível Intermediário
- Médias: Crie uma lista com as idades de 4 amigos. Use a função
=MÉDIApara descobrir a idade média do grupo. - Extremos: Na mesma lista de idades, use as funções
=MÁXIMOe=MÍNIMOpara identificar o mais velho e o mais novo.
🔴 Desafio Especial
- Relatório Complexo: Você tem uma lista de 10 produtos e seus preços.
- Qual o valor total da compra?
- Qual a média de preço dos produtos?
- Se você comprar 2 unidades de cada um, como ficaria a fórmula para o "Total Geral" usando a função SOMA?
Exercícios 07 - Planilhas Eletrônicas IV: Gráficos 📉
🟢 Nível Básico
- Criação: Crie uma tabela com 2 colunas:
FrutaeQuantidade. Insira 3 frutas e selecione-as para criar um Gráfico de Colunas. - Título: Mude o título do seu gráfico para "Minhas Frutas Favoritas".
🟡 Nível Intermediário
- Comparação de Gráficos: Com a mesma tabela de frutas, alterne o tipo de gráfico para Pizza. Ficou mais fácil ou mais difícil entender as quantidades?
- Estética: Mude a cor das colunas do seu gráfico. Coloque cada coluna com uma cor diferente da sua preferência.
🔴 Desafio Especial
- Interatividade:
- No seu gráfico de colunas, mude o valor de uma fruta na tabela de 10 para 100.
- O que aconteceu visualmente com o gráfico?
- Por que é perigoso ter um valor muito maior que os outros em um gráfico de pizza?
Exercícios 08 - Ferramentas de Apresentações I: Fundamentos 🎭
🟢 Nível Básico
- Criação: Abra um software de apresentações e crie um arquivo com dois slides: um de Título e um de Conteúdo.
- Inserção: No segundo slide, insira uma imagem da internet relacionada a "Espaço" ou "Natureza".
🟡 Nível Intermediário
- Regra do Menos é Mais: Pegue um pequeno parágrafo de um livro ou site. Tente transformá-lo em 3 tópicos (bullets) curtos para um slide.
- Atalhos: Pratique o uso do
Ctrl + Mpara criar 5 novos slides rapidamente. Depois use a teclaF5para iniciar a apresentação em tela cheia.
🔴 Desafio Especial
- Análise de Legibilidade:
- Escreva uma frase com fonte tamanho 12 e outra com tamanho 30.
- Afaste-se 2 metros do monitor. Qual delas você consegue ler com facilidade?
- Explique por que a regra dos "30 pontos" de Guy Kawasaki é importante para quem está no fundo de uma sala de palestras.
Exercícios 09 - Ferramentas de Apresentações II: Design ✨
🟢 Nível Básico
- Transições: Aplique a transição "Empurrar" (Push) entre os slides que você criou no exercício anterior.
- Animação Simples: Faça com que o título de um slide apareça usando a animação "Surgir" (Fly-in).
🟡 Nível Intermediário
- Contraste: Crie um slide com fundo Azul Marinho e texto Amarelo. Depois crie um com fundo Cinza Claro e texto Branco. Qual dos dois ficou melhor para ler?
- Padronização: Altere a fonte de todos os seus slides para uma única família (ex: tudo em Montserrat ou tudo em Arial). Ficou mais organizado?
🔴 Desafio Especial
- Identidade Visual:
- Escolha uma cor principal e uma cor secundária para uma marca fictícia de "Suco de Laranja".
- Monte um slide de apresentação deste produto usando apenas essas duas cores e o branco.
- Adicione uma transição suave e explique: Como as cores escolhidas ajudam a vender o seu produto?
Exercícios 10 - Armazenamento em Nuvem ☁️
🟢 Nível Básico
- Identificação: Qual serviço de nuvem você utiliza atualmente (ou gostaria de utilizar)? Por que escolheu esse serviço?
- Prática: Tire um print da sua estrutura de pastas na nuvem e identifique onde você guarda seus estudos.
🟡 Nível Intermediário
- Compartilhamento: Crie um arquivo de texto vazio na nuvem, gere um link de "Apenas Leitura" e envie para um colega. Peça para ele tentar digitar algo no arquivo. O que aconteceu?
- Sincronização: Instale o aplicativo da sua nuvem no celular. Tire uma foto de qualquer objeto e verifique em quanto tempo ela aparece no seu computador.
🔴 Desafio Especial
- Histórico de Versões:
- Abra um documento Google Docs ou Word Online.
- Escreva uma frase, salve e feche.
- Abra novamente, apague a frase e escreva outra coisa.
- Use a ferramenta "Histórico de Versões" para recuperar o que você escreveu primeiro.
- Explique por que essa ferramenta é fundamental para quem trabalha em grupo.
Exercícios 11 - Segurança de Dados em Nuvem 🔐
🟢 Nível Básico
- Criação de Senha: Sem mostrar para ninguém, pense em uma frase de uma música que você gosta e transforme-a em uma senha forte usando números e símbolos (Ex: "A vida é bela" ->
4V1d@&B_l4!). - Verificação: Verifique se o seu e-mail principal já foi vazado em algum ataque cibernético usando o site Have I Been Pwned?.
🟡 Nível Intermediário
- 2FA: Ative a verificação em duas etapas em uma conta que você considera importante (Instagram, E-mail ou Discord). Descreva qual método você escolheu (SMS, App ou E-mail).
- Gestão de Dispositivos: Acesse as configurações da sua conta Google ou Microsoft e liste quais dispositivos (celulares, PCs) estão conectados nela agora. Existe algum que você não reconhece?
🔴 Desafio Especial
- Simulação de Engenharia Social:
- Pesquise o que é o ataque de Phishing.
- Escreva 3 sinais que indicam que um e-mail pedindo sua senha da nuvem pode ser falso.
- Por que mesmo uma senha ultra forte não protege você se você a digitar em um site falso?
Exercícios 12 - Aplicativos de Produtividade I: Forms e Agenda 📅
🟢 Nível Básico
- Agenda: Crie um evento recorrente chamado "Aula de TI" que aconteça toda segunda-feira às 13:30h pelos próximos 2 meses.
- Forms: Crie um formulário simples com duas perguntas: "Nome Completo" e "Data de Nascimento".
🟡 Nível Intermediário
- Integração: No seu formulário da questão anterior, clique no ícone do Google Sheets (verde) para criar uma planilha que receberá as respostas.
- Organização: Mude a cor do seu evento na agenda para Vermelho e adicione um lembrete para 1 hora antes.
🔴 Desafio Especial
- Lógica de Formulário:
- Pesquise como usar a "Validação de Resposta" no Google Forms.
- Crie uma pergunta que exija que o usuário digite um e-mail válido (contendo o símbolo @).
- Por que é importante validar os dados antes mesmo de salvá-los na planilha?
Exercícios 13 - Aplicativos de Produtividade II: Gestão de Tarefas 📋
🟢 Nível Básico
- Keep: Crie uma nota colorida com o título "Minhas Metas de Vida" e adicione 3 metas usando caixas de seleção.
- Trello: Crie um cartão no Trello e anexe uma imagem a ele.
🟡 Nível Intermediário
- Etiquetas: No seu quadro do Trello, crie uma etiqueta chamada "Urgente" (cor laranja) e aplique-a em uma tarefa. Depois, use o filtro para mostrar apenas as tarefas urgentes.
- Colaboração: Descubra como "Arquivar" um cartão que você já completou e qual a diferença entre arquivá-lo e excluí-lo.
🔴 Desafio Especial
- Análise de Fluxo (Lead Time):
- Se uma tarefa fica 10 dias na coluna "A Fazer", 2 dias na coluna "Fazendo" e depois vai para "Feito", onde está o gargalo (atraso) do seu processo?
- Como o uso de um quadro visual ajudaria um chefe de equipe a perceber que um funcionário está com tarefas demais na coluna "Fazendo"?
Exercícios 14 - Noções Básicas de Redes de Comunicação 🌐
🟢 Nível Básico
- Conceito: Explique com suas palavras o que é um roteador e qual a função dele na sua casa.
- IP: No seu celular ou computador, descubra qual é o seu endereço IP atual na rede Wi-Fi.
🟡 Nível Intermediário
- Teste de Conexão: Use o comando
ping google.comno seu terminal. Qual foi o tempo de resposta (em milissegundos)? Se o tempo fosse de 500ms, a internet estaria boa ou ruim? - VPN: Pesquise um cenário real onde o uso de uma VPN é obrigatório por segurança (Dica: Home Office em bancos).
🔴 Desafio Especial
- Simulação de Falha:
- Se o cabo submarino que liga o Brasil aos Estados Unidos for cortado, por que ainda conseguimos acessar sites brasileiros, mas sites americanos param de funcionar?
- Como a internet consegue "dar a volta" por outros países para tentar entregar o dado se um caminho estiver bloqueado? (Pesquise sobre "Protocolo de Roteamento").
Exercícios 15 - Técnicas de Pesquisa Avançada na Web 🔍
🟢 Nível Básico
- Filtro Exato: Use as aspas para buscar seu próprio nome no Google. Quantos resultados apareceram?
- Exclusão: Busque por "Receita de Coxinha" e use o hífen para excluir a palavra "frango".
🟡 Nível Intermediário
- Busca de Documentos: Encontre um arquivo do tipo PDF sobre "Ética na Inteligência Artificial" publicado pelo governo (Dica: use
site:gov.br). - Verificação de Notícia: Encontre uma notícia bombástica que você recebeu recentemente e use um site de checagem (como Lupa, Aos Fatos ou Boatos.org) para ver se ela é verdadeira.
🔴 Desafio Especial
- Análise de Imagem:
- No Google Imagens, busque por "Tecnologia".
- Use as "Ferramentas" para filtrar apenas por imagens de "Cor Transparente" e com "Direitos de Uso: Licenças Creative Commons".
- Por que essas duas opções são fundamentais para quem está criando um slide profissional?
Exercícios 16 - Publicação na Internet 🚀
🟢 Nível Básico
- Exploração: Acesse o site Google Sites e veja os modelos prontos de "Portfólio".
- Domínio: Pense em um nome de domínio ideal para você (ex:
www.joaosousa.com.br). Verifique se ele está disponível no site Registro.br.
🟡 Nível Intermediário
- Plataformas: Liste 2 diferenças entre hospedar um site no "GitHub Pages" e no "Google Sites". Qual deles exige que você saiba um pouco de programação?
- HTTPS: Entre em um site qualquer e clique no cadeado ao lado do endereço. Descubra quem emitiu o "Certificado de Segurança" daquele site.
🔴 Desafio Especial
- Planejamento de Carreira:
- Imagine que você vai participar de uma entrevista de emprego amanhã para a vaga de "Suporte de TI".
- Escreva 3 pontos que você aprendeu neste curso que você mencionaria para o entrevistador para provar que você está preparado.
- Como você usaria a sua "Nuvem" organizada para mostrar seus trabalhos durante a entrevista?
Projetos
Projetos Práticos 🚀
Transforme teoria em prática com desafios progressivos que compõem seu portfólio.
-
Módulo 1: Fundamentos de Backend ---
-
Módulo 2: Manipulação de Dados ---
-
Módulo 3: Segurança e Autenticação ---
-
Módulo 4: Aplicações SPA (React) ---
Projeto 01 - Relatório de Hardware e Sistema 💻
Neste primeiro projeto, você aplicará seus conhecimentos sobre Sistemas Operacionais para realizar um diagnóstico técnico do seu próprio computador.
🎯 Objetivo
Identificar e documentar os principais componentes de hardware e as especificações do sistema operacional que você utiliza.
📝 Descrição do Projeto
Você deve criar um relatório técnico contendo as especificações da sua máquina atual. Este relatório deve ser organizado e salvo em um formato editável.
Requisitos:
- Identificação do SO: Nome completo (ex: Windows 11 Pro) e versão.
- Processador (CPU): Modelo e velocidade (ex: Intel Core i5 @ 2.5GHz).
- Memória RAM: Capacidade total instalada (ex: 8GB ou 16GB).
- Armazenamento: Identificar se é HD ou SSD e a capacidade total.
- Software Instalado: Listar 3 programas que você instalou e que não vieram originalmente no sistema.
🛠️ Ferramentas Sugeridas
- Windows:
Informações do Sistema(msinfo32) ouGerenciador de Tarefas. - macOS: Menu Apple >
Sobre Este Mac. - Linux: Comandos
uname -aelscpuno terminal.
🚀 Entrega
- Crie um arquivo no Bloco de Notas ou Word.
- Nomeie como
projeto_01_diagnostico_SEUNOME.txt. - Salve o arquivo em sua pasta pessoal do curso.
Dica
Tire um "Print Screen" da tela de informações do sistema e cole no seu relatório para enriquecer o trabalho!
Projeto 02 - Carta de Apresentação Profissional 📄
Neste projeto, você utilizará suas habilidades de edição de texto para criar um documento real de apresentação para o mercado de trabalho.
🎯 Objetivo
Produzir uma carta de apresentação formatada de acordo com os padrões profissionais, utilizando hierarquia de títulos e alinhamentos corretos.
📝 Descrição do Projeto
Imagine que você está se candidatando a uma vaga de Auxiliar Administrativo. Escreva uma carta curta (máximo 1 página) destacando seu interesse e suas habilidades.
Requisitos de Formatação:
- Fonte: Arial ou Calibri, tamanho 12.
- Cabeçalho: Seu nome e cidade centralizados no topo.
- Saudação: Alinhada à esquerda.
- Corpo do Texto: Pelo menos dois parágrafos com alinhamento Justificado.
- Espaçamento: Use espaçamento entre linhas de 1,5.
- Destaques: Aplique Negrito nos nomes das ferramentas que você sabe usar (ex: Excel, Word, Windows).
🏗️ Estrutura Sugerida
- Parágrafo 1: Quem é você e por que quer a vaga.
- Parágrafo 2: Suas principais qualidades e o que você aprendeu até agora no curso de TI.
- Encerramento: Colocando-se à disposição para entrevista.
🚀 Entrega
- Salve o arquivo em dois formatos:
.docx(para futuras edições) e.pdf(para envio). - Nomeie como
projeto_02_carta_SEUNOME.pdf.
Critério de Sucesso
A carta está visualmente limpa? Não há excesso de cores ou fontes? O texto está alinhado corretamente? Se sim, você atingiu o objetivo!
Projeto 03 - Organograma e Identificação Visual 🏷️
Neste projeto, você vai aplicar ferramentas visuais e de automação para organizar a estrutura de uma instituição.
🎯 Objetivo
Desenvolver um organograma estruturado e preparar um modelo de identificação (etiquetas) para uma empresa ou escola fictícia.
📝 Descrição do Projeto
Você é o responsável pela organização de uma nova empresa chamada "Tech Solutions". Sua tarefa tem duas partes:
Parte 1: O Organograma
Crie um organograma para a empresa contendo: - 1 Presidente (Seu Nome) - 2 Diretores (Vendas e Tecnologia) - 2 Gerentes abaixo do Diretor de Tecnologia (Suporte e Desenvolvimento) - 3 Analistas abaixo do Diretor de Vendas.
Requisito: Use a ferramenta SmartArt ou Desenho e aplique um design profissional com cores padronizadas por nível.
Parte 2: Etiquetas de Identificação
Crie um modelo de etiqueta para identificar os equipamentos da empresa.
- Conteúdo da etiqueta: Patrimônio Tech Solutions - Item: [Nome do Item].
- Prepare um exemplo com 4 etiquetas (Monitor, Teclado, CPU, Impressora).
🏗️ Requisitos do Documento
- Título em Negrito e tamanho 16.
- Organograma ocupando metade da página.
- Etiquetas organizadas em uma tabela ou usando a ferramenta de Etiquetas.
- Ariel ou Calibri, tamanho 11 para o texto das etiquetas.
🚀 Entrega
- Salve o arquivo como
projeto_03_tech_solutions_SEUNOME.pdf. - Verifique se o organograma não ficou "cortado" nas margens.
Dica de Ouro
Use setas curvas ou retas para conectar as caixinhas do organograma, garantindo que o fluxo de autoridade esteja claro.
Projeto 04 - Criando o Primeiro Mock 🧱
Objetivo: Dominar o fluxo de documentação de contrato e simulação de servidor.
O Desafio
Você deve criar um servidor de Mock para uma API de Lista de Tarefas (ToDo).
- Use o Postman (Mock Server) ou o Mockoon para criar 2 rotas:
GET /tarefas: Deve retornar uma lista com pelo menos 3 tarefas.POST /tarefas: Deve aceitar uma nova tarefa e retornar201 Created.
- Documente os campos de uma tarefa (ex:
id,titulo,concluida). - Teste as rotas e garanta que o servidor responda corretamente no formato JSON.
O que entregar?
- Print (screenshot) do Swagger UI ou da tela do Mock Server rodando.
- O JSON de exemplo retornado pelo
GET /tarefas. - Print do teste da rota
POST /tarefascom sucesso.
Projeto 05 - Meu Primeiro Controller ⚙️
Objetivo: Praticar a criação de rotas e a captura de diferentes tipos de parâmetros.
O Desafio
Crie a estrutura de um Controller para um sistema de Gestão de Tarefas (To-Do). Você deve definir (em pseudocódigo ou na linguagem que preferir):
- Uma rota para listar todas as tarefas, permitindo um filtro opcional por
status(ex: concluída ou pendente). - Uma rota para buscar uma única tarefa pelo seu
id. - Uma rota para criar uma tarefa, recebendo
tituloedescricao. - Sinalize qual seria o Status Code de sucesso para cada uma das rotas acima.
O que avaliar?
- Uso correto de Path Params vs Query Params.
- Escolha dos verbos HTTP adequados.
- Padronização das respostas de sucesso.
Projeto 06 - Implementando a Lógica de Negócio 🧠
Objetivo: Aplicar a separação de camadas criando um Service para validação de dados.
O Desafio
Você deve criar o UsuarioService para um sistema de cadastro.
- Função
validarSenha(senha): Deve garantir que a senha tenha no mínimo 8 caracteres e contenha pelo menos um número. - Função
criarUsuario(dados):- Chama a validação de senha.
- Verifica se o e-mail já está sendo usado (simule um erro se estiver).
- Retorna o usuário criado (sem a senha!).
- Simule o Controller chamando esse Service e tratando o erro de "Senha Insegura" com um Status Code 400.
O que observar?
- O Service não deve usar objetos globais como
reqoures. - As mensagens de erro devem ser claras e informativas.
- Uso de DTOs (retornar objeto filtrado).
Projeto 07 - Modelagem de Banco de Dados 🗄️
Objetivo: Praticar a criação de esquemas relacionais e comandos SQL básicos.
O Desafio
Modele o banco de dados para um sistema de Aluguel de Filmes:
- Tabelas: Crie as tabelas
ClienteseFilmes. - Campos:
Clientesdeve terid,nomeeemail.Filmesdeve terid,tituloegenero.
- Relacionamento: Crie uma terceira tabela
Alugueisque ligue um cliente a um filme (incluindo adata_aluguel). - SQL: Escreva uma query que liste o nome do cliente e o título do filme para todos os aluguéis feitos hoje.
O que avaliar?
- Definição correta das Chaves Primárias.
- Uso de Chaves Estrangeiras para conectar as tabelas.
- Clareza na estrutura das colunas.
Projeto 08 - Schema de Validação Profissional ✅
Objetivo: Praticar a criação de regras de validação para garantir a integridade da API.
O Desafio
Crie o esquema de validação (em pseudocódigo ou usando uma biblioteca como Zod/Joi) para um Cadastro de Eventos:
- Campos Obrigatórios:
titulo(mín. 10 char),data(deve ser futura),capacidade_maxima(número positivo). - Campos Opcionais:
descricao(máx. 500 char),link_inscricao(formato de URL). - Sanitização: O título não deve conter espaços em branco sobrando no início ou no fim (trim).
- Simulação: Mostre qual seria a mensagem de erro retornada se o usuário enviasse uma capacidade negativa.
O que avaliar?
- Clareza e rigor das regras de validação.
- Escolha dos tipos de dados corretos.
- Mensagens de erro amigáveis ao desenvolvedor (DX).
Projeto 09 - Sistema de Login (Simulado) 🔐
Objetivo: Implementar a lógica de geração de tokens JWT para autenticação.
O Desafio
Crie uma API de simulação de login:
- Entrada: Receba um JSON com
emailesenha. - Validação: Verifique se a senha tem mais de 6 caracteres.
- JWT: Use uma biblioteca (ou pseudocódigo) para gerar um token que contenha o
iddo usuário e suapermissão(ex: 'aluno'). - Expiração: Configure o token para ser válido por apenas 24 horas.
- Resposta: Retorne para o cliente um objeto contendo o
tokene onomedo usuário.
O que avaliar?
- Tratamento correto de erro caso a senha seja curta.
- Estrutura limpa do Payload do JWT.
- Escolha de uma chave secreta segura (simulada).
Projeto 10 - Gerenciador de Permissões 🛡️
Objetivo: Implementar a lógica de proteção de rotas baseada em perfis de usuário.
O Desafio
Crie a estrutura de autorização para um Sistema de RH:
- Roles: Defina três tipos:
ADMIN,GESTOReFUNCIONARIO. - Regras:
- Todos podem ver o próprio perfil (
GET /me). - Apenas
GESTOReADMINpodem ver a lista de salários (GET /salarios). - Apenas
ADMINpode deletar um registro (DELETE /colaboradores/:id).
- Todos podem ver o próprio perfil (
- Middleware: Desenhe (em desenho técnico ou código) como seria o "fluxo da cancela" (Authentication Middleware -> Authorization Middleware).
O que avaliar?
- Separação clara entre quem é você e o que você pode fazer.
- Uso correto dos Status Codes em caso de bloqueio.
- Lógica de hierarquia (Admin pode tudo).
Projeto 11 - Blindagem de API 🏗️
Objetivo: Implementar camadas avançadas de segurança e renovação de tokens.
O Desafio
Fortaleça sua API de login:
- Helmet: Instale e configure o Helmet para proteger os Headers.
- CORS: Restrinja o acesso à API para que apenas o domínio
http://localhost:3000possa consultá-la. - Refresh Token: Implemente uma rota
/refreshque receba um refresh token, valide-o no banco (ou lista em memória) e gere um novoaccessToken. - Rate Limit: Adicione uma trava para que ninguém possa tentar logar mais de 5 vezes em 1 minuto.
O que avaliar?
- Configuração correta das origens no CORS.
- Lógica de expiração do Refresh Token (ele deve durar muito mais que o Access Token).
- Verificação se o Helmet está realmente escondendo o header
X-Powered-By.
Projeto 12 - Primeiro App React ⚛️
Objetivo: Criar e organizar componentes básicos usando React e Vite.
O Desafio
Crie uma página de Perfil de Usuário:
- Componente
FotoPerfil: Exibe uma imagem circular. - Componente
InfoUsuario: Recebenomeebiovia props e exibe na tela. - Componente
BotaoSeguir: Um botão simples que, por enquanto, apenas exibe um alerta ao ser clicado. - Layout: Organize esses componentes dentro do
App.jsxusando CSS simples para centralizar o conteúdo.
O que avaliar?
- Separação correta dos componentes em arquivos diferentes (ou funções separadas).
- Uso correto de Props para personalizar o nome do usuário.
- Sintaxe JSX correta (tags fechadas, className, etc).
Projeto 13 - Lista Dinâmica de Contatos 📱
Objetivo: Aplicar o uso de useState e gerenciamento de listas.
O Desafio
Crie um mini-gerenciador de contatos:
- Inputs: Dois campos de texto (Nome e Telefone).
- Botão Adicionar: Quando clicado, deve validar se os campos estão preenchidos e adicionar o contato em um Estado de Array.
- Lista: Exiba todos os contatos adicionados abaixo do formulário.
- Botão Limpar: Um botão que limpa toda a lista de contatos.
O que avaliar?
- Uso correto do
useStatepara os inputs e para a lista. - Uso do
.map()para renderizar a lista de contatos. - Limpeza dos campos de input após a adição com sucesso.
Projeto 14 - Buscador de Repositórios 🔍
Objetivo: Consumir uma API real e gerenciar estados de carregamento.
O Desafio
Crie um app que busca repositórios do GitHub de um usuário:
- Input: Campo para digitar o nome do usuário do GitHub.
- Botão Buscar: Ao clicar, deve disparar a busca.
- Loading: Enquanto a API não responde, deve aparecer o texto "Buscando repositórios...".
- Lista: Exiba o nome de todos os repositórios públicos encontrados.
- Erro: Se o usuário não existir, exiba "Erro: Usuário não encontrado".
O que avaliar?
- Uso do
useEffectpara carregar dados (pode ser ao carregar a página ou via clique). - Tratamento correto dos estados:
null,loading,dataeerror. - Renderização limpa usando
.map().
Projeto 15 - Sistema de Multi-Páginas 🚦
Objetivo: Implementar a navegação completa em uma SPA.
O Desafio
Transforme seu app de repositórios ou contatos em um site completo com 3 páginas:
- Home (/): Uma página de boas-vindas com links para as outras seções.
- Dashboard (/app): Onde fica a funcionalidade principal (ex: a busca de repositórios).
- Sobre (/sobre): Uma página contando quem criou o projeto.
- 404: Uma página personalizada para links quebrados.
Requisito Extra (Parâmetro)
Crie uma página de Perfil de Repositório (/repo/:id) que deve ser aberta ao clicar em um item da lista. Essa página só precisa exibir o ID que foi clicado por enquanto.
O que avaliar?
- Configuração correta do
BrowserRouternomain.jsxouApp.jsx. - Uso exclusivo de
<Link>para navegação em menus. - Funcionamento correto dos parâmetros de URL com
useParams.
Projeto 16 - App Final Full-Stack Integrador 🏆
Objetivo: O "TCC (Trabalho de Conclusão de Curso)" do desenvolvedor Full-Stack.
O Tema
Escolha um tema que resolva um problema real integrando o que você construiu no Backend (Módulos 1-3) com o que aprendeu no Frontend (Módulo 4).
Requisitos Mínimos
- Backend (Express): Uso obrigatório de rotas protegidas por JWT e validação de dados.
- Frontend (React): Componentização clara, uso de Hooks (
useState,useEffect) e navegação comReact Router. - Integração: O Frontend deve consumir a sua própria API de forma assíncrona.
- UX/UI: Interface amigável, com tratamento de estados de carregamento e erro.
- Segurança: Configuração correta de CORS e Headers de segurança (Helmet).
Documentação ✨
Seu repositório no GitHub deve ter um README.md impecável, com imagens (prints) da aplicação, explicação das tecnologias usadas e instruções claras de como rodar o servidor e o cliente. Este projeto será o seu maior cartão de visitas!
Boa sorte e bom código! 🚀🚀🚀
Quizzes
Quizzes Interativos 🧠
Teste seus conhecimentos rapidamente ao final de cada módulo.
-
Fase 1 ---
-
Fase 2 ---
-
Fase 3 ---
-
Fase 4 ---
Quiz 01 - Introdução
Quiz 02 - Introdução
Quiz 03 - Introdução
Quiz 04 - Introdução
Quiz 05 - Introdução
Quiz 06 - Introdução
Quiz 07 - Introdução
Quiz 08 - Introdução
Quiz 09 - Introdução
Quiz 10 - Introdução
Quiz 11 - Introdução
Quiz 12 - Introdução
Quiz 13 - Introdução
Quiz 14 - Introdução
Quiz 15 - Introdução
Quiz 16 - Introdução
Slides
Slides 📺
Material visual para acompanhamento das vídeo-aulas.
-
Módulo 1 ---
-
Módulo 2 ---
-
Módulo 3 ---
-
Módulo 4 ---
Aula 01 - Introdução a Microsserviços 🌐
De Monólitos a Sistemas Distribuídos
Agenda de Hoje 📅
- Panorama do Software Moderno
- Monólitos vs Microsserviços
- A Economia das APIs
- Escalabilidade Vertical vs Horizontal
- Cinto de Utilidades (Ferramentas)
- Setup do Ambiente
1. O Mundo Cloud-Native ☁️
- Sistemas globais exigem disponibilidade 24/7.
- Milhões de requisições por segundo.
- Deploy contínuo (várias vezes ao dia).
2. A Evolução da Arquitetura 🏛️➡️🏗️
2.1 O Monólito 🏛️
- Um único projeto, um único deploy.
- Tudo ou nada: erro em um lugar afeta tudo.
- Difícil de escalar partes específicas.
- Ideal para: Projetos pequenos, MVPs rápidos.
2.2 Microsserviços 🏗️
- Conjunto de serviços independentes.
- Comunicação via rede (APIs).
- Cada um com seu banco de dados.
- Ideal para: Sistemas complexos e escaláveis.
3. O Papel das APIs 📡
- Contract-First: Acordo de comunicação.
- REST como padrão dominante.
- JSON: A língua universal.
Escalabilidade: Vertical vs Horizontal
| Vertical (Scale Up) | Horizontal (Scale Out) |
|---|---|
| Aumenta CPU/RAM | Adiciona mais servidores |
| Tem limite físico | Virtualmente ilimitada |
| Causa downtime no upgrade | Zero downtime (Redundância) |
Arquitetura de Microsserviços
graph LR
User[Cliente] --> AGW[API Gateway]
AGW --> S1[Usuários]
AGW --> S2[Pedidos]
AGW --> S3[Pagamentos]
S1 --> DB1[(DB)]
S2 --> DB2[(DB)]
S3 --> DB3[(DB)]
4. Ferramentas Indispensáveis 🛠️
Client HTTP: Postman & Insomnia
- Testar rotas sem Frontend.
- Analisar Headers e Status Codes.
- Simular diferentes cenários de erro.
Containerização: Docker 🐋
- "Roda na minha máquina, roda em qualquer lugar".
- Isola dependências e versões.
- Facilita a subida de múltiplos serviços locais.
5. Estrutura de Projeto Backend 📂
- Divisão clara de responsabilidades.
- Controllers, Services e Repositories.
- Tratamento global de exceções.
6. Setup do Ambiente 🚀
Requisitos:
- IDE: VS Code ou IntelliJ.
- Postman (Desktop ou Extensão).
- Docker Desktop.
- Git & GitHub.
Resumo da Aula ✅
- Microsserviços trazem resiliência e escala.
- APIs são o coração da comunicação moderna.
- Ferramentas como Docker mudaram o jogo.
- Começamos nossa jornada Fullstack!
Próxima Aula: Arquitetura e Gateway 🏗️
- Como os serviços conversam?
- O que é Service Discovery?
- Protegendo a porta de entrada.
Dúvidas? 🤔
"A arquitetura de hoje é o legado de amanhã. Escolha com sabedoria."
Aula 02 - Arquitetura e Gateway 🏗️
Orquestrando Microsserviços
Agenda 📅
- Comunicação entre Serviços
- Síncrono vs Assíncrono
- O Papel do API Gateway
- Service Discovery
- Load Balancing
- Padrões de Resiliência
1. Como os Serviços Conversam? 💬
- Microsserviços são ilhas que precisam de pontes.
- Dois mundos: Sync e Async.
1.1 Comunicação Síncrona 🔄
- Cliente bloqueia até a resposta.
- Uso de HTTP/REST ou gRPC.
- Risco: Acoplamento temporal e gargalos.
1.2 Comunicação Assíncrona 📬
- Envia e esquece (Eventos).
- Uso de Filas e Tópicos (Broker).
- Vantagem: Escalabilidade e desacoplamento.
2. API Gateway: O Porteiro 🚪
- Única entrada para o mundo exterior.
- Esconde a complexidade interna.
Gateway Responsibilities
- Roteamento:
/p-> Pagamento,/e-> Estoque. - Segurança: Autenticação centralizada.
- Rate Limit: Proteção contra flood.
- Logs & Monitoramento.
3. Service Discovery 🔎
- Onde está o servidor de pagamentos?
- Agenda dinâmica de IPs e Portas.
- Ferramentas: Netflix Eureka, Consul.
4. Load Balancing ⚖️
- Distribuição inteligente da carga.
- Evita que um container "morra" de trabalho.
graph TD
GW[Gateway] --> LB[Load Balancer]
LB --> S1[Serviço A]
LB --> S2[Serviço B]
LB --> S3[Serviço C]
5. Resiliência: Circuit Breaker 🔌
- Detecta serviços lentos ou falhos.
- Abre o circuito para proteger o resto do sistema.
- Evita o cascateamento de erros.
Comparativo: Sync vs Async
| Característica | Síncrono 🔄 | Assíncrono 📬 |
|---|---|---|
| Resposta | Imediata | Eventual |
| Desempenho | Limitado pelo destino | Alto débito |
| Uso comum | Cadastro/Login | Geração de Relatórios |
6. Prática: O "Dashboard" Agregador 💻
- Como o Gateway une dados de 3 serviços?
- Agregação de respostas (Aggregation Pattern).
Desafio Relâmpago ⚡
O que acontece se o seu API Gateway cair? Ele é um ponto único de falha?
Resumo ✅
- Sync é fácil, Async é escalável.
- API Gateway protege e organiza.
- Service Discovery é essencial em containers.
- Resiliência não é opcional!
Próxima Aula: Modelagem REST 📡
- Verbos HTTP.
- Status Codes.
- O contrato ideal.
Dúvidas? 🏗️
Aula 03 - Modelagem de APIs RESTful 📡
Recursos, Verbos e Contratos
Agenda 📅
- O que é REST?
- Recursos e URIs
- Verbos HTTP (GET, POST, PUT...)
- Status Codes
- JSON: A Linguagem das APIs
- Boas Práticas de Design
1. REST: A "Língua" da Web 🌐
- Style arquitetural para sistemas distribuídos.
- Baseado no protocolo HTTP.
- Independência entre Client e Server.
Princípios REST
- Stateless: Cada requisição é única.
- Uniform Interface: Padrões compartilhados.
- Cacheable: Melhore a performance.
2. Identificando Recursos 📍
- Um recurso é qualquer coisa que expomos.
- URI: O endereço do recurso.
O que NÃO fazer:
GET /obterUsuarios ❌
O que fazer:
GET /usuarios ✅ (Sempre substantivos no plural!)
3. Os Verbos HTTP 🛠️
Eles definem a intenção da chamada:
- GET: Buscar dados.
- POST: Criar novo dado.
- PUT: Atualizar (Trocar tudo).
- PATCH: Atualizar (Apenas um pedaço).
- DELETE: Remover dado.
Idempotência e Segurança
| Verbo | Seguro? | Idempotente? |
|---|---|---|
| GET | Sim ✅ | Sim ✅ |
| POST | Não ❌ | Não ❌ |
| PUT | Não ❌ | Sim ✅ |
| DELETE | Não ❌ | Sim ✅ |
4. Status Codes: A Resposta 🚦
- 2xx: Deu certo! (200, 201, 204).
- 4xx: Você (cliente) errou algo (400, 401, 404).
- 5xx: Eu (servidor) quebrei (500, 503).
5. O Formato JSON 🏗️
- Leve, legível e universal.
6. Design de URIs Complexas
Como buscar os pedidos de um usuário específico?
GET /usuarios/123/pedidos ✅
- Hierarquia lógica e limpa.
7. Prática: Postman em Ação 💻
- Testando verbos em APIs reais.
- Analisando Headers e Body.
Desafio REST ⚡
Se você quer mudar apenas o e-mail de um usuário, qual verbo deve usar: PUT ou PATCH?
Resumo ✅
- REST é sobre recursos e padrões.
- URIs usam substantivos no plural.
- Status codes guiam o frontend.
- JSON é o padrão de facto.
Próxima Aula: Swagger e Mocks 📝
- Documentação automática.
- Como trabalhar sem o backend pronto?
Dúvidas? 📡
Aula 04 - Documentação e Mocks 📝
Developer Experience e Contratos
Agenda 📅
- Por que documentar?
- OpenAPI vs Swagger
- Swagger UI e Editor
- O Poder dos Mocks
- Developer Experience (DX)
- Ferramentas de Simulação
1. Documentação é DX 🚀
- Sua API é seu produto.
- Documentar economiza tempo de suporte.
- Facilita a integração com Front/Mobile.
2. OpenAPI (OAS) 📜
- O padrão mundial.
- Arquivo YAML ou JSON descritivo.
- Agnóstico de linguagem.
3. Swagger: O Canivete Suíço 🛠️
- Editor: Escreva e valide o contrato.
- UI: Gere a página visual de testes.
- Codegen: Gere código (client/server) automaticamente.
Swagger UI em Ação
- Permite testar endpoints no próprio navegador.
- Mostra exemplos de JSON de entrada e saída.
- Exibe todos os Status Codes possíveis.
4. O Poder dos Mocks 🎭
- Development in Parallel: Front não espera pelo Back.
- Servidor "Fake" que retorna dados reais.
- Valide a experiência antes da implementação complexa.
5. Developer Experience (DX) 👨💻
Como ser amado por outros devs:
- Nomes de rotas claros.
- Erros descritivos no Body.
- Exemplos de requisição.
- Documentação atualizada (ou gerada pelo código).
6. Ferramentas Recomendadas 🧰
- Swagger Editor: Online ou Local.
- Mockoon: Mock local amigável.
- Prism: Mock via CLI.
- Postman: Collections documentadas.
7. Prática: Editando um YAML 💻
- Desenhando um endpoint
GET /tarefas. - Definindo parâmetros de entrada.
- Criando esquemas de dados.
Desafio: Mock vs Stubs ⚡
Qual a principal vantagem de um Mock Server online (como Postman) em relação a um Mock rodando apenas no computador do desenvolvedor?
Resumo ✅
- OpenAPI é o contrato.
- Swagger UI é a vitrine da sua API.
- Mocks destravam o desenvolvimento da equipe.
- DX é o diferencial de uma boa API.
Próxima Aula: Implementação Backend! 💻
Módulo 2: Manipulação de Dados
- Controllers e Services.
- Repositories e Banco de Dados.
- Mão na massa com código real!
Dúvidas? 📝
Aula 05 - Implementação de APIs ⚙️
Controllers e Rotas
Agenda 📅
- Camadas do Backend
- O Papel do Controller
- Rotas e Handlers
- Capturando Dados (Params/Body)
- Status Codes na Prática
- Injeção de Dependência
1. Organização em Camadas 🧱
- Controller: Trata a entrada (HTTP).
- Service: Regras de negócio.
- Repository: Acesso ao banco.
2. O Papel do Controller 🎮
- Ele é o ponto de entrada.
- Não deve ter lógica complexa!
- Deve apenas orquestrar a execução.
Controller = Garçom 🤵 Service = Cozinheiro 👨🍳
3. Rotas e Handlers 📍
- Rota: Verbo HTTP + Path.
- Handler: Função executada.
4. Capturando Dados 📥
- Path Params:
/id/123(Identificação). - Query Params:
?q=busca(Filtro). - Body: Enviando JSON (Criação/Update).
5. Respostas de Qualidade 📤
- Nunca esqueça o Status Code!
- Sucesso: 200, 201, 204.
- Erro: 400, 401, 404, 500.
6. Injeção de Dependência 💉
- Receber serviços prontos.
- Facilita testar o Controller "isolado".
7. Prática: O Primeiro Endpoint 💻
- Mapeando um
GET /ping. - Retornando um
pongem JSON. - Testando no Insomnia/Postman.
Desafio: Params vs Query ⚡
Se você quer listar todos os alunos de uma sala com o nome "Pedro", qual tipo de parâmetro você usaria para o nome?
Resumo ✅
- Controllers são a porta de entrada.
- Devem ser leves e objetivos.
- Capturam dados e retornam status/JSON.
- Seguem as rotas definidas.
Próxima Aula: Regras de Negócio! 🧠
Services e Validações
- Onde o cálculo acontece.
- Isolando o código do "mundo externo".
Dúvidas? ⚙️
Aula 06 - Services e Regras de Negócio 🧠
O Cérebro da Aplicação
Agenda 📅
- Por que separar as coisas?
- Responsabilidades do Service
- O Fluxo: Controller -> Service
- Tratamento de Erros Profissional
- DTOs: Protegendo os Dados
- Service vs ViewModel (Mobile)
1. O Problema: "Controller Gordo" 🍔
- Lógica de negócio misturada com HTTP.
- Código impossível de reutilizar.
- Difícil de testar.
2. A Solução: Layered Architecture 🧱
- Controller: Trata o transporte (HTTP).
- Service: Trata a regra (O QUE fazer).
3. O que vai no Service? ⚖️
- Validações complexas.
- Cálculos de valores.
- Envio de e-mails/notificações.
- Integração com repositórios.
4. Tratamento de Erros ⚠️
- O Service Lança (Throws).
- O Controller Captura (Catches).
// Service
if (!saldo) throw new Error("Saldo Insuficiente");
// Controller
try { ... } catch (e) { res.status(400)... }
5. DTOs: Filtrando a Saída 📦
- Nunca envie "tudo" do banco para o cliente.
- Proteja campos sensíveis (Ex:
senha_hash). - Melhore a performance (menos dados trafegados).
6. Service vs ViewModel 🆚
- No Backend: Service é o cérebro.
- No Mobile/Front: ViewModel é o cérebro.
- Ambos servem para "limpar" a camada de visualização.
7. Prática: Validando um Cadastro 💻
- Verificando se o e-mail é válido.
- Verificando se o usuário já existe.
- Lançando erros específicos.
Desafio: Onde colocar? ⚡
Se uma regra diz: "Usuários VIP ganham 20% de desconto", essa regra deve ficar no Controller ou no Service?
Resumo ✅
- Controllers recebem, Services processam.
- Mantenha seus Controllers "finos" (Slim Controllers).
- Centralize as regras para facilitar a manutenção.
- DTOs são as fronteiras dos dados.
Próxima Aula: Onde os dados vivem! 🗄️
Repositories e Banco de Dados
- PostgreSQL e SQL básico.
- Camada de persistência.
Dúvidas? 🧠
Aula 07 - Repositories e Banco de Dados 🗄️
Onde a informação descansa
Agenda 📅
- Por que Bancos de Dados?
- PostgreSQL: O Robusto
- SQL Básico (SELECT, INSERT...)
- Relacionamentos (1:N, N:N)
- Camada de Persistence
- O Padrão Repository
1. Persistência de Dados 💾
- Sem banco, o servidor esquece tudo ao reiniciar.
- Precisamos de segurança e integridade.
- Estritamente Tipado: O banco garante o formato.
2. Por que PostgreSQL? 🐘
- Código Aberto (Open Source).
- Extremamente confiável (ACID).
- Suporta dados complexos (JSONB).
3. SQL: A Linguagem Universal 🗣️
- DDL: Define a estrutura (Tabelas).
- DML: Manipula os dados (Linhas).
4. O Coração: Relacionamentos 🔗
- 1:N: Um cliente, muitos pedidos.
- N:N: Muitos alunos, muitos cursos.
- Foreign Key: A âncora que liga tudo.
5. Camada de Persistence 🧱
- O código que conversa com o driver do banco.
- Onde as queries são traduzidas para o código.
6. Padrão Repository 📥
- "Não me diga como, diga O QUE você quer".
- Isola o SQL da regra de negócio.
7. Migrations 📜
- Controle de versão para o Banco.
- Permite "voltar no tempo" se algo quebrar.
- Mantém o time em sincronia.
Desafio SQL ⚡
Qual comando você usaria para mudar o preço de todos os produtos da categoria 'Games' para 99.90?
Resumo ✅
- Bancos de dados dão memória ao sistema.
- PostgreSQL é o padrão da indústria.
- SQL é habilidade obrigatória para backend.
- Repository Pattern traz flexibilidade.
Próxima Aula: Integridade! ✅
Validação e Boas Práticas
- Garantindo que dados "sujos" não entrem no banco.
- Tratamento de exceções de banco.
Dúvidas? 🗄️
Aula 08 - Boas Práticas e Validação ✅
Qualidade e Segurança no Backend
Agenda 📅
- Por que Validar Tudo?
- Validação vs Sanitização
- Schema Validation (Ex: Zod)
- Clean Code (Código Limpo)
- Tratamento de Erros Profissional
- Middlewares Globais
1. Regra de Ouro: Desconfiança 🛡️
- O cliente é o "lado perigoso" da aplicação.
- Validações evitam dados corrompidos.
- Defesa em Profundidade: Garanta a regra no banco E no código.
2. Validar vs Sanitizar 🧼
- Validar: Checar (Idade > 18?).
- Sanitizar: Limpar (Remover
<script>).
3. Schema Validation 📐
- Crie "moldes" para seus dados.
- Validação centralizada e reutilizável.
4. O Backend Elegante (Clean Code) ✨
- DRY: Don't Repeat Yourself (Não repita lógica).
- KISS: Keep It Simple, Stupid (Mantenha o simples).
- Nomes de funções que explicam o que está acontecendo.
5. Tratamento de Erros 🚨
- Controller trata o fluxo, não o detalhe técnico.
- Try/Catch Global: Evite crashes.
- Mensagens amigáveis para o cliente.
6. Logs vs Mensagens 📜
- Terminal/Log: Detalhe técnico completo.
- Cliente (JSON): Apenas o que ele precisa saber.
"Ocorreu um erro interno" (Cliente) ✅ "Query failed at line 42 due to NULL constraint" (Logs) ✅
7. Prática: O Schema Perfeito 💻
- Validando um produto complexo.
- Tratando erros de tipo (String no lugar de Number).
Desafio: Limpeza ⚡
Se você recebe um texto de um post com muitos espaços em branco no final, você deve Validar ou Sanitizar?
Resumo ✅
- Backend robusto exige validação rigorosa.
- Limpe os dados antes de salvar (Sanitize).
- Middleware Global centraliza a gestão de falhas.
- Código limpo economiza meses de manutenção.
Próxima Aula: Módulo 3! 🔐
Segurança e Autenticação
- Quem é você? (Authentication).
- O que você pode fazer? (Authorization).
Dúvidas? ✅
Aula 09 - Segurança e Autenticação com JWT 🔐
Portas trancadas e Crachás Digitais
Agenda 📅
- Autenticação vs Autorização
- O Fim das Sessões (Stateful)
- O que é JWT?
- Estrutura: Header, Payload, Signature
- Fluxo de Login completo
- Melhores Práticas de Segurança
1. Quem é Você? (Autenticação) 🚦
- Validar a identidade do usuário.
- Login e Senha.
- Autorização: O que você PODE fazer? (Níveis de acesso).
2. Por que JWT? 🤔
- Abordagem Stateless (Sem estado).
- O servidor não guarda sessão na memória (escalável!).
- Perfeito para Microserviços e Mobile.
3. Estrutura do Token 🎫
- Header: Algoritmo (ex: HS256).
- Payload: Os dados (id, role, nome).
- Signature: O lacre de segurança.
4. O Coração do JWT: A Assinatura 🖋️
- Usa uma
SECRET_KEYno servidor. - Garante que o token não foi "hackeado" ou alterado.
5. Fluxo de Login 🌊
- Envia credenciais -> 2. Servidor valida -> 3. Gera JWT -> 4. Frontend guarda o Token -> 5. Envia no Header em cada requisição.
6. Segurança em Mobile 📱
- Nunca guarde em arquivos de texto!
- Use EncryptedSharedPreferences (Android) ou Keychain (iOS).
7. Melhores Práticas 🏆
- Use chaves secretas longas e seguras.
- Defina tempo de expiração (
expiresIn). - Protocolo HTTPS é obrigatório!
Desafio de Segurança ⚡
O Payload do JWT é criptografado ou apenas codificado? Posso guardar a senha do usuário lá?
Resumo ✅
- JWT permite autenticação rápida e escalável.
- Header + Payload + Signature.
- Stateless = Servidor mais leve.
Próxima Aula: Controle de Acesso 🛡️
Quem manda aqui? (RBAC)
- Middlewares de autorização.
- Protegendo rotas por nível de usuário.
Dúvidas? 🔐
Aula 10 - Controle de Acesso (RBAC) 🛡️
Hierarquia e Segurança em Camadas
Agenda 📅
- O que é RBAC? (Roles)
- Autenticação vs Autorização
- O Fluxo do Middleware
- Erros 401 vs 403
- Protegendo rotas na prática
- Hierarquia de Perfis
1. Role-Based Access Control 👑
- Permissões ligadas a Perfis (Roles).
- Ex: ADMIN, EDITOR, VIEWER.
- Facilita a gestão de milhares de usuários.
2. A Cancela (Middleware) 🚧
- O middleware checa se o usuário tem a "chave" certa.
- Se não tiver -> 403 Forbidden.
- Se tiver ->
next().
3. O Fluxo de Segurança 🌊
graph LR
Req[Request] --> Auth[Autenticação]
Auth --> |OK| Role[Autorização]
Role --> |OK| Controller[Recurso Final]
4. 401 vs 403: Não confunda! ❌
- 401 (Unauthorized): "Quem é você?". Token inválido ou ausente.
- 403 (Forbidden): "Eu sei quem você é, mas não deixo entrar". Falta de permissão.
5. Implementação Dinâmica 🔒
// Middleware genérico
router.delete('/usuario/:id',
autenticar,
autorizar(['ADMIN']),
userController.remover
);
6. Hierarquia de Acesso 🏛️
- Um Admin deve poder acessar rotas de User?
- Design de sistema: Roles "Pai" e "Filho".
7. Melhores Práticas 🏆
- Centralize a lógica em Middlewares.
- Nunca exponha permissões sensíveis no frontend (segurança do lado do servidor).
Desafio: Segurança ⚡
Em um sistema escolar, o Diretor e o Professor podem ver notas. O Aluno só vê as dele. Como você configuraria a Role da rota GET /notas?
Resumo ✅
- RBAC organiza permissões por grupos.
- Middlewares são os guardiões das rotas.
- Diferenciar 401 de 403 é vital para Debug.
Próxima Aula: Segurança Avançada 🏗️
Session vs Token e Refresh Tokens
- O que fazer quando o token expira?
- Protegendo contra ataques comuns (XSS, CSRF).
Dúvidas? 🛡️
Aula 11 - Refresh Token e Segurança Avançada 🏗️
Blindando sua API contra o mundo
Agenda 📅
- O Problema do Token Curto ⏰
- Refresh Tokens (O que são?)
- CORS: Origens e Destinos
- Helmet: Headers de Aço
- Rate Limit: Contra Brute Force
- Ataques Comuns (XSS, Injection)
1. Por que Tokens Expiram? ⏰
- Segurança! Se roubarem o token, ele dura pouco.
- Problema: O usuário odeia fazer login toda hora.
2. Refresh Token 🔁
- Um token de longa duração (7 dias+).
- Serve apenas para trocar por um novo Access Token.
- Deve ser invalidado se o usuário deslogar.
3. CORS: Cross-Origin Resource Sharing 🌍
- "Quem pode me chamar?".
- Resolvido via Headers no Servidor.
- Nunca use
origin: '*'em ambientes reais!
4. Helmet: Proteção de Headers 🪖
- Remove o
X-Powered-By(não diz que é Express). - Adiciona proteção contra Clickjacking e XSS.
5. Rate Limiting 🔨
- 5 tentativas de login por minuto? Sim.
- Evita que robôs tentem descobrir senhas via "força bruta".
6. Onde salvar os Tokens? 🛡️
- Frontend: LocalStorage? Seguro?
- Melhor Prática: Cookies
HttpOnly+Secure.
7. Melhores Práticas de Segurança 🏆
- Use HTTPS sempre.
- Valide TODAS as entradas do usuário.
- Mantenha as bibliotecas atualizadas.
Desafio de Segurança ⚡
Qual a diferença entre 401 e 403 no contexto de Refresh Tokens? Se eu recebo 401, eu tento o refresh ou deslogo o usuário?
Resumo ✅
- Refresh Token equilibra UX e Segurança.
- CORS e Helmet são as portas do seu castelo.
- Proteja-se contra robôs com Rate Limit.
Próximo Módulo: Front-End Moderno 🎨
Saindo das APIs e indo para a Web!
- Introdução ao React/Vite.
- Consumindo nossas APIs no navegador.
Dúvidas? 🏗️
Aula 12 - Introdução ao React ⚛️
O Poder dos Componentes Modernos
Agenda 📅
- O que são SPAs?
- Por que React?
- Vite: A Ferramenta Rápida
- JSX: JS + HTML
- Componentes e LEGO
- Props: O Coração Dinâmico
1. Single Page Applications (SPA) 📄
- O site que nunca recarrega.
- Navegação fluida e instantânea.
- Ex: Gmail, Facebook, Spotify Web.
2. Por que o React venceu? ⚔️
- Componentização (Foco no Reuso).
- Virtual DOM (Foco na Performance).
- Gigantesco Ecossistema (Foco no Emprego).
3. Vite: O Novo Padrão ⚡
- Inicia o projeto em segundos.
- Feedback instantâneo durante o código.
4. JSX: A Mistura Perfeita 🧪
- Parece HTML, mas tem o poder do Javascript.
5. Componentes = LEGO 🧩
- Pequenas partes isoladas.
- Facilita testes e trabalho em equipe.
6. Props: Passando o Bastão 🎁
- Permite que componentes recebam dados do "pai".
- Torna componentes genéricos e reutilizáveis.
Resumo ✅
- SPA torna a Web parecida com Apps.
- React organiza sua UI em componentes.
- Vite é seu melhor amigo no desenvolvimento.
Próxima Aula: Dinâmica e Estado 🎣
O que acontece quando o usuário clica?
- Hooks:
useState. - Reatividade na prática.
Dúvidas? ⚛️
Aula 13 - Estado e Hooks 🎣
Tornando seu App Interativo
Agenda 📅
- O que é o Estado (State)?
- Hook
useState - Lidando com Cliques e Eventos
- Inputs Controlados
- Imutabilidade e Arrays
1. O Problema da Estática 🧱
- Variáveis comuns mudam nos bastidores...
- ...mas a tela continua a mesma!
- O React precisa de um sinal para re-desenhar.
2. useState: O Motor de Mudança 🚀
- cont: O valor atual.
- setCont: A função que atualiza.
- 0: O ponto de partida.
3. Eventos no React ⚡
onClick={funcao}onChange={(e) => ...}- Sempre em CamelCase!
4. Inputs Controlados ⌨️
- O React é quem manda no valor do input.
value={estado}+onChange.- Facilita validação e limpeza de campos.
5. Imutabilidade (Muito Importante!) 💎
- Nunca altere o estado original:
lista.push(x)❌ - Sempre crie uma cópia nova:
setLista([...lista, x])✅
6. Fluxo de Dados 🌊
- O estado flui do Pai para o Filho via Props.
- Se o estado do Pai muda, todo mundo abaixo dele atualiza.
Desafio de Estado ⚡
Se eu tenho um botão que soma +1 ao contador, o que acontece com a interface se eu esquecer de importar o useState e usar uma variável global let contador = 0?
Resumo ✅
useStatetraz vida aos componentes.- Mudança de estado = Re-renderização.
- Use sempre funções disparadoras (
set...).
Próxima Aula: Efeitos e APIs 🌐
Buscando dados no mundo real!
- Hook:
useEffect. - Consumindo nossa API Backend.
Dúvidas? 🎣
Aula 14 - Efeitos e APIs 🌐
Conectando seu App ao Mundo Real
Agenda 📅
- O que são Side Effects?
- Hook
useEffect - O Array de Dependências
- Buscando dados com
fetch - Estados de Carregamento e Erro
1. Além da Interface 🧪
- Efeitos colaterais são ações que tocam o mundo externo ao componente.
- Ex: Buscar usuários, mudar o título da aba, iniciar um cronômetro.
2. useState vs useEffect 🥊
- useState: Para dados que o usuário vê mudando.
- useEffect: Para ações que o componente faz "sozinho".
3. Os 3 Momentos do useEffect 🕒
- Montagem: Quando o componente nasce.
- Atualização: Quando um dado monitorado muda.
- Desmontagem: Quando o componente morre (Cleanup).
4. O Array de Dependências [] 🗃️
[]-> Roda só uma vez.[cont]-> Roda sempre quecontmudar.Sem array-> Roda em toda atualização (Perigo!).
5. Chamadas de API (Fetch) 📨
useEffect(() => {
fetch("https://api...")
.then(res => res.json())
.then(data => setData(data));
}, []);
6. UX: Estados de Rede 🛡️
- Loading: Mostre um Spinner enquanto espera.
- Error: Avise se a internet caiu ou o usuário não existe.
- Empty: Diga se não há resultados.
Desafio de Efeito ⚡
Se você colocar um alert("Olá") dentro de um useEffect sem o array [], quantas vezes o alerta vai aparecer se o usuário ficar digitando em um campo de texto que atualiza o estado?
Resumo ✅
useEffectorganiza as ações assíncronas.- Controle quando rodar via array de dependências.
- Trate sempre o carregamento e erros para uma boa UX.
Próxima Aula: Navegação 🚦
Multi-páginas com React Router!
/home,/perfil,/contato.- Links e Navegação Programática.
Dúvidas? 🌐
Aula 15 - React Router 🚦
Criando Apps Multi-Página
Agenda 📅
- O que são SPAs?
- Multi-páginas (Simuladas)
- Componentes de Rota
- Navegação (
LinkeuseNavigate) - Parâmetros dinâmicos (
:id)
1. O Mundo do SPA ⚛️
- O site é uma única página HTML.
- O Javascript "troca" a tela sem recarregar.
- UX rápida e fluida.
2. React Router Dom ⚙️
- A biblioteca padrão para web.
- Permite que a URL combine com o que aparece na tela.
3. A Estrutura Básica 🏗️
- BrowserRouter: O container principal.
- Routes: O seletor de rotas.
- Route: Define o caminho (
path) e o componente (element).
4. Navegando sem Recarregar! 🏃♂️
- Use
<Link to="/contato"> - NUNCA use
<a href="...">para rotas internas.
5. Navegação Programática 🚀
- Ideal para redirecionar após ações (Login, Clique em Card).
6. Rotas Dinâmicas (URL Params) 🆔
path="/perfil/:username"- Hook
useParams()captura o valor. - Uma única página que se adapta a mil perfis.
7. Página 404 (Not Found) 👻
path="*"- Garante que o usuário nunca caia em uma tela em branco.
Desafio de Roteamento ⚡
Se eu digitar www.meusite.com/asdfg e não tiver uma rota configurada para isso, o que o usuário vai ver se eu NÃO colocar uma rota com o path="*"?
Resumo ✅
- Roteamento traz a sensação de um site real.
- Hooks
useNavigateeuseParamssão essenciais. - SPAs são o padrão da indústria moderna.
Próxima Aula: O Grande Final 🏆
Projeto Integrado: Backend + Frontend!
- Conectando nossa API Node ao site React.
- O Projeto Final do Curso!
Dúvidas? 🚦
Aula 16 - Projeto Final e Conclusão �
De aluno a Desenvolvedor Full-Stack
Agenda 📅
- O Desafio Final 🔗
- Requisitos Técnicos
- Portfólio no GitHub
- Onde continuar estudando?
- Mensagem de Encerramento
1. O Desafio Final 🚀
Você deve entregar um projeto integrado contendo: - Frontend: SPA em React com rotas. - Backend: API segura em Node.js. - Integração: Conexão real entre os dois. - Design: CSS moderno e responsivo.
2. Sugestões de Temas 💡
- Gerenciador de Tarefas �
- Mini E-commerce 🛒
- Rede Social Simplificada 💬
- Dashboard de Monitoramento 📊
3. O README de Elite ✨
- Prints ou Vídeos do site funcionando.
- Lista detalhada de tecnologias.
- Guia: "Como rodar o Projeto".
4. Onde ir agora? 📚
- TypeScript: Segurança de tipos.
- Bancos SQL: Postgres e MySQL.
- Next.js: O rei do mercado React.
- Docker: Infraestrutura moderna.
5. Soft Skills 🤝
- Não é só saber programar!
- Trabalho em equipe.
- Resolução de problemas reais.
6. O Mercado Full-Stack 📈
- Demanda altíssima por devs completos.
- Salários excelentes.
- Dashboards e Sistemas Web movem o mundo!
7. Mensagem Final 🌟
"Programar é a arte de criar soluções onde antes só havia problemas."
- Você construiu a base sólida.
- O código é sua ferramenta de transformação.
Parabéns pela Jornada! 🎓🚀
Vá e construa o futuro da Web.
Dúvidas Finais? 🤔
Configuração
Ambientes de Desenvolvimento 🛠️
Guias para configurar seu computador para o desenvolvimento mobile.
-
Android --- Instalação do Android Studio, SDK e emuladores.
-
iOS (Opcional/Referência) --- Configuração básica de Xcode e ferramentas Mac.
-
Ferramentas de Apoio --- Git, Terminais e Postman/Insomnia para testes de API.
Setup 01: Android Studio 🤖
O Android Studio é a IDE oficial para o desenvolvimento Android.
1. Requisitos de Sistema
- RAM: Mínimo 8GB (Sugerido 16GB+).
- Espaço: Mínimo 10GB para IDE + SDKs.
- Processador: Intel Core i5 ou equivalente.
2. Instalação
- Acesse o site oficial: developer.android.com/studio.
- Baixe a versão mais recente para o seu Sistema Operacional.
- Execute o instalador e escolha a opção "Standard" na configuração inicial.
3. Configurando o SDK
- Após a instalação, vá em Settings > Languages & Frameworks > Android SDK.
- Certifique-se de que a versão mais recente do Android (estável) esteja instalada.
- Na aba SDK Tools, instale o "Android Emulator" e o "Intel x86 Emulator Accelerator (HAXM)" se estiver no Windows com Intel.
4. Criando um Emulador (AVD)
- Abra o Device Manager.
- Clique em Create Device.
- Escolha um dispositivo (ex: Pixel 7).
- Selecione uma imagem de sistema (ex: Level 34 - Android 14).
- Finalize e clique no "Play" para iniciar o celular virtual.
5. Solução de Problemas ⚠️
- VT-x is disabled: Você precisa habilitar a virtualização na BIOS do seu computador.
- Studio muito lento: Adicione a pasta do projeto e as pastas do Android SDK nas exclusões do seu Antivírus.
Setup 02: Xcode (iOS Foundation) 🍎
O Xcode é a ferramenta necessária para compilar e testar apps iOS.
[!IMPORTANT] O Xcode requer um computador Mac (macOS).
1. Instalação
- Abra a App Store no seu Mac.
- Pesquise por Xcode.
- Clique em Obter/Instalar.
- Após o download, abra o Xcode para carregar os componentes adicionais do macOS.
2. Configurando Simuladores
- Vá em Settings > Platforms.
- Verifique se o componente "iOS" está baixado.
- Se não estiver, clique em "GET" para baixar a versão mais estável.
3. Comandos de Linha (CLI)
Para que ferramentas de automação funcionem, você precisa instalar os Command Line Tools:
4. Opcional: CocoaPods
Muitos projetos iOS antigos ainda usam CocoaPods para dependências:
5. Solução de Problemas ⚠️
- Espaço em Disco: O Xcode é muito grande. Garanta pelo menos 40GB de espaço livre para ele e os simuladores.
- Build Lento: Use simuladores de modelos mais simples (ex: iPhone SE) para poupar memória RAM se necessário.
Sobre
Sobre o Curso
🎓 Aplicativos Informatizados Profissionais
Este curso foi projetado para capacitar alunos iniciantes (jovens e adultos) no uso eficiente de computadores, softwares de escritório e ferramentas de produtividade em nuvem, preparando-os para as exigências do mercado de trabalho moderno.
🎯 Objetivos do Curso
-
Sistemas Operacionais --- Compreender os fundamentos de funcionamento dos computadores e as características dos principais sistemas operacionais do mercado.
-
Domínio de Escritório --- Dominar ferramentas de edição de texto, planilhas eletrônicas e softwares de apresentação para criação de documentos profissionais.
-
Gestão de Informações --- Implementar boas práticas de armazenamento em nuvem, segurança de dados e organização eletrônica de arquivos.
-
Cidadania Digital e Web --- Desenvolver técnicas de pesquisa avançada, noções de redes de dados e conhecimentos para publicação segura de informações na internet.
📚 O Que Você Vai Aprender
Módulo 1 – Fundamentos e Sistemas
- Tipos e Funções de Sistemas Operacionais
- Gestão de Arquivos e Pastas
- Interface e Configurações Básicas
Módulo 2 – Ferramentas de Escritório
- Processamento de Textos (Word, Google Docs)
- Planilhas Eletrônicas (Excel, Google Sheets)
- Apresentações (PowerPoint, RevealJS)
Módulo 3 – Nuvem e Produtividade
- Armazenamento e Backups
- Segurança e Privacidade Digital
- Ferramentas de Agenda e Organização
Módulo 4 – Comunicação e Redes
- Conceitos de Redes e Internet
- Pesquisa Avançada e Validação de Dados
- Publicação em Blogs e Redes Sociais
🛠️ Metodologia
Foco 100% prático e orientado a mini-projetos semanais. Cada aula foca em uma habilidade específica que é imediatamente aplicada em um exercício desafiador, garantindo a fixação do conteúdo.
Pronto para dominar a informática? Começar Agora
Roadmap do Projeto: Aplicativos Informatizados 🚀
Este documento rastreia a evolução do curso.
✅ Fase 1: Planejamento (Concluído)
- [x] Definição Syllabus (16 Aulas) 기반 Bases Tecnológicas
- [x] Estrutura de módulos (Hardware, Office, Nuvem, Web)
- [x] Configuração MkDocs Material Premium
🚧 Fase 2: Conteúdo Base (Em Progresso)
- [ ] Criação das 16 Aulas (Markdown)
- [ ] Criação dos 16 Quizzes (Interativos)
- [ ] Criação dos 16 Conjuntos de Exercícios
- [ ] Criação dos 16 Slides (RevealJS)
📅 Fase 3: Projetos e UX (Agendado)
- [ ] Definição dos 16 Mini-Projetos
- [ ] Diagramação Mermaid de fluxos e processos
- [ ] Validação de fórmulas MathJax e TermynalJS
🚀 Fase 4: Lançamento e Manutenção
- [x] Configuração inicial GitHub Pages
- [ ] Build final e validação de links
- [ ] Deploy v1.0.0
Status Atual: Em Refatoração Última Atualização: 22/02/2026
Materiais Complementares 📚
Bem-vindo à seção de materiais complementares do curso de Aplicativos Informatizados. Aqui você encontra recursos adicionais para apoiar seus estudos e aprofundar seu conhecimento prático.
-
Slides --- Acompanhe o conteúdo teórico com apresentações dinâmicas e interativas.
-
Exercícios --- Pratique o uso de ferramentas de escritório e configurações de sistema.
-
Quizzes --- Valide seu aprendizado com testes rápidos ao final de cada aula.
-
Projetos --- Construa soluções reais e organize seu portfólio de produtividade.
-
Ambientes --- Guias de configuração e instalação de softwares essenciais.
Versão para Impressão
Esta página foi gerada automaticamente para impressão.