Rapport Python
Rapport Python
School
Management
Conception et développement d'une
système de gestion scolaire
Nous exprimons notre profonde gratitude envers Monsieur El jonhy Younes, notre
encadrante, dont la guidance experte et la disponibilité ont structuré notre travail.
En tant que binôme, Aymane Ait Omar, Ahmed El Mehdi El Ouariti et Mohamed El
Boutahri, nous soulignons notre synergie et notre engagement mutuel, piliers de cette
réalisation.
Enfin, notre gratitude s'adresse à l'EMSI pour le cadre académique stimulant et les ressources
mises à disposition.
Que tous ceux ayant contribué à " School Management " trouvent ici l'expression de notre
profonde et sincère reconnaissance.
Table des matières
The primary objective is to empower users with full and transparent control over educational
tracking through intuitive grade and attendance logging by teachers, real-time automated average
calculation, and clear visualization of schedules or pedagogical progress via ergonomic
dashboards. A major innovation of the platform lies in the strict separation of its functionalities
according to four key actor profiles (Administration, Teachers, Students, Parents) conditioned by
a unique and secure authentication space.
Developed with the Django framework and a MySQL database, the application ensures robust
and secure architecture while offering a responsive user interface. This report details the UML
analysis phases notably through use case, class, and sequence diagrams, data modeling (relying
on a "User" abstract base class), and technical implementation steps, demonstrating how digital
tools can effectively promote accessible and reliable school governance.
Liste de figures :
1
Chapitre 1 : Présentation de l’école et du contexte
Ce chapitre présente l'EMSI, cadre académique de ce travail, et expose les enjeux liés à la
modernisation de la gouvernance scolaire et à la centralisation des flux d'informations
académiques. Il définit la problématique de gestion et de communication rencontrée par les
établissements éducatifs ainsi que les objectifs globaux de l'application de gestion scolaire.
3
1.1 Introduction à l’école :
L'EMSI (École Marocaine des Sciences de l'Ingénieur) se distingue comme l'une des
institutions privées pionnières et de référence dans l'enseignement supérieur d'ingénierie au
Maroc. Fondée sur une vision d'excellence et d'innovation, l'école s'efforce d'offrir un
environnement d'apprentissage stimulant et complet, propice au développement académique et
personnel de ses étudiants. Ses campus modernes, stratégiquement implantés dans les grandes
villes dynamiques du Maroc telles que Casablanca, Rabat, Marrakech et Tanger, sont dotés
d'infrastructures de pointe : laboratoires spécialisés, salles informatiques équipées,
bibliothèques fournies et espaces de vie étudiante. Cet écosystème favorise non seulement
l'acquisition de compétences techniques de haut niveau, mais aussi l'épanouissement des
Historique de l'EMSI :
4
Fondée en 1986, l’École Marocaine des Sciences de l’Ingénieur (EMSI) s’est imposée comme
l’un des établissements privés d’enseignement supérieur les plus reconnus au Maroc dans le
domaine de l’ingénierie. Depuis sa création, l’EMSI a pour mission de former des ingénieurs
compétents, innovants et adaptés aux besoins du marché national et international. L’école a su
évoluer au fil des années en diversifiant ses filières, en renforçant ses partenariats avec le
monde industriel et en s’investissant activement dans la recherche appliquée et l’innovation
technologique.
La mission principale de l'EMSI est de former des ingénieurs hautement qualifiés, polyvalents
et dotés d'une forte capacité d'adaptation aux défis du monde moderne. L'école s'attache à
développer chez ses étudiants non seulement des compétences techniques pointues, mais aussi
des aptitudes managériales, entrepreneuriales et humaines essentielles à leur réussite
professionnelle et personnelle. Pour ce faire, l'EMSI propose des formations accréditées dans
des secteurs d'activité clés et en constante évolution, tels que le génie informatique (avec des
spécialisations en génie logiciel, systèmes d'information, réseaux et cybersécurité), le génie
industriel (logistique, management de la production, qualité), le génie civil (structures,
infrastructures, gestion de projets), le génie électrique et les énergies renouvelables
(automatisme, électronique de puissance, énergies nouvelles), ainsi que le génie des systèmes
embarqués & mobile et le Big Data & Cloud Computing. L'objectif est de préparer des lauréats
capables d'intégrer rapidement le monde professionnel et d'être des acteurs innovants et
influents.
6
CHAPITRE 2 :
Présentation du projet
7
2.1 Introduction :
La gestion rigoureuse et centralisée des flux d'informations académiques représente un enjeu majeur pour
les établissements éducatifs, en particulier pour le personnel pédagogique, les parents et les élèves. Entre
le suivi quotidien des présences, la maîtrise de la saisie des notes et la planification transparente des
emplois du temps, de nombreuses difficultés peuvent compliquer le maintien d'une communication fluide
et d'un pilotage administratif sain.
Ce projet propose une solution numérique sous la forme d'une plateforme web intuitive, conçue pour
simplifier la gouvernance scolaire. En intégrant des fonctionnalités telles que la gestion automatisée des
classes et des matières, la visualisation claire de la progression pédagogique via des tableaux de bord
ergonomiques et l'accès sécurisé segmenté selon quatre profils d'acteurs clés, cette plateforme vise à
améliorer l'efficacité des services administratifs et à renforcer la connectivité de la communauté scolaire.
Ce document présente les fondements du projet, ses objectifs ainsi que les choix technologiques,
notamment le framework Django et la base de données MySQL, adoptés pour sa réalisation.
2.2 Problématique :
Les établissements éducatifs, et plus particulièrement la communauté scolaire, font face à la nécessité
d'un suivi rigoureux de leurs flux d'informations académiques pour garantir leur stabilité pédagogique.
Cela implique une surveillance constante des absences quotidiennes, une planification des emplois du
temps et une analyse précise de la répartition des notes.
Cependant, l'absence d'un outil centralisé et intuitif mène souvent à une gestion approximative, à l'oubli
de certaines données et, à terme, à des difficultés de communication imprévues. Les méthodes
traditionnelles (papier ou fichiers Excel complexes) s'avèrent souvent décourageantes et manquent
d'interactivité pour offrir un véritable accompagnement aux utilisateurs.
Ainsi, comment concevoir une application web permettant une gestion scolaire intégrée et automatisée ,
tout en offrant des espaces sécurisés et dédiés à chaque profil d'acteur (Administration, Enseignants,
Élèves, Parents) pour optimiser le pilotage de l'établissement?
Ce document présente un système intégré de gestion scolaire conçu pour dynamiser les interactions
éducatives en connectant directement les élèves et les enseignants. L'objectif premier est de proposer une
plateforme web intuitive qui facilite le partage et la récupération de ressources académiques au format
PDF, tout en prenant en charge le multilinguisme dès son lancement avec l'anglais et l'arabe. Pour
accompagner au mieux les nouveaux utilisateurs, le système intègre des vidéos d'introduction
pédagogiques ainsi qu'un module de suivi des présences dédié à la sécurité des élèves. Parmi ses
fonctionnalités clés, la plateforme propose la gestion des profils et des inscriptions, un espace
d'authentification et de connexion sécurisé, un tableau de bord ergonomique, des outils de messagerie
directe et un calendrier de planification. Elle offre également un système structuré de téléversement,
d'organisation et de recherche de fichiers PDF, complété par des notifications en temps réel et des
mesures strictes pour garantir la sécurité et la confidentialité des données. Sur le plan technique, la
solution s'appuie sur une interface moderne développée en HTML5, CSS3, JavaScript et Tailwind, un
backend propulsé par [Link], une base de données MongoDB, une authentification par jetons JWT, ainsi
qu'un stockage cloud centralisé, comme mentionné dans l'article(Salama & Aly, 2024)
L'évolution des exigences administratives pousse les institutions scolaires à concevoir de nouveaux
systèmes de gestion électronique pour moderniser leur gouvernance. Cette étude examine le
fonctionnement d'un système d'information de gestion scolaire (SIGS) et analyse l'opinion des
enseignants d'un établissement face à son utilisation. Menée en République du Kosovo auprès de 25
enseignants de l'école primaire et secondaire inférieure « Heronjtë e Lumës » (municipalité de Prizren), la
recherche adopte une méthode mixte combinant des données quantitatives et qualitatives recueillies par
questionnaire. Les conclusions révèlent que les participants ont une perception très positive de cet outil de
gestion électronique, qui a pleinement répondu à leurs attentes professionnelles. Les résultats soulignent
que l'ensemble du personnel pédagogique et de l'établissement a bénéficié de cette transition numérique,
et les enseignants recommandent fermement la pérennisation et la poursuite de ce système à l'avenir,
comme mentionné dans l'article(Orhani et al., 2023).
9
établissements. Cette solution vise à offrir un accompagnement personnalisé, à renforcer la
transparence éducative pour les utilisateurs et à simplifier le suivi de la scolarité au quotidien.
Plus concrètement, elle permettra de :
L’intégration d’espaces sécurisés dédiés par profil d'acteur et la centralisation des notes, des
absences et des cours permettent une gestion plus proactive et éclairée, aidant les utilisateurs à
éviter le manque de visibilité et à maximiser l'efficacité pédagogique. En offrant une
visualisation claire de la progression des élèves et des rapports d'activité automatisés, cette
plateforme contribue à renforcer l'autonomie organisationnelle et à promouvoir une
communication fluide au sein d'une interface sécurisée et conviviale.
12
Chapitre 3 :
Analyse et conception
13
3.1 Introduction :
L'analyse et la conception sont des étapes clés dans le développement d'un système
d'information. Ce chapitre vise à détailler l'analyse des besoins, l'identification des quatre profils
d'acteurs, ainsi que la modélisation du système à travers des diagrammes formels.
Nous utiliserons principalement le langage UML pour la conception des cas d'utilisation, du
diagramme de classes structurant l'entité abstraite Utilisateur et des interactions dynamiques via
les diagrammes de séquence.
• Saisie des données : formulaire pour ajouter et valider les notes ou les absences des élèves
(note, coefficient, matière, date, statut d'absence).
• Tableau de bord : affichage des moyennes générales, du total des cours dispensés, du taux de
présence et des statistiques clés de l'établissement.
• Historique et suivi : liste filtrable et triable de toutes les notes attribuées, des absences
enregistrées et des plannings par classe.
• Graphiques : courbe d'évolution des notes trimestrielles et camembert de répartition des taux
de présence ([Link] ou équivalent).
• Gestion des modules : espaces de travail intégrés pour les modules spécifiques (accounts
pour les profils, courses pour le suivi des programmes).
• Paramétrage : définition et configuration des classes, des coefficients par matière et des
droits d'accès pour chaque acteur de l'école.
ID Besoins fonctionnels
14
ID Besoins fonctionnels
Gestion des classes / groupes : création et administration des classes (1AC, 2AC, 3AC, TC,
F3
1BAC, 2BAC) avec affectation des élèves et des enseignants.
Gestion des cours (matières) : définition des cours par classe (code, intitulé, crédits,
F4
enseignant responsable, groupe) et consultation par rôle.
Saisie des notes : formulaire enseignant pour enregistrer les notes des élèves (valeur 0–20,
F5
type : examen / quiz / devoir / projet, commentaire).
Gestion des absences : marquage de la présence par cours et par date avec statuts (présent,
F6
absent, en retard) et notes associées, en mode individuel ou groupé.
Emploi du temps : affichage hebdomadaire des créneaux par classe avec mise en évidence
F8
du jour courant.
Suivi parentale : consultation par le parent des notes et présences de ses enfants avec
F9
synthèse par cours.
15
ID Besoins non fonctionnels
Performance : l'application assure un affichage fluide des pages et des données (notes,
NF1 absences, emplois du temps) avec des temps de réponse inférieurs à 2 secondes pour les
opérations courantes.
Sécurité : le système garantit la protection des comptes et l'isolation des données par rôle via
NF2 le framework Django (CSRF, sessions sécurisées, hachage des mots de passe, décorateurs
de permission).
Confidentialité des données : les données personnelles des élèves et des parents sont
NF4
stockées localement dans la base MySQL et ne sont jamais transmises à des services tiers.
3.3 Contraintes :
3.3.1 Contraintes Techniques et Stratégiques du Projet :
La conception et la réalisation de cette application de gestion scolaire s'appuient sur un
ensemble de contraintes techniques et stratégiques rigoureusement définies. Ces choix
technologiques garantissent la performance, la sécurité des données académiques et la pérennité
de la solution.
Le choix du Framework Django, bâti sur le langage Python, est une décision stratégique pour
le développement du backend de l’application. Django est reconnu pour sa philosophie
"batteries included", offrant un ensemble complet d'outils et de fonctionnalités prêtes à
l'emploi.
16
Productivité accrue : Django accélère le processus de développement grâce à son approche
"convention over configuration" et ses nombreux modules réutilisables.
Sécurité intégrée : Le Framework intègre des mécanismes de protection contre les vulnérabilités
web courantes (injections SQL, attaques CSRF, XSS), essentiels pour une application
manipulant des données financières personnelles.
Scalabilité : Il est capable de gérer une charge importante et un grand nombre d'utilisateurs
simultanés, ce qui est crucial pour une plateforme de gestion budgétaire grand public.
Maintenance facilitée : La structure claire et organisée de Django favorise un code propre et
facilement maintenable sur le long terme.
La base de données MySQL a été sélectionnée pour le stockage et la gestion de l'ensemble des
données de l'application. En tant que système de gestion de base de données relationnelle
(SGBDR) léger et intégré, MySQL est idéal pour ce type de projet et offre de nombreux
avantages :
Fiabilité et Robustesse : MySQL assure une grande stabilité et intégrité des données,
indispensables pour un système financier où la précision des transactions et le suivi des soldes
sont cruciaux.
Performance : Il est optimisé pour les applications à usage individuel, garantissant un accès
rapide et efficace aux historiques de dépenses et aux analyses budgétaires de l'utilisateur.
Évolutivité : MySQL supporte une gestion fluide des données quotidiennes et permet une
transition aisée vers des systèmes plus complexes si le volume d'informations financières
augmente.
Compatibilité : Sa configuration simplifiée avec Django facilite le développement rapide et le
déploiement du prototype de l'application.
L'exigence d'un hébergement web sécurisé est une contrainte primordiale, dictée par
la nature personnelle et privée des informations académiques traitées. Cette contrainte
englobe plusieurs aspects :
• Confidentialité et Protection des Données : L'hébergement doit garantir le
chiffrement des données en transit (via HTTPS/SSL/TLS) et au repos, la mise
en place de pare-feu robustes, et des systèmes de détection d'intrusion pour
prévenir tout accès non autorisé ou cyberattaque sur les notes et profils des
utilisateurs.
• Conformité Réglementaire : Au Maroc, la protection des données à caractère
personnel est soumise à des réglementations strictes (loi 09-08).
L'hébergement doit être conforme aux normes de sécurité et de confidentialité
requises pour la gestion des informations scolaires des élèves, parents et
enseignants.
• Disponibilité et Résilience : Le service d'hébergement doit offrir une haute
17
disponibilité pour garantir que l'application est accessible en permanence, et
des mécanismes de sauvegarde et de récupération de données pour faire face à
d'éventuels incidents lors des périodes de saisie intensive.
Sécurité des Données Renforcée : Au-delà de l'hébergement, la sécurité est intégrée à chaque
niveau :
Technologie Explication
18
Technologie Explication
Python Django (Django Documentation | Django Documentation, n.d.) a été choisi comme
Framework principal pour le développement du backend de l'application de gestion scolaire.
Django offre de nombreuses fonctionnalités prêtes à l'emploi, comme la gestion des comptes et
de l'authentification par profil, la sécurité des données pédagogiques, le routage des vues, etc.
Cela permet de gagner en rapidité de développement tout en bénéficiant d'un Framework mature
et éprouvé pour orchestrer la logique métier du système.
Pour le frontend, les technologies web standard HTML, CSS et JavaScript, Bootstrap ont été
retenues. Elles permettent de créer une interface utilisateur moderne, responsive et agréable pour
le suivi des notes, des absences et des emplois du temps de l'établissement éducatif.
Ce choix de technologies web modernes (Python Django, HTML/CSS/JS, Bootstrap) est
particulièrement adapté pour le développement d'une application de gestion scolaire sécurisée et
facile à maintenir.
3.5 Modélisation :
3.5.1 Modélisation UML :
Dans le cadre de la modélisation d’un Système de Gestion Scolaire, plusieurs types de
diagrammes UML (Unified Modeling Language) sont utilisés afin de représenter de manière
structurée les différentes facettes du système. Le diagramme de cas d'utilisation (use case)
permet d'identifier les quatre acteurs du système (Enseignant, Élève, Parent, Admin) et les
interactions qu'ils ont avec les fonctionnalités proposées à travers un espace
d'authentification. Le diagramme de séquence illustre la dynamique des échanges entre les
objets dans le temps, en représentant l’ordre des messages lors de scénarios particuliers tels
19
que la connexion d'un élève, la saisie des notes par l'enseignant ou le suivi de la progression
de l'enfant par le parent. Enfin, le diagramme de classes définit la structure statique en
précisant les classes (Utilisateur comme classe de base, Élève, Enseignant, Cours, Présence,
Note), leurs attributs et leurs méthodes, constituant ainsi le socle de la base de données
relationnelle et du code source de l'application. L’utilisation conjointe de ces diagrammes
assure une compréhension complète, cohérente et robuste du système à développer.
Ce diagramme de cas d'utilisation UML illustre les interactions possibles entre les acteurs du
système et les fonctionnalités offertes par l'application. Il met en évidence les rôles clés
(Enseignant, Élève, Parent, Admin) et leurs actions précises comme la gestion des notes, le
suivi des absences, la consultation du dashboard éducatif et la génération de rapports. On
observe également la généralisation de ces profils vers un acteur abstrait « Utilisateur »,
permettant une gestion commune des fonctionnalités de base telles que l'authentification.
20
Tableau 4 : Principaux cas d'utilisation
Le diagramme de séquence global illustre les interactions dynamiques entre les différents
acteurs du système (Enseignant, Élève, Parent et Admin) et les composants fonctionnels de
21
l'application web de gestion scolaire. Il modélise de façon linéaire et chronologique la suite
d'actions et de messages échangés pour réaliser des cas d'utilisation essentiels comme la
connexion sécurisée et l'authentification des profils, l'ajout et la validation des notes et des
absences, le calcul automatique des moyennes en temps réel, la génération des alertes
visuelles en cas d'absentéisme, la consultation de la progression pédagogique par les parents,
ainsi que la gestion globale des utilisateurs, des classes et des matières par l'administrateur.
1 Scénario d’utilisation :
Le processus débute avec l'authentification. Chaque utilisateur commence par soumettre ses
identifiants (nom d'utilisateur ou email et mot de passe) via l'interface de connexion. Le
système interroge la base de données, valide les informations et redirige l'utilisateur vers
l'interface adaptée à son rôle détecté (Enseignant, Élève, Parent ou Administrateur). Une fois
connecté, chaque acteur accède à un tableau de bord personnalisé.
Un enseignant peut initier l'ajout d'une évaluation ou d'une présence. Il soumet les
informations nécessaires (valeur de la note, matière, élève concerné, date) via le formulaire
dédié, qui appelle la fonction de soumission. Le backend valide strictement la concordance
entre l'élève et la matière avant d'enregistrer l'opération dans la base de données MySQL, de
recalculer automatiquement les moyennes en temps réel et de mettre à jour le tableau de bord
pédagogique.
Lorsqu'un parent consulte son tableau de bord dédié, il peut visualiser les notes, les absences
et l'emploi du temps de son enfant. Le système vérifie automatiquement le statut d'assiduité
par rapport aux règles de l'établissement : si les absences dépassent un certain seuil, une alerte
d'absentéisme s'affiche immédiatement à l'écran, garantissant un suivi de la progression et une
vigilance continue pour la famille.
Un élève peut également interagir avec son espace de suivi connecté. Il soumet sa requête via
l'interface web pour consulter un relevé, laquelle transmet la demande au backend. Ce dernier
effectue des requêtes automatisées sur les modèles et retourne une réponse personnalisée avec
ses chiffres réels (moyennes par matière, liste des cours de la semaine et historique des
présences enregistrées).
De son côté, l'administrateur accède à un panneau de gestion globale. Il peut consulter la liste
de l'ensemble des utilisateurs inscrits, configurer les classes et les matières, attribuer les droits
métier, exécuter des scripts de gestion administrative et générer automatiquement des rapports
d'activité complets pour le pilotage de l'établissement.
Tout au long de ces interactions, le système de contrôle joue un rôle transversal : il émet des
messages de confirmation ou d'erreur visuels à chaque étape critique (erreur de connexion,
validation backend réussie, saisie invalide d'une note), garantissant ainsi un suivi scolaire
fluide, sécurisé et réactif pour l'ensemble des utilisateurs.
Conception de la solution :
22
Figure 4 : Diagramme de sequence
Le diagramme de séquence global illustre les interactions dynamiques entre les différents
acteurs du système de gestion scolaire (Enseignant, Élève, Parent, Administrateur et le
Système) lors de scénarios typiques d'utilisation. Il met en évidence l'enchaînement des
messages échangés au cours du cycle de suivi académique, depuis la connexion et
l'authentification de l'utilisateur jusqu'à la consultation des rapports de progression, en passant
par la saisie des notes, le déclenchement automatique des alertes d'absentéisme, et la
vérification des données. Ce diagramme reflète la logique applicative implémentée avec
Django, où chaque action utilisateur déclenche une série de traitements côté serveur, des
requêtes vers la base de données MySQL, et un retour visuel adapté affiché dans l'interface
web.
Les principales fonctionnalités couvertes sont :
1. Authentification et gestion des sessions (connexion sécurisée et déconnexion
différenciée par rôle via Django Auth)
2. Gestion des données pédagogiques par l'enseignant (saisie et modification des
notes, contrôle des présences en classe, validation backend des élèves et mise à jour
du tableau de bord)
3. Consultation de l'espace élève (visualisation de l'emploi du temps hebdomadaire,
23
historique des absences enregistrées, relevés de notes et moyennes par matière en
temps réel)
4. Suivi de la progression par le parent (interrogation du système sur les résultats de
l'enfant, réception des alertes d'absentéisme en cas de dépassement de seuil et
affichage du rapport de performance)
5. Supervision du système et pilotage par l'administrateur (gestion globale des
utilisateurs via la classe de base abstraite, configuration des classes et matières, et
génération automatisée des rapports d'activité)
Ce diagramme de séquence global illustre les interactions entre les différents acteurs
(Enseignant, Élève, Parent, Administrateur) et le Système de Gestion Scolaire développé avec
Django et MySQL, depuis l'authentification jusqu'à la consultation des données académiques
en temps réel.
Diagramme de classe :
Ce diagramme de classes permet de comprendre la structure et les interactions entre les
différents composants du système de gestion scolaire.
24
Le diagramme de classes représente les principales entités et leurs relations dans le système de
gestion scolaire.
La classe Utilisateur est la classe centrale du système. Elle regroupe les attributs communs à
tous les comptes : id, nom, email et mot de passe. Elle inclut également les méthodes essentielles
telles que seConnecter(), deconnecter() et modifierProfil(). Les classes spécifiques comme Élève
(studentId, dateOfBirth, classId), Enseignant (teacherId) et l'Admin héritent de cette structure
de base. L'administrateur dispose de méthodes spécifiques : gererUtilisateurs(), gererClasses() et
gererMatires().
La classe Note représente toute évaluation académique enregistrée pour un apprenant. Elle
possède les attributs suivants : gradeId (PK), value et studentId (FK). Elle propose les méthodes
ajouterNote(), modifierNote() et supprimerNote(). Un élève peut posséder plusieurs notes.
La classe Cours permet de structurer les enseignements dispensés au sein de l'établissement. Elle
contient un courseId, un Name et des Credits, et expose les méthodes creerCours() et
attribuerEnseignant(). Un cours peut faire l'objet de plusieurs évaluations et associer plusieurs
élèves.
La classe Présence représente le suivi d'assiduité généré automatiquement ou manuellement par
le corps enseignant. Elle contient un attendanceId, une Date, un status (présent/absent) et un
studentId. Elle expose les méthodes enregistrerPresence() et verifierAbsences(). Un élève peut
être lié à plusieurs fiches de présence selon l'évolution de ses journées.
La classe Enseignant regroupe les données pédagogiques propres aux professeurs. Elle contient
son identifiant unique et expose les méthodes saisirNotes(), validerEleve() et gererAbsences().
Un enseignant dispense plusieurs cours et suit la scolarité de plusieurs élèves.
La classe TableauDeBord regroupe les modules d'affichage dynamique intégrés. Elle expose les
méthodes calculerMoyennes(), genererStatistiques() et afficherPlanning(). Ce composant
interroge à la fois les classes Note, Présence et Cours pour retourner des données personnalisées
basées sur les chiffres réels de l'utilisateur selon son profil.
Les relations entre les entités comprennent des associations directes : l'Admin pilote les
structures globales (relation 1 vers 0..*) ; l'Élève possède plusieurs Note et est associé à plusieurs
Présence ; l'Enseignant évalue les Élève, valide la cohérence des Note et valide l'assiduité ; la
Note est obligatoirement rattachée à un Cours ; l'interface extrait les données des classes
Présence et Note pour construire les tableaux de bord et rapports d'activité.
3.6 Conclusion :
Ce chapitre a présenté l'analyse approfondie et la conception détaillée du système de gestion
scolaire. Grâce aux diagrammes UML (cas d'utilisation, classes et séquence), nous avons
structuré les relations entre l'entité abstraite Utilisateur et ses classes dérivées (Élève,
Enseignant, Admin), ainsi que les entités Cours, Présence et Note. Cette phase a permis de
clarifier les responsabilités de chaque acteur (Enseignant, Élève, Parent, Admin) et de poser
les bases nécessaires au développement de l'application avec le framework Django et la base
de données MySQL, conformément au cahier des charges.
25
CHAPITRE 4 :
Réalisation et développement
26
4.1 Introduction :
Dans cette partie, nous abordons les différentes étapes techniques qui ont permis de concrétiser
l'application web de gestion scolaire, depuis la mise en place de l'environnement de développement jusqu'à
l'implémentation des fonctionnalités principales. Nous présentons l'architecture choisie basée sur le
framework Django, les technologies utilisées (Python, MySQL, HTML/CSS/JavaScript), ainsi que la
structure générale du système. Chaque module du projet (accounts, courses, dashboard, reports) est
détaillé, en mettant en évidence les choix de conception, les modèles de données, les interfaces utilisateur et
les interactions entre les composants, notamment le tableau de bord pédagogique, la validation backend
lors de la saisie des notes par l'enseignant et le système de suivi de la progression pour les parents. Cette
section vise à démontrer la cohérence entre l'analyse effectuée en amont et les solutions techniques mises
en œuvre lors du développement.
Le versant visuel de notre solution, avec lequel les usagers (administration, enseignants,
élèves et parents) interagissent pour piloter et suivre la scolarité, repose sur des technologies
web standards et hautement efficaces.
27
CSS3 / Bootstrap : Éléments centraux du design, ils assurent la mise en forme de nos gabarits.
Ils permettent un paramétrage précis de la charte graphique, des typographies, des grilles de
mise en page réactives (Flexbox), ainsi que des animations fluides. Via ces technologies,
l'application offre une apparence moderne, fluide et responsive, optimisant l'adhésion de
l'utilisateur final.
JavaScript (JS) : Langage exécuté côté navigateur, JavaScript pilote l'ensemble des
interactions. Il dynamise la gestion scolaire en autorisant des mises à jour instantanées sans
rafraîchir la page, telles que le contrôle des saisies de notes et d'absences, la gestion du DOM
et les échanges asynchrones avec le serveur Django. Il est le garant d'une navigation rapide et
agile.
[Link] : Pour la représentation graphique des indicateurs scolaires (par exemple, l'évolution
des moyennes, la répartition des taux de présence ou le suivi de la progression des élèves),
[Link] s'avère indispensable. Cette librairie JavaScript permet de générer des diagrammes
interactifs (barres, courbes, secteurs). Elle convertit les chiffres bruts en visuels clairs
facilitant l'analyse pédagogique immédiate.
Backend : Le Cœur Intelligent de l'Application (Python, Django)
MySQL : Pour les étapes de conception et les phases de tests unitaires, MySQL a été adopté comme
système de gestion de base de données relationnelle. Il s'agit d'un moteur de stockage compact,
autonome, qui conserve les informations (comptes utilisateurs, notes, cours et présences) dans un
fichier unique sur la machine (db.MySQL3). Sa simplicité d'installation et de configuration en fait une
option idéale pour la création du prototype et le travail en local. Pour une mise en service à grande
échelle avec des flux de données académiques massifs ou des besoins de performances multi-
utilisateurs simultanés (comme lors de la saisie des notes de fin de trimestre), une solution plus
puissante comme PostgreSQL ou MySQL serait préconisée, mais MySQL répond parfaitement à nos
besoins de réalisation actuels.
29
Catégorie Outils / Technologies Description
Admin :
33
FIGURE 6: LES PAGES D'ADMIN
Le panneau d'administration intègre un ensemble de validations robustes, appliquées à la fois côté
navigateur et côté serveur Django, afin de garantir l'intégrité et la cohérence des données
enregistrées dans la base de données SQLite.
Validation des droits d'accès : Le champ rôle d'utilisateur est soumis à une contrainte de
cohérence stricte liée aux privilèges de l'établissement. Si l'administrateur attribue une affectation
aberrante ou non valide, une alerte native du navigateur s'affiche immédiatement : « Value must
be a valid option », bloquant ainsi la soumission du formulaire avant même l'envoi au serveur.
Champs obligatoires : Tous les champs du formulaire sont requis. Si l'administrateur tente de
soumettre le formulaire avec le champ du code d'identification ou de la matière vide, un message
d'erreur natif s'affiche : « Please fill out this field », empêchant toute soumission incomplète.
34
Confirmation du mot de passe : Lorsque les deux champs mot de passe ne correspondent pas,
le système affiche le message « Les mots de passe ne correspondent pas » et vide
automatiquement les champs concernés, invitant l'administrateur à les ressaisir correctement.
Unicité des configurations systèmes : Le système vérifie également qu'aucun autre élément
n'utilise déjà les mêmes paramètres critiques (comme le code d'une classe ou l'identifiant d'un
enseignant). Si c'est le cas, le message « Cet identifiant système est déjà attribué à une entité
active. Veuillez en renseigner un autre » est affiché, renforçant ainsi la sécurité globale de la
plateforme.
Teacher :
Accès au tableau de bord : Après une connexion réussie, l'enseignant est automatiquement redirigé vers son
tableau de bord personnel. À l'état initial, les trois cartes affichent 0 pour les notes saisies, les séances
effectuées et les absences enregistrées pour le trimestre en cours (mai 2026), et une alerte verte confirme que le
suivi pédagogique est à jour : « Progression respectée. Absences : 0 h / 20 h maximum ». Le tableau de bord
affiche également deux graphiques [Link] : une courbe mensuelle d'évolution des moyennes sur l'année 2026
et un camembert de répartition des heures de cours par matière.
Ajout d'une évaluation : En cliquant sur le bouton « + Ajouter Note / Évaluation », l'enseignant
accède au formulaire de saisie composé des champs : valeur de la note, coefficient, matière
(sélectionnable), date et liste des élèves. L'enseignant peut enregistrer des évaluations pour
n'importe quel mois de l'année 2026, qu'il s'agisse de contrôles continus, d'examens trimestriels ou
de devoirs de synthèse.
Impact des saisies du mois actuel sur les cartes : Lorsqu'une note ou une absence est enregistrée
pour le mois actuel (mai 2026), les cartes du tableau de bord sont immédiatement mises à jour. Par
35
exemple, après l'ajout d'une absence de 10 heures dans une classe spécifique, la carte Absences du
Mois affiche 10 h et le taux de présence globale baisse proportionnellement. L'évaluation est
simultanément reflétée dans la courbe mensuelle (évolution de la moyenne en mai) et dans le
camembert par matière.
Impact des données des autres mois : Les évaluations et absences enregistrées pour des mois
autres que le mois actuel apparaissent uniquement dans les deux graphiques (courbe mensuelle et
camembert de l'année), sans affecter les cartes ni les alertes du mois en cours. Cela permet à
l'enseignant de visualiser l'historique des performances scolaires sur toute l'année 2026 sans
perturber le suivi pédagogique direct du mois courant.
Impact de l'intégration des nouveaux élèves : L'ajout d'un nouvel élève dans la classe affectée met
à jour la carte Effectif de la Classe et les graphiques de répartition, mais n'affecte pas directement
les alertes de performance. En effet, le système d'alertes est exclusivement basé sur la comparaison
entre les absences accumulées et le seuil critique autorisé par l'établissement, indépendamment de
la taille de la classe. Les données d'un élève transféré d'un autre mois seront uniquement visibles
dans les diagrammes d'ensemble.
Système d'alertes de suivi académique : Le système génère automatiquement trois niveaux
d'alertes selon l'état des absences et des résultats du mois actuel. L'alerte verte s'affiche tant que le
taux d'absentéisme reste en dessous de 10% du volume horaire. L'alerte orange se déclenche dès
que les absences atteignent ou dépassent 10% du seuil critique, comme illustré en Figure 13 : «
ATTENTION ! Le taux d'absentéisme a atteint 12% dans cette classe » (absences : 15 h / quota :
120 h). L'alerte rouge est générée lorsque le taux d'absences dépasse totalement la limite critique
définie par le règlement, comme visible en Figures 15 et 18 : « ALERTE ROUGE ! Seuil critique
dépassé ! Absences : 35 h / Limite : 20 h », nécessitant une convocation immédiate des parents.
Student :
36
FIGURE 8 : LES PAGES DE STUDENT
Le suivi et l'extraction automatisée des résultats de l'élève : L'espace connecté dédié à l'élève
permet à ce dernier d'interroger ses données académiques en temps réel. Le système répond
instantanément aux requêtes portant sur les notes du trimestre, les moyennes par matière, les
absences du mois, le taux de présence global, et fournit un bilan de performance personnalisé.
Pour l'évaluation de la progression, le système compare la moyenne générale de l'élève au seuil
de réussite minimal fixé par l'établissement : si la moyenne est strictement supérieure à 12/20, la
plateforme affiche « Tu progresses bien ! Continue comme ça » ; dans le cas contraire, elle
avertit « Attention ! Tu approches du seuil critique de validation ou de rattrapage ».
Parent :
Connexion des parents : Lors de la connexion, le parent d'élève peut choisir de se connecter soit
en mode tuteur associé en sélectionnant le profil dédié, accédant ainsi à l'espace de suivi familial
pour superviser les notes, les absences et consulter les bulletins globaux, soit en mode utilisateur
standard sans privilèges étendus, accédant alors à son tableau de bord d'informations simples.
Dans les deux cas, le système valide systématiquement le format de l'email, la correspondance
entre l'email, le mot de passe et un compte existant dans la base de données SQLite, garantissant
ainsi la sécurité de l'authentification.
4.6 Conclusion
Le développement technologique joue un rôle fondamental dans la transformation numérique
de notre société. À travers ce chapitre, nous avons exploré les principales technologies
utilisées dans le développement logiciel, notamment les langages de programmation, les
37
Framework, les environnements de développement intégrés (IDE), ainsi que les outils de
gestion de version et de collaboration. Les captures d’écran insérées dans ce chapitre ont
permis d’illustrer concrètement les interfaces des outils évoqués, les étapes de codage, ainsi
que le rendu visuel des applications en cours de développement. Elles facilitent la
compréhension des concepts et des processus en offrant un aperçu visuel réel du travail
effectué. Ainsi, ce chapitre a mis en évidence :
38
CHAPITRE 5 :
Résultats, tests et validation
39
5.1 Introduction :
L'aboutissement de ce projet est une plateforme web fonctionnelle permettant un
pilotage total de la gestion scolaire. Les résultats obtenus se traduisent par une
interface intuitive où l'utilisateur peut, dès la première utilisation, visualiser sa
progression académique et la répartition des cours via des graphiques dynamiques.
Les espaces dédiés par profil agissent comme un système connecté, capable de
fournir des statistiques instantanées sur les notes et les présences du trimestre.
5.2 Analyse critique et comparatif :
L'application de gestion scolaire offre une alternative moderne aux méthodes de
suivi traditionnelles. Bien que la logique des notifications automatiques soit
actuellement basée sur un moteur de règles (alertes simples), elle apporte une
valeur ajoutée significative en termes d'interactivity.
40
Critère de comparaison Méthodes Classiques Notre Application Web
Redirection vers le
Saisir identifiant + mot de dashboard du rôle
✔
T01 Authentification Connexion valide passe corrects et cliquer correspondant (admin /
sur « Sign In » enseignant / élève / Réussi
parent)
Message d'erreur «
Saisir un mot de passe Invalid username or ✔
T02 Authentification Connexion invalide
erroné et soumettre password » affiché, pas Réussi
de connexion
Compte créé,
Remplir le formulaire
connexion
Inscription nouvel signup (rôle élève) avec ✔
T03 Authentification automatique,
utilisateur toutes les informations Réussi
redirection vers le
requises
dashboard élève
Session détruite,
Cliquer sur le bouton « ✔
T04 Authentification Déconnexion redirection vers la page
Logout » Réussi
de connexion
Admin remplit le
Nouvelle classe ajoutée
formulaire Add Class ✔
T09 Gestion Classes Créer une classe et visible dans la liste
Group (nom + année) et Réussi
des classes
soumet
41
ID Module Cas de test Action / Entrée Résultat attendu Résultat
Admin remplit le
Gestion formulaire Add Subject Cours créé et visible ✔
T12 Créer une matière
Matières (code, nom, crédits, dans la liste Subjects Réussi
enseignant, classe)
Moyenne générale,
Dashboard Élève se connecte et taux d'assiduité et ✔
T22 Affichage des statistiques
Élève consulte son dashboard prochain cours affichés Réussi
correctement
Grille hebdomadaire
Dashboard Élève navigue vers affichée, jour courant ✔
T24 Consulter l'emploi du temps
Élève Schedule mis en évidence en Réussi
bleu
42
ID Module Cas de test Action / Entrée Résultat attendu Résultat
Notes et absences de
Dashboard Voir la progression d'un Parent clique sur « View ✔
T25 l'enfant affichées avec
Parent enfant Progress » pour un enfant Réussi
dates et statuts
Fichier class_report.csv
Admin clique sur « téléchargé avec les ✔
T27 Rapports Export CSV
Export CSV » données de toutes les Réussi
classes
Redirection vers la
Un élève tente d'accéder à
page de connexion sans ✔
T28 Sécurité Accès non autorisé par rôle /admin-panel/
affichage des données Réussi
manuellement
admin
Légende :
43
Conclusion et Perspectives
La mise en œuvre de cette application web de gestion scolaire dédiée au suivi des
établissements éducatifs nous a permis de répondre à un besoin crucial en matière de
contrôle, de visibilité et de simplification du suivi des flux académiques pour la communauté
scolaire. Grâce à une architecture Django et à l’utilisation de technologies web modernes, le
système permet d’assurer la saisie des notes et des présences, le calcul automatisé des
moyennes, la visualisation graphique des performances, l'envoi d'alertes en cas d'absentéisme
ou de baisse de résultats, et l'interaction avec un espace connecté d'extraction des données en
temps réel.
Cependant, bien que les objectifs principaux aient été atteints, certaines limitations subsistent.
Parmi elles, l’absence d’une génération automatique d’emplois du temps optimisés, la gestion
limitée des inscriptions administratives complexes, ou encore l’absence d’un système de
communication directe et instantanée entre les différents acteurs de la plateforme.
3. L’interfaçage avec des services de paiement en ligne via des API sécurisées pour
renforcer l’automatisation du suivi des frais de scolarité.
45
Bibliographie
[Link] | [Link]. (n.d.). Retrieved May 15, 2026, from [Link]
Demir, K. (2006). School Management Information Systems in Primary Schools. In Online Submission
Django documentation | Django documentation. (n.d.). Django Project. Retrieved May 14, 2026, from
[Link]
[Link] Help Documentation. (n.d.). GitHub Docs. Retrieved May 15, 2026, from [Link]
[Link]/en
US/docs/Web/JavaScript
Orhani, S., Saramati, E., & Drini, L. (2023). School Administration through the School’s Electronic
Python 3.14 documentation. (n.d.). Python Documentation. Retrieved May 15, 2026, from
[Link]
Salama, W. M., & Aly, M. H. (2024). Web-Based Integrated School Management System for Enhanced
[Link]
46