‫- : Bienvenue à la dernière vidéo de la section.
‫Et dans cette section, nous avons en quelque sorte terminé notre
‫projet, à la fois l'API et le site Web rendu, du
‫moins pour le moment.
‫Alors encore une fois, félicitations pour avoir atteint ce point et pour
‫avoir assisté à plus de 30 heures de vidéo, toujours à
‫l'écoute de ma voix.
‫Quoi qu'il en soit, dans cette dernière
‫vidéo, je voulais aborder rapidement certains sujets que
‫nous aurions pu ajouter à l'API et au site Web, et
‫vous les laisser en gros comme des défis si vous
‫le souhaitez.
‫Nous aurions donc pu ajouter un peu plus de
‫logique métier à notre projet, par exemple, en
‫ajoutant une restriction selon laquelle les utilisateurs ne peuvent consulter qu'une visite
‫qu'ils ont réellement réservée.
‫Et cela aurait beaucoup de sens, non?
‫Je veux donc que vous essayiez cela par vous-même
‫si vous en avez envie.
‫Maintenant, ces défis, je ne vais pas les résoudre
‫moi-même, à moins qu'il n'y ait vraiment beaucoup de demande pour l'un d'entre eux.
‫Et j'ai en
‫fait laissé ce genre de défis plus
‫compliqués aux étudiants à faire eux-mêmes dans mes autres
‫cours, et j'ai vraiment vu des résultats créatifs dans de nombreux cas.
‫J'espère donc que vous en essayerez également quelques-uns.
‫Maintenant, de toute façon, vous
‫pouvez également implémenter des itinéraires de réservation imbriqués, par
‫exemple, obtenir toutes les réservations pour un certain tour
‫et obtenir toutes les réservations pour un certain
‫utilisateur, donc en fonction des identifiants.
‫Vous pouvez également améliorer considérablement les dates de la tournée, et ce que
‫je veux dire par là, c'est que vous pouvez ajouter un champ
‫de participants et un champ soldOut à chacune des dates.
‫Et la date devient alors un
‫peu comme une instance de la tournée.
‫Ensuite, lorsqu'un utilisateur réserve réellement une visite,
‫il doit sélectionner l'une des dates disponibles, puis
‫votre réservation à l'une
‫des dates augmentera le nombre de
‫participants à la date jusqu'à ce qu'elle soit
‫réservée, donc fondamentalement, lorsque les participants sont plus nombreux
‫que la taille maximale du groupe.
‫Maintenant, enfin, bien sûr, lorsque l'utilisateur souhaite
‫réserver une certaine visite à une certaine
‫date, vous devez vérifier si la visite est toujours disponible
‫à cette date sélectionnée.
‫D'accord?
‫C'est donc en fait un défi assez sophistiqué
‫mais aussi très amusant à mettre en
‫œuvre, et cela ajouterait vraiment une logique commerciale significative
‫à ce projet.
‫Enfin, vous pouvez également implémenter certaines
‫des fonctionnalités d'authentification avancées dont nous avons
‫déjà parlé un peu plus tôt dans la
‫section sur la sécurité.
‫Par exemple, vous pouvez confirmer l'adresse e-mail d'un utilisateur en
‫lui envoyant un e-mail avec un lien sur
‫lequel il doit
‫cliquer, et seulement après
‫le clic, l'utilisateur est alors vraiment enregistré dans l'application et
‫peut faire des choses comme acheter des visites.
‫Vous pouvez également garder les utilisateurs
‫connectés avec ce qu'on appelle des jetons d'actualisation.
‫Et c'est encore un peu compliqué à mettre en
‫œuvre, mais si vous cherchez comment cela fonctionne sur Google,
‫je suis sûr que vous pouvez trouver une
‫bonne solution ou que vous pouvez même en trouver une par vous-même.
‫Enfin, vous pouvez également implémenter l'authentification à deux
‫facteurs, mais celle-ci va encore plus loin.
‫Donc, fondamentalement, lorsqu'un utilisateur se
‫connecte, il reçoit quelque chose comme un
‫message texte sur son téléphone avec un
‫code qu'il doit
‫insérer dans l'application afin d'être authentifié après cette deuxième étape.
‫Ce sont donc de jolis défis
‫que vous pourriez vraiment mettre en œuvre sur le site de
‫l'API, essentiellement du projet.
‫Mais il y a aussi des choses que vous pouvez faire sur le site Web.
‫Par exemple, vous pouvez implémenter le formulaire d'inscription, qui
‫devrait être très similaire au formulaire de connexion.
‫Donc je ne l'ai pas vraiment fait parce que c'est tellement similaire
‫au formulaire de
‫connexion, et donc je ne voulais pas perdre de temps en faisant ça.
‫Mais bien sûr, vous pouvez aller de l'avant et
‫mettre en œuvre celui-ci également.
‫Ensuite, une autre chose intéressante que vous pouvez faire sur le site
‫Web est que sur la page de détail
‫de la visite, vous
‫pouvez autoriser un utilisateur à ajouter un avis directement
‫sur le site Web, mais uniquement s'il a effectué cette visite.
‫Vous devrez donc vérifier si l'utilisateur actuellement connecté
‫a effectivement réservé la visite en cours,
‫et aussi si l'heure de la visite est déjà passée.
‫Et si c'est le cas, vous pouvez ajouter un formulaire
‫à la page où l'utilisateur peut
‫ajouter un nouvel avis, par exemple, en utilisant notre API d'avis.
‫Ou aussi, et celui-ci est un peu lié,
‫vous pouvez masquer toute la section de
‫réservation sur la même page de détail de la visite si
‫l'utilisateur actuel a réservé la visite.
‫D'accord.
‫Cela empêcherait alors le même utilisateur de réserver
‫deux fois la même visite.
‫Et puis, puisque vous le faites déjà sur le front-end,
‫vous devez également empêcher les réservations
‫en double sur le back-end de votre modèle.
‫Ce sera en fait
‫très similaire à empêcher les avis en double du même utilisateur.
‫D'accord.
‫En outre, vous
‫pouvez implémenter une fonctionnalité de visite très agréable.
‫Ainsi, lorsque vous avez quelque chose comme un bouton
‫J'aime ou un bouton en forme de
‫cœur sur la visite, puis lorsque
‫l'utilisateur clique dessus, il est ajouté à ses favoris.
‫Et puis sur
‫le site Web, vous pouvez avoir une page de favoris ou simplement un panneau de
‫favoris où l'utilisateur peut voir toutes ses visites préférées.
‫Ce n'est donc pas vraiment difficile mais je
‫pense que c'est très amusant à mettre en œuvre.
‫Ensuite, sur la page du compte d'utilisateur,
‫vous pouvez implémenter la page Mes avis,
‫qui contient déjà un lien
‫pour le moment, et sur cette page, l'utilisateur
‫pourrait alors voir et peut-être aussi modifier et supprimer tous ses propres avis.
‫Maintenant, si vous connaissez React,
‫ce serait vraiment un moyen incroyable
‫d'utiliser l'API Natours et d'entraîner vos compétences React en
‫même temps.
‫Et une fois que vous avez fait cela
‫avec React, vous pouvez en fait recréer la page entière
‫en tant qu'application d'une seule page avec React ou
‫quelque chose comme ça.
‫Donc, comme Angular ou Vue fonctionnerait également pour cela.
‫À droite.
‫Ce serait donc vraiment bien si vous faisiez
‫cela, et j'aimerais vraiment vraiment que cela soit mis en œuvre.
‫Enfin, pour les administrateurs, vous pouvez
‫implémenter les pages Gérer, où les
‫administrateurs peuvent ensuite créer, lire, mettre à jour
‫et supprimer toutes les
‫ressources, donc toutes les visites, utilisateurs, avis et réservations.
‫Une fois de plus, React conviendrait peut-être pour cela, ou
‫si ce n'est pas le cas, alors
‫juste du Javascript régulier sur le front-end fonctionnerait
‫également très bien, par exemple, mettre à jour toutes ces ressources à l'aide d'appels Ajax.
‫Il y a donc vraiment une tonne de choses que vous
‫pourriez mettre en œuvre afin d'améliorer encore plus
‫notre projet et notre site Web.
‫À droite?
‫Et je suis sûr que
‫vous pourriez même trouver d'autres trucs ici.
‫Encore une fois, ce serait vraiment génial
‫de voir certaines de ces fonctionnalités réellement mises en œuvre par vous.
‫Et si vous en faites un ou même plusieurs,
‫assurez-vous simplement de partager votre résultat dans
‫la section Q&R du cours.
‫Bref, c'est tout pour cette vidéo et pour cette section
‫et aussi presque pour ce cours.
‫Donc bon travail encore une fois et maintenant, tout ce
‫qu'il reste à faire est de préparer l'application
‫pour le déploiement, puis
‫de la déployer sur un serveur de production en direct pour vraiment
‫partager notre projet avec le monde.