Skip to content

Application de gestion de projets Sprindo avec une structure MVC

Notifications You must be signed in to change notification settings

nicolv23/Sprindo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

225 Commits
 
 
 
 
 
 

Repository files navigation

inf2050-a2025

Sprindo – Gestionnaire de projets en Java

Sprindo est un gestionnaire de projets développé en Java.
Ce projet vise à démontrer l’application de bonnes pratiques de développement logiciel, en mettant l’accent sur :

  • Intégration Continue et Déploiement Automatisé (CI/CD) :
    Mise en place d’un pipeline automatisé pour compiler, tester et générer la documentation du projet à chaque push ou Merge Request, garantissant la stabilité du code et l’automatisation des tâches répétitives.

  • Tests Avancés et Assurance Qualité :
    Implémentation de tests unitaires, tests d’intégration et tests de mutation pour assurer la robustesse de la base de code. Utilisation de JUnit 4, Failsafe, Surefire, et PITest pour mesurer la couverture et l’efficacité des tests.

  • Analyse statique et qualité du code :
    Intégration d’outils d’analyse statique (Checkstyle, PMD, SpotBugs) pour détecter les violations de règles, les bugs potentiels et les problèmes de style avant même l’exécution des tests.

  • Automatisation de la documentation :
    Génération automatique de la JavaDoc et des rapports de tests à travers le pipeline CI/CD, facilitant la traçabilité et la compréhension du projet pour les membres de l’équipe et les évaluateurs.

  • Gestion Agile et collaboration en équipe :
    Suivi des tâches et planification via Jira, utilisation des Merge Requests protégées, et respect d’une stratégie de branchement professionnelle avec protection de la branche principale et historique préservé.

Ce projet constitue un exemple concret d’application des meilleures pratiques de développement logiciel, en combinant automatisation, tests avancés, analyses statiques et gestion agile.


Équipe

  • Nicolas David Lazarte Vela
  • Yehi Audrey Stephy Datcha
  • Fawzi Ouakkouche

Le projet Sprindo a pour objectif de fournir un gestionnaire de projets en Java intégrant des bonnes pratiques de développement logiciel :

  • Mise en place d'un pipeline CI/CD complet avec GitHub/GitLab pour automatiser les builds, tests et déploiement.
  • Intégration de tests de mutation avec PITest pour mesurer la qualité de la suite de tests.
  • Réalisation d'analyses statiques avec Checkstyle, PMD et SpotBugs pour assurer la qualité et la conformité du code.
  • Développement et exécution de tests unitaires et tests d’intégration avec JUnit 4, Surefire et Failsafe.
  • Publication automatique de la JavaDoc pour documenter le code source.
  • Protection de la branche principale et validation des modifications via Merge Requests.

Structure du Projet

Le projet est organisé de façon standard pour un projet Maven en Java avec intégration continue :

  • Code source : src/main/java
  • Tests unitaires : src/test/java
  • Tests d’intégration : src/integration-test/java
  • Pipeline CI/CD : .gitlab-ci.yml
  • Rapports générés : target/ (JaCoCo, PITest, Checkstyle, PMD, SpotBugs, JavaDoc)
  • Documentation et rapports PDF : docs/

Outils et technologies

  • Java 25 – langage principal du projet
  • Maven – gestion des dépendances et exécution des builds/tests
  • Git & GitHub/GitLab – gestion du code source et intégration continue
  • JUnit 5 – framework de tests unitaires
  • PITest – tests de mutation pour mesurer la robustesse des tests
  • JaCoCo – couverture de code
  • Checkstyle, PMD, SpotBugs – analyses statiques de code
  • Docker – pour l’environnement de build reproductible
  • Jira – gestion agile des sprints et suivi des tâches

Qualité du code & couverture

Les indicateurs principaux de qualité pour ce sprint sont :

  • Couverture de code JaCoCo : ≥ 90%
  • Tests de mutation PITest : 80% des mutants tués
  • Analyses statiques : 0 violation détectée (Checkstyle, PMD, SpotBugs)
  • Tests d’intégration et unitaires : 100% de réussite sur les cas testés

Tous les résultats sont générés automatiquement dans le pipeline CI/CD et accessibles dans le dossier target/.


Gestion Agile

Le projet est géré avec une méthodologie agile :

  • Backlog et suivi des tâches via Jira : Lien vers le board Jira
  • Merge Requests protégées avec pipeline obligatoire pour valider les modifications
  • Historique complet des commits et suivi des contributions de chaque membre

Rapports et documentation

Le projet produit automatiquement plusieurs rapports et documents pour le suivi de la qualité :

  • Rapports de tests unitaires et d’intégration (Surefire/Failsafe)
  • Rapports de couverture de code (JaCoCo)
  • Rapports de tests de mutation (PITest)
  • Analyses statiques (Checkstyle, PMD, SpotBugs)
  • JavaDoc générée automatiquement via le pipeline
  • Rapport PDF Sprint 3 disponible dans docs/rapport_sprint3.pdf

Notes importantes

  • L’ensemble du pipeline CI/CD est automatisé et déclenché à chaque push ou Merge Request.
  • Les artefacts générés incluent tous les rapports et la documentation pour assurer une traçabilité complète.
  • La branche principale est protégée pour garantir la qualité du code et la sécurité de l’historique.

About

Application de gestion de projets Sprindo avec une structure MVC

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages