AstroJSReactNodeJSMongoDB

20 Septembre 2023

Educa: Explore, Expand, Extract en resumé

Educa, page d'accueil
  • En résumé, le projet "Educa" a été développé pour valider ma certification de développeur web et web mobile. Il suit la méthodologie "Explore, Expand, Extract" de Kent Beck pour évoluer en fonction de la maturité du projet.

    La phase d'exploration a permis la création d'un blog AstroJS, tandis que la phase d'extension a ajouté de nombreuses fonctionnalités, répondant aux besoins des utilisateurs. Cependant, la phase d'extraction, visant à formaliser les connaissances acquises, n'a pas été menée à bien en raison de contraintes de temps et de ressources. Malgré cela, le projet illustre les défis et les opportunités du développement web, soulignant l'importance de l'adaptation dans le processus de développement.

Educa est le projet que j'ai développé pour valider ma certification développeur web•web mobile. Je me met dans la peau d'un professeur de mathématiques qui souhaite partager ses connaissances sur internet.

L’évolution du projet se base sur la méthode Explore, Expand, Extract de Kent Beck.

Suivant la maturité d’un projet, les critères de décision concernant l’architecture de l’application sont différents. Le projet de certification que j’ai choisi a pour but de mettre en lumière ces différences dans un projet moderne (numérique responsable) qui passerait par les trois étapes suivantes du cycle de vie d’un produit.

Explore

Dans la première phase, dite d'exploration, l’objectif principal est d’explorer le domaine et de comprendre les besoins du système. Cela implique une exploration approfondie des besoins des utilisateurs, des contrainte techniques et des objectifs de projet. L’accent est mis sur l’acquisition de connaissances et la recherche de solutions adaptées.

Le but premier du site est de partager les connaissances du professeur, on va donc permettre au professeur d'écrire des articles en format markdown et générer sur le blog les cartes et les pages correspondantes. Pour améliorer l'expérience des élèves sur le site, j'ai aussi développé un système de quiz généré à partir d'un fichier JSON à l'aide de javascript.

En conclusion, la phase Explore m’a permis de développer un blog AstroJS en offrant des fonctionnalités avancées. L'augmentation des visites/mois ont confirmé la nécessité de passer à la phase Expand, où je pourrai exploiter tout le potentiel de la stack MERN pour développer une application web plus riche, évolutive et personnalisée.

page d'accueil du site lors de la phase explore

Expand

Une fois que la phase d’exploration est terminée, la phase d’extension consiste à ajouter des fonctionnalités et à étendre les capacités du logiciel. Cela peut inclure la création de nouvelles fonctionnalités, l’amélioration des fonctionnalités existantes et l’adaptation aux changements et aux évolutions du domaine. L’objectif est de répondre aux besoins des utilisateurs de manière itérative et incrémentale.

Pour commencer la refonte de l'application, j'ai identifié plusieurs cas d'utilisation:

  • En tant qu'utilisateur je peux:
    • voir les articles publiés
    • voir les catégories
    • voir les article publiés filtrés par catégorie
    • voir les article publiés filtrés par auteur
  • En tant que professeur je peux:
    • écrire de nouveaux articles en tant que brouillons
    • voir tous mes articles, publiés ou brouillons
    • modifier mes articles existants
    • publier des articles
    • supprimer mes articles
  • En tant qu'administrateur je peux:
    • voir le nombre d'utilisateurs inscrits sur le site
    • voir le nombre total d'articles ainsi que le nombre d'articles publiés
    • valider le statut d'un professeur en attente de confirmation

Extract

La phase d’extraction se concentre sur l’extraction des connaissances et des bonnes pratiques acquises lors des phases précédentes. Il s’agit de capturer les modèles, les meilleures pratiques, les composants réutilisables et les leçons apprises. Cette phase vise à consolider et à formaliser les connaissances acquises afin de les rendre réutilisables dans d’autres projets ou contextes. Cette approche de Kent Beck peut être appliquée dans différents contextes de développement logiciel, et elle offre une perspective intéressante pour gérer efficacement l’évolution des systèmes.

Cependant, dans le contexte de mon projet "Educa", je dois admettre que la phase d'extraction n'a pas été menée à son terme, et la transformation prévue en une plateforme d'éducation sociale n'a pas eu lieu. Comme ce projet a été réalisé individuellement dans le cadre de mes études, j'ai dû gérer des contraintes de temps et de ressources limitées, ce qui a parfois rendu la réalisation complète du projet difficile.

Un exemple notable de cette évolution est notre blog initial sur Educa. À l'origine, j'avais planifié des fonctionnalités et des user stories spécifiques pour le blog, mais au fil du temps, ma vision s'est élargie, et une transformation en une plateforme d'éducation sociale était envisagé.

Quelques exemples de user stories qui ont évolué pendant cette phase d'expansion tronquée incluent :

    • Objectif:Les professeurs peuvent créer des articles de blog
    • Évolution (non réalisée):Les professeurs auraient dû pouvoir créer des articles, mais aussi des cours en ligne complets avec modules, des quiz, et des espaces de discussion pour une expérience d'apprentissage interactive
    • Objectif:Les utilisateurs peuvent voir les articles publiés.
    • Évolution (non réalisée): Les utilisateurs auraient dû pouvoir voir les articles, mais aussi les aimer, recommander des cours, noter les instructeurs, et suivre des profils d'experts en éducation.

Ces évolutions montrent comment l'expérience utilisateur et la valeur du projet auraient pu s'enrichir si j'avais eu plus de temps et de ressources pour le développer davantage. Cela souligne également l'importance de gérer les contraintes dans le cadre d'un projet étudiant, où les idées et les objectifs évoluent en fonction des ressources disponibles.