Rapport Python
Rapport Python
School
Managemen
t
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
s
INTRODUCTION GÉNÉRALE........................................................................................... 1
CHAPITRE 1 :................................................................................................................ 3
1.1 Introduction à l’école :.................................................................................................................4
CHAPITRE 2 :................................................................................................................ 7
2.1 Introduction :..............................................................................................................................8
2.2 Problématique :...........................................................................................................................8
2.3 Etat de l’art :......................................................................................................................................8
2.4 Motivation du projet :...........................................................................................................................9
2.5 Objectifs et engagements du projet :......................................................................................................9
2.6 Solution proposée :...........................................................................................................................10
2.7 Analyse de l’existant :.......................................................................................................................11
2.9 Conclusion :....................................................................................................................................12
Chapitre 3 :..................................................................................................13
3.6 Conclusion :............................................................................................................................25
CHAPITRE 4 :.............................................................................................................. 26
4.1 Introduction :............................................................................................................................27
4.2 Technologies et environnement de développement :....................................................................27
4.3 Architecture logicielle du système :............................................................................................30
4.4 Étapes de Réalisation du Projet :.................................................................................................31
4.5 Exemple d'Exécution de Processus dans l'Application de Gestion budgétaire:...............................31
Présentation des Captures d'Écran...........................................................................................................33
CHAPITRE 5 :.............................................................................................................. 39
5.1 Introduction :...........................................................................................40
5.2 Analyse critique et comparatif :.................................................................40
5.3 Tableau de test :......................................................................................41
5.4 Conclusion du chapitre :...........................................................................43
Conclusion et Perspectives.............................................................................44
Bibliographie.................................................................................................46
RÉSUMÉ
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.
2
aux objectifs de pilotage initiaux, ainsi que les perspectives d'évolution pour le projet
scolaire.
CHAPITRE 1 :
Présentation de l’école et du
contexte
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,
4
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 :
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.
5
FIGURE 2 : HISTORIǪUE DE L’EMSI
Depuis sa fondation en 1986, l'EMSI a tracé un chemin riche et distinctif en tant que
précurseur de l'enseignement supérieur privé en ingénierie au Maroc. Son historique est
jalonné d'une croissance constante et d'une capacité remarquable à s'adapter aux
évolutions rapides des
technologies et aux exigences du marché de l'emploi. Cette longévité témoigne de sa vision
avant-gardiste et de son engagement à former des générations d'ingénieurs qui ont contribué
et continuent de contribuer au développement économique et technologique du pays. L'école
a su évoluer avec son temps, élargissant ses domaines d'expertise et affinant sa pédagogie
6
pour rester à la pointe de l'innovation.
7
CHAPITRE 2 :
Présentation du projet
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
8
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
9
é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).
10
Centraliser le suivi des flux académiques : saisie intuitive et organisée de l'ensemble
des notes, des présences et des cours dispensés.
Automatiser les calculs pédagogiques : évaluation en temps réel des moyennes des
élèves et calcul automatique de la progression des classes.
Visualiser les performances scolaires : génération de tableaux de bord dynamiques
pour identifier les résultats par matière, l'historique des absences et les tendances
trimestrielles.
Exploiter la segmentation des profils : intégration d'un espace sécurisé propre à chaque
acteur (Administration, Enseignants, Élèves, Parents) capable de fournir un accès ciblé
basé sur des droits métier précis.
Faciliter la prise de décision administrative : accès rapide à un historique clair et à des
indicateurs clés pour aider l'administration à générer automatiquement des rapports
d'activité.
Garantir une accessibilité multi-support : offrir une interface responsive permettant un
suivi rigoureux de la scolarité aussi bien sur ordinateur que sur smartphone.
2.6 Solution proposée :
Nous proposons une application web dotée des fonctionnalités suivantes :
Suivi des flux académiques :
Enregistrement intuitif et catégorisé des notes, des présences et des cours dispensés.
Calcul automatisé et en temps réel des moyennes globales et de la progression pédagogique
disponible.
Journal de bord éducatif :
Historique détaillé des évaluations et des absences quotidiennes des élèves.
Génération de rapports automatiques pour identifier les baisses de résultats ou les anomalies
d'assiduité.
Visualisation et tableaux de bord :
Interface graphique dynamique pour analyser la répartition des performances par matière.
Suivi visuel de l'évolution des résultats trimestre par trimestre pour limiter les décrochages
scolaires.
Espaces dédiés par profil :
Intégration d'espaces fonctionnels basés sur des droits métier pour répondre aux besoins de
chaque acteur (Administration, Enseignants).
Fourniture d'accès personnalisés pour les élèves et les parents afin de consulter l'emploi du
temps ou la progression de l'enfant.
Analyse et validation :
Algorithmes permettant au backend de valider strictement la concordance entre l'élève et la
matière lors de la saisie.
Requêtes automatisées pour une meilleure extraction des données de scolarité stockées en
base.
Sécurisation et accès aux données :
Authentification unique et sécurisée pour protéger l'accès aux données scolaires
personnelles.
Stockage structuré et rapide des informations de l'établissement via une base de données
MySQL.
11
2.7 Analyse de l’existant :
Au Maroc, la gestion des flux d'informations académiques constitue un défi croissant pour
une large partie de la communauté éducative, particulièrement pour le personnel
pédagogique, les parents et les élèves. Avec l'évolution des exigences administratives et
l'augmentation des effectifs, la maîtrise du suivi scolaire est devenue une nécessité pour
garantir une stabilité pédagogique. Bien que des méthodes traditionnelles et certaines
solutions génériques existent, plusieurs obstacles freinent une gouvernance scolaire efficace
au niveau local :
Complexité des outils actuels : Les solutions existantes (tableurs Excel complexes ou
registres papier limités) sont souvent perçues comme fastidieuses, ce qui décourage les
utilisateurs d'enregistrer leurs données de manière régulière.
Absence de suivi structuré et centralisé : La majorité des établissements ne disposent pas
d'une vue d'ensemble claire sur la répartition des notes et des présences, entraînant une
difficulté à identifier les décrochages scolaires.
Manque d'accompagnement et de communication : Les outils classiques se contentent de
stocker des chiffres sans offrir d'analyse critique ou d'espaces sécurisés dédiés pour aider les
parents à suivre la progression de leur enfant.
Faible adoption des solutions automatisées : Malgré la digitalisation croissante des services
au Maroc, l'utilisation d'outils numériques intelligents pour la gestion des établissements reste
limitée par manque d'applications intuitives et adaptées aux besoins spécifiques des quatre
profils d'acteurs.
Face à ces constats, il est crucial de développer une solution numérique qui non seulement
automatise le suivi des flux académiques quotidiens, mais qui propose également des
tableaux de bord interactifs et une validation stricte des données au niveau du backend pour
conseiller les utilisateurs et améliorer le pilotage de l'établissement.
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.
13
Chapitre 3 :
Analyse et
conception
14
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.
15
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.
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 à
17
l'emploi.
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
18
enseignants.
Disponibilité et Résilience : Le service d'hébergement doit offrir une haute
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
19
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)
20
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
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.
21
FIGURE 3 : DIAGRAMME DE CAS D’UTILISATION
22
[Link].2 Diagramme de séquence global :
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
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).
23
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 :
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)
24
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,
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
25
différents composants du système de gestion scolaire.
FIGURE 6 : DIAGRAMME DE CLASSE
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
26
de données MySQL, conformément au cahier des charges.
CHAPITRE 4 :
Réalisation et développement
27
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.
4.2 Technologies et
environnement de
développement :
4.2.1 Technologies Utilisées : Un Aperçu Technique
du Projet
L’aboutissement de notre système de gestion scolaire s'appuie sur une combinaison ciblée de
solutions numériques de pointe, assurant fiabilité, protection des données, flexibilité et une
interface ergonomique. Ci-dessous une présentation des principaux composants et
frameworks que nous avons exploités.
Frontend : L'Interface Utilisateur (HTML5, CSS3, JavaScript, [Link],
Bootstrap)
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.
28
HTML5 (HyperText Markup Language 5) : Il constitue l'ossature fondamentale de nos pages.
HTML5 nous permet de bâtir une architecture sémantique et accessible, exploitant les
fonctionnalités récentes pour une organisation rigoureuse. Il garantit que le squelette de l'outil
est structuré pour accueillir les flux de données académiques et pédagogiques.
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)
L'organisation des données est un pilier central pour une application de gestion scolaire.
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.
30
Catégorie Outils / Technologies Description
32
4.5 Exemple d'Exécution de
Processus dans l'Application de
Gestion budgétaire:
Scénario 1 : Marquage des Présences par un Enseignant
Contexte : Un enseignant souhaite enregistrer les présences de sa classe pour un
cours donné durant la journée en cours.
Étapes du Scénario :
1. Authentification à l'Espace Personnel
a. L'utilisateur accède à l'interface de connexion de l'application.
b. Il saisit son nom d'utilisateur et son mot de passe associés à son compte
enseignant.
c. Le système vérifie que les champs sont remplis, que les informations
sont valides, et que le rôle associé au compte est bien « Teacher ».
d. Le mot de passe doit contenir au minimum 8 caractères. e. Après
validation correcte, l'utilisateur est redirigé vers son tableau de bord
pédagogique personnalisé.
2. Accès au Module de Présences
a. Depuis le tableau de bord, l'enseignant clique sur le lien « Attendance »
dans la barre de navigation latérale.
b. Le système affiche la liste des enregistrements de présences déjà saisis
pour les cours dont il est responsable.
c. L'enseignant clique sur le bouton « Mark Attendance » pour ouvrir le
formulaire de saisie.
3. Sélection du Cours et de la Date
a. Le système affiche un formulaire comportant deux champs
obligatoires : le cours et la date.
b. La liste déroulante des cours ne propose que les matières effectivement
assignées à cet enseignant en base de données (filtrée côté serveur par
Django).
c. L'enseignant sélectionne le cours concerné et renseigne la date de la
séance.
d. Il clique sur le bouton « Load Students » pour charger la liste des
élèves correspondants.
4. Saisie du Statut pour Chaque Élève
a. Le système récupère automatiquement tous les élèves du groupe-classe
rattaché au cours sélectionné.
b. Un tableau s'affiche listant chaque élève avec une liste déroulante de
33
statuts : Présent, Absent, Retard.
c. L'enseignant peut utiliser le bouton « Select All Present » pour pré-
remplir toutes les lignes à « Présent » en un seul clic, puis modifier
manuellement les exceptions.
d. Il peut également renseigner une note textuelle optionnelle pour chaque
élève (ex. : justificatif médical).
5. Enregistrement et Validation
a. L'enseignant clique sur « Save Attendance ».
b. Le système effectue une validation côté serveur : vérification que le
cours appartient bien à l'enseignant connecté, et que la combinaison
élève–cours–date est unique (contrainte unique_together du modèle
Attendance).
c. En cas de doublon, l'entrée est mise à jour (update_or_create) sans créer
de duplication. d. Un message de confirmation « Attendance saved. »
s'affiche en haut de la page pendant 4 secondes puis disparaît
automatiquement.
6. Modification d'un Enregistrement Existant
a. Depuis la liste des présences, l'enseignant peut cliquer sur « Edit » en
regard de n'importe quel enregistrement déjà saisi.
b. Le système affiche un formulaire pré-rempli avec le nom de l'élève, le
cours et la date.
c. L'enseignant modifie le statut (ex. : passage de « Absent » à « Late ») et
enregistre.
d. La base de données MySQL est mise à jour immédiatement via le
framework Django.
7. Redirection vers la Liste des Présences
a. Après l'enregistrement, l'enseignant est redirigé vers la liste complète
des présences.
b. Il peut visualiser l'ensemble des enregistrements filtrés par ses cours.
c. Les badges colorés (vert pour présent, rouge pour absent, orange pour
retard) permettent une lecture rapide de l'état de chaque séance.
34
accompagnée d'une description détaillée, permettant de comprendre comment chaque
fonctionnalité contribue à l'efficacité de l'application, qu'il s'agisse de la saisie des notes et
des présences, de la visualisation des graphiques de performance, de la réception des alertes
d'absentéisme ou de la consultation de l'emploi du temps par profil d'acteur.
Admin :
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.
35
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.
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.
36
FIGURE 7: LES PAGES DE TEACHER
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
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.
37
Student :
Parent :
38
FIGURE 9 : LES PAGES
DE 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
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 :
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
41
actuellement basée sur un moteur de règles (alertes simples), elle apporte une
valeur ajoutée significative en termes d'interactivity.
42
ID Module Cas de test Action / Entrée Résultat attendu Résultat
dashboard du rôle
passe corrects et cliquer correspondant (admin /
Réussi
sur « Sign In » enseignant / élève /
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
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)
43
ID Module Cas de test Action / Entrée Résultat attendu Résultat
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
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
44
ID Module Cas de test Action / Entrée Résultat attendu Résultat
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 :
La phase de test a démontré que l’application répond aux exigences fonctionnelles du cahier des
charges. La robustesse du framework Django alliée à la légèreté de SQLite assure une
expérience fluide et sécurisée pour l'utilisateur final.
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
45
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é.
En conclusion, ce projet constitue une base solide pour une plateforme de gestion scolaire
moderne et évolutive. Il s’inscrit dans une dynamique d’innovation au service de la
transformation numérique de l'éducation et ouvre la voie à de nombreux axes d’amélioration
dans le cadre de futurs travaux.
46
Bibliographie
[Link] | [Link]. (n.d.). Retrieved May 15, 2026, from [Link]
Demir, K. (2006). School Management Information Systems in Primary Schools. In Online Submission
47
(Vol. 5, Issue 2). [Link]
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
[Link]
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]
48