Cet exercice reprends l'infatigable concept de DaMovie Quiz front et DaMovie Quiz back utilisés au fil des ans chez Wisembly.
L'idée étant de ne pas se retrouver à faire 2 exos d'1 à 2h, mais d'en faire qu'un seul qui prendrait 1 à 2 heures à faire.
Le but du jeu pour cet exo: proposer une affiche de film et une photo d'acteur et demander si l'acteur est dans le casting du film. Tant qu'on gagne, on joue, à la première erreur on arrête et le score obtenu est le nombre de bonnes réponses d'affilée qu'on a donné. (pas de timer de 30 secondes, pas de leaderboard).
On va demander au backend (en PHP, framework obligatoire au choix (Symfony, Silex, Laravel, Cake...)) de faire le proxy avec la DB de The Movie Database (ou autre IMDB, etc.. il y a des clés d'API qui trainent je crois dans les exercices linkés au dessus) et de fournir une api avec deux endpoints:
- Un endpoint pour récupérer une question: un hash de question, un film et un acteur. (GET /game/play)
- Un endpoint pour soumettre la réponse: le hash de la question, et on dit si l'acteur est dans le casting ou non (POST /game/play)
On imagine que pour storer les questions avec leur hash et y répondre, Redis ferait un parfait candidat.
On demande un environnement ReactJS (au plus simple, ReactApp fait très bien l'affaire pour commencer à coder en 2min avec webpack et tout),
- Un bouton pour commencer la partie
- Une interface de jeu où on affiche le film et l'acteur avec deux gros boutons "oui" "non" dire si l'acteur a joué dedans.
- Un écran quand on perd qui rappelle quel score on a fait, avec un bouton replay
Voilà, en simplifiant nos deux exos, on devrait avoir un truc acceptable en temps qui permet de bien s'amuser et de jauger un peu le niveau du candidat (c'est à dire toi).
N'oublie pas d'aller lire bien attentivement les conseils des deux exercices linkés pour faire un jeu chouette et jouable et déceler les quelques pièges de conception.
Bien entendu nous évaluons la jouabilité du jeu, le respect des consignes, et la qualité du code et des commits. Merci de livrer un repo Git pour voir tout cela.
Bon dev !