MINI-PROJET
Introduction
L'objectif de ce projet est de mettre en pratique les compétences acquises lors du semestre 5,
notamment dans les cours d'ACSI, POO, Programmation web, et Management des SI. La
réalisation de ce projet implique la mise en place d'une chaîne DevOps pour automatiser le
processus de développement.
Étapes du Projet
1. Configuration du Projet sous Jira
a. Création du Projet
1. Le responsable du groupe (moi) doit créer un projet sous Jira et inviter les autres
membres de son équipe.
2. Invitez également l'adresse suivante : joelminka@[Link].
b. Ajout des User Stories
Ajoutez au moins 10 user stories à votre backlog produit.
interface de création de story
User story écrits :
User Story 1: Inscription d'un utilisateur
Titre :
Inscription d'un utilisateur
Description :
En tant que nouveau visiteur,
je veux pouvoir m'inscrire en fournissant un nom d'utilisateur, un mot de passe et une
adresse e-mail,
afin de créer un compte et accéder aux fonctionnalités de l'application.
Critères d'acceptation :
Le visiteur peut fournir un nom d'utilisateur unique, un mot de passe sécurisé et une
adresse e-mail valide.
Un e-mail de confirmation est envoyé à l'adresse fournie.
Le compte est activé après confirmation de l'adresse e-mail.
User Story 2: Connexion d'un utilisateur
Titre :
Connexion d'un utilisateur
Description :
En tant qu'utilisateur inscrit,
je veux pouvoir me connecter en utilisant mon nom d'utilisateur et mon mot de passe,
afin d'accéder à mon compte personnel.
Critères d'acceptation :
L'utilisateur peut entrer son nom d'utilisateur et son mot de passe.
Le système authentifie l'utilisateur et lui permet d'accéder à son compte.
En cas d'échec de l'authentification, un message d'erreur approprié est affiché.
User Story 3: Réinitialisation du mot de passe
Titre :
Réinitialisation du mot de passe
Description :
En tant qu'utilisateur,
je veux pouvoir réinitialiser mon mot de passe en cas d'oubli,
afin de récupérer l'accès à mon compte.
Critères d'acceptation :
L'utilisateur peut demander la réinitialisation du mot de passe en fournissant son
adresse e-mail.
Un e-mail avec un lien de réinitialisation est envoyé à l'utilisateur.
L'utilisateur peut définir un nouveau mot de passe via le lien de réinitialisation.
User Story 4: Mise à jour des informations de profil
Titre :
Mise à jour des informations de profil
Description :
En tant qu'utilisateur,
je veux pouvoir mettre à jour mes informations personnelles (nom, e-mail, mot de
passe),
afin de maintenir mon profil à jour.
Critères d'acceptation :
L'utilisateur peut accéder à une page de profil où il peut modifier ses informations
personnelles.
Les modifications sont enregistrées et mises à jour dans le système.
Un message de confirmation est affiché après la mise à jour.
User Story 5: Visualisation de la liste des utilisateurs
Titre :
Visualisation de la liste des utilisateurs
Description :
En tant qu'administrateur,
je veux pouvoir voir une liste de tous les utilisateurs inscrits,
afin de gérer les comptes utilisateurs.
Critères d'acceptation :
L'administrateur peut accéder à une page listant tous les utilisateurs inscrits.
Les informations affichées incluent le nom d'utilisateur, l'e-mail et la date
d'inscription.
La liste est paginée pour faciliter la navigation.
User Story 6: Recherche d'utilisateurs
Titre :
Recherche d'utilisateurs
Description :
En tant qu'administrateur,
je veux pouvoir rechercher des utilisateurs par nom d'utilisateur ou adresse e-mail,
afin de trouver rapidement des comptes spécifiques.
Critères d'acceptation :
Un champ de recherche est disponible sur la page de liste des utilisateurs.
L'administrateur peut entrer un nom d'utilisateur ou une adresse e-mail pour
rechercher des utilisateurs.
Les résultats de la recherche sont affichés en temps réel ou après soumission du
formulaire.
User Story 7: Suppression de comptes utilisateurs
Titre :
Suppression de comptes utilisateurs
Description :
En tant qu'administrateur,
je veux pouvoir supprimer des comptes utilisateurs,
afin de gérer les utilisateurs indésirables ou inactifs.
Critères d'acceptation :
L'administrateur peut sélectionner un utilisateur dans la liste et choisir de supprimer le
compte.
Un message de confirmation est demandé avant la suppression.
L'utilisateur est définitivement supprimé du système après confirmation.
User Story 8: Attribution de rôles utilisateurs
Titre :
Attribution de rôles utilisateurs
Description :
En tant qu'administrateur,
je veux pouvoir attribuer des rôles (utilisateur, administrateur) à des comptes,
afin de contrôler les permissions et les accès.
Critères d'acceptation :
L'administrateur peut accéder à une page de gestion des rôles.
Les rôles peuvent être attribués ou modifiés pour chaque utilisateur.
Les changements de rôle sont enregistrés et mis à jour dans le système.
User Story 9: Notifications par e-mail
Titre :
Notifications par e-mail
Description :
En tant qu'utilisateur,
je veux recevoir des notifications par e-mail pour les événements importants
(inscription, réinitialisation de mot de passe, etc.),
afin de rester informé de l'activité de mon compte.
Critères d'acceptation :
Un e-mail est envoyé à l'utilisateur lors de l'inscription, de la réinitialisation du mot de
passe, et des mises à jour du profil.
Les e-mails contiennent des informations claires et des liens pertinents pour
l'utilisateur.
User Story 10: Tableau de bord utilisateur
Titre :
Tableau de bord utilisateur
Description :
En tant qu'utilisateur,
je veux pouvoir accéder à un tableau de bord après ma connexion,
afin de voir un résumé de mes activités et des informations importantes.
Critères d'acceptation :
L'utilisateur est redirigé vers un tableau de bord après la connexion.
Le tableau de bord affiche des informations pertinentes telles que l'historique des
connexions, les notifications récentes, et les paramètres du compte.
Le design du tableau de bord est clair et facile à naviguer.
c. Création du Sprint 0
Le Sprint 0 doit inclure les tâches suivantes :
Installation des environnements : PHP, MySQL, etc.
Analyse et conception : Créer les diagrammes Merise (MCD, MLD, etc.) ou UML
(cas d'utilisation, classe, etc.). Ajouter les documents produits comme pièces jointes
des tâches correspondantes.
Élaboration du script de création de la base de données : Ajouter le script produit
comme pièce jointe de la tâche correspondante.
Création et configuration du projet sous GitLab : Lier le projet sous Jira avec
GitLab (optionnel).
Configuration de SonarQube (voir section 3).
Configuration d’un pipeline CI/CD (voir section 4).
Image du sprint 0
2. Création et Configuration du Projet sous GitLab
3. Créez un groupe sous GitLab et ajoutez les membres de votre équipe à ce groupe.
Interface de création de groupe
4. Créez un projet sous le namespace de votre groupe.
Interface de création de projet
Interface du groupe et du projet
5. Chaque membre de l’équipe doit cloner le projet sur sa machine locale.
git clone [Link]
3. Configuration de SonarQube
6. Créez un nouveau projet sous SonarQube.
7. Configurez votre projet et récupérez la commande nécessaire au scan.
Projet crée et scanner
4. Ajout d’un Pipeline CI/CD
Configuration de GitLab CI/CD
Ajoutez un Runner à votre projet GitLab et configurez le fichier .[Link] pour
qu’il se compose de trois stages :
8. initiation : Affichant un message d’initialisation du pipeline.
9. tests-unitaires : Lançant les tests unitaires.
10. qualite-du-code : Lançant l’analyse avec sonar scanner.
Voici un exemple de fichier .[Link] :
image: php:8.2
stages:
- initiation
- tests-unitaires
- qualite-du-code
initiation-job:
stage: initiation
script:
- echo "Initialisation du pipeline"
tests-unitaires-job:
stage: tests-unitaires
before_script:
- apt-get update && apt-get install -y git unzip
- curl -sS [Link] | php
- mv [Link] /usr/local/bin/composer
- composer install
- pecl install xdebug
- docker-php-ext-enable xdebug
- chmod +x vendor/bin/phpunit
script:
- vendor/bin/phpunit
qualite-du-code-job:
stage: qualite-du-code
allow_failure: true
before_script:
- apt-get update && apt-get install -y openjdk-17-jdk wget unzip # ou openjdk-17-jdk si vous avez besoin du JDK
- wget -O [Link] [Link]
[Link]
- unzip [Link]
- export PATH="$PATH:$(pwd)/sonar-scanner-4.6.2.2472-linux/bin"
script:
- sonar-scanner -D"[Link]=true" -D"[Link]=Mon_projet" -D"[Link]=." -
D"[Link]=[Link] -D"[Link]=sqp_897240b91b22dbeb72a57b4161b15937681b19e9"
Interface de creation de runners sur gitlab:
Interface du runner sur gitlab:
Pipeline result:
Le résultat final est négatif car il est impossible pour un terminal virtuel distante de ce
permettre d’acceder au localhost d’un terminal.
5. Planification d’un Sprint
a. Ajout des User Stories
Ajoutez trois à quatre user stories à votre sprint.
1. Ajout des user stories :
o Installation des environnements : php, mysql, etc.
o Analyse et conception : création des diagrammes Merise/UML.
o Élaboration du script de création de la base de données.
o Création et configuration du projet sous GitLab.
o Configuration de SonarQube.
o Configuration d'un pipeline CI/CD.
b. Décomposition des User Stories
Décomposez les user stories en tâches et estimez la durée de réalisation de chaque tâche. La
tâche d’écriture des tests unitaires est à prévoir parmi les tâches.
User Story: Installation des environnements
o Tâche 1: Installer PHP.
o Tâche 2: Installer MySQL.
o Tâche 3: Configurer l'environnement de développement local.
User Story: Analyse et conception
o Tâche 1: Créer les diagrammes Merise (MCD, MLD).
o Tâche 2: Créer les diagrammes UML (cas d’utilisation, classes).
User Story: Élaboration du script de création de la base de données
o Tâche 1: Écrire le script SQL de création des tables.
o Tâche 2: Tester le script sur l'environnement de développement.
User Story: Création et configuration du projet sous GitLab
o Tâche 1: Créer le dépôt GitLab.
o Tâche 2: Configurer les accès et les permissions.
User Story: Configuration de SonarQube
o Tâche 1: Installer SonarQube.
o Tâche 2: Configurer le projet dans SonarQube.
User Story: Configuration d'un pipeline CI/CD
o Tâche 1: Écrire le fichier .[Link].
o Tâche 2: Tester et valider le pipeline.
d. Démarrage du Sprint
Démarrez le sprint avec une durée d’une semaine.
Sprint après démarrage: