O XP Corridas é um sistema web inspirado visualmente no Windows XP, desenvolvido para gerenciar corridas de perguntas e respostas com limite de tempo.
O projeto foi desenvolvido utilizando Spring Boot, Thymeleaf, Hibernate/JPA e PostgreSQL, aplicando conceitos de arquitetura MVC, persistência de dados e controle de sessões.
A proposta do sistema é permitir que administradores criem corridas e perguntas, enquanto os participantes realizam desafios em sequência, respondendo perguntas antes do tempo acabar.
-
O administrador acessa o sistema.
-
O administrador cadastra uma corrida.
-
O administrador cadastra perguntas relacionadas à corrida.
-
O participante acessa a tela inicial/login.
-
O participante inicia uma corrida.
-
O sistema registra o horário de início da corrida na sessão.
-
As perguntas são exibidas uma por vez.
-
O participante envia suas respostas.
-
O sistema valida as respostas enviadas.
-
O sistema controla o tempo restante da corrida.
-
Ao finalizar todas as perguntas ou estourar o tempo:
- o participante é redirecionado para a tela de resultado.
-
O sistema exibe mensagens utilizando Flash Attributes.
O administrador pode cadastrar uma nova corrida contendo suas informações principais.
O administrador pode remover corridas cadastradas.
O administrador pode editar os dados de uma corrida existente.
O administrador pode cadastrar perguntas vinculadas a uma corrida.
O administrador pode remover perguntas cadastradas.
O administrador pode visualizar todas as perguntas registradas no sistema.
O participante pode iniciar uma corrida disponível.
Ao iniciar uma corrida, o sistema salva o horário de início utilizando sessão HTTP.
As perguntas são apresentadas uma por vez ao participante.
O sistema verifica se a resposta enviada pelo participante está correta.
O sistema acompanha o tempo disponível durante a corrida.
Ao terminar as perguntas ou exceder o tempo limite, o participante é redirecionado para a tela de resultado.
O sistema utiliza Flash Attributes para exibir mensagens temporárias ao usuário.
| ID | Requisito |
|---|---|
| RNF01 | Utilizar Spring Boot na implementação |
| RNF02 | Utilizar Thymeleaf para renderização das páginas |
| RNF03 | Utilizar PostgreSQL como banco de dados |
| RNF04 | Utilizar Hibernate/JPA para persistência |
| RNF05 | Utilizar arquitetura MVC |
| RNF06 | Utilizar sessões HTTP para controle da corrida |
| RNF07 | Utilizar CSS customizado inspirado no Windows XP |
| RNF08 | Utilizar Git/GitHub para versionamento |
| RNF09 | Utilizar padrão Post/Redirect/Get |
| RNF10 | Exibir mensagens utilizando Flash Attributes |