Cahier des Charges : Application de
Gestion des Absences des Étudiants
Objectif du Projet
Concevoir et développer une application web de gestion des absences des étudiants utilisant
Spring Boot. Cette application permettra de gérer les groupes, étudiants et matières, et de
suivre les absences des étudiants.
Fonctionnalités Principales
1. Gestion des Groupes
Création, lecture, mise à jour et suppression (CRUD) des groupes.
Champs requis pour chaque groupe :
o Nom du groupe (text).
o Spécialité (liste déroulante prédéfinie).
o Niveau (liste déroulante avec trois options représentant les semestres).
2. Gestion des Étudiants
Création, lecture, mise à jour et suppression (CRUD) des étudiants.
Champs requis pour chaque étudiant :
o Identifiant unique (généré automatiquement).
o Nom.
o Prénom.
o Email.
o Numéro de téléphone (facultatif).
Possibilité de rechercher et de filtrer les étudiants par nom, prénom ou email.
3. Gestion des Matières
Création, lecture, mise à jour et suppression (CRUD) des matières.
Champs requis pour chaque matière :
o Nom de la matière.
o Nombre d'heures.
Affectation des matières à un groupe et à une spécialité.
4. Gestion des Absences
Enregistrement des absences pour chaque étudiant par matière et par session.
Fonctionnalité de recherche et de filtrage des absences par :
o Nom du groupe.
o Spécialité.
o Nom de l’étudiant.
o Matière.
Spécifications Techniques
1. Technologies Utilisées
Backend : Spring Boot (Java).
Base de données : MySQL ou PostgreSQL.
Frontend : Thymeleaf ou Angular/React (selon les besoins).
Gestion des dépendances : Maven ou Gradle.
API : Implémentation d'une API REST pour les opérations CRUD et les
fonctionnalités associées.
2. Architecture
Architecture MVC (Modèle-Vue-Contrôleur).
Gestion des entités via JPA/Hibernate.
Sécurité : Intégration de Spring Security pour gérer l’authentification et les rôles
(admin, utilisateur).
3. Modélisation des Entités
Entité : Groupe
Champ Type Description
id Long Identifiant unique.
name String Nom du groupe.
specialite String Spécialité du groupe.
level String Niveau (semestre).
Entité : Étudiant
Champ Type Description
id Long Identifiant unique.
nom String Nom de l’étudiant.
prenom String Prénom de l’étudiant.
email String Adresse email.
numTlf String Numéro de téléphone.
Entité : Matière
Champ Type Description
id Long Identifiant unique.
name String Nom de la matière.
heures Integer Nombre d'heures.
Entité : Absence
Champ Type Description
id Long Identifiant unique.
etudiantId Long Référence à l’étudiant.
subjectId Long Référence à la matière.
date Date Date de l’absence.
Scénarios d'Utilisation
1. Administrateur
o Ajouter/modifier/supprimer des groupes, étudiants et matières.
o Consulter et gérer les absences.
2. Enseignant
o Marquer les absences des étudiants pour une matière donnée.
o Consulter la liste des étudiants absents pour une session.
Contraintes
L’interface utilisateur doit être intuitive et réactive.
L’application doit être extensible pour intégrer de nouvelles fonctionnalités à l’avenir.
Le système doit être sécurisé (gestion des sessions, protection contre les attaques
CSRF).
Livrables
1. Code source complet de l’application.
2. Documentation technique et fonctionnelle.
3. Script pour créer et peupler la base de données.
4. Manuel utilisateur pour l’administrateur et les enseignants.
Planning Prévisionnel
Semaine 1-2 : Analyse des besoins et conception de la base de données.
Semaine 3-4 : Développement du backend (Spring Boot).
Semaine 5-6 : Développement du frontend et intégration avec l'API REST.
Semaine 7 : Tests fonctionnels et validation.
Semaine 8 : Livraison et documentation.
Équipe
Chef de projet : Responsable de la coordination.
Développeurs : Backend (Spring Boot) et Frontend (Angular/React).
Testeurs : Validation des fonctionnalités.
Ce document peut être modifié en fonction de l’évolution des besoins.