Desafios de Backend com Node.js + Express + Supabase

Cada aluno com seu tema número de chamada e agora usa banco de dados no Supabase.

1. Objetivo da Atividade

Cada aluno vai:

2. Passo a passo com Supabase (roteiro para o vídeo)

2.1 – Preparar o ambiente

  1. Abrir o projeto Node.js + Express.
  2. Garantir que o servidor ainda funciona em modo “array em memória”.
  3. Instalar SDK do Supabase:
    • npm install @supabase/supabase-js

2.2 – Criar projeto e tabela no Supabase

  1. Acessar supabase.com e criar/entrar na conta.
  2. Criar um novo projeto no Supabase.
  3. Dentro do projeto, criar uma tabela com o nome do recurso:
    • Ex.: livros, filmes, produtos, etc.
  4. Adicionar as colunas equivalentes aos campos do seu tema:
    • Ex. para livros: id (PK), titulo (text), autor (text), ano_publicacao (int), disponivel (bool).
  5. Testar a tabela com alguns dados diretamente no Supabase (opcional, mas ajuda).

2.3 – Conectar a API ao Supabase

  1. Obter as chaves do Supabase (URL e chave pública) na área de configurações do projeto.
  2. Configurar variáveis de ambiente (arquivo .env):
    • SUPABASE_URL=...
    • SUPABASE_KEY=...
  3. No código Node, criar o cliente do Supabase usando essas variáveis.
  4. Alterar as rotas GET, POST, PUT, DELETE para usarem Supabase (insert, select, update, delete) em vez do array.

2.4 – Testar com Thunder Client

  1. Criar coleção de requisições no Thunder Client (uma para cada rota).
  2. Enviar POST e verificar se o dado aparece na tabela do Supabase.
  3. Usar GET para listar e buscar por id.
  4. Usar PUT e DELETE e confirmar o efeito direto na tabela.

2.5 – Gravação do vídeo (obrigatório)

Cada aluno deve gravar a tela mostrando o processo. Duração sugerida: entre 5 e 12 minutos.

3. Temas são o de seu número de chamada

Cada aluno mantém o mesmo tema de número de chamada. Agora a diferença é: usar Supabase como banco.

#01 – Biblioteca de Livros

API + Supabase: Biblioteca

Tabela no Supabase: livros

Campos exemplo
  • id (PK), titulo, autor, ano_publicacao, disponivel
Roteiro extra
  • Mostrar no vídeo a criação da tabela livros e alguns inserts de teste.
#02 – Catálogo de Filmes

API + Supabase: Filmes

Tabela no Supabase: filmes

Campos exemplo
  • id, titulo, diretor, ano, genero, rating
Roteiro extra
  • Mostrar filtro por gênero usando query params e Supabase.
#03 – Loja de Produtos

API + Supabase: Produtos

Tabela: produtos

Campos exemplo
  • id, nome, preco, categoria, estoque
Roteiro extra
  • Mostrar atualização de estoque via PUT /produtos/:id.
#04 – Agenda de Contatos

API + Supabase: Contatos

Tabela: contatos

Campos exemplo
  • id, nome, telefone, email, favorito
Roteiro extra
  • Mostrar filtro de favoritos com Supabase.
#05 – Sistema de Tarefas

API + Supabase: Tarefas

Tabela: tarefas

Campos exemplo
  • id, titulo, descricao, status
Roteiro extra
  • Mostrar mudança de status em tempo real na tabela.
#06 – Cadastro de Alunos

API + Supabase: Alunos

Tabela: alunos

Campos exemplo
  • id, nome, turma, idade, media
Roteiro extra
  • Filtro de alunos com média maior ou igual a 7.
#07 – Reservas de Hotel

API + Supabase: Reservas

Tabela: reservas

Campos exemplo
  • id, nome_cliente, quarto, data_entrada, data_saida
Roteiro extra
  • Mostrar consulta por número do quarto.
#08 – Catálogo de Jogos

API + Supabase: Jogos

Tabela: jogos

Campos exemplo
  • id, titulo, plataforma, genero, preco
Roteiro extra
  • Filtro por plataforma (ex.: PC, Console).
#09 – Sistema de Vagas de Emprego

API + Supabase: Vagas

Tabela: vagas

Campos exemplo
  • id, titulo, area, salario, remoto
Roteiro extra
  • Filtro por vagas remotas.
#10 – Cardápio de Restaurante

API + Supabase: Pratos

Tabela: pratos

Campos exemplo
  • id, nome, categoria, preco, vegano
Roteiro extra
  • Filtro de pratos veganos usando Supabase.
#11 – Estoque de Farmácia

API + Supabase: Medicamentos

Tabela: medicamentos

Campos exemplo
  • id, nome, fabricante, estoque, precisa_receita
Roteiro extra
  • Filtro por medicamentos que exigem receita.
#12 – Turmas e Professores

API + Supabase: Turmas

Tabela: turmas

Campos exemplo
  • id, nome, ano, professor, turno
Roteiro extra
  • Filtro por turno (manhã/tarde/noite).
#13 – Consultas Médicas

API + Supabase: Consultas

Tabela: consultas

Campos exemplo
  • id, paciente, medico, data, hora, status
Roteiro extra
  • Consulta por médico no Thunder Client.
#14 – Locadora de Carros

API + Supabase: Veículos

Tabela: veiculos

Campos exemplo
  • id, modelo, marca, ano, preco_diaria, disponivel
Roteiro extra
  • Filtrar apenas veículos disponíveis.
#15 – Pedidos de Lanchonete

API + Supabase: Pedidos

Tabela: pedidos

Campos exemplo
  • id, nome_cliente, itens, valor_total, status
Roteiro extra
  • Mostrar mudança de status (em preparo, pronto).
#16 – Blog de Postagens

API + Supabase: Posts

Tabela: posts

Campos exemplo
  • id, titulo, conteudo, autor, data_publicacao
Roteiro extra
  • Filtro por autor na consulta.
#17 – Feedbacks

API + Supabase: Feedbacks

Tabela: feedbacks

Campos exemplo
  • id, usuario, comentario, nota
Roteiro extra
  • Filtro por nota mínima usando Supabase.
#18 – Inscrição em Eventos

API + Supabase: Inscrições

Tabela: inscricoes

Campos exemplo
  • id, nome, email, tipo_ingresso, pago
Roteiro extra
  • Filtro por inscritos pagos.
#19 – Cupons de Desconto

API + Supabase: Cupons

Tabela: cupons

Campos exemplo
  • id, codigo, desconto_percentual, ativo, validade
Roteiro extra
  • Filtro por cupons ativos.
#20 – Playlist de Músicas

API + Supabase: Músicas

Tabela: musicas

Campos exemplo
  • id, titulo, artista, duracao_segundos, genero
Roteiro extra
  • Filtro por gênero (rock, pop, etc.).
#21 – Chamados de Suporte

API + Supabase: Chamados

Tabela: chamados

Campos exemplo
  • id, titulo, descricao, prioridade, status
Roteiro extra
  • Filtro por prioridade alta.
#22 – Aluguel de Bicicletas

API + Supabase: Bicicletas

Tabela: bicicletas

Campos exemplo
  • id, modelo, tamanho, disponivel, preco_hora
Roteiro extra
  • Filtro por bicicletas disponíveis.
#23 – Personagens de RPG

API + Supabase: Personagens

Tabela: personagens

Campos exemplo
  • id, nome, classe, nivel, pontos_vida
Roteiro extra
  • Filtro por classe (guerreiro, mago, etc.).
#24 – Rotina de Treinos

API + Supabase: Treinos

Tabela: treinos

Campos exemplo
  • id, nome, grupo_muscular, duracao_minutos, nivel
Roteiro extra
  • Filtro por grupo muscular (pernas, peito, costas, etc.).
#25 – Receitas de Culinária

API + Supabase: Receitas

Tabela: receitas

Campos exemplo
  • id, titulo, ingredientes, tempo_minutos, nivel_dificuldade
Roteiro extra
  • Filtro por tempo máximo de preparo.
#26 – Pontuações de Jogos

API + Supabase: Scores

Tabela: scores

Campos exemplo
  • id, jogador, pontos, jogo, data
Roteiro extra
  • Filtro por jogo específico.
#27 – Animais para Adoção

API + Supabase: Animais

Tabela: animais

Campos exemplo
  • id, nome, especie, idade, adotado
Roteiro extra
  • Filtro por animais ainda não adotados.
#28 – Notícias

API + Supabase: Notícias

Tabela: noticias

Campos exemplo
  • id, titulo, conteudo, categoria, data_publicacao
Roteiro extra
  • Filtro por categoria.
#29 – Inscritos em Curso Online

API + Supabase: Inscritos

Tabela: inscritos

Campos exemplo
  • id, nome, email, progresso
Roteiro extra
  • Filtro por progresso mínimo.
#30 – Desafios de Programação

API + Supabase: Desafios

Tabela: desafios

Campos exemplo
  • id, titulo, descricao, dificuldade, linguagem
Roteiro extra
  • Filtro por dificuldade.
#31 – Rotas de Viagem

API + Supabase: Viagens

Tabela: viagens

Campos exemplo
  • id, destino, duracao_dias, preco, tipo
Roteiro extra
  • Filtro por tipo (nacional/internacional).
#32 – Objetivos Pessoais

API + Supabase: Metas

Tabela: metas

Campos exemplo
  • id, titulo, descricao, prazo, concluida
Roteiro extra
  • Filtro por metas concluídas.

4. Checklist de Entrega (Supabase + Vídeo)