- TechBrain Quiz
O TechBrain Quiz é um jogo de perguntas e respostas desenvolvido em PHP, sem banco de dados ou armazenamento externo.
Foi criado como primeiro trabalho da disciplina de Desenvolvimento Backend do curso de ADS.
- Tema: Hardware e Software
- Níveis de Dificuldade: Fácil, Médio, Difícil e Aleatório
- Idiomas: Português e Inglês
- Objetivo: Demonstrar conhecimento em hardware e software, aprendendo com feedback e explicações das respostas.
- Registro do nome do jogador
- Escolha de dificuldade e idioma
- Seleção da porcentagem de perguntas a serem respondidas
- Sistema de pontuação e vidas (3 vidas)
- Feedback imediato e explicação em cada resposta
- Reinício do quiz ao zerar vidas, mantendo progresso de tentativas
- Interface interativa com partículas e efeitos visuais
- O jogador começa com 3 vidas.
- O objetivo é acertar o maior número de perguntas possível.
- Ao errar, observe a explicação da resposta para aprender.
- Quando as vidas se esgotam, o quiz reinicia.
- A porcentagem de perguntas escolhida influencia diretamente no número de questões a serem respondidas.
tech-brain-quiz/
├── config.php
├── docs
│ ├── img # Imagens explicativas do quiz
│ └── proposta_quiz_backend.pdf
├── LICENSE
├── public # Pasta que deve ser acessível pelo navegador
│ ├── api
│ │ └── call_quiz_manager.php
│ ├── assets
│ │ ├── img
│ │ ├── scripts
│ │ └── styles
│ ├── index.php
│ └── quiz.php
├── README.md
├── src # Pasta protegida, não acessível pelo navegador
│ ├── backend
│ │ └── quiz_manager.php
│ └── data
│ └── questions
│ ├── questions_en_us.php
│ └── questions_pt_br.php
└── tests
└── debug.phpOs arrays de questões (questions_pt_br.php e questions_en_us.php) seguem esta estrutura obrigatória:
$questions = [
'easy' => [ /* perguntas fáceis */
[
'question' => 'Pergunta 1',
'alternatives' => [
"a" => "Alternativa 1",
"b" => "Alternativa 2",
"c" => "Alternativa 3",
]
"answer" => "Resposta correta",
"explanation" => "Explicação da pergunta 1"
"emoji" => "Emoji",
],
/* e assim por diante */
],
'medium' => [ /* perguntas médias */
[
'question' => 'Pergunta 1',
'alternatives' => [
"a" => "Alternativa 1",
"b" => "Alternativa 2",
"c" => "Alternativa 3",
]
"answer" => "Resposta correta",
"explanation" => "Explicação da pergunta 1"
"emoji" => "Emoji",
],
/* e assim por diante */
],
'hard' => [ /* perguntas difíceis */
[
'question' => 'Pergunta 1',
'alternatives' => [
"a" => "Alternativa 1",
"b" => "Alternativa 2",
"c" => "Alternativa 3",
]
"answer" => "Resposta correta",
"explanation" => "Explicação da pergunta 1"
"emoji" => "Emoji",
],
/* e assim por diante */
]
];O array pode ser expandido ou alterado, mas a estrutura deve ser mantida.
git clone https://github.com/ronidomingues/tech-brain-quiz.git
cd tech-brain-quiz
php -S localhost:8000 -t public/
ou
php -S 0.0.0.0:8000 -t public/Abra o navegador em http://localhost:8000.
- Adicione um VirtualHost apontando para a pasta
public:
<VirtualHost *:80>
ServerName quiz.local
DocumentRoot "/caminho/para/tech-brain-quiz/public"
<Directory "/caminho/para/tech-brain-quiz/public">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>- Adicione no
hosts:127.0.0.1 quiz.local; - Reinicie Apache:
sudo systemctl restart apache2; - Acesse
http://quiz.local;
- E-mail: ronidomingues@poli.ufrj.br
- Linkedin: ronidomingues
- GitHub: ronidomingues
Este projeto é licenciado sob a MIT License. Mais informações
O projeto pode ser expandido com novas funcionalidades, melhorias visuais e novos temas de perguntas. Durante o desenvolvimento surgiram várias ideias para futuras implementações as quais ainda não me sinto confortável em implementar.





