Difference between revisions of "Rapport EDCampus 2021-2022"

From air
Jump to navigation Jump to search
Line 3: Line 3:
 
== Rappel du sujet ==
 
== Rappel du sujet ==
   
EDCampus, initialement Waza Education et racheté par l’UGA pour la modique somme de 20 000€, est un projet de développement open source et collaboratif d’une plateforme web de gestion de projets pour les enseignants, les étudiants et les entreprises. En rachetant ce projet, l’UGA a fait l’acquisition d’un projet de 3 ans de développement pour l’équivalent d’un salaire d’ingénieur de 4 mois. La plateforme contient un ensemble de fonctionnalités pour faciliter la gestion de projet Agile et la gestion de projet parallèle pour les enseignants. On peut citer parmis les fonctionnalitées importantes:
+
EDCampus, initialement Waza Education et racheté par l’UGA pour la modique somme de 20 000€, est un projet de développement open source et collaboratif d’une plateforme web de gestion de projets pour les enseignants, les étudiants et les entreprises. En rachetant ce projet, l’UGA a fait l’acquisition d’un projet de 3 ans de développement pour l’équivalent d’un salaire d’ingénieur de 4 mois. La plateforme contient un ensemble de fonctionnalités pour faciliter la gestion de projet Agile et la gestion de projet parallèle pour les enseignants. On peut citer parmi les fonctionnalités importantes:
   
- L’héritage de création de projet qui permet à un enseignant de créer et mettre à jour rapidement un ensemble de projet étudiant identique.
+
- L’héritage de création de projets qui permet à un enseignant de créer et mettre à jour rapidement un ensemble de projets étudiants identique.
   
 
- Un partage de dossier, fichier et de liens externes.
 
- Un partage de dossier, fichier et de liens externes.
Line 17: Line 17:
 
- Un outil de tableau blanc pour faciliter les sessions créatives.
 
- Un outil de tableau blanc pour faciliter les sessions créatives.
   
EDCampus c’est plus de 2400 comptes utilisateurs, 500 utilisateurs actifs, plus de 500 projets, un ensemble de 11 projets de contribution étudiantes (de 2019 à 2022) venant de Polytech Grenoble, de l’IUT Valence et de l’Université de Haute-Alsace.
+
EDCampus c’est plus de 2400 comptes utilisateurs, 500 utilisateurs actifs, plus de 500 projets, un ensemble de 11 projets de contribution étudiante (de 2019 à 2022) venant de Polytech Grenoble, de l’IUT Valence et de l’Université de Haute-Alsace.
   
Le but de notre projet est de rejoindre les contributeurs d’EDCampus pour maintenir l’application en corrigeant les bugs remontés par les utilisateurs, en développant de nouvelle fonctionnalité ou en modifiant des fonctionnalités déjà existantes.
+
Le but de notre projet est de rejoindre les contributeurs d’EDCampus pour maintenir l’application en corrigeant les bugs remontés par les utilisateurs, en développant de nouvelles fonctionnalités ou en modifiant des fonctionnalités déjà existantes.
   
Notre équipe est composée de 4 contributeurs (Kévin, Liam Lucas, Roman), d’un chef de projet (Lucas) ainsi que d’un ScrumMaster (Roman). L’objectif décrit par notre porteur en plus d’apporter notre contribution au projet et d’avoir appris de nouvelle chose, que ce soit sur la méthodologie employé ou les technologies utilisées sur le projet.
+
Notre équipe est composée de 4 contributeurs (Kévin, Liam Lucas, Roman), d’un chef de projet (Lucas) ainsi que d’un ScrumMaster (Roman). L’objectif décrit par notre porteur en plus d’apporter notre contribution au projet et d’avoir appris de nouvelle chose, que ce soit sur la méthodologie employée ou les technologies utilisées sur le projet.
   
 
== Technologies ==
 
== Technologies ==
Line 40: Line 40:
   
 
== Architecture technique ==
 
== Architecture technique ==
[Image arichtecture de communication]
+
[Image architecture de communication]
   
Le projet EDCampus utilise la dockerisation pour utiliser un ensemble de d'outils utilisant des technologies différentes et faciliter l'installation et le développement de l’application. Nous avons un script qui regroupe différentes commandes pour gérer les dockers du projet. Nous avons plusieurs container docker : 1 pour la base de donnée, 1 pour le chat, 1 pour le tableau blanc, 1 pour nginx, 1 pour le back + front, 1 pour phpMyAdmin. Ces dockers sont placées correctement via docker compose.
+
Le projet EDCampus utilise la dockerisation pour utiliser un ensemble d'outils utilisant des technologies différentes et faciliter l'installation et le développement de l’application. Nous avons un script qui regroupe différentes commandes pour gérer les dockers du projet. Nous avons plusieurs containers docker : 1 pour la base de données, 1 pour le chat, 1 pour le tableau blanc, 1 pour nginx, 1 pour le back + front, 1 pour phpMyAdmin. Ces dockers sont placés correctement via docker compose.
   
 
== Réalisations techniques ==
 
== Réalisations techniques ==
  +
 
Ce projet aura été un total de 23 tâches réalisées. Celles-ci comprennent des fixs de bug, de nouvelles features et des améliorations de l'existant.
+
Ce projet aura été un total de 23 tâches réalisées. Celles-ci comprennent des fixes de bug, de nouvelles features et des améliorations de l'existant.
   
 
=== Correction de bugs ===
 
=== Correction de bugs ===
Line 56: Line 56:
   
 
- Correction de la prévisualisation des fichiers:
 
- Correction de la prévisualisation des fichiers:
Depuis Janvier 2022, l’API du service CloudConvert, utilisé pour la conversion des fichiers au format png pour la prévisualisation, n’est plus disponible et une migration vers leur nouvelle API était nécessaire. Dans un premier temps, un travail de recherche a été effectué pour faire un état de l’art des libraires, packages et/ou extensions disponible pour le traitement de fichiers de PDF, en évitant l’utilisation d’un nouveau service en ligne, pour remplacer le service de CloudConvert pour ne plus devoir payer ce service et avoir une fonctionnalité fonctionnelle. L’extension Imagick pour la conversion de PNG et Ghostscript pour la lecture de fichier PDF ont finalement été choisi. La grande majorité des librairies se reposent directement sur ces deux extensions et les autres librairies étaient plus axés sur la génération de fichier PDF à partir de code HTML ou de fonction PHP.
+
Depuis janvier 2022, l’API du service CloudConvert, utilisé pour la conversion des fichiers au format PNG pour la prévisualisation, n’est plus disponible et une migration vers leur nouvelle API était nécessaire. Dans un premier temps, un travail de recherche a été effectué pour faire un état de l’art des libraires, packages et/ou extensions disponible pour le traitement de fichiers de PDF, en évitant l’utilisation d’un nouveau service en ligne, pour remplacer le service de CloudConvert pour ne plus devoir payer ce service et avoir une fonctionnalité fonctionnelle. L’extension Imagick pour la conversion de PNG et Ghostscript pour la lecture de fichier PDF a finalement été choisie. La grande majorité des librairies se reposent directement sur ces deux extensions et les autres librairies étaient plus axées sur la génération de fichier PDF à partir de code HTML ou de fonction PHP.
Un autre état de l’art des libraires, packages et/ou extensions disponible pour le traitement de fichiers Excel a été réalisé. Le choix s'est porté sur un package permettant la conversion de fichier Excel à PDF puis une réutilisation de la fonctionnalité de conversion de PDF a PNG de Imagick.
+
Un autre état de l’art des libraires, packages et/ou extensions disponible pour le traitement de fichiers Excel a été réalisé. Le choix s'est porté sur un package permettant la conversion de fichier Excel à PDF puis une réutilisation de la fonctionnalité de conversion de PDF à PNG de Imagick.
   
 
- Remplacement de l’API sendgrid (plus à jour) par SMTP pour l’envoi des relances de livrable
 
- Remplacement de l’API sendgrid (plus à jour) par SMTP pour l’envoi des relances de livrable
Line 74: Line 74:
   
 
- Modification de scripts de développement : un script nommé edc a été modifié pour permettre de supprimer les volumes docker associés à EDCampus et vérifier que les ports utilisés par les dockers étaient bien disponibles sur la machine.
 
- Modification de scripts de développement : un script nommé edc a été modifié pour permettre de supprimer les volumes docker associés à EDCampus et vérifier que les ports utilisés par les dockers étaient bien disponibles sur la machine.
 
   
 
== Gestion de projet ==
 
== Gestion de projet ==
Line 98: Line 97:
 
- [https://www.jetbrains.com/fr-fr/phpstorm/ PhpStorm] : IDE utilisé pour développer le code
 
- [https://www.jetbrains.com/fr-fr/phpstorm/ PhpStorm] : IDE utilisé pour développer le code
   
- [https://www.vmware.com/fr/products/workstation-pro/workstation-pro-evaluation.html VMWare Workstation] : Outils de création de machine virtuelle pour simuler un Ubuntu.
+
- [https://www.vmware.com/fr/products/workstation-pro/workstation-pro-evaluation.html VMWare Workstation] : Outils de création de machines virtuelles pour simuler un Ubuntu.
   
- CI /CD : Mise en place sur le GitLab par des anciens étudiants, mais ne marche pas.
+
- CI /CD : Mise en place sur le GitLab par d’anciens étudiants, mais ne marche pas.
   
== Métriques logiciels ==
+
== Métriques logicielles ==
=== Ligne de code modifiées : ===
+
=== Lignes de code modifiées ===
 
3762
 
3762
=== Langages : ===
+
=== Langages ===
 
JS, HTML, CSS, PHP, SQL
 
JS, HTML, CSS, PHP, SQL
=== Temps ingénieur : ===
+
=== Temps ingénieur ===
 
Voir figure.
 
Voir figure.
=== Répartition de code, issues et commits en % entre membre : ===
+
=== Répartition de code, issues et commits en % entre membres ===
 
Voir figure.
 
Voir figure.
   
Line 124: Line 123:
 
- Projet ecom en parallèle (comparé aux autres années).
 
- Projet ecom en parallèle (comparé aux autres années).
   
=== Apport personnel : ===
+
=== Apport personnel ===
 
- Apprentissage de nouvelles technologies.
 
- Apprentissage de nouvelles technologies.
   
Line 132: Line 131:
   
 
- Exemple de projet réel et non de projet scolaire: le code n’est pas tout propre et nous ne partons pas de 0.
 
- Exemple de projet réel et non de projet scolaire: le code n’est pas tout propre et nous ne partons pas de 0.
=== Futur : ===
+
=== Futur ===
 
- Mettre en place de la CI/CD fonctionnelle, mettre en place des règles de codages, avoir un peu plus de documentation au niveau du code.
 
- Mettre en place de la CI/CD fonctionnelle, mettre en place des règles de codages, avoir un peu plus de documentation au niveau du code.
   
Line 146: Line 145:
 
- [https://gricad-gitlab.univ-grenoble-alpes.fr/edcampus Git EDCampus]
 
- [https://gricad-gitlab.univ-grenoble-alpes.fr/edcampus Git EDCampus]
   
- Graphiques de contribution : Lucas Drezet
+
- Graphiques de contribution : Lucas DREZET

Revision as of 22:51, 17 March 2022

Rapport EDCampus 2021/2022

Rappel du sujet

EDCampus, initialement Waza Education et racheté par l’UGA pour la modique somme de 20 000€, est un projet de développement open source et collaboratif d’une plateforme web de gestion de projets pour les enseignants, les étudiants et les entreprises. En rachetant ce projet, l’UGA a fait l’acquisition d’un projet de 3 ans de développement pour l’équivalent d’un salaire d’ingénieur de 4 mois. La plateforme contient un ensemble de fonctionnalités pour faciliter la gestion de projet Agile et la gestion de projet parallèle pour les enseignants. On peut citer parmi les fonctionnalités importantes:

- L’héritage de création de projets qui permet à un enseignant de créer et mettre à jour rapidement un ensemble de projets étudiants identique.

- Un partage de dossier, fichier et de liens externes.

- Un kanban Agile pour le suivi de projet pour la manipulation des tâches.

- Un calendrier avec des événements pour le suivi de l’évolution du projet et l’avancement des tâches.

- Un outil de chat instantané pour la communication dans un groupe.

- Un outil de tableau blanc pour faciliter les sessions créatives.

EDCampus c’est plus de 2400 comptes utilisateurs, 500 utilisateurs actifs, plus de 500 projets, un ensemble de 11 projets de contribution étudiante (de 2019 à 2022) venant de Polytech Grenoble, de l’IUT Valence et de l’Université de Haute-Alsace.

Le but de notre projet est de rejoindre les contributeurs d’EDCampus pour maintenir l’application en corrigeant les bugs remontés par les utilisateurs, en développant de nouvelles fonctionnalités ou en modifiant des fonctionnalités déjà existantes.

Notre équipe est composée de 4 contributeurs (Kévin, Liam Lucas, Roman), d’un chef de projet (Lucas) ainsi que d’un ScrumMaster (Roman). L’objectif décrit par notre porteur en plus d’apporter notre contribution au projet et d’avoir appris de nouvelle chose, que ce soit sur la méthodologie employée ou les technologies utilisées sur le projet.

Technologies

Frontend

- Angular

- HTML/CSS/JS

- NodeJS

Backend

- PHP

- MySQL

- Docker

Projet

- Git

Architecture technique

[Image architecture de communication]

Le projet EDCampus utilise la dockerisation pour utiliser un ensemble d'outils utilisant des technologies différentes et faciliter l'installation et le développement de l’application. Nous avons un script qui regroupe différentes commandes pour gérer les dockers du projet. Nous avons plusieurs containers docker : 1 pour la base de données, 1 pour le chat, 1 pour le tableau blanc, 1 pour nginx, 1 pour le back + front, 1 pour phpMyAdmin. Ces dockers sont placés correctement via docker compose.

Réalisations techniques

Ce projet aura été un total de 23 tâches réalisées. Celles-ci comprennent des fixes de bug, de nouvelles features et des améliorations de l'existant.

Correction de bugs

- Fermeture du menu d’information en cas de suppression d’un fichier.

- Code d’un projet/portefeuille non enregistré lors de sa création.

- Thème d’un projet/portefeuille marqué non défini sur la page principal de celui-ci.

- Correction de la prévisualisation des fichiers: Depuis janvier 2022, l’API du service CloudConvert, utilisé pour la conversion des fichiers au format PNG pour la prévisualisation, n’est plus disponible et une migration vers leur nouvelle API était nécessaire. Dans un premier temps, un travail de recherche a été effectué pour faire un état de l’art des libraires, packages et/ou extensions disponible pour le traitement de fichiers de PDF, en évitant l’utilisation d’un nouveau service en ligne, pour remplacer le service de CloudConvert pour ne plus devoir payer ce service et avoir une fonctionnalité fonctionnelle. L’extension Imagick pour la conversion de PNG et Ghostscript pour la lecture de fichier PDF a finalement été choisie. La grande majorité des librairies se reposent directement sur ces deux extensions et les autres librairies étaient plus axées sur la génération de fichier PDF à partir de code HTML ou de fonction PHP. Un autre état de l’art des libraires, packages et/ou extensions disponible pour le traitement de fichiers Excel a été réalisé. Le choix s'est porté sur un package permettant la conversion de fichier Excel à PDF puis une réutilisation de la fonctionnalité de conversion de PDF à PNG de Imagick.

- Remplacement de l’API sendgrid (plus à jour) par SMTP pour l’envoi des relances de livrable

Nouvelles fonctionnalités

- Ajout de l’envoi d’un mail à chaque invité dans un projet et/ou portefeuille.

- Recherche de fichiers/dossiers/liens dans la section Fichiers d’un projet/portefeuille.

- Activer/Désactiver une option pour les projets/portefeuilles.

Amélioration de l’existant

- Amélioration de formulaires sur plusieurs pages.

- Amélioration du visuel de la section Fichiers d’un projet.

- Modification de scripts de développement : un script nommé edc a été modifié pour permettre de supprimer les volumes docker associés à EDCampus et vérifier que les ports utilisés par les dockers étaient bien disponibles sur la machine.

Gestion de projet

Méthode

Nous avons utilisé la méthodologie Agile Scrum avec des sprints de 1~2 semaines à l’issue desquels nous avions une réunion rétrospective afin de discuter de l’avancement/blocage de chacun.

L’équipe

- PO/Porteur : Anthony GEOURJON

- "Chef de projet" : Lucas DREZET

- Scrum Master : Roman REGOUIN

- Contributeurs : Liam ANDRIEUX, Kévin COSOTTI, Lucas DREZET, Roman REGOUIN (et Anthony GEOURJON)

Outils

- GitLabUGA : Plateforme utilisée pour la visualisation du code, utilisation d’un kanban pour visualiser les différentes issues, objectifs et la répartition du travail.

- Disord : Plateforme utilisée pour communiquer entre nous hors réunions. Nous avons pu faire des appels vocaux, des partages d'écrans et des envois de messages.

- PhpStorm : IDE utilisé pour développer le code

- VMWare Workstation : Outils de création de machines virtuelles pour simuler un Ubuntu.

- CI /CD : Mise en place sur le GitLab par d’anciens étudiants, mais ne marche pas.

Métriques logicielles

Lignes de code modifiées

3762

Langages

JS, HTML, CSS, PHP, SQL

Temps ingénieur

Voir figure.

Répartition de code, issues et commits en % entre membres

Voir figure.

[Images des graphiques]

Conclusion

Difficultés rencontrées :

- Code parfois mal documenté.

- Mise en place du Debugger Backend sous WSL (Windows Subsystem Linux).

- Manque de motivation pour certains membres.

- Projet ecom en parallèle (comparé aux autres années).

Apport personnel

- Apprentissage de nouvelles technologies.

- Satisfaction d’avoir pu apporter notre aide à un projet concret et durable.

- Compétences acquises : savoir se retrouver dans le code d’un projet créé par d’autres personnes.

- Exemple de projet réel et non de projet scolaire: le code n’est pas tout propre et nous ne partons pas de 0.

Futur

- Mettre en place de la CI/CD fonctionnelle, mettre en place des règles de codages, avoir un peu plus de documentation au niveau du code.

- Certaines parties du projet sont trop compliquées à maintenir et donc refaire quelque chose de 0 serait plus simple.

- Faire un état de l’application: code obsolète, utilisé, non documenté et peut être mettre une personne à plein temps pour mettre à jour l’application, quitte à mettre en pause le développement et/ou l’utilisation de certaines fonctionnalités.

Démonstration

Glossaire

Bibliographie

- Git EDCampus

- Graphiques de contribution : Lucas DREZET