Jogo de perguntas e respostas em formato de game show, com tabuleiro de 6 categorias e 5 níveis de pontuação (100 a 500). Feito em React + Vite, com um painel de administração simples para quem não é da área técnica.
jeopardy-game/
├── index.html
├── package.json
├── vite.config.js
├── public/
│ └── board-icon.svg
└── src/
├── main.jsx # ponto de entrada do React
├── App.jsx # estado geral do jogo e navegação entre telas
├── App.module.css
├── styles/
│ └── tokens.css # paleta de cores, tipografia e reset global
├── data/
│ └── defaultGameData.js # conteúdo de exemplo (6 categorias x 5 perguntas)
├── utils/
│ ├── youtube.js # conversão de links do YouTube para embed
│ ├── storage.js # leitura/escrita no navegador (localStorage)
│ └── backup.js # exportar/importar backup em .json
└── components/
├── StartScreen.jsx # tela inicial
├── GameBoard.jsx # tabuleiro (6 colunas x 5 linhas)
├── QuestionCell.jsx # cada célula/botão do tabuleiro
├── QuestionModal.jsx # tela da pergunta durante o jogo
├── MediaRenderer.jsx # exibe imagem e/ou vídeo do YouTube
├── ScoreBoard.jsx # placar dos times
├── RulesModal.jsx # regras do jogo
├── Toast.jsx # mensagens de confirmação
├── AdminPanel.jsx # painel do administrador (abas e ações gerais)
├── AdminStepGameInfo.jsx # etapa 1: nome do jogo
├── AdminStepTeams.jsx # etapa 2: times
├── AdminStepQuestions.jsx # etapa 3: categorias e perguntas
├── AdminStepReview.jsx # etapa 4: revisão + backup
├── AdminPreviewModal.jsx # pré-visualização de uma pergunta
└── AdminForm.module.css # estilos compartilhados dos formulários
Pré-requisito: ter o Node.js instalado (versão 18 ou mais recente).
# 1. entre na pasta do projeto
cd jeopardy-game
# 2. instale as dependências (só precisa fazer isso uma vez)
npm install
# 3. rode o projeto em modo de desenvolvimento
npm run devO terminal vai mostrar um endereço parecido com http://localhost:5173. Abra esse
endereço no navegador para ver o jogo.
Para gerar uma versão otimizada, pronta para publicar:
npm run buildIsso cria uma pasta dist/ com os arquivos finais do site.
Você não precisa mexer em nenhum arquivo de código para personalizar o jogo.
- Na tela inicial, clique em "Personalizar jogo" (ou acesse a rota
/admin). - Etapa 1 — Informações do jogo: defina o nome do jogo e o subtítulo.
- Etapa 2 — Times: edite o nome de cada time, adicione ou remova times (mínimo de 2).
- Etapa 3 — Categorias e perguntas: escolha uma categoria nas abas, edite seu nome, e preencha o texto da pergunta e da resposta de cada um dos 5 valores (100 a 500). Use o botão "Pré-visualizar pergunta" para ver exatamente como ela vai aparecer durante o jogo.
- Etapa 4 — Revisar e jogar: confira um resumo de tudo o que foi preenchido e, se quiser, baixe ou carregue um backup do jogo.
- Clique em "Salvar alterações" para confirmar tudo.
- Clique em "Voltar ao jogo" e depois em "Começar jogo".
Tudo o que é salvo fica guardado automaticamente no navegador — se você fechar a aba e abrir de novo, o conteúdo personalizado continua lá.
Outras ações disponíveis no rodapé do painel:
- Resetar apenas a partida: zera a pontuação dos times e libera todas as perguntas de novo, sem apagar o conteúdo que você personalizou.
- Restaurar exemplo inicial: apaga tudo e volta para o conteúdo de exemplo que vem pronto com o jogo.
No campo "Link da imagem" de cada pergunta, cole o endereço de uma imagem publicada na
internet (por exemplo, um link que termine em .jpg, .png ou .webp). A imagem vai
aparecer automaticamente dentro da tela da pergunta. Se o campo ficar em branco, nenhum
espaço vazio é exibido.
No campo "Link do vídeo do YouTube", cole o link normal do vídeo, exatamente como você copia do navegador ou do celular. Os formatos abaixo funcionam automaticamente:
https://www.youtube.com/watch?v=XXXXXXXXXXXhttps://youtu.be/XXXXXXXXXXX
O sistema identifica o vídeo e o exibe dentro de um player, já pronto para tocar quando a pergunta for aberta. Se o link não for reconhecido, um aviso aparece no painel admin para você conferir o endereço.
Na etapa 4 do painel admin ("Revisar e jogar"):
- Baixar backup: gera um arquivo com todo o conteúdo do jogo (nome, times, categorias, perguntas, respostas, imagens e vídeos). Guarde esse arquivo em um lugar seguro.
- Carregar backup: escolha um arquivo de backup baixado anteriormente para trazer todo aquele conteúdo de volta — útil para abrir o mesmo jogo em outro computador.
- Crie uma conta em vercel.com e instale a CLI (opcional) ou use o site.
- Suba a pasta do projeto para um repositório no GitHub.
- No painel da Vercel, clique em "Add New Project", escolha o repositório e mantenha as configurações padrão (a Vercel detecta automaticamente que é um projeto Vite).
- Clique em "Deploy". Em poucos minutos, você recebe um link público do jogo.
- Crie uma conta em netlify.com.
- Rode
npm run buildlocalmente para gerar a pastadist/. - Na Netlify, arraste a pasta
dist/para a área de deploy manual (ou conecte o repositório do GitHub e configure o comando de build comonpm run builde a pasta de saída comodist). - Após a publicação, você recebe um link público para acessar o jogo de qualquer lugar.
Dica: como o conteúdo é salvo no navegador de cada pessoa, cada apresentador que abrir o jogo publicado terá sua própria versão personalizada, guardada localmente. Para compartilhar o mesmo conteúdo entre computadores diferentes, use o backup.
- Adicionar um cronômetro visível durante cada pergunta.
- Permitir efeitos sonoros ao acertar ou errar.
- Criar um modo "só apresentador" com a resposta sempre visível numa segunda tela.
- Permitir arrastar e soltar para reordenar categorias.
- Adicionar suporte a mais de um tabuleiro (rodada dupla, por exemplo).