Table of Contents
LINUX – Fundamentos e Prática 💻
Domine o sistema operacional mais importante para desenvolvedores e administradores de sistemas. Aprenda desde os conceitos básicos até a automação profissional.
Foco do Curso
Metodologia: Aprendizado prático focado no terminal, segurança e ambiente de desenvolvimento real.
🎯 Módulos de Especialização
-
Domínio do Terminal --- Navegue com velocidade, manipule arquivos de forma eficiente e entenda a estrutura do sistema. Ir para Aula 04
-
Segurança e Usuários --- Aprenda a gerenciar permissões, grupos e entender a soberania do superusuário root. Ver Permissões
-
Automação Shell --- Crie scripts poderosos para automatizar tarefas repetitivas e backups de forma inteligente. Ver Shell Script
-
Admin e Dev --- Configure serviços, gerencie pacotes e prepare seu ambiente para Git, Docker e compiladores. Ver Projetos
📚 Jornada de Aprendizado (16 Aulas)
O curso é estruturado em trilhas progressivas.
🏛️ Módulo 1: Fundamentos (Aulas 01-04)
- Aula 01 - Introdução e Software Livre 🐧
- Aula 02 - Instalação e Ambiente 💿
- Aula 03 - Sistema de Arquivos 📂
- Aula 04 - Terminal e Comandos ⌨️
🛠️ Módulo 2: Administração do Sistema (Aulas 05-08)
- Aula 05 - Manipulação de Arquivos 📝
- Aula 06 - Permissões e Segurança 🔐
- Aula 07 - Gerenciamento de Pacotes 📦
- Aula 08 - Processos e Monitoramento ⚙️
⛓️ Módulo 3: Ferramentas e Redes (Aulas 09-12)
- Aula 09 - Compactação e Backup 💾
- Aula 10 - Redes no Linux 🌐
- Aula 11 - Variáveis e Bash 🔧
- Aula 12 - Redirecionamento e Pipes 🏗️
🚀 Módulo 4: Especialização e Projeto (Aulas 13-16)
- Aula 13 - Intro a Shell Script 📜
- Aula 14 - Linux para Programadores 👨💻
- Aula 15 - Serviços e Inicialização 🔄
- Aula 16 - Projeto Final 🎓
Plano de Ensino 🧭
Curso: LINUX – Fundamentos e Prática
Público-alvo: Jovens e adultos iniciantes em Computação
Carga sugerida: 16 aulas
🎯 Objetivos do Curso
- Compreender o que é o Linux e o conceito de software livre.
- Utilizar o terminal com segurança e eficiência.
- Manipular arquivos e diretórios via linha de comando.
- Gerenciar usuários, permissões e processos.
- Instalar programas e configurar ambiente de desenvolvimento.
- Preparar o aluno para o uso profissional do Linux.
📚 Cronograma de Aulas
| Aula | Tema | Destaques |
|---|---|---|
| 01 | Introdução ao Linux | História e Software Livre |
| 02 | Instalação e Ambiente | Dual Boot e VMs |
| 03 | Sistema de Arquivos | Estrutura de diretórios (/, /home, /etc) |
| 04 | Terminal e Comandos | ls, cd, pwd, mkdir |
| 05 | Manipulação de Arquivos | cat, less, Editor Vim |
| 06 | Permissões e Segurança | chmod, chown, sudo |
| 07 | Gerenciamento de Pacotes | Repositórios e comando apt |
| 08 | Processos e Monitoramento | ps, top, htop, kill |
| 09 | Compactação e Backup | tar, zip, unzip |
| 10 | Redes no Linux | ip a, ping, SSH |
| 11 | Variáveis e Bash | $PATH, .bashrc, customização |
| 12 | Redirecionamento e Pipes | >, |, grep |
| 13 | Intro a Shell Script | Automação básica e condicionais |
| 14 | Linux para Programadores | Git, Docker, GCC |
| 15 | Serviços e Inicialização | systemctl, journalctl, systemd |
| 16 | Projeto Final | Automação e Backup |
🧠 Metodologia
- Prática: Aulas 100% práticas em laboratório/terminal.
- PBL: Aprendizado baseado em projetos reais.
- Progressivo: Da navegação básica à automação de servidores.
💼 Competências Desenvolvidas
- Administrar sistemas Linux de forma básica e intermediária.
- Trabalhar de forma produtiva no terminal.
- Configurar ambientes de desenvolvimento modernos.
- Compreender a infraestrutura que sustenta a internet.
Aulas
Módulo 1 – Fundamentos
Introdução ao Linux e Software Livre
🎯 Objetivos da Aula
- [ ] Compreender os conceitos de Introdução ao Linux e Software Livre
- [ ] Praticar comandos no terminal
- [ ] Resolver desafios propostos
📊 Visão Geral
graph TD
A[Início] --> B[Conceito]
B --> C[Prática]
C --> D[Projeto]
🧠 Conceito
O Linux é um sistema...
Conceito
Linux é o núcleo (kernel) de um sistema operacional livre.
💻 Prática Terminal
Dica
Use sempre a tecla Tab para completar comandos.
🚀 Mini-Projeto
Desenvolva um pequeno tutorial sobre...
🎯 Próximos Passos
-
Acessar Slides
-
Quiz
-
Exercícios
-
Projeto
Instalação e Ambiente
🎯 Objetivos da Aula
- [ ] Compreender os conceitos de Instalação e Ambiente
- [ ] Praticar comandos no terminal
- [ ] Resolver desafios propostos
📊 Visão Geral
graph TD
A[Início] --> B[Conceito]
B --> C[Prática]
C --> D[Projeto]
🧠 Conceito
O Linux é um sistema...
Conceito
Linux é o núcleo (kernel) de um sistema operacional livre.
💻 Prática Terminal
Dica
Use sempre a tecla Tab para completar comandos.
🚀 Mini-Projeto
Desenvolva um pequeno tutorial sobre...
🎯 Próximos Passos
-
Acessar Slides
-
Quiz
-
Exercícios
-
Projeto
Estrutura do Sistema de Arquivos
🎯 Objetivos da Aula
- [ ] Compreender os conceitos de Estrutura do Sistema de Arquivos
- [ ] Praticar comandos no terminal
- [ ] Resolver desafios propostos
📊 Visão Geral
graph TD
A[Início] --> B[Conceito]
B --> C[Prática]
C --> D[Projeto]
🧠 Conceito
O Linux é um sistema...
Conceito
Linux é o núcleo (kernel) de um sistema operacional livre.
💻 Prática Terminal
Dica
Use sempre a tecla Tab para completar comandos.
🚀 Mini-Projeto
Desenvolva um pequeno tutorial sobre...
🎯 Próximos Passos
-
Acessar Slides
-
Quiz
-
Exercícios
-
Projeto
Terminal e Primeiros Comandos
🎯 Objetivos da Aula
- [ ] Compreender os conceitos de Terminal e Primeiros Comandos
- [ ] Praticar comandos no terminal
- [ ] Resolver desafios propostos
📊 Visão Geral
graph TD
A[Início] --> B[Conceito]
B --> C[Prática]
C --> D[Projeto]
🧠 Conceito
O Linux é um sistema...
Conceito
Linux é o núcleo (kernel) de um sistema operacional livre.
💻 Prática Terminal
Dica
Use sempre a tecla Tab para completar comandos.
🚀 Mini-Projeto
Desenvolva um pequeno tutorial sobre...
🎯 Próximos Passos
-
Acessar Slides
-
Quiz
-
Exercícios
-
Projeto
Módulo 2 – Administração
Manipulação de Arquivos
🎯 Objetivos da Aula
- [ ] Compreender os conceitos de Manipulação de Arquivos
- [ ] Praticar comandos no terminal
- [ ] Resolver desafios propostos
📊 Visão Geral
graph TD
A[Início] --> B[Conceito]
B --> C[Prática]
C --> D[Projeto]
🧠 Conceito
O Linux é um sistema...
Conceito
Linux é o núcleo (kernel) de um sistema operacional livre.
💻 Prática Terminal
Dica
Use sempre a tecla Tab para completar comandos.
🚀 Mini-Projeto
Desenvolva um pequeno tutorial sobre...
🎯 Próximos Passos
-
Acessar Slides
-
Quiz
-
Exercícios
-
Projeto
Permissões e Segurança
🎯 Objetivos da Aula
- [ ] Compreender os conceitos de Permissões e Segurança
- [ ] Praticar comandos no terminal
- [ ] Resolver desafios propostos
📊 Visão Geral
graph TD
A[Início] --> B[Conceito]
B --> C[Prática]
C --> D[Projeto]
🧠 Conceito
O Linux é um sistema...
Conceito
Linux é o núcleo (kernel) de um sistema operacional livre.
💻 Prática Terminal
Dica
Use sempre a tecla Tab para completar comandos.
🚀 Mini-Projeto
Desenvolva um pequeno tutorial sobre...
🎯 Próximos Passos
-
Acessar Slides
-
Quiz
-
Exercícios
-
Projeto
Gerenciamento de Pacotes
🎯 Objetivos da Aula
- [ ] Compreender os conceitos de Gerenciamento de Pacotes
- [ ] Praticar comandos no terminal
- [ ] Resolver desafios propostos
📊 Visão Geral
graph TD
A[Início] --> B[Conceito]
B --> C[Prática]
C --> D[Projeto]
🧠 Conceito
O Linux é um sistema...
Conceito
Linux é o núcleo (kernel) de um sistema operacional livre.
💻 Prática Terminal
Dica
Use sempre a tecla Tab para completar comandos.
🚀 Mini-Projeto
Desenvolva um pequeno tutorial sobre...
🎯 Próximos Passos
-
Acessar Slides
-
Quiz
-
Exercícios
-
Projeto
Processos e Monitoramento
🎯 Objetivos da Aula
- [ ] Compreender os conceitos de Processos e Monitoramento
- [ ] Praticar comandos no terminal
- [ ] Resolver desafios propostos
📊 Visão Geral
graph TD
A[Início] --> B[Conceito]
B --> C[Prática]
C --> D[Projeto]
🧠 Conceito
O Linux é um sistema...
Conceito
Linux é o núcleo (kernel) de um sistema operacional livre.
💻 Prática Terminal
Dica
Use sempre a tecla Tab para completar comandos.
🚀 Mini-Projeto
Desenvolva um pequeno tutorial sobre...
🎯 Próximos Passos
-
Acessar Slides
-
Quiz
-
Exercícios
-
Projeto
Módulo 3 – Ferramentas
Compactação e Backup
🎯 Objetivos da Aula
- [ ] Compreender os conceitos de Compactação e Backup
- [ ] Praticar comandos no terminal
- [ ] Resolver desafios propostos
📊 Visão Geral
graph TD
A[Início] --> B[Conceito]
B --> C[Prática]
C --> D[Projeto]
🧠 Conceito
O Linux é um sistema...
Conceito
Linux é o núcleo (kernel) de um sistema operacional livre.
💻 Prática Terminal
Dica
Use sempre a tecla Tab para completar comandos.
🚀 Mini-Projeto
Desenvolva um pequeno tutorial sobre...
🎯 Próximos Passos
-
Acessar Slides
-
Quiz
-
Exercícios
-
Projeto
Redes no Linux
🎯 Objetivos da Aula
- [ ] Compreender os conceitos de Redes no Linux
- [ ] Praticar comandos no terminal
- [ ] Resolver desafios propostos
📊 Visão Geral
graph TD
A[Início] --> B[Conceito]
B --> C[Prática]
C --> D[Projeto]
🧠 Conceito
O Linux é um sistema...
Conceito
Linux é o núcleo (kernel) de um sistema operacional livre.
💻 Prática Terminal
Dica
Use sempre a tecla Tab para completar comandos.
🚀 Mini-Projeto
Desenvolva um pequeno tutorial sobre...
🎯 Próximos Passos
-
Acessar Slides
-
Quiz
-
Exercícios
-
Projeto
Variáveis de Ambiente e Bash
🎯 Objetivos da Aula
- [ ] Compreender os conceitos de Variáveis de Ambiente e Bash
- [ ] Praticar comandos no terminal
- [ ] Resolver desafios propostos
📊 Visão Geral
graph TD
A[Início] --> B[Conceito]
B --> C[Prática]
C --> D[Projeto]
🧠 Conceito
O Linux é um sistema...
Conceito
Linux é o núcleo (kernel) de um sistema operacional livre.
💻 Prática Terminal
Dica
Use sempre a tecla Tab para completar comandos.
🚀 Mini-Projeto
Desenvolva um pequeno tutorial sobre...
🎯 Próximos Passos
-
Acessar Slides
-
Quiz
-
Exercícios
-
Projeto
Redirecionamento e Pipes
🎯 Objetivos da Aula
- [ ] Compreender os conceitos de Redirecionamento e Pipes
- [ ] Praticar comandos no terminal
- [ ] Resolver desafios propostos
📊 Visão Geral
graph TD
A[Início] --> B[Conceito]
B --> C[Prática]
C --> D[Projeto]
🧠 Conceito
O Linux é um sistema...
Conceito
Linux é o núcleo (kernel) de um sistema operacional livre.
💻 Prática Terminal
Dica
Use sempre a tecla Tab para completar comandos.
🚀 Mini-Projeto
Desenvolva um pequeno tutorial sobre...
🎯 Próximos Passos
-
Acessar Slides
-
Quiz
-
Exercícios
-
Projeto
Módulo 4 – Especialização
Introdução a Shell Script
🎯 Objetivos da Aula
- [ ] Compreender os conceitos de Introdução a Shell Script
- [ ] Praticar comandos no terminal
- [ ] Resolver desafios propostos
📊 Visão Geral
graph TD
A[Início] --> B[Conceito]
B --> C[Prática]
C --> D[Projeto]
🧠 Conceito
O Linux é um sistema...
Conceito
Linux é o núcleo (kernel) de um sistema operacional livre.
💻 Prática Terminal
Dica
Use sempre a tecla Tab para completar comandos.
🚀 Mini-Projeto
Desenvolva um pequeno tutorial sobre...
🎯 Próximos Passos
-
Acessar Slides
-
Quiz
-
Exercícios
-
Projeto
Linux para Programadores
🎯 Objetivos da Aula
- [ ] Compreender os conceitos de Linux para Programadores
- [ ] Praticar comandos no terminal
- [ ] Resolver desafios propostos
📊 Visão Geral
graph TD
A[Início] --> B[Conceito]
B --> C[Prática]
C --> D[Projeto]
🧠 Conceito
O Linux é um sistema...
Conceito
Linux é o núcleo (kernel) de um sistema operacional livre.
💻 Prática Terminal
Dica
Use sempre a tecla Tab para completar comandos.
🚀 Mini-Projeto
Desenvolva um pequeno tutorial sobre...
🎯 Próximos Passos
-
Acessar Slides
-
Quiz
-
Exercícios
-
Projeto
Serviços e Inicialização
🎯 Objetivos da Aula
- [ ] Compreender os conceitos de Serviços e Inicialização
- [ ] Praticar comandos no terminal
- [ ] Resolver desafios propostos
📊 Visão Geral
graph TD
A[Início] --> B[Conceito]
B --> C[Prática]
C --> D[Projeto]
🧠 Conceito
O Linux é um sistema...
Conceito
Linux é o núcleo (kernel) de um sistema operacional livre.
💻 Prática Terminal
Dica
Use sempre a tecla Tab para completar comandos.
🚀 Mini-Projeto
Desenvolva um pequeno tutorial sobre...
🎯 Próximos Passos
-
Acessar Slides
-
Quiz
-
Exercícios
-
Projeto
Projeto Final
🎯 Objetivos da Aula
- [ ] Compreender os conceitos de Projeto Final
- [ ] Praticar comandos no terminal
- [ ] Resolver desafios propostos
📊 Visão Geral
graph TD
A[Início] --> B[Conceito]
B --> C[Prática]
C --> D[Projeto]
🧠 Conceito
O Linux é um sistema...
Conceito
Linux é o núcleo (kernel) de um sistema operacional livre.
💻 Prática Terminal
Dica
Use sempre a tecla Tab para completar comandos.
🚀 Mini-Projeto
Desenvolva um pequeno tutorial sobre...
🎯 Próximos Passos
-
Acessar Slides
-
Quiz
-
Exercícios
-
Projeto
Exercícios
Exercícios Práticos 🏋️
Pratique o que aprendeu com desafios reais de mercado.
-
Nível Inicial ---
-
Nível Médio ---
-
Nível Avançado ---
-
Desafios Finais ---
Exercícios Aula 01: Introdução ao Linux e Software Livre
🟢 Básico
- Execute o comando
...e descreva a saída. - Crie uma pasta chamada
aula-01.
🟡 Intermediário
- Mova o arquivo
Xpara a pastaY. - Mude a permissão do arquivo para
755.
🔴 Desafio
- Crie um script que automatize a criação de 10 pastas e um arquivo dentro de cada uma.
Exercícios Aula 02: Instalação e Ambiente
🟢 Básico
- Execute o comando
...e descreva a saída. - Crie uma pasta chamada
aula-02.
🟡 Intermediário
- Mova o arquivo
Xpara a pastaY. - Mude a permissão do arquivo para
755.
🔴 Desafio
- Crie um script que automatize a criação de 10 pastas e um arquivo dentro de cada uma.
Exercícios Aula 03: Estrutura do Sistema de Arquivos
🟢 Básico
- Execute o comando
...e descreva a saída. - Crie uma pasta chamada
aula-03.
🟡 Intermediário
- Mova o arquivo
Xpara a pastaY. - Mude a permissão do arquivo para
755.
🔴 Desafio
- Crie um script que automatize a criação de 10 pastas e um arquivo dentro de cada uma.
Exercícios Aula 04: Terminal e Primeiros Comandos
🟢 Básico
- Execute o comando
...e descreva a saída. - Crie uma pasta chamada
aula-04.
🟡 Intermediário
- Mova o arquivo
Xpara a pastaY. - Mude a permissão do arquivo para
755.
🔴 Desafio
- Crie um script que automatize a criação de 10 pastas e um arquivo dentro de cada uma.
Exercícios Aula 05: Manipulação de Arquivos
🟢 Básico
- Execute o comando
...e descreva a saída. - Crie uma pasta chamada
aula-05.
🟡 Intermediário
- Mova o arquivo
Xpara a pastaY. - Mude a permissão do arquivo para
755.
🔴 Desafio
- Crie um script que automatize a criação de 10 pastas e um arquivo dentro de cada uma.
Exercícios Aula 06: Permissões e Segurança
🟢 Básico
- Execute o comando
...e descreva a saída. - Crie uma pasta chamada
aula-06.
🟡 Intermediário
- Mova o arquivo
Xpara a pastaY. - Mude a permissão do arquivo para
755.
🔴 Desafio
- Crie um script que automatize a criação de 10 pastas e um arquivo dentro de cada uma.
Exercícios Aula 07: Gerenciamento de Pacotes
🟢 Básico
- Execute o comando
...e descreva a saída. - Crie uma pasta chamada
aula-07.
🟡 Intermediário
- Mova o arquivo
Xpara a pastaY. - Mude a permissão do arquivo para
755.
🔴 Desafio
- Crie um script que automatize a criação de 10 pastas e um arquivo dentro de cada uma.
Exercícios Aula 08: Processos e Monitoramento
🟢 Básico
- Execute o comando
...e descreva a saída. - Crie uma pasta chamada
aula-08.
🟡 Intermediário
- Mova o arquivo
Xpara a pastaY. - Mude a permissão do arquivo para
755.
🔴 Desafio
- Crie um script que automatize a criação de 10 pastas e um arquivo dentro de cada uma.
Exercícios Aula 09: Compactação e Backup
🟢 Básico
- Execute o comando
...e descreva a saída. - Crie uma pasta chamada
aula-09.
🟡 Intermediário
- Mova o arquivo
Xpara a pastaY. - Mude a permissão do arquivo para
755.
🔴 Desafio
- Crie um script que automatize a criação de 10 pastas e um arquivo dentro de cada uma.
Exercícios Aula 10: Redes no Linux
🟢 Básico
- Execute o comando
...e descreva a saída. - Crie uma pasta chamada
aula-10.
🟡 Intermediário
- Mova o arquivo
Xpara a pastaY. - Mude a permissão do arquivo para
755.
🔴 Desafio
- Crie um script que automatize a criação de 10 pastas e um arquivo dentro de cada uma.
Exercícios Aula 11: Variáveis de Ambiente e Bash
🟢 Básico
- Execute o comando
...e descreva a saída. - Crie uma pasta chamada
aula-11.
🟡 Intermediário
- Mova o arquivo
Xpara a pastaY. - Mude a permissão do arquivo para
755.
🔴 Desafio
- Crie um script que automatize a criação de 10 pastas e um arquivo dentro de cada uma.
Exercícios Aula 12: Redirecionamento e Pipes
🟢 Básico
- Execute o comando
...e descreva a saída. - Crie uma pasta chamada
aula-12.
🟡 Intermediário
- Mova o arquivo
Xpara a pastaY. - Mude a permissão do arquivo para
755.
🔴 Desafio
- Crie um script que automatize a criação de 10 pastas e um arquivo dentro de cada uma.
Exercícios Aula 13: Introdução a Shell Script
🟢 Básico
- Execute o comando
...e descreva a saída. - Crie uma pasta chamada
aula-13.
🟡 Intermediário
- Mova o arquivo
Xpara a pastaY. - Mude a permissão do arquivo para
755.
🔴 Desafio
- Crie um script que automatize a criação de 10 pastas e um arquivo dentro de cada uma.
Exercícios Aula 14: Linux para Programadores
🟢 Básico
- Execute o comando
...e descreva a saída. - Crie uma pasta chamada
aula-14.
🟡 Intermediário
- Mova o arquivo
Xpara a pastaY. - Mude a permissão do arquivo para
755.
🔴 Desafio
- Crie um script que automatize a criação de 10 pastas e um arquivo dentro de cada uma.
Exercícios Aula 15: Serviços e Inicialização
🟢 Básico
- Execute o comando
...e descreva a saída. - Crie uma pasta chamada
aula-15.
🟡 Intermediário
- Mova o arquivo
Xpara a pastaY. - Mude a permissão do arquivo para
755.
🔴 Desafio
- Crie um script que automatize a criação de 10 pastas e um arquivo dentro de cada uma.
Exercícios Aula 16: Projeto Final
🟢 Básico
- Execute o comando
...e descreva a saída. - Crie uma pasta chamada
aula-16.
🟡 Intermediário
- Mova o arquivo
Xpara a pastaY. - Mude a permissão do arquivo para
755.
🔴 Desafio
- Crie um script que automatize a criação de 10 pastas e um arquivo dentro de cada uma.
Projetos
Mini Projetos 🚀
Aplicações reais dos comandos e ferramentas do Linux.
-
Fase 1 ---
-
Fase 2 ---
-
Fase 3 ---
-
Fase Final ---
Projeto Aula 01: Introdução ao Linux e Software Livre
🚀 Descrição
Implemente um sistema de organização de arquivos que...
📋 Requisitos
- [ ] Criar estrutura de pastas
- [ ] Aplicar permissões corretas
- [ ] Usar pipes e redirecionamento
💡 Dica
Explore o comando find e xargs.
Projeto Aula 02: Instalação e Ambiente
🚀 Descrição
Implemente um sistema de organização de arquivos que...
📋 Requisitos
- [ ] Criar estrutura de pastas
- [ ] Aplicar permissões corretas
- [ ] Usar pipes e redirecionamento
💡 Dica
Explore o comando find e xargs.
Projeto Aula 03: Estrutura do Sistema de Arquivos
🚀 Descrição
Implemente um sistema de organização de arquivos que...
📋 Requisitos
- [ ] Criar estrutura de pastas
- [ ] Aplicar permissões corretas
- [ ] Usar pipes e redirecionamento
💡 Dica
Explore o comando find e xargs.
Projeto Aula 04: Terminal e Primeiros Comandos
🚀 Descrição
Implemente um sistema de organização de arquivos que...
📋 Requisitos
- [ ] Criar estrutura de pastas
- [ ] Aplicar permissões corretas
- [ ] Usar pipes e redirecionamento
💡 Dica
Explore o comando find e xargs.
Projeto Aula 05: Manipulação de Arquivos
🚀 Descrição
Implemente um sistema de organização de arquivos que...
📋 Requisitos
- [ ] Criar estrutura de pastas
- [ ] Aplicar permissões corretas
- [ ] Usar pipes e redirecionamento
💡 Dica
Explore o comando find e xargs.
Projeto Aula 06: Permissões e Segurança
🚀 Descrição
Implemente um sistema de organização de arquivos que...
📋 Requisitos
- [ ] Criar estrutura de pastas
- [ ] Aplicar permissões corretas
- [ ] Usar pipes e redirecionamento
💡 Dica
Explore o comando find e xargs.
Projeto Aula 07: Gerenciamento de Pacotes
🚀 Descrição
Implemente um sistema de organização de arquivos que...
📋 Requisitos
- [ ] Criar estrutura de pastas
- [ ] Aplicar permissões corretas
- [ ] Usar pipes e redirecionamento
💡 Dica
Explore o comando find e xargs.
Projeto Aula 08: Processos e Monitoramento
🚀 Descrição
Implemente um sistema de organização de arquivos que...
📋 Requisitos
- [ ] Criar estrutura de pastas
- [ ] Aplicar permissões corretas
- [ ] Usar pipes e redirecionamento
💡 Dica
Explore o comando find e xargs.
Projeto Aula 09: Compactação e Backup
🚀 Descrição
Implemente um sistema de organização de arquivos que...
📋 Requisitos
- [ ] Criar estrutura de pastas
- [ ] Aplicar permissões corretas
- [ ] Usar pipes e redirecionamento
💡 Dica
Explore o comando find e xargs.
Projeto Aula 10: Redes no Linux
🚀 Descrição
Implemente um sistema de organização de arquivos que...
📋 Requisitos
- [ ] Criar estrutura de pastas
- [ ] Aplicar permissões corretas
- [ ] Usar pipes e redirecionamento
💡 Dica
Explore o comando find e xargs.
Projeto Aula 11: Variáveis de Ambiente e Bash
🚀 Descrição
Implemente um sistema de organização de arquivos que...
📋 Requisitos
- [ ] Criar estrutura de pastas
- [ ] Aplicar permissões corretas
- [ ] Usar pipes e redirecionamento
💡 Dica
Explore o comando find e xargs.
Projeto Aula 12: Redirecionamento e Pipes
🚀 Descrição
Implemente um sistema de organização de arquivos que...
📋 Requisitos
- [ ] Criar estrutura de pastas
- [ ] Aplicar permissões corretas
- [ ] Usar pipes e redirecionamento
💡 Dica
Explore o comando find e xargs.
Projeto Aula 13: Introdução a Shell Script
🚀 Descrição
Implemente um sistema de organização de arquivos que...
📋 Requisitos
- [ ] Criar estrutura de pastas
- [ ] Aplicar permissões corretas
- [ ] Usar pipes e redirecionamento
💡 Dica
Explore o comando find e xargs.
Projeto Aula 14: Linux para Programadores
🚀 Descrição
Implemente um sistema de organização de arquivos que...
📋 Requisitos
- [ ] Criar estrutura de pastas
- [ ] Aplicar permissões corretas
- [ ] Usar pipes e redirecionamento
💡 Dica
Explore o comando find e xargs.
Projeto Aula 15: Serviços e Inicialização
🚀 Descrição
Implemente um sistema de organização de arquivos que...
📋 Requisitos
- [ ] Criar estrutura de pastas
- [ ] Aplicar permissões corretas
- [ ] Usar pipes e redirecionamento
💡 Dica
Explore o comando find e xargs.
Projeto Aula 16: Projeto Final
🚀 Descrição
Implemente um sistema de organização de arquivos que...
📋 Requisitos
- [ ] Criar estrutura de pastas
- [ ] Aplicar permissões corretas
- [ ] Usar pipes e redirecionamento
💡 Dica
Explore o comando find e xargs.
Quizzes
Quizzes Interativos 🧠
Teste seus conhecimentos rapidamente ao final de cada aula.
-
Fase 1: Fundamentos ---
-
Fase 2: Administração ---
-
Fase 3: Ferramentas ---
-
Fase 4: Especialização ---
Quiz 01 - Introdução a Microsserviços 🌐
Quiz 02 - Arquitetura e Gateway 🏗️
Quiz 03 - Modelagem de APIs RESTful 📡
Quiz 04 - Documentação e Mocks 📝
Quiz 05 - Implementação de APIs ⚙️
Quiz 06 - Services e Regras de Negócio 🧠
Quiz 07 - Repositories e Banco de Dados 🗄️
Quiz 08 - Boas Práticas e Validação de Dados ✅
Quiz 09 - Segurança e Autenticação com JWT 🔐
Quiz 10 - Controle de Acesso (RBAC) 🛡️
Quiz 11 - Refresh Token e Segurança Avançada 🏗️
Quiz 12 - Introdução ao React ⚛️
Quiz 13 - Estado e Reatividade (useState) 🎣
Quiz 14 - Efeitos e APIs (useEffect) 🌐
Quiz 15 - Navegação com React Router 🚦
Quiz 16 - Projeto Final e Carreira 🎓
Slides
Slides das Aulas 🎞️
Acompanhe as apresentações visuais de cada aula.
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
Configuração de Ambiente ⚙️
Prepare seu sistema para o desenvolvimento e prática do curso.
-
Mobile Android --- Configuração para desenvolvimento mobile nativo (Android).
-
Mobile iOS --- Configuração para desenvolvimento mobile nativo (iOS/macOS).
Setup 01: Android 📱
Instruções para configurar o ambiente de desenvolvimento Android.
Requisitos
- Java JDK 17
- Android Studio Bumblebee ou superior
- Emulator ou dispositivo físico
Passo a Passo
- Instale o Java.
- Baixe o Android Studio.
- Configure o ANDROID_HOME.
Setup 02: iOS 🍎
Instruções para configurar o ambiente de desenvolvimento iOS.
Requisitos
- macOS Sonoma ou superior
- Xcode 15+
- CocoaPods
Passo a Passo
- Instale o Xcode via App Store.
- Instale as ferramentas de linha de comando.
- Configure o simulador.
Sobre
Sobre o Curso 🎓
O curso LINUX – Fundamentos e Prática foi desenvolvido para capacitar iniciantes no uso do sistema operacional que move a internet, servidores e o desenvolvimento de software moderno.
🚀 Por que aprender Linux?
- Soberania Digital: Entenda como seu computador realmente funciona.
- Carreira: Fundamental para DevOps, Backend, Segurança e Cloud.
- Eficiência: O terminal permite automatizar tarefas em segundos.
👨🏫 Metodologia
Utilizamos uma abordagem prática onde cada conceito teórico é imediatamente aplicado no terminal. O curso foca em distribuições baseadas em Debian (como Ubuntu e Mint), que são o padrão de mercado para desktop e servidores.
Roadmap do Projeto 🗺️
Acompanhe a evolução do seu aprendizado e do conteúdo do curso.
🟢 Fase 1: Fundamentos (Concluído)
- [x] Introdução e História do Software Livre
- [x] Instalação em VM e Dual Boot
- [x] Navegação no Sistema de Arquivos
- [x] Comandos essenciais (
ls,cd,mkdir)
🟡 Fase 2: Administração (Em andamento)
- [ ] Permissões de arquivos (
chmod,chown) - [ ] Gerenciamento de usuários e grupos
- [ ] Gerenciamento de pacotes (
apt) - [ ] Monitoramento de recursos (
top,htop)
🟠 Fase 3: Automação e Redes
- [ ] Scripts complexos em Bash
- [ ] Configuração de redes e SSH
- [ ] Agendamento de tarefas (
cron)
🔴 Fase 4: DevOps e Projeto Final
- [ ] Docker para desenvolvedores
- [ ] Configuração de servidores Web
- [ ] Apresentação do Projeto Integrador
Materiais Extras 📚
Aprimore seus conhecimentos com recursos adicionais selecionados.
🐧 Documentação Oficial
⌨️ Prática de Terminal
📖 Livros Recomendados
- A Linha de Comando Linux (William Shotts)
- Descobrindo o Linux (Eric Wilder)
🛠️ Ferramentas
- VS Code: Com extensão Remote - SSH.
- MobyXterm: Cliente SSH para Windows.
- VirtualBox: Para laboratórios locais.
Versão para Impressão
Esta página foi gerada automaticamente para impressão.