Cahier des Charges - ProjectHub

Cahier des Charges

CDC-PH 1124 JFX-VFINAL


Plateforme de Gestion de Projets Éducatifs


Version: 1.0

Auteur: BILAL EL KHATABI

Date: 25/12/2024


Introduction

Bienvenue ! ProjectHub est une plateforme que nous avons conçue pour vous aider à gérer les projets étudiants, évaluer les travaux et distribuer les sujets de manière plus efficace. L'idée est de simplifier et d'optimiser le travail, que vous soyez étudiant ou enseignant. Nous utilisons JavaFX, Spring Boot et PostgreSQL pour cela.

Objectifs

  • Gestion de projet simplifiée : Nous voulons vous offrir des outils faciles à utiliser pour créer, modifier et suivre vos projets.
  • Tâches organisées : La plateforme vous permet de répartir les tâches et de suivre leur avancement avec précision.
  • Ressources bien gérées : Nous nous assurons que les ressources sont utilisées de manière optimale.
  • Comptes sécurisés : La gestion des comptes utilisateurs est basée sur les rôles pour garantir la sécurité et la confidentialité.

Portée du Projet

Voici les grands axes que nous allons couvrir :

  1. Gestion des Projets : Création, suivi, etc.
  2. Gestion des Tâches : Assignation, suivi d'avancement, etc.
  3. Gestion des Ressources : Allocation, suivi d'utilisation, etc.
  4. Gestion des Comptes : Inscription, rôles, permissions, etc.

1. Gestion des Projets

Fonctionnalités

  • Éditer un Projet

    • Description : Les enseignants peuvent créer et modifier les détails des projets.
    • Actions :
      • Créer un nouveau projet avec des infos comme le nom, la description, les dates limites et les critères d'évaluation.
      • Modifier les détails d'un projet existant.
      • Supprimer un projet si besoin.
  • Lister les Projets

    • Description : Une liste de tous les projets disponibles.
    • Actions :
      • Voir les projets en cours et ceux qui sont terminés.
      • Filtrer les projets par statut, date ou autres critères.
  • Consulter les Détails d'un Projet

    • Description : Accéder aux détails complets d'un projet spécifique.
    • Actions :
      • Voir la description, les dates limites, les équipes assignées et les tâches associées.
      • Accéder aux documents et ressources liés au projet.

Tableau des Règles de Gestion

Règle ID Description de la Règle Conditions Actions
RG-001 Chaque projet doit avoir un nom unique. Lors de la création d'un projet. Vérifier que le nom n'existe pas déjà avant de sauvegarder.
RG-002 Les dates limites des projets doivent être dans le futur. Lors de la création ou modification. S'assurer que les dates limites ne sont pas passées.
RG-003 Seuls les enseignants peuvent créer ou modifier les projets. Contrôle d'accès. Restreindre les modifications aux utilisateurs autorisés.
RG-004 Un projet peut avoir plusieurs équipes assignées. Lors de l'assignation des équipes. Permettre l'ajout et la suppression d'équipes pour un projet.

2. Gestion des Tâches

Fonctionnalités

  • Créer et Assigner des Tâches

    • Description : Créer des tâches et les assigner aux membres de l'équipe.
    • Actions :
      • Définir le titre, la description, la priorité et les dates limites des tâches.
      • Assigner des tâches aux membres de l'équipe.
  • Suivre l'Avancement des Tâches

    • Description : Voir l'état d'avancement des différentes tâches.
    • Actions :
      • Mettre à jour le statut des tâches (À faire, En cours, Terminé).
      • Générer des rapports d'avancement.
  • Notifier les Membres des Équipes

    • Description : Envoyer des notifications lors de la création ou de la mise à jour des tâches.
    • Actions :
      • Envoyer des emails ou des notifications in-app.

Tableau des Règles de Gestion

Règle ID Description de la Règle Conditions Actions
RG-005 Chaque tâche doit être assignée à au moins un membre. Lors de la création d'une tâche. Obliger la sélection d'un membre lors de l'assignation.
RG-006 Les dates limites des tâches doivent être dans le cadre du projet. Lors de la définition des dates limites. S'assurer que la date limite d'une tâche est avant celle du projet.
RG-007 Les priorités des tâches doivent être définies (Haute, Moyenne, Basse). Lors de la création ou modification des tâches. Restreindre les options de priorité à celles proposées.
RG-008 Seuls les membres assignés peuvent modifier le statut des tâches. Contrôle d'accès. Autoriser uniquement les membres assignés à mettre à jour les statuts.

3. Gestion des Ressources

Fonctionnalités

  • Ajouter et Gérer les Ressources

    • Description : Ajouter les ressources nécessaires pour les projets.
    • Actions :
      • Ajouter des ressources matérielles et logicielles.
      • Gérer la disponibilité et l'allocation des ressources.
  • Suivre l'Utilisation des Ressources

    • Description : Suivre l'utilisation des ressources allouées aux projets.
    • Actions :
      • Générer des rapports sur l'utilisation des ressources.
      • Identifier les ressources sur-utilisées ou sous-utilisées.
  • Optimiser l'Allocation des Ressources

    • Description : Allouer efficacement les ressources en fonction des besoins des projets.
    • Actions :
      • Réassigner les ressources en cas de déséquilibre.
      • Planifier l'acquisition de nouvelles ressources si nécessaire.

Tableau des Règles de Gestion

Règle ID Description de la Règle Conditions Actions
RG-009 Une ressource ne peut être allouée qu'à un seul projet à la fois. Lors de l'allocation des ressources. Vérifier la disponibilité avant l'allocation.
RG-010 Les ressources doivent être enregistrées avec des détails complets. Lors de l'ajout des ressources. Obliger la saisie des informations (type, quantité, etc.).
RG-011 Les rapports d'utilisation doivent être générés mensuellement. Génération des rapports. Automatiser la création et la distribution des rapports.
RG-012 Seuls les administrateurs peuvent ajouter ou supprimer des ressources. Contrôle d'accès. Restreindre la gestion des ressources aux administrateurs.

4. Gestion des Comptes

Fonctionnalités

  • Inscription et Authentification des Utilisateurs

    • Description : Permettre aux utilisateurs de s'inscrire et de se connecter à la plateforme.
    • Actions :
      • Créer un compte avec les informations personnelles.
      • S'authentifier avec un nom d'utilisateur et un mot de passe.
  • Gestion des Rôles et Permissions

    • Description : Assurer que chaque utilisateur a les permissions appropriées selon son rôle.
    • Actions :
      • Attribuer des rôles (Administrateur, Enseignant, Étudiant).
      • Définir des permissions spécifiques pour chaque rôle.
  • Gestion des Profils Utilisateurs

    • Description : Permettre aux utilisateurs de gérer leurs profils.
    • Actions :
      • Modifier les informations du profil.
      • Réinitialiser le mot de passe.
      • Mettre à jour les préférences de notification.

Tableau des Règles de Gestion

Règle ID Description de la Règle Conditions Actions
RG-013 Les mots de passe doivent respecter une politique de sécurité. Lors de la création ou modification du mot de passe. Exiger des règles de complexité (longueur, caractères spéciaux, etc.).
RG-014 Les utilisateurs doivent confirmer leur email lors de l'inscription. Lors de l'inscription. Envoyer un email de confirmation et vérifier avant d'activer le compte.
RG-015 Seuls les administrateurs peuvent attribuer ou modifier les rôles. Gestion des rôles. Restreindre l'accès à la gestion des rôles aux administrateurs.
RG-016 Les sessions utilisateurs doivent expirer après une période d'inactivité. Sécurité des sessions. Configurer l'expiration automatique des sessions.
RG-017 Les critères d'évaluation des projets doivent être définis à la création. Configuration du projet. Exiger une grille d'évaluation avant l'activation du projet.
RG-018 Les notes finales doivent être approuvées par au moins deux enseignants. Soumission des notes. Bloquer la finalisation des notes jusqu'à une deuxième approbation.
RG-019 Les étudiants peuvent faire appel des notes dans un délai de 5 jours. Publication des notes. Activer une fenêtre d'appel avec un système de notification.
RG-020 Les équipes doivent avoir entre 2 et 6 membres. Formation des équipes. Valider la taille de l'équipe lors de la création et des modifications.
RG-021 Les étudiants ne peuvent être que dans une seule équipe par projet. Assignation des équipes. Vérifier les appartenances existantes avant d'ajouter à une équipe.
RG-022 Les chefs d'équipe doivent être élus par les membres de l'équipe. Configuration de l'équipe. Exiger un vote majoritaire pour la sélection du chef d'équipe.
RG-023 Les soumissions de projet doivent être dans des formats approuvés. Téléchargement des fichiers. Valider les types de fichiers par rapport à une liste blanche.
RG-024 Limite de taille des fichiers de 100MB par soumission. Validation des téléchargements. Appliquer une limite de taille avec une option de compression.
RG-025 Conserver l'historique des versions des fichiers pendant 30 jours. Gestion du stockage. Mettre en œuvre un système de contrôle de version.
RG-026 Avertissement des échéances critiques 48 heures à l'avance. Suivi du temps. Envoyer des rappels automatisés.
RG-027 Les membres de l'équipe sont notifiés de tous les changements de statut des tâches. Mises à jour des tâches. Envoyer des notifications aux utilisateurs concernés.
RG-028 Rapports d'avancement hebdomadaires aux enseignants. Rapports. Générer et envoyer des rapports automatisés.

5. Planning des Sprints

Sprint Dates Objectifs User Stories Règles de Gestion
Sprint 1 17/12/2024 - 31/12/2024
  • Mise en place initiale
  • Authentification et utilisateurs
  • Base de données
  • Configuration Spring Boot/Security
  • CRUD Utilisateurs
  • Gestion des rôles
RG-013, RG-014, RG-015, RG-016
Sprint 2 01/01/2025 - 14/01/2025
  • Gestion des projets
  • Gestion des équipes
  • Critères d'évaluation
  • CRUD Projets
  • CRUD Équipes
  • Configuration de l'évaluation
RG-001, RG-002, RG-003, RG-004, RG-017, RG-020, RG-021
Sprint 3 15/01/2025 - 29/01/2025
  • Gestion des tâches
  • Notifications
  • Rapports
  • CRUD Tâches
  • Système de notifications
  • Rapports hebdomadaires
RG-005, RG-006, RG-007, RG-008, RG-026, RG-027, RG-028

6. Architecture du Système

C4Context title Diagramme de Contexte du Système - ProjectHub Person_Ext(student, "Étudiant", "Participe aux projets") Person_Ext(teacher, "Enseignant", "Gère projets et évaluations") Person_Ext(admin, "Administrateur", "Administration système") System(projecthub, "ProjectHub", "Plateforme de Gestion de Projets Éducatifs") System_Ext(mailSystem, "Système Email", "Notifications") System_Ext(storageSystem, "Stockage", "Gestion fichiers") System_Ext(csvSystem, "Import/Export", "Gestion CSV") Rel(student, projecthub, "Consulte les projets, soumet son travail") Rel(teacher, projecthub, "Crée et gère les projets, évalue") Rel(admin, projecthub, "Administre les utilisateurs et les ressources") Rel(projecthub, mailSystem, "Envoie des notifications") Rel(projecthub, storageSystem, "Stocke les fichiers") Rel(projecthub, csvSystem, "Importe et exporte les données")

7. Gestion des Risques

%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#FFCC00', 'edgeLabelBackground': '#ffffee', 'secondaryColor': '#F8F8F8', 'tertiaryColor': '#B3B3B3', 'primaryTextColor': '#000000', 'lineColor': '#333333'}}}%% quadrantChart title Matrice des Risques x-axis Impact y-axis Probability quadrant-1 Monitoring quadrant-2 Major Risks quadrant-3 Minor Risks quadrant-4 Attention "Data Loss": [0.8, 0.9] "Security Breach": [0.9, 0.7] "Performance": [0.6, 0.5] "Downtime": [0.4, 0.8] "Integration": [0.5, 0.4] "Adoption": [0.7, 0.6]

Stratégies de Mitigation

Pour chaque risque identifié, nous avons défini des stratégies de mitigation appropriées afin de réduire l'impact potentiel sur le projet.

Tableau des Risques

Risque Impact Probabilité Mitigation
Perte de données Critique Moyenne
  • Sauvegardes automatiques quotidiennes
  • Réplication des données
  • Validation des sauvegardes
Faille de sécurité Critique Faible
  • Audits réguliers
  • Tests de pénétration
  • Chiffrement des données sensibles
Performance Modéré Moyenne
  • Surveillance continue
  • Tests de charge
  • Optimisation du code
Indisponibilité Élevé Faible
  • Architecture hautement disponible
  • Plan de reprise d'activité
  • Surveillance 24h/24 et 7j/7
Intégration Modéré Moyenne
  • Tests d'intégration automatisés
  • Documentation détaillée
  • Environnement de staging
Adoption Élevé Moyenne
  • Formation des utilisateurs
  • Support réactif
  • Feedback continu

Conclusion

Voilà, ce cahier des charges vous donne les grandes lignes de ProjectHub. En gérant efficacement les projets, les tâches, les ressources et les comptes, nous voulons que cette plateforme soit un outil facile à utiliser et sécurisé pour tout le monde.


Ce document est susceptible d'être mis à jour et ajusté en fonction de l'évolution du projet et de vos retours.