OpenClassRoom – Journal 10

Hola voyageur ! Et bienvenue dans ce dixième journal 😀 !

Au menu aujourd’hui non pas d’un mais de deux projets !

Alors faisons vite car ça risque d’être volumineux.

UML, base de donnée et pizza

Et oui un retour sur de l’uml comme je l’avais dit dans l’article précédent mais (heureusement) ce projet embarque aussi de la base de données. Alors bon, soyons d’accord c’est pas le truc le plus réjouissant de l’univers, mais au moins ça me permet de sortir des diagra… 

Bon c’est pas grave, pour ceux qui se le demandent voici un modèle physique de données : 

En gros c’est un moyen de schématiser une base de données. D’ailleurs le logiciel que j’utilise pour ça, SQL Power Architect, permet depuis ce schéma de générer directement le code sql pour créer le tout.

Voici donc les données de démo de ma base :

Ensuite pour ce projet il a fallu des nouveaux diagrammes. Car oui ce projet suit le précédent projet sur l’UML, donc j’ai déja une base sur laquelle travailler.

Bref je ne vais pas passer sur les diagrammes un par un, mais je ne vais pas vous cacher que c’était pas les diagrammes les plus simples à comprendre et à faire.

API, Flask et Heroku

Pour ce projet il est question d’utiliser Flask, un module python pour faire un site web simple, les API de Google Maps et de WikiMedia et BootStrap, JavaScript et Jquery pour la partie page web.

Le but est de créer un programme qui va récupérer les informations sur un lieu donné par l’utilisateur. Le programme doit donc afficher l’adresse du lieu, une carte ou est placé l’endroit et des informations sur ce lieu avec un lien Wikipédia.

C’est donc la première fois où vous avez le moyen de tester ce que j’ai fait ! Donc voici le lien vers le site : https://grandpybot-oc-flo.herokuapp.com/

Et voici à quoi ça ressemble :

Alors je ne vais pas m’éterniser sur le code mais plutôt vous parler des difficultés que j’ai rencontré.

Premièrement l’utilisation de l’api de WikiMedia :

Au départ je voulais récupérer un article grâce à la recherche. En gros au niveau de l’API on peut faire une recherche comme si on recherchait un article wikipédia.

Sauf que contrairement à un moteur de recherche « intelligent » celui de Wikipedia ne va pas trouver un article s’il manque par exemple un accent ou s’il y a une lettre en trop.

Donc imaginez que je dois faire une recherche sur un lieu mais que j’ai son adresse complète, hé bien wikipédia dans sa recherche ne trouvera rien.

Donc j’ai dû utiliser une autre option, celle des données de géolocalisation.

Vous pouvez le voir en haut à droite qu’il y a des coordonnées. Il y a donc un moyen de faire une recherche grâce à ces coordonnées sur l’API.

Vu que j’utilise Google Maps pas de soucis pour récupérer les coordonnées sauf que celle sur Wikipédia sont pas exactement raccord avec celles que je récupère depuis Maps.

Alors j’ai dû trouver un moyen de filtrer les articles, donc pour chaque article trouvé le programme vérifie son nom et s’il contient un minimum de mots de l’adresse renvoyé par Maps alors on le choisit.

Ensuite deuxième souci c’était le déploiement sur Heroku. J’ai eu du mal a trouver quelque chose qui fonctionnait niveau configuration et en plus Heroku désactivait le démarrage automatique des commandes.

Soutenance, suite et projets

La soutenance pour le projet GrandPyBot devrait se faire bientôt, celle pour le projet sur l’UML devrait se passer juste après.

Alors vous pouvez remarquer que ça ma pris du temps avant de valider ces projets et oui en effet, vu que j’ai travaillé sur les deux en simultané en plus de mes autres projets je pense que c’est normal.

Maintenant je pense que je vais attendre de valider les deux projets et ensuite consacrer mon mois de novembre au prochain projet qui va être long, très long. 

Ensuite comme je l’ai dit précédemment, je prendrais une pause en décembre et en janvier, mais seulement pour OpenClassRoom. J’ai envie de faire des choses pendant ces deux mois, qui vont toucher au jv.

Sur ce je vous dis à la prochaine pour un nouvel article ! N’hésite pas à t’abonner à ma page Facebook pour avoir plus d’infos.

Leave a Reply

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.