Programa de treinamento intensivo para iniciantes em programação
Ensinar os fundamentos de programação do zero em 5 dias, culminando em um projeto prático simples.
- Variáveis e tipos de dados
- Operadores matemáticos e lógicos
- Condicionais (if/else)
- Laços de repetição (for, while)
- Funções básicas
Projeto do dia: Calculadora de compras
- Arrays (listas)
- Objetos
- Manipulação de arrays (map, filter, forEach)
- Funções avançadas
- Organização de código
Projeto do dia: Sistema de carrinho de compras
- Classes e Objetos
- Propriedades e Métodos
- Construtores
- Validações básicas
- Encapsulamento
Projeto do dia: Classe de Produto com validações
- O que é uma API REST
- Métodos HTTP (GET, POST, PUT, DELETE)
- Formato JSON
- Testando APIs com Postman ou Bruno
- Consumindo APIs com
fetch - Tratamento de erros
Projeto do dia: Cliente HTML consumindo API REST
Sistema de Gestão de Produtos para Restaurante (SvelteKit)
Um projeto simples mas completo que utiliza tudo que foi aprendido:
- Listar produtos cadastrados
- Adicionar novo produto (prato/bebida)
- Editar produto existente
- Deletar produto
- Backend (API + Banco SQLite) já fornecido pronto
O projeto de Gestão de Produtos para Restaurante é ideal para iniciantes porque:
✅ É relevante para o contexto de trabalho (sistema de gestão de restaurante) ✅ Usa todos os conceitos aprendidos (lógica, arrays, objetos, funções) ✅ É prático e aplicável no dia a dia ✅ Backend já está pronto - foco total no frontend e lógica ✅ Interface web simples com SvelteKit (framework que eles já usam)
projetog/
├── README.md (este arquivo)
├── aulas/
│ ├── dia1-logica.md ✅ PRONTO
│ ├── dia2-dados.md ✅ PRONTO
│ ├── dia3-orientacao-objetos.md ✅ PRONTO
│ ├── dia4-apis-rest.md ✅ PRONTO (com Postman/Bruno)
│ ├── dia5-projeto-final.md 📝 Antigo (CLI)
│ └── dia5-projeto-final-sveltekit.md ✅ PRONTO (Web)
├── exercicios/
│ ├── dia1/
│ ├── dia2/
│ ├── dia3/
│ ├── dia4/
│ └── dia5/
├── projeto-final-backend/ ✅ BACKEND PRONTO (Express + SQLite)
│ ├── src/
│ │ ├── database/
│ │ │ ├── db.js
│ │ │ └── produtoRepository.js
│ │ ├── routes/
│ │ │ └── produtos.js (API REST completa)
│ │ ├── validations.js
│ │ ├── server.js
│ │ └── seed.js
│ ├── package.json
│ ├── README.md
│ └── GUIA_RAPIDO.md
└── projeto-final-frontend/ 📝 ESTAGIÁRIO CRIA (SvelteKit)
└── src/routes/produtos/
├── +page.svelte (Listagem)
├── novo/+page.svelte (Adicionar)
└── [id]/+page.svelte (Editar)
- Node.js instalado
- Editor de código (VS Code recomendado)
- Terminal/Prompt de comando
- Clone este repositório
- Configure o backend antes de começar o Dia 5:
cd projeto-final-backend
npm install
npm run seed # Popula o banco com 20 produtos de exemplo
npm run dev # Inicia o servidor na porta 3000- Siga as aulas em ordem com o estagiário (dia1-logica.md, dia2-dados.md, etc.)
- Dias 1-4: Faça TODOS os exercícios (não pule!)
- Dia 5:
- Backend já está rodando (não precisa mexer!)
- Crie o frontend em SvelteKit
- Consuma a API em
http://localhost:3000/api/produtos
O que o estagiário vai fazer:
Criar 3 páginas em SvelteKit para gerenciar produtos:
-
Página de Listagem (
/produtos)- Buscar produtos da API
- Exibir em tabela
- Botão "Adicionar Produto"
- Botões "Editar" e "Deletar" em cada linha
-
Página de Adicionar (
/produtos/novo)- Formulário com campos: nome, categoria, preço
- Validações no frontend
- Enviar POST para API
- Redirecionar para listagem após sucesso
-
Página de Editar (
/produtos/[id])- Buscar produto específico da API
- Formulário preenchido com dados atuais
- Validações no frontend
- Enviar PUT para API
- Redirecionar para listagem após sucesso
Backend (já fornecido):
- API REST completa
- Banco de dados SQLite configurado
- Endpoints prontos:
GET /api/produtos- listar todosPOST /api/produtos- criar novoGET /api/produtos/[id]- buscar umPUT /api/produtos/[id]- atualizarDELETE /api/produtos/[id]- deletar
CREATE TABLE produtos (
id INTEGER PRIMARY KEY AUTOINCREMENT,
nome TEXT NOT NULL,
categoria TEXT NOT NULL,
preco REAL NOT NULL,
ativo INTEGER DEFAULT 1,
data_criacao TEXT DEFAULT CURRENT_TIMESTAMP
);Categorias: Lanches, Bebidas, Sobremesas, Acompanhamentos
// Listar todos os produtos
GET /api/produtos
Response: [{ id, nome, categoria, preco, ativo }, ...]
// Criar produto
POST /api/produtos
Body: { nome, categoria, preco }
Response: { id, nome, categoria, preco, ativo }
// Buscar um produto
GET /api/produtos/1
Response: { id, nome, categoria, preco, ativo }
// Atualizar produto
PUT /api/produtos/1
Body: { nome, categoria, preco }
Response: { id, nome, categoria, preco, ativo }
// Deletar produto
DELETE /api/produtos/1
Response: { success: true }Página de Listagem:
╔═══════════════════════════════════════════════════╗
║ SISTEMA DE GESTÃO - RESTAURANTE ║
╠═══════════════════════════════════════════════════╣
║ [+ Adicionar Produto] ║
║ ║
║ ID | Nome | Categoria | Preço ║
║ ---|-------------------|-----------|-------- ║
║ 1 | Pizza Marguerita | Lanches | R$ 35,90 ║
║ [Editar] [Deletar] ║
║ ║
║ 2 | Coca-Cola 2L | Bebidas | R$ 8,00 ║
║ [Editar] [Deletar] ║
╚═══════════════════════════════════════════════════╝
Página de Adicionar/Editar:
╔═══════════════════════════════════════════════════╗
║ ADICIONAR PRODUTO ║
╠═══════════════════════════════════════════════════╣
║ Nome: [___________________________] ║
║ ║
║ Categoria: [ ▼ ] ║
║ • Lanches ║
║ • Bebidas ║
║ • Sobremesas ║
║ • Acompanhamentos ║
║ ║
║ Preço: R$ [_______] ║
║ ║
║ [Cancelar] [Salvar] ║
╚═══════════════════════════════════════════════════╝
O estagiário deve conseguir:
- Criar página de listagem (
/produtos) - Buscar produtos da API usando
fetch - Exibir produtos em tabela HTML
- Criar página de adicionar (
/produtos/novo) - Criar formulário com validações frontend
- Enviar POST para API ao salvar
- Criar página de editar (
/produtos/[id]) - Buscar produto específico e preencher formulário
- Enviar PUT para API ao atualizar
- Implementar exclusão com confirmação
- Redirecionar após sucesso/erro
- Exibir mensagens de erro/sucesso
- ✅ API REST completa
- ✅ Banco de dados SQLite configurado
- ✅ CRUD completo no repository
- ✅ Validações no servidor
Antes: Sistema de gerenciamento de produtos com interface web completa Agora: Sistema de gestão de produtos no terminal (CLI)
| Aspecto | Projeto Anterior | Projeto Novo |
|---|---|---|
| Complexidade | Alta (10+ campos, múltiplas telas) | Baixa (3-4 campos, terminal) |
| Interface | Web (HTML/CSS/Svelte) | Terminal (mais fácil) |
| Foco | Interface + Backend | Apenas lógica e backend |
| Tempo | 3-4 dias para iniciante | 1 dia realista |
| Conceitos extras | Routing, componentes, formulários | Apenas o essencial |
| Contexto | Genérico | Específico para restaurante |
Depois de dominar a lista de tarefas, o estagiário pode:
-
Adicionar funcionalidades:
- Categorias (trabalho, pessoal, estudos)
- Prioridades (alta, média, baixa)
- Datas de vencimento
- Filtros e buscas
-
Melhorar a interface:
- Usar biblioteca como
inquirerpara menu mais bonito - Adicionar cores com
chalk
- Usar biblioteca como
-
Criar interface web:
- Migrar para Svelte/React
- Criar API REST
- Separar frontend e backend
-
Estudar conceitos avançados:
- TypeScript
- Testes automatizados
- Autenticação
- Deploy
- Dia 1-2: Foque em fazer MUITOS exercícios pequenos
- Dia 3: Certifique-se que o estagiário entende classes
- Dia 4: Pratique CRUD várias vezes até ficar automático
- Dia 5: Deixe o estagiário tentar sozinho primeiro, depois ajude
Se o estagiário tiver dúvidas ou dificuldades, incentive:
- Tentar resolver sozinho primeiro (Google, documentação)
- Revisar a aula do dia correspondente
- Refazer os exercícios do dia
- Perguntar ao instrutor
Lembre-se: O objetivo não é fazer o projeto perfeito, mas APRENDER os fundamentos. Errar faz parte do processo!
🚀 Bons estudos!