Repository navigation
Home
A Quiz é um projeto pessoal de Front-End desenvolvido com o objetivo de criar uma plataforma de quizzes moderna, simples e intuitiva, permitindo aos utilizadores descobrir, realizar e acompanhar o seu desempenho em diferentes quizzes.
O projeto serve também como projeto principal de portfólio, permitindo demonstrar competências de Front-End, arquitetura, desenvolvimento de produto e gestão de projeto através da construção e evolução de uma aplicação real.
A plataforma será desenvolvida de forma incremental, começando por uma versão simples e funcional e evoluindo progressivamente com novas funcionalidades e maior complexidade.
O principal objetivo é criar uma experiência de utilização simples e agradável para quem quer testar os seus conhecimentos através de quizzes.
Ao mesmo tempo, o projeto pretende demonstrar a capacidade de:
- Transformar uma ideia num produto funcional;
- Definir e priorizar funcionalidades;
- Criar uma arquitetura Front-End escalável;
- Desenvolver uma aplicação responsiva e acessível;
- Integrar e gerir dados através de uma API;
- Implementar testes e processos de qualidade;
- Evoluir o produto de forma incremental;
- Criar um projeto de Back-End.
Na primeira versão, o utilizador poderá:
- Explorar os quizzes disponíveis;
- Consultar informação sobre cada quiz;
- Iniciar um quiz;
- Responder a perguntas de escolha múltipla;
- Acompanhar o progresso durante o quiz;
- Utilizar um temporizador;
- Terminar o quiz e consultar o resultado;
- Consultar o seu desempenho;
- Repetir quizzes;
- Alternar entre Português e Inglês;
- Alternar entre tema claro e escuro.
A experiência será pensada para funcionar tanto em desktop como em dispositivos móveis.
O projeto será desenvolvido por fases, evitando tentar implementar todas as funcionalidades desde o início.
O primeiro objetivo será disponibilizar uma experiência completa de realização de quizzes:
Explorar → Escolher quiz → Responder → Terminar → Ver resultado
Os dados serão inicialmente disponibilizados através de uma API local simulada com JSON Server, permitindo desenvolver e testar a integração com uma API sem depender de um backend real.
Depois do MVP, o foco será melhorar a experiência:
- Melhorar feedback durante o quiz;
- Histórico de resultados;
- Estatísticas;
- Melhorias de acessibilidade;
- Animações e microinterações;
- Melhor tratamento de loading, erros e estados vazios;
- Melhorias de responsive design.
Numa fase posterior, o JSON Server poderá ser substituído por um backend real.
A aplicação deverá conseguir fazer essa transição sem uma reestruturação significativa do Front-End.
O backend poderá posteriormente suportar:
- Utilizadores;
- Autenticação;
- Resultados;
- Histórico;
- Quizzes;
- Perguntas;
- Categorias;
- Rankings.
Uma evolução natural será permitir que utilizadores autorizados possam criar e gerir os seus próprios quizzes.
Será possível:
- Criar quizzes;
- Adicionar perguntas;
- Definir respostas;
- Editar quizzes;
- Publicar/despublicar quizzes;
- Gerir categorias e dificuldade.
Dependendo da evolução do produto, poderão ser exploradas funcionalidades como:
- Leaderboards;
- Rankings;
- Desafios;
- Partilha de resultados;
- Conquistas;
- Streaks;
- Quizzes entre amigos.
Estas funcionalidades não fazem parte do MVP e serão avaliadas posteriormente de acordo com o valor que acrescentem à experiência.
A aplicação será desenvolvida desde o início com suporte para Português e Inglês.
A internacionalização não será apenas uma tradução posterior da interface, mas uma preocupação desde o início do desenvolvimento, incluindo:
- Textos da interface;
- Mensagens de erro;
- Estados da aplicação;
- Resultados;
- Formulários;
- Conteúdo dependente do idioma.
A aplicação terá suporte para Light Mode e Dark Mode, utilizando um sistema de temas consistente.
Será também criado um pequeno sistema de componentes reutilizáveis, permitindo manter uma experiência visual consistente ao longo da aplicação.
A qualidade será considerada parte do desenvolvimento e não apenas uma etapa final.
O projeto terá:
- Testes unitários e de componentes;
- Testes de integração quando necessário;
- Testes End-to-End para os principais fluxos (futuramente);
- Validação de acessibilidade;
- Linting e formatação automática;
- Continuous Integration;
- Deploy automático.
O projeto será gerido como um produto em evolução, utilizando o GitHub para:
- Gestão do backlog;
- Issues;
- Planeamento;
- Pull Requests;
- Code reviews;
- Releases;
- Documentação.
As decisões relevantes de produto e técnicas serão documentadas na Github Wiki.
O objetivo não é apenas chegar a uma aplicação funcional, mas demonstrar todo o processo, desde a ideia até à entrega e evolução do produto.
A visão a longo prazo é transformar a Quiz Platform numa aplicação completa onde os utilizadores possam descobrir, jogar, acompanhar o seu progresso e criar os seus próprios quizzes, com uma experiência simples, rápida e consistente em diferentes dispositivos.
O produto deverá evoluir de forma incremental, permitindo validar cada etapa antes de introduzir novas funcionalidades e complexidade.