5.2 KiB
Executable File
5.2 KiB
Executable File
Análise do Codebase do Quiz
Documento de Definições e Informações Pertinentes
Esta é uma visão geral sobre a arquitetura e os escopos do projeto "Quiz".
1. Tecnologias Utilizadas
- HTML5, CSS3, JavaScript: Linguagens base do projeto.
- AngularJS (v1.x): Framework lógico principal da aplicação.
- Ionic Framework (v1): Utilizado para construção da interface (UI) e navegação.
- Local Storage: Usado para persistência local dos dados (pontuações e estatísticas do jogo) diretamente no navegador.
- http-server (Node.js): Utilizado para servir o projeto em ambiente local (via o script
Iniciar_Quiz.bat).
2. Estrutura de Diretórios e Arquivos
- /audio: Contém os arquivos de som do jogo (acertos, erros, transições, vitórias).
- /css & /lib: Arquivos de folhas de estilo (
custom.css, utilitários do Ionic e transições) além das bibliotecas base. - /dados: Diretório crucial contendo os JSONs de parametrização:
config.json: Arquivo de sistema "whitelabel". Ele define paletas de cores (injetadas via propriedades customizadas no CSS), textos de botões, logotipo e background.perguntas.json: A integridade dos dados do jogo (lista de perguntas e suas respectivas alternativas com a indicação da resposta correta).
- /img: Recursos estáticos e assets visuais em geral (ex: fundo-patrocinador.png, logo-ius.png).
- /js: Coração lógico da aplicação (Angular).
app.js: Iniciação do módulo principal Angular (app), manipulação e registro de eventos principais (ex: tratamento de plugins caso rode via Cordova, diretivas utilitárias).controllers.js: Arquivo central onde está a lógica do Quiz (pageCtrl). Gerencia a busca do JSON, injeção das variáveis de paleta do tema, embaralhamento das perguntas (shuffleArray), cálculo da pontuação, manipulações do DOM de suporte e a persistência de estatísticas no LocalStorage.routes.js,services.js,directives.js: Arquivos auxiliares que formam o ecossistema AngularJS dessa aplicação.
- index.html: Ponto de entrada que carrega os scripts, o bundle do Ionic AngularJS e inicia o componente
<ion-nav-view>. - Iniciar_Quiz.bat: Batch script de conveniência no Windows destinado a iniciar rapidamente um servidor web local (
http-server -p 8080) no diretório, evitando problemas de política de CORS ao tentar acessar os recursos JSON locais diretamente no navegador.
3. Funcionamento e Ciclo de Vida
- Inicialização do Tema e Dados: Quando o módulo controlador do layout base carrega, ele chama
dados/config.jsonusando$http.gete mapeia dinamicamente essas propriedades em Variáveis CSS (--cor-fundo-principal, etc) diretamente na raiz (document.documentElement). Em paralelo, carregaperguntas.json. - Ciclo de Partida (S.startGame):
- Uma lista de 5 perguntas e suas alternativas é separada e rigorosamente embaralhada de forma aleatória e sem repetição.
- O jogador interage respondendo; o sistema aplica transições visuais dinâmicas usando CSS para trocar de pergunta, reproduz o áudio correspondente (acerto/erro) e pontua na variável local da sessão (
$scope.quiz.pontuacao).
- Avaliação (S.chamaResultado):
- Após 5 perguntas, os resultados são avaliados.
- O placar define as condições de vitória (>= 3 acertos) com comportamentos especiais para 100% de acerto (5 de 5).
- Persistência de Dados (S.salvarDadosJogos): Toda vitória, derrota, total de acertos, jogos e erros são persistidos na chave
quiz_dadosjogosdolocalStorage, garantindo que um F5 (atualização da página) não elimine o histórico de partidas do dispositivo que roda a aplicação.
4. Customização e Autoria (Whitelabel)
A natureza whitelabel da aplicação permite uma personalização completa sem necessidade de programar. Veja abaixo como alterar:
- Textos e Textos de Interface: O arquivo
dados/config.json(objeto"tema") controla títulos, botões e as mensagens de "Parabéns" ou "Derrota". - Cores: Integrado via Variáveis CSS no
:root. Alterando o objeto"cores"noconfig.json, é possível modificar instantaneamente:- Fundo principal e fundo secundário/escuro.
- Cores de texto primárias e títulos.
- Cores de destaque nos botões e nas alternativas (A, B, C, D).
- Imagens e Assets Visuais: As chaves
"fundo_padrao"e"logo_patrocinador"no"config.json"determinam os caminhos para o logo e fundo do app (arquivos estes normalmente localizados na pastaimg/). - Perguntas e Respostas: Integradas no
dados/perguntas.json. Suportam a definição do texto da pergunta e um array derespostas, com um flag booleano"correta": truepara validar a escolha do jogador.
5. Conclusão da Análise
A base de código trata-se de um sistema do tipo "Quiz" focado no ambiente Web Local, migrado ou estruturado a partir de um projeto em Cordova/Ionic. Possui uma base solidamente parametrizável (whitelabel) através do seu config.json, sendo inteiramente adaptável para outras marcas, fundos e perguntas, sem necessitar de alteração direta ou recombilação do código fonte HTML/JS. Em vez de backend estruturado, usa armazenamento flexível e offline via LocalStorage.