ClairTemps
Création d'un site de météo
Le projet
Dans le cadre d'un projet d'école, nous devons créer un site de météo, utilisant une API externe de prévisions météo. Nous devons créer un site sur lequel les utilisateurs peuvent effectuer une recherche météo par ville, créer un compte et enregistrer des favoris.
La réalisation
Le backend doit être réalisé en Symfony, et nous avons le choix de la techno pour le frontend : nous choisissons Vue.js pour avoir une interface réactive, et aussi parce que c'est l'occasion de mettre en pratique nos connaissances toute fraîches.
Je m'occupe de toute la partie backend du site : j'installe le Symfony et le Vue.js, ainsi que le repository Github associé. C'est également moi qui mets en production le Symfony - une première ! Je gère la connexion aux API externes, OpenWeather pour les prévisions météo, et une seconde pour récupérer les coordonnées de localisation des villes ciblées via le champ de recherche. Je crée toutes les routes nécessaires pour le front. Côté Vue.js, je crée les pages d'inscription et de connexion, et gère le fonctionnement du champ de recherche.
En bref
Ce projet m'a permis de suivre le fonctionnement des requêtes de bout en bout, et d'avoir une meilleure compréhension de la partie backend, et de la transmission des informations sur un site web. C'était un gros défis de prendre la responsabilité du back, car bien que ça m'intéresse et me passionne beaucoup plus que le front, ça nécessite de ma part beaucoup d'investissement et d'énergie pour comprendre. Je ne regrette pas une seule seconde d'avoir pris le risque, et remercie les copines de m'avoir fait confiance. Même si c'était dur, j'ai le sentiment avec ce projet d'avoir levé le voile sur "la magie d'internet", et d'avoir fait un grand pas dans mon apprentissage.
L'expérience
Ce projet a été une expérience à la fois douloureuse et formatrice :
- J'ai découvert les complexités liées au fait d'avoir un front et un backend séparés, en comparaison avec un site Symfony/Twig classique. Bonjour les CORS et les certificats SSL en localhost. Nota Bene : si ça bug alors que tout semble bon, le premier test à réaliser pour débuguer est de vérifier qu'on a bien rentré le bon mot de passe...
- J'ai appris à utiliser Postman pour tester mes routes, et à séparer le backend et le frontend dans ma façon de réfléchir et de faire : j'ai compris que je n'avais pas besoin de coder le front pour m'assurer qu'une route fonctionne.
- Pour ce qui est de Vue.js, j'ai fait quelques appels "fetch", que je me représente comme "le back du front", pour afficher les données et m'assurer que la liaison back/front était bien fonctionnelle de bout en bout. J'ai également géré la partie inscription, connexion, et redirection en cas d'accès non authentifié.
- Enfin, j'ai également fait de la mise en page avec Bootstrap, préalablement installé par mes partenaires. C'était l'occasion de tester une autre façon de faire du style, n'ayant jusqu'à présent utilisé que le CSS natif ou du SCSS. On m'en avait dit beaucoup de bien, et j'y vois l'intérêt pour faire du style "propre, rapide, classique". Néanmoins, je trouve l'ajout de classes et la surcharge de balises plutôt fastidieux et peu satisfaisant, rendant le HTML assez pénible à parcourir. Sans trop de surprise, ce n'était pas ma partie préférée, et me conforte dans la direction que j'ai pris : plus d'algo et de backend, moins je touche au style et mieux je me porte !
