Projet MONA
Rapport IFT3150
Alexandre Benguerel

Objectifs

-Améliorer l'importation des données pour n'importer que les changements depuis la dernière importation

-Prévoir un contrôle des versions des données

-Créer un système de "tags"

-Créer un système d'"oeuvres du jour"

-Permettre de modifier les données depuis un interface usagé

-Importer de nouvelles sources de données (si de telles sources arrivent durant la session)

Semaine 1: 7 mai au 13 mai

La première chose que j'ai faite a été d'essayer de m'installer un environnement Linux sur lequel travailler. J'ai d'abord essayé d'installer Ubuntu sur mon ordinateur de bureau (en dual boot), mais je n'ai au final jamais réussi à cause de des problèmes de setting de BIOS. J'ai, à la place, installé le Windows Linux subsystem et l'application Ubuntu pour Windows 10. Finalement, j'ai appris que le travail que j'allais faire fonctionnait mal sur WLS, donc j'ai installé Ubuntu sur une autre machine qui sera donc ma machine de travail pour la session.

Ensuite, j'ai eu une réunion avec Simon Janssen et Yuning Sun, les deux étudiants qui travaillaient sur le serveur à la session d'hiver. Ils m'ont expliqué ce sur quoi ils avaient travaillé durant leur projet et m'ont indiqué le travail que j'allais avoir à faire durant la session. Cela m'a permis d'établir mes objectifs de base. Ils m'ont aussi donné des références utiles pour la préparation de mon environnement de travail local.

La chose suivante que j'ai faite a justement été la configuration de mon environnement local. Pour ce faire j'ai suivi le tutoriel écrit par Mathieu Perron, ancien étudiant au projet MONA, avec quelques modifications qui m'avaient été indiquées lors de la réunion.
Toute a fonctionné sauf une migration qui posait problème . J'ai alors modifié l'instruction de cette migration qui causait une erreur et maintenant tout fonctionne. Cela m'a donc permis de tout de suite me familiariser avec git pour mettre à jour les fichiers du projet.

Finalement, la dernière chose que j'ai faite cette semaine a été la création d'une version de base de ma page du site du projet (cette même page sur laquelle j'écris en ce moment). Cette page me servira à indiquer mon avancement sur le projet tout au long de l'été. Je l'ai vraiment faite de façon très minimalistique simplement pour avoir une page de prête le plus tôt possible, cela pourra être amélioré plus tard.

Semaine 2: 13 mai au 20 mai

Cette semaine, je me suis occupé de mettre les rapports hebdomadaires sur la page du projet. J'ai donc parlé avec Simon et Yuning pour savoir comment faire. J'ai appris que la page de ce site se trouve sur le projet que j'avais importé la semaine passée, donc il me suffisait de placer mon fichier à la bonne place et de pusher les changements sur le serveur. Par contre, je n'avais pas les permissions nécessaires pour faire un push sur le serveur.

J'ai donc contacté Raouf Bencheraiet, le technicien du DIRO, pour obtenir ces droits. Après les avoir obtenu , je n'arrivais toujours pas à appliquer mes changements. Finalement, j'ai pas mal perdu une journée à essayer de comprendre ce que ne marchait pas, alors que c'était simplement mon mot de passe au DIRO qui était expiré.

Ensuite, j'ai communiqué avec Jean-Marc et Dina pour avoir le lien vers leur rapport que j'ai aussi ajouté sur le site. J'ai décidé que ce serait plus simple pour eux de laisser leur rapport sur leur propre site avec seulement un lien sur le site du projet, puisq'ils n'ont pas les droits d'accès pour mettre des choses à jour sur le serveur. Je vais rediscuter de cette idée avec Lena à la rencontre de jeudi.

Enfin, j'ai eu une rencontre jeudi avec Simon, qui travaille sur sa dernière contribution au projet, pour qu'il me montre un exemple de comment travailler avec Laravel. On en a aussi profité pour vérifier que ma base de données (la version sur mon portable) fonctionnait bien. L'importation des données, les "jobs" dans le jargon de Laravel, ne fonctionnaient pas au départ, mais on a fini par règler ce problème. J'ai donc finalement un "set-up" de travail pleinement fonctionnel.

Semaine 3: 20 mai au 27 mai

D'abord, lors de la rencontre hebdomadaire de projet, mes objectifs pour la session ont été finalisés par rapport à ce qui avait été discuté initialement avec Simon et Yuning. J'ai d'ailleurs modifié ceux-ci dans le présent rapport. Ensuite, nous avons convenu du fait qu'il serait profitable de faire une réunion de l'équipe du serveur avec justement Simon et Yuning.

Lors de la réunion de serveur, nous avons fini d'établir ce sur quoi il faudrait que je travaille en priorité. Simon m'a aussi proposé de faire avec moi sa dernière contribution au projet, la finalisation du système de bages ce qui me donnera un exemple concret se travaille dans l'environnement de notre serveur.

Finalement, dans le but de mieux comprendre la base de données qu'on utilise, j'ai fait un schéma de celle-ci représentant les liens entre les différentes tables qui y sont définies. EDIT: Ce schéma se trouve dans la section Ressources.

Semaine 4: 27 mai au 3 juin

Premièrement, cette semaine j'ai aidé Lena en appliquant les mises à jour du site web du projet qu'elle avait faites. Comme elle n'a plus elle-même de droits d'accès sur le serveur où se trouve ce site, elle a besoin que quelqu'un avec ces droits pour aller faire un git pull depuis le serveur. Bien que ce n'était pas supposé être une très longue tâche, ça m'a pris un certain tant à comprendre comment faire, puisque la procédure n'est pas la même pour mettre le serveur à jour.

Deuxièmement, j'étais sensé commencer à faire quelque chose de concret, c'est-à-dire travailler sur les badges, cependant je ne comprenais pas encore assez bien le fonctionnement de Laravel. J'ai donc lu la documentation que m'a suggérée Simon et j'ai pris le temps d'observer les différents fichiers pour commencer à comprendre de moi-même.

Semaine 5: 3 juin au 10 juin

Cette semaine, je n'est malheureusement pas pu mettre énormément de temps sur le projet à cause que je devais me rendre à Montréal pour un déménagement. Je vais essayer de me rattraper dans les semaines à venir.

Ce que j'ai fait a été de poster le schéma que j'avais fait sur le wiki du github du projet. Ensuite, j'ai fait un nouveau schéma qui représente les changements que je veux apporter à la base de données.

Semaine 6: 10 juin au 17 juin

D'abord, suite à ce qui avait été discuté lors de la dernière rencontre hebdomadaire, j'ai fait trois nouveaux schémas de la base de données pour montrer les différentes façons d'implémenter les arguments optionnels des badges. L'idée étant de présenter les différentes options lors de la prochaine rencontre pour décider quelle serait la meilleure façon de faire.

Ensuite, j'ai ajouté le premier schéma que j'avais fait au présent rapport. La semaine passée, j'avais mis ce schéma sur le wiki du github du serveur, mais comme les autres étudiants travaillant sur le projet n'ont pas accès à ce github, je me suis dit que ce n'était finalement pas l'endroit optimal pour mettre cela. Comme ma page de rapport se trouve directement sur le serveur du projet, j'ai uploadé l'image directement dessus. Au départ, je n'arrivais pas à uploader l'image en faisant un git push, j'ai fini par comprendre que c'était à cause des fichiers .gitignore, j'en ai donc profité pour comprendre le fonctionnement de ces fichiers.

Finalement, j'ai commencé à travailler sur l'implémentation des tags sur ma version locale de la base de données (selon le schéma que j'avais fait précédemment) c'est-à-dire d'écrire des nouveaux fichiers migrations pour créer les nouvelles tables. Pour l'instant, ça a surtout été des tests, rien de concluant.

Ressources

Schéma de la base de données au départ