Difference between revisions of "Rapport EDCampus 2021-2022"

From air
Jump to navigation Jump to search
 
(13 intermediate revisions by 2 users not shown)
Line 1: Line 1:
# EdCampus 2021 - 2022
+
= Rapport EDCampus 2021/2022=
   
1. [Rappel du sujet](#rappel-du-sujet)
+
== Rappel du sujet ==
2. [Technologies employées](#technologies)
 
3. [Architecture techniques](#architecture-technique)
 
4. [Réalisations techniques](#réalisations-techniques)
 
5. [Gestion de projet](#gestion-de-projet)
 
6. [Outils](#outils)
 
7. [Métriques logiciels](#metriques-logiciels)
 
8. [Conclusion](#conclusion)
 
9. [Démonstration](#demonstration)
 
10. [Glossaire](#glossaire)
 
11. [Bibliographie](#bibliographie)
 
   
  +
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:
## Rappel du sujet
 
   
  +
* 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.
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:
 
  +
* Un partage de dossier, fichier et de liens externes.
- 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.
 
  +
* Un kanban Agile pour le suivi de projet pour la manipulation des tâches.
- 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 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.
- 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 ==
  +
=== Frontend ===
  +
* [https://angular.io/ Angular]
  +
* HTML/CSS/JS
  +
* [https://nodejs.org/en/ NodeJS]
  +
=== Backend ===
  +
* [https://www.php.net/ PHP]
  +
* [https://www.mysql.com/fr/ MySQL]
  +
* [https://www.docker.com/ Docker]
  +
=== Projet ===
  +
* [https://git-scm.com/ Git]
   
  +
== Architecture technique ==
## Technologies
 
  +
[[File:ArchitectureEDCampus.png]]
   
  +
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.
- FrontEnd :
 
- [Angular](#https://angular.io/)
 
- HTML/CSS/JS
 
- [NodeJS](#https://nodejs.org/en/)
 
- BackEnd :
 
- [PHP](#https://www.php.net/)
 
- [MySQL](#https://www.mysql.com/fr/)
 
- [Docker](#https://www.docker.com/)
 
- Projet :
 
- [Git](#https://git-scm.com/)
 
   
  +
== Réalisations techniques ==
## Architecture technique
 
   
  +
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.
[Image arichtecture de communication]
 
   
  +
=== Correction de bugs ===
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.
 
  +
* 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 ===
## Réalisations techniques
 
  +
* 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.
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.
 
  +
* Activer/Désactiver une option pour les projets/portefeuilles.
   
  +
=== Amélioration de l’existant ===
- Correction de bugs :
 
  +
* Amélioration de formulaires sur plusieurs pages.
- fermeture du menu d’information en cas de suppression d’un fichier.
 
  +
* Amélioration du visuel de la section Fichiers d’un projet.
- code d’un projet/portefeuille non enregistré lors de sa création.
 
  +
* 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.
- 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 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.
 
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.
 
- Remplacement de l’API sendgrid (plus à jour) par SMTP pour l’envoi des relances de livrable
 
   
  +
== Gestion de projet ==
- 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.
 
   
  +
=== Méthode ===
- Amélioration de l’existant :
 
  +
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.
- 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.
 
   
  +
=== 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 ==
## Gestion de projet
 
  +
* [https://gricad-gitlab.univ-grenoble-alpes.fr/ 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.
  +
* [https://discord.com/ 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.
  +
* [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 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 ==
- 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.
 
  +
=== Lignes de code modifiées ===
  +
3762
  +
=== Langages ===
  +
JS, HTML, CSS, PHP, SQL
  +
=== Temps ingénieur ===
  +
[[File:COCOMOEDCampus.png]]
   
  +
=== Répartition de code, issues et commits en % entre membres ===
- L’équipe :
 
  +
[[File:RépartitionLignesIssuesCommitsEDCampus.png]]
- 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)
 
   
  +
[[File:RépartitionGrapheLignesIssuesEDCampus.png]]
## Outils
 
   
  +
[[File:RépartitionGrapheCommitsEDCampus.png]]
- [GitLabUGA](#https://gricad-gitlab.univ-grenoble-alpes.fr/) : 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.
 
   
  +
== Conclusion ==
- [Disord](#https://discord.com/) : 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.
 
  +
=== 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 ===
- [PhpStorm](#https://www.jetbrains.com/fr-fr/phpstorm/) : IDE utilisé pour développer le code
 
  +
* 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 ==
- [VMWare Workstation](#https://www.vmware.com/fr/products/workstation-pro/workstation-pro-evaluation.html) : Outils de création de machine virtuelle pour simuler un Ubuntu.
 
  +
* [https://drive.google.com/file/d/1VCSwZkM7Ti66-ZsQ7CySSa1qPKYFA2jT/view?usp=sharing Envoi des mails] : envoi des mails lors de l’ajout d’un membre à un projet et à un portefeuille ; lors de l’envoi d’un message aux membre d’un projet/portefeuille.
  +
* [https://drive.google.com/file/d/1aDD6iBTESPEWuMRnzoDF5nuHszzrp_l7/view?usp=sharing Prévisualisation des fichiers] : prévisualisation des fichiers dont le format est pris en compte (PNG, xlsx, pdf) et pas pris en compte.
  +
* [https://drive.google.com/file/d/1DF-5okBRjqmfFrWlb2ZmE716jwer9ht7/view?usp=sharing Recherche dans la section ''Fichiers''] : utilisation de la barre de recherche dans la section ''Fichiers'' des projets et/ou portefeuille pour rechercher des liens, fichiers et dossiers.
   
  +
== Glossaire ==
- CI /CD : Mise en place sur le GitLab par des anciens étudiants, mais ne marche pas.
 
  +
* CI/CD : Continuous Integration / Continuous Deployment, processus d'automatisations de différentes tâches comme par exemple le lancement de test et la création et déploiement de livrable.
  +
* Bug : Erreur provoquant le non fonctionnement du site comme espéré
  +
* Débugger : Exécuter le code pas à pas pour trouver les erreurs et les corriger
  +
* Frontend : Partie visuelle du site avec lequel l'utilisateur interagis
  +
* Backend : Partie serveur du site qui traite les informations
  +
* Issue : Tâche devant être réalisée lors d'un sprint
  +
* Sprint : Période de travail pendant laquelle on réalise des tâches et des réunions de suivi
  +
* API : Application Programming Interface, interface permettant la lisaison entre 2 produits/services pour échanger des données et fonctionnalités
  +
* PO : Product Owner, responsable de la définition et de la conception d'un produit
  +
* Scrum master : anime les séances Scrum
   
  +
== Bibliographie ==
## Métriques logiciels
 
  +
* [https://platform-edcampus.univ-grenoble-alpes.fr/ EDCampus]
  +
* [https://gricad-gitlab.univ-grenoble-alpes.fr/edcampus Git EDCampus]
  +
* [https://air.imag.fr/images/c/ca/Soutenance_interm%C3%A9diaire_-_EDCampus_2021-2022.pdf Présentation de mi-parcours]
  +
* [https://air.imag.fr/images/2/23/Soutenance_finale_-_EDCampus.pdf Présentation finale FR]
  +
* [https://air.imag.fr/images/5/5a/Soutenance_finale_EN_-_EDCampus.pdf Final Presentation EN]
  +
* [https://air.imag.fr/images/0/00/PosterFREDCampus20212022.pdf Poster FR]
  +
* [https://air.imag.fr/images/d/df/EDCampus_-_2021_2022.pdf Poster EN]
  +
* [https://air.imag.fr/images/d/d5/PitchEDCampus20212022.pdf Pitch]
   
- ligne de code ajoutés : 3762
 
- langages : JS, HTML, CSS, PHP, SQL
 
- temps ingénieur :
 
- répartition de code et commits en % entre membre : Voir figure.
 
   
  +
* Graphiques de contribution : Lucas DREZET
[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
 
 
- Lien Git : https://gricad-gitlab.univ-grenoble-alpes.fr/edcampus
 
- Graphiques de contribution : Lucas Drezet
 

Latest revision as of 08:26, 18 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

Backend

Projet

Architecture technique

ArchitectureEDCampus.png

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

COCOMOEDCampus.png

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

RépartitionLignesIssuesCommitsEDCampus.png

RépartitionGrapheLignesIssuesEDCampus.png

RépartitionGrapheCommitsEDCampus.png

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

  • Envoi des mails : envoi des mails lors de l’ajout d’un membre à un projet et à un portefeuille ; lors de l’envoi d’un message aux membre d’un projet/portefeuille.
  • Prévisualisation des fichiers : prévisualisation des fichiers dont le format est pris en compte (PNG, xlsx, pdf) et pas pris en compte.
  • Recherche dans la section Fichiers : utilisation de la barre de recherche dans la section Fichiers des projets et/ou portefeuille pour rechercher des liens, fichiers et dossiers.

Glossaire

  • CI/CD : Continuous Integration / Continuous Deployment, processus d'automatisations de différentes tâches comme par exemple le lancement de test et la création et déploiement de livrable.
  • Bug : Erreur provoquant le non fonctionnement du site comme espéré
  • Débugger : Exécuter le code pas à pas pour trouver les erreurs et les corriger
  • Frontend : Partie visuelle du site avec lequel l'utilisateur interagis
  • Backend : Partie serveur du site qui traite les informations
  • Issue : Tâche devant être réalisée lors d'un sprint
  • Sprint : Période de travail pendant laquelle on réalise des tâches et des réunions de suivi
  • API : Application Programming Interface, interface permettant la lisaison entre 2 produits/services pour échanger des données et fonctionnalités
  • PO : Product Owner, responsable de la définition et de la conception d'un produit
  • Scrum master : anime les séances Scrum

Bibliographie


  • Graphiques de contribution : Lucas DREZET