MONA

Yuning Sun

Mandat du Projet

Rôle principal: Gérer et Améliorer l'interface admin
  • Système de mises à jour des données : protocole git
  • Permettre manipulation des données depuis l'interface admin (collab avec API lastUpdate)
    Modification des données
    Complétion des données : contenu médiation, ajout de tags
  • Faciliter la recherche dans l'interface admin
    Affichage complet des données
    Cartographie ou Visualisation des données sur les statistiques des utilisateurs
  • Évaluer la possibilité pour un système d'accès aux données pour permettre la collaboration avec d'autres organisation

Rapport hebdomadaire

Semaine 1 : 17 au 27 janvier 2021

Cette semaine après avoir rencontrer Mathieu Perron, qui travail sur le serveur, il m'a appris à installer la base de données et à me connecter au serveur. J'ai du réinstallé mon dual-boot linux-windows, car mon ancien système n'avait pas assez d'espace. Mathieu m'a aidé à faire l'installation lors de notre rencontre, mais il y avait un problème avec l'installation de composer, alors j'ai du installé mon système de linux mint. Finalement, j'ai pu l'installé et me connecter au serveur via ssh.

Commencer à apprendre sur le framework Laravel et Vue.js, aussi de la lecture qui est faite sur le networking d'un serveur.

Semaine 2 : 27 janvier au 3 février 2021

Cette semaine j'ai pu populé ma base de données local et me créer un compte admin local en l'ajoutant dans la table des utilisateurs, j'ai appris sur les différents requête de mysql, commencer à jouer ç sur ligne de commande des requêtes différents sur la base de données pour comprendre comment les données sont transmises et changé.

Objectif d'apprentissage pour la semaine prochaine: Continuer les apprentissage sur framework Laravel et Vue.js. Aussi de la lecture sur la documentation sur MySql

Semaine 3 : 3 au 10 février

Cette semaine j'ai fait une mise en oeuvre de mes apprentissage sur vue.js et Laravel, comme Lena me l'a suggéré, j'ai commencé par affiché toute les données sur l'interface admin, je suis allée fouiller dans le code /public/app.js ainsi que le template de ArtworkGrid.vue. J'ai sorti les données qui se trouvait dans le div hide et show du b-card, qui définit la partie des données qui sont cachés. J'ai aussi fait des testes sur l'ajout de l'affichage des propriétés qui ne sont pas affiché présentement sur l'interface. Remarquer que le changement fait dans la partie ArtworkGrid.vue n'affectera pas l'affichage, faut vraiment aller changer dans app.js pour jouer avec les données. Puisque celui-ci définit la structure des données.

Objectif d'apprentissage pour la semaine prochaine:Continuer les apprentissage sur framework Laravel et Vue.js pour essayé de manipuler les données directement depuis l'interface admin.

Semaine 4 : 10 au 17 février

Durant cette semaine j'ai codé les controllers necessaire pour modifier les données via les protocoles http. J'ai appris les 7 Restfuls methods pour un modèle, c'est-à-dire les actions de 'index, create, store, show, edit, update, destroy'. J'ai programmé 'create, update, show, edit' pour pouvoir faire le changement des données via l'interface directement. J'ai alors créé une page perspective d'une oeuvre d'art. Ce ne sont pas encore toutes les données qui sont affiché car c'est un simple teste pour voir si toute les données se répercute dans la base de données.

Objectif d'apprentissage pour la semaine prochaine: Apprentissage approfondie sur vue.js pour comprendre la relation des templates

Semaine 5 : 17 au 24 février

Après la rencontre avec Lena et Simon, nous avons décidé d'ajouter une propriété de source pour évaluer la source des données d'une oeuvre d'art. D'une part pour juger la crédibilité d'une oeuvre ou en cas de doublons, on devreais éliminer l'un des deux oeuvres. Alors moi et Simon, nous avions travaillé collectivement sur l'ajout de cette propriété, nous avons implémenté la valeur des propriétés depuis les différentes jobs. Nous avons essayé de comprendre le fonctionnement des jobs ensuite, j'ai pu implémenter les propriétés dans la création de modèle ou update d'un modèle. Ce sont deux méthodes natives pour manipuler un objet. Par ailleurs j'ai continué à modifier les formulaires pour pouvoir ajouter les données ou faire la mise-à-jour.

Objectif d'apprentissage pour la semaine prochaine: Comprendre la relation Eloquent des objets

Semaine 6 : 24 février au 3 mars

J'ai testé un ajout d'un nouvel objet oeuvre, quelques parties ne s'établissent pas bien, tel que les données des relations ne s'insère pas dans les tableaux de relation. J'ai aussi retravaillé la page perspective d'une oeuvre d'art. J'ai essayé d'implémenter un map pour pouvoir représenté l'emplacement de l'oeuvre sur la carte. J'ai tenté un implémentation OpenStreetMap et avec LeafLet pour les tuiles, malheureusement se sont des open sources map, ils me retournent un problème de cookies. Cela m'indique que je n'ai pas set-cookies pour same-site. J'ai été lire davantage sur les cookies, cela peut causé des problèmes de sécurité sur notre base de données. Une personne pourrait forger un cookie data pour s'acquérir des droits d'admin et accéder ainsi à notre base de données.

Objectif d'apprentissage pour la semaine prochaine: Trouver une façon d'implémenter un map

Semaine 7 : 3 au 10 mars

Cette semaine j'ai réglé le problème de map en implémentant un iframe avec un url de OpenStreetMap, l'iframe marche car il n'a pas besoin d'aller chercher les cookies, comme un div avec un id map, j'ai implémenté aussi un marker ou un pin pour indiqué le bon endroit, j'ai appris à manipuler les données de type point depuis. J'ai aussi tenté d'ajouter un boutton à chaque rangée pour aller vers la page individuelle d'une oeuvre d'art. J'ai essayé d'implémenter un bouton dans le template, mais cela ne semble pas fonctionner à cause du framework de vue.

Objectif d'apprentissage pour la semaine prochaine: Trouver une façon régler le problème de vue.

Semaine 8 : 10 au 17 mars

Cette semaine j'ai réglé le problème de développement de vue, j'ai réinstallé le package de vue et fait le match des versions de vue et de npm. Donc npm run dev a pu marché après ces changements. J'ai améliorer la page de perspective d'une oeuvre d'art en implémentant les information de la table des users (le ratings des utilisateurs et les photos). Remarquer que partout le path pour storer les photos sont public/photos alors le vrai path sur notre serveur est public/storage/photos. Pourtant, la version sur le serveur affiche bien les photos, je pense devoir voir davantage sur ce sujet.

Objectif d'apprentissage pour la semaine prochaine: Trouver une façon d'afficher les données de la version précédente.

Semaine 9 : 17 au 24 mars

Cette semaine j'ai ajouter une fonction permettant de calculer la distance entre l'oeuvre d'art courrant par rapport aux autres oeuvres et de filtrer les oeuvres de moins de 0.1 km, de cette façon les admins pourront aller modifier les donnée de celui qui est en doublons.

Objectif de la semaine prochaine; mettre en colonne les oeuvres pour mieux les comparer + ajouter une propriété pour indiquer que c'est un doublons avec foreign id

Semaine 10 : 24 au 31 mars

Cette semaine j'ai améliorer le tableau. J'ai aussi développer un cronjob en local pour aller chercher les données à chaque jour vers minuit, ce n'est pas encore au point, certain problème de développement survrient, je pense que c'est un problème relier à ma version de développement. D'ailleurs, J'ai aussi implémenter une colonne de doublons pour indiquer si l'oeuvre est un doublons, je n'ai pas encore écrit le protocole http pour modifier cette prorpiété, puisque je suis aussi sur le développement des versions de l'oeuvre, comme on avait mentionner. J'ai commencé par cast les propriétés du modèle en array.

Objectif de la semaine prochaine; Finir la mise de version des données + ajout de possibilité d'indiquation de doublons + Régler le problème de cronjob

Notion apprise lors de la semaine # Description Liens pertinents
1 Serveur et Client https://archive.org/details/clientservercomp00lowe_0
1 Laravel https://laravel.com/
1 Vue https://youtu.be/4deVCNJq3qc, https://vuejs.org/
1 MySql https://downloads.mysql.com/docs/mysql-tutorial-excerpt-5.7-en.pdf

Problèmes

Problème d'installation du serveur
Problème réglé

Le problème rencontré concerne l'installation du serveur et la connection au serveur, réglé en suivant le blogue de Mathieu. Une erreur de synthaxe a été découverte dans le fichier de BorougnsTableSeeder.php.

Problème de version avec php
Problème réglé

Un problème rencontré pour partir le serveur local avec php artisan serve, des erreurs sur les méthodes des classes extends models sont lancés. La version de mon php local est 8.0.2, alors que la version présente de laravel accept une version de 7.2. J'ai tenté d'ajouter un ^8.0 dans le fichier de composr.lock, ce qui n'a pas marché. Après des vérifications et recherches, j'ai vu que c'est un problème de version de php qui n'accepte plus cette synthaxe, alors j'ai du changer la version de mon php local.

Problème de vue.js
Problème réglé

Je ne suis pas capable de faire répercuter les changements que j'ai fait sur ArtworkGrid.vue (template de notre affichage des données de artwork), je crois être un problème de npm run dev qui n'est pas bien établit, mais il faut bien que je revérifie mon environnement de développement vue.

Problème de map
Problème non-réglé

J'ai tenté d'utiliser les open source map, mais le problème de cookie me revient. Problème régler en utilisant iframe Problème revient sur le serveur, tente de réparer le map