Conception Et Realisation D'un Systeme Scholaire Avec PHP
Conception Et Realisation D'un Systeme Scholaire Avec PHP
Conception Et Realisation D'un Systeme Scholaire Avec PHP
Je dédie ce projet :
Qui n'ont jamais cessé, de formuler des prières à mon égard, de me soutenir
A mes frères,
Pour leur soutien et leurs conseils précieux tout au long de mes études.
A toute ma famille,
Je remercie également tous mes enseignants pour leurs efforts qui m’ont guidé et qui ont
enrichi mes travaux tout au long de mes études universitaires.
Enfin, mes remerciements s’adressent aussi à tous ceux qui ont participé, de près ou de loin, à
l’élaboration de ce projet de fin d’études et en particulier à ma famille et mes amis.
Introduction générale
De nos jours, la gestion des données d'une façon automatisée occupe une place
privilégiée dans le monde de l'informatique. Grâce à cette technologie, le temps de
recherche des données a chuté de manière considérable, ce qui laisse croire qu'elle a
encore de beaux jours devant elle.
C’est dans ce contexte que plusieurs sociétés essayent de profiter au maximum
possible de ces technologies afin d’améliorer leurs productivités et de faire face à
quelques problèmes pénibles qui peuvent constituer un obstacle de progression.
Dans ce cadre, on a eu la responsabilité de développer une application web permettant
de gérer une école privée.
La naissance de cette idée est due pour répondre à un ensemble des besoins
notamment : gestion des élèves (inscription - réinscription - création des emplois du
temps ...); gestion des professeurs (gestion des informations et diplômes -
affectation aux classes ...); gestion des niveaux et classes (créations des niveaux
avec leurs classes, affecter à chaque niveau ses disciplines ...); ...
L’implémentation n’est pas la seule difficulté à surmonter, il faut savoir que la
gestion d’un établissement scolaire privé est beaucoup plus complexe et différente
que celle dans un établissement public, en effet les établissements privés ont un
besoin de gérer le transport, les activités parascolaires…etc.
Pour mener à bien le développement de ce projet, le choix de la méthode de
développement s’est porté sur la méthode agile "SCRUM". En effet, la méthode
SCRUM est une solution de développement logiciel adapté à tous types de projets,
et parmi l’une des caractéristiques de SCRUM, c’est que le personnel participe
activement à la définition des activités et des horaires, de sorte que le degré
d’engagement et la motivation sont plus élevés.
Il faut noter que l’outil Star UML m’a aidé énormément à élaborer et gérer les
différents diagrammes UML.
Pour ce qui concerne le volet technique, j'utiliserai un ensemble d’outils tels que :
PHP, JQuery, Ajax, Html, Css , bootstrap.
Ayant présenté les outils et les méthodes adoptés, je vais exposer maintenant le
plan de ce rapport de mémoire de fin d’étude, qui se subdivise en trois chapitres
principaux :
Chapitre 1 : cahier de charge et capture des besoins.
Chapitre 2 : analyse et conception.
Chapitre 3 : réalisation.
Enfin, une conclusion sera donnée enfin de ce rapport.
Chapitre 1 : Cahier de charge et capture des
besoins
1. Introduction
Ce chapitre a pour rôle de montrer les besoins du client, ainsi que les besoins fonctionnels et
non fonctionnels de la future application, de préciser les livrables et les risques les plus
critiques du projet.
2. Besoins du client
Au cours de notre projet de fin des etudes , après recherche on souhaite établir la mise en
œuvre d’un portail-web sur la gestion d’école privée qui comporte un ensemble de
modules :
Ce module contient quatre volets qui sont : l’inscription, la réinscription, les absences et les
retards ainsi que l’exploitation des notes obtenues.
L’inscription qui se divise en deux.
Celle des élèves qui vont s’inscrire pour la première fois en première année du primaire.
En
effet, cet acte est statué par l’obligation d’avoir l’âge réglementaire de scolarisation qui est
fixé à 6 ans avec autorisation d’accepter les élèves nouvellement inscrits et d’allonger
la date d’inscription à 3 mois avant l’âge de six ans (c’est-à-dire : les élèves qui sont nés du
01 janvier
jusqu’au 31 mars).
Les parents des intéressés doivent présenter à l’école un dossier orange (à tirer de l’école ou à
acheter chez les libraires) après avoir rempli la partie réservée à l’état civil concernant la date
de naissance de l’élève. Parmi les pièces d’inscription, on trouve les photos d’identité de
l’élève,
la photocopie de la CIN des parents ou tuteurs, l’adresse, le GSM et le fixe s’il existe.
Enfin, les parents ou tuteurs doivent régler les frais d’inscription, les frais de scolarisation, les
frais du transport et de la cantine (les deux derniers sont facultatifs).
Les élèves nouveaux dans l’établissement ayant présenté un certificat de sortie
réglementaire certifié homologué par la délégation régionale, ces élèves qui ont un niveau
supérieur à la année du primaire peuvent bénéficier aussi d’une inscription à condition
d’avoir une place vacante dans le niveau souhaité et remplir les clauses de l’inscription telle
que : la photo de l’élève, son acte de naissance et les informations personnelles, les
cordonnées
des parents ou tuteurs.
Le règlement des frais d’inscription, de scolarisation, des droits de transport et de la cantine
sont obligatoires sauf les deux derniers points qui sont facultatifs.
L’élève est en situation réglementaire, c’est-à-dire si son nom figure sur la liste des élèves
admis en classe supérieure ou ayant le droit au doublage.
La réinscription se fait après la présentation des pièces demandées et après le règlement des
frais d’inscription, des droits de scolarisation et des services désirés tel que le transport et la
cantine.
Les retards et les absences :
Le traitement des absences et retards des élèves est réglementé par le code interne de
l’établissement.
Les absences et les retards peuvent être justifiés ou non, dans le deuxièmes cas : les parents ou
tuteurs doivent signer un engagement pour ne pas donner la totalité de la responsabilité à
l’école vis-à-vis de l’absence ou du retard non justifié de leur enfant.
L’exploitation et le traitement des notes obtenues par les élèves dans les contrôles continus
visent à suivre et à mieux contrôler le travail de l’élève, son évolution ou son retard scolaire
est l’une des préoccupations de l’administration.
Les parents sont avisés aussi du comportement de leurs enfants au moment opportun, ils sont
convoqués à l’école pour décider de la prise d’une mesure éducative à prendre.
Exemple : Soutien de l’élève dans telle ou telle matière…
Exploitabilité : les impacts en termes de performances doivent être pris en compte lors de
développement, ainsi que la consommation des ressources (CPU, mémoire, etc.) qui doit être
minimisée.
Capacité fonctionnelle et convivialité : les composants développés doivent respecter les
spécifications fournies. Le système doit être facilement utilisable et disposer d’interfaces
conviviales, notamment par le respect des règles d’ergonomie.
Sécurité : Chaque utilisateur, pour accéder à l’application, est obligé de s’authentifier par un
nom d’utilisateur et un mot de passe. Il ne pourra accéder qu’aux pages qui lui sont permises
par son profil ou les droits d’accès qui lui sont affectés par l’administrateur.
Les mots de passe ne sont enregistrés dans la base qu’après un chiffrement (MD5).
5. Conclusion
A la fin de ce chapitre, on a bien étudié les besoins du client ; on a présente l’ensemble des
fonctionnalités du futur portail de manière organisée dans les différents cycles de l’application
soit fonctionnel ou non fonctionnel, les livrables ainsi que les risques du projet.
Chapitre 2 : Analyse et conception
1. Introduction
Dans cette partie, on va analyser et modéliser les besoins du client avec le langage UML.
L’activité d’analyse et de conception permet de traduire les besoins fonctionnels et les
contraintes issues du cahier des charges et de la spécification des exigences dans un langage
plus professionnel et compréhensible par tous les individus intervenants dans la réalisation et
l’utilisation de l’application.
2. UML
a. Choix d’UML
UML, c’est l’acronyme anglais pour « Unified Modeling Language ». On le traduit par
«Langage de modélisation unifié ». La notation UML est un langage visuel constitué
d’un ensemble de schémas, appelés des diagrammes, qui donnent chacun une vision
différente du projet à traiter. UML nous fournit donc des diagrammes pour représenter le
logiciel à développer : son fonctionnement, sa mise en route, les actions susceptibles d’être
effectuées par
le logiciel, etc.
b. Pourquoi modéliser ?
De la même façon qu'il vaut mieux dessiner une maison avant de la construire, il vaut mieux
modéliser un système avant de le réaliser.
Modéliser, c’est décrire de manière visuelle et graphique les besoins, les solutions
fonctionnelles et techniques du projet.
Modéliser pour :
- Obtenir une modélisation de très haut niveau indépendante des langages et
des environnements.
- Faire collaborer des participants de tous horizons autour d’un meme document de
la synthèse
- Faire des simulations avant de construire un système.
3. Présentation des outils
Il se représente par un petit bonhomme (figure 6) avec son nom (son rôle) inscrit dessous.
A pour fonctionnalités:
Consultation des ses enfants.
Consultation des rapports
Parent Consultations des examens
Consulation des absences
Consultation des notes ….
Acteurs indirects :
Ce sont les acteurs qui n’utilisent pas l’application, mais participent d’une façon indirecte
dans
le processus.
Chauffeurs
<<include>>
Contacter l'adminisration
<<include>>
<<include>>
<<include>>
<<include>>
Consulter les rapports
<<include>>
<<extend>>
Ajouter
<<include>>
Contacter l'adminisration
<<include>>
<<include>>
<<include>>
<<include>>
<<extend>>
<<extend>> <<extend>>
<<include>> S'authentifier
<<include>>
Gérer les rapports
<<include>>
Professeur
Contacter l'adminisration
Ajouter Modifier
Supprimer
<<extend>>
<<extend>> <<extend>>
<<include>>
<<include>>
Gérer le transport scolaire
<<include>>
<<include>> S'authentifier
Gérer les matières
<<include>>
Administrateur
<<include>>
<<extend>> <<extend>>
Consulter Supprimer
Titre : Authentification.
Objectif : Permettre à chaque utilisateur de l’application, de s’authentifier vers
ses rôles, à travers un login et mot de passe.
Acteurs : utilisateur – système.
Description des enchainements :
Enchainements :
o Scenario :
system
: Utilisateur
1 : Saisir le login et le mot de passe()
2 : vérification()
Pré conditions :
o Authentification.
o L’inscription d’un élève doit répond aux conditions d’inscription établie par
la direction régionale.
Enchainements :
o Scenario :
1. Saisie les informations de l’élève.
2. Contrôle des données en temps réel (matricule – cne – cin) en cas de duplication.
3. Validation de la saisie.
4. Traitement des informations envoyé.
5. En cas d’une anomalie, l’inscription est rejetée on précisant l’erreur effectuée.
6. Si non, l’inscription est effectuée avec succès avec redirection d’utilisateur vers la
liste d’élèves.
System
: Administrateur
seq Authentification
2 : Controle de données()
7. Diagramme de classe
Le diagramme de classe est une description statique du système focalisé sur le concept de
classe et d’association. Une classe représente un ensemble d’objets qui possèdent des propriétés
similaires et des comportements communs décrivant en terme d‘attributs et d’opérations.
Une association consiste à présenter les liens entre les instances de classe. Durant cette
section, nous allons présenter les diagrammes de classes entités à notre application.
professeur
rapport
absences
#id_professeur
+nom #id_rapport
+date +id_absence
+email 0..* 0..* +date
+telephone +description
+raison
+eleve
0..* 0..*
0..* 0..*
cours 0..*
#id_cours
+matiere
0..*
0..* +description
+classe
+fichier_joint eleve 0..*
#id_eleve
+nom_prenom classe
+date_naissance
+classe #id_classe
+adresse 0..* 0..* +description
parent +phone
+email 0..*
#id_parent
+nom 0..*
+email 0..*
+telephone 0..*
+adresse
0..*
notes
#id_note matiere
+matiere
+eleve #id
0..* +nom_matiere
+note
+description
transport administrateur
actualite
#id_transport #id_administrateur
0..* 0..* +nom 0..* #id_actualite
+jour
+date +email +date
0..* 0..*
+temps +login +description
+mot de passe
0..*
8. Conclusion
Dans ce chapitre, nous avons conçu et documenté le code que nous devons produire. Dans
cette phase, toutes les questions concernant la manière de réaliser le système à développer
ont été élucidées. Le produit obtenu est un modèle graphique (ensemble de diagrammes)
prêt à être codé. Dans le chapitre suivant nous allons étudier en détails les outils et les
langages utilisés durant la phase de construction.
Chapitre 3 : Réalisation
Introduction
Une implémentation est toujours réalisée par un programmeur particulier sur une
plate-forme particulière. Cette définition est décrite dans un dictionnaire. Donc, le but de
l’implémentation est de s’approcher plus au monde réel et physique du système.
Un site web dynamique est un site dans les pages peuvent être générées à « la volée »
(dynamiquement) en fonction d’une demande d’un utilisateur.
Pour sélectionner le langage de développement avec lequel on va développer notre site web
dynamique, on a essayé de comparer les différents outils de développement Web disponibles
afin de trouver celui qui répond à nos besoins. Le langage à choisir doit être open source et
compatible avec MySQL, Apache et Windows. En outre, ce langage doit pouvoir assurer ce
qu'on a déjà prévu réalisable à la conception. Pour toutes ces nécessités on a opté à choisir
PHP pour développer notre site web dynamique. En effet, PHP peut s'interfacer avec MySQL
et Apache, et il est indépendant du système d'exploitation. Relativement aux autres langages
de développement, on trouve que la force de PHP réside dans le fait que celui-ci supporte
directement les requêtes SQL (Structured Query language) se qui se traduit par langage de
requêtes structurées. Enfin, on trouve que le principal intérêt de PHP est que celui-ci permet
de créer facilement des pages dynamiques résultats de calculs ou de requêtes SQL effectuées
sur une base de données. De plus, l'exécution de ces pages se fait sur le serveur, ce qui
empêche l'affichage du code source aux clients et interdie l'accès aux fichiers comportant des
données sécurisées, d'ailleurs c'est le cas du login et mot de passe de l'administrateur de notre
site web dynamique qui vont être stockés dans un fichier. Comme tout autre langage de
développement, PHP présente quelques limites qui empêchent la réalisation de certaines
fonctions. En effet, bien que l'exécution de ce langage sur le serveur soit considérée comme
un avantage mais cela n'autorise pas les traitements sur le poste client. Pour cela, et afin de
négliger les limites de PHP, on a décidé d'utiliser javascript en parallèle qui s'occupera des
évènements effectués sur le poste client et qui sera complémentaire à PHP.
Notre choix est basé sur Wamp5 de fait que ce dernier permet d'installer tout le nécessaire
pour commencer à programmer en PHP avec Apache et MySQL. Il simplifie toute 49
l'installation grâce à un setup automatisé et évite toute la configuration du serveur. La version
5 est composée de :
- Apache 2.
- PHP 5.
- MySQL 5.
- Phpmyadmin.
c. Professeur
Par la suite, nous nous sommes intéressés à l’analyse et la spécification des besoins qui
nous a permis de distinguer les différents acteurs interagissant avec l’application visée.
L’objectif de la partie suivante était la conception détaillée, dans laquelle nous avons fixé la
structure globale de l’application. Le dernier volet de notre projet était la partie réalisation
qui a été consacrée à la présentation des outils du travail et les interfaces les plus
significatives de notre application.
L’apport de ce travail a été d’une importance très considérable. En effet, il nous a permis : de
suivre une méthodologie de travail bien étudiée, d’approfondir nos connaissances dans le
monde de développement des applications et de bien nous exercer sur PHP , javascript et
bootstrap.
La réalisation d’un tel projet, nous a permis d’apprendre et de toucher du doigt une partie
des divers aspects du métier de développeur et de celui du concepteur.