Skip to content

Beto1821/trivia-react-redux

Repository files navigation

🎮 Trivia Game - React & Redux

React Redux JavaScript Tests

Teste seus conhecimentos com perguntas de diversos temas!

🎯 Jogar Agora | 📋 Sobre | 🚀 Tecnologias


📖 Sobre

Trivia Game é um jogo de perguntas e respostas interativo onde os jogadores podem testar seus conhecimentos em diversas categorias. O jogo utiliza a API do Open Trivia Database para gerar perguntas aleatórias com diferentes níveis de dificuldade.

✨ Funcionalidades

  • Autenticação de Jogador - Sistema de login com nome e email do jogador
  • 🎲 Perguntas Dinâmicas - Integração com API externa para perguntas variadas
  • ⏱️ Sistema de Pontuação - Pontos baseados na dificuldade e tempo de resposta
  • 📊 Feedback Personalizado - Mensagens motivacionais baseadas no desempenho
  • 🏆 Ranking - Visualize os melhores jogadores e suas pontuações
  • 🎨 Interface Responsiva - Design adaptável para diferentes dispositivos
  • ⚙️ Configurações - Personalize sua experiência de jogo

🎯 Como Funciona

  1. Login: Insira seu nome e email para começar
  2. Jogo: Responda 5 perguntas de múltipla escolha
  3. Pontuação: Ganhe pontos baseados em acertos, dificuldade e velocidade
  4. Feedback: Veja seu desempenho e estatísticas
  5. Ranking: Compare sua pontuação com outros jogadores

🚀 Tecnologias

Este projeto foi desenvolvido com as seguintes tecnologias:

Core

  • React - Biblioteca JavaScript para construção de interfaces
  • Redux - Gerenciamento de estado global
  • React Router DOM - Navegação entre páginas
  • Redux Thunk - Middleware para ações assíncronas

Testes

Outras Ferramentas

  • CryptoJS - Criptografia e hash
  • ESLint - Linter para manter qualidade do código
  • Vercel - Deploy e hospedagem

🎮 Demonstração

🔗 Acesse o jogo aqui

📸 Screenshots

🏠 Tela de Login → 🎲 Tela de Jogo → 📊 Feedback → 🏆 Ranking

💻 Instalação e Execução

Pré-requisitos

  • Node.js 16.x ou superior
  • npm ou yarn

Passo a Passo

  1. Clone o repositório
git clone https://github.com/Beto1821/trivia-react-redux.git
cd trivia-react-redux
  1. Instale as dependências
npm install
  1. Execute o projeto
npm start
  1. Acesse no navegador
http://localhost:3000

Scripts Disponíveis

npm start          # Inicia o servidor de desenvolvimento
npm test           # Executa os testes em modo watch
npm run build      # Cria build de produção
npm run cy:open    # Abre o Cypress para testes E2E
npm run cy         # Executa os testes Cypress
npm run lint       # Verifica a qualidade do código

📁 Estrutura do Projeto

trivia-react-redux/
├── public/                 # Arquivos públicos estáticos
├── src/
│   ├── components/        # Componentes reutilizáveis
│   │   ├── Header.jsx     # Cabeçalho com info do jogador
│   │   └── RankingCard.jsx # Card de exibição no ranking
│   ├── pages/             # Páginas da aplicação
│   │   ├── Login.jsx      # Tela de login
│   │   ├── Game.jsx       # Tela principal do jogo
│   │   ├── Feedback.jsx   # Tela de feedback
│   │   ├── Ranking.jsx    # Tela de ranking
│   │   └── Settings.jsx   # Tela de configurações
│   ├── redux/             # Gerenciamento de estado
│   │   ├── actions/       # Actions do Redux
│   │   └── reducers/      # Reducers do Redux
│   ├── tests/             # Testes unitários e de integração
│   ├── App.js             # Componente principal
│   └── index.js           # Ponto de entrada
├── cypress/               # Testes E2E
│   ├── integration/       # Specs de teste
│   ├── fixtures/          # Dados de teste
│   └── mocks/             # Mocks para API
└── package.json           # Dependências e scripts

🧪 Testes

O projeto possui cobertura de testes em múltiplas camadas:

Testes Unitários (Jest + React Testing Library)

npm test                    # Modo watch
npm run test-coverage       # Com relatório de cobertura

Testes E2E (Cypress)

npm run cy:open             # Interface visual
npm run cy                  # Modo headless

Cobertura de Testes

  • ✅ Tela de Login
  • ✅ Tela de Jogo
  • ✅ Tela de Feedback
  • ✅ Tela de Ranking
  • ✅ Componentes (Header, RankingCard)
  • ✅ Redux (Actions e Reducers)

🎯 Funcionalidades Detalhadas

Sistema de Pontuação

A pontuação é calculada com base em:

  • Acerto: Resposta correta (+10 pontos base)
  • Dificuldade:
    • Easy: multiplicador 1
    • Medium: multiplicador 2
    • Hard: multiplicador 3
  • Tempo: Quanto mais rápido, mais pontos (30 segundos por pergunta)

Fórmula: 10 + (timer * difficulty)

Persistência de Dados

  • LocalStorage para salvar ranking
  • Estado do jogador mantido durante a sessão
  • Hash MD5 para Gravatar

📝 Licença

Este projeto foi desenvolvido como parte do curso da Trybe.


� Contribuidores

Este projeto foi desenvolvido em grupo com a colaboração de:

Beto1821
Adalberto R. Ribeiro
Henrique Ambrosano
Henrique Ambrosano
Thiago Gasparini
Thiago Gasparini
Trybe Tech Ops
Trybe Tech Ops

Desenvolvido com ❤️ e muito ☕

⭐ Se gostou do projeto, deixe uma estrela!

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •