Académique Documents
Professionnel Documents
Culture Documents
Cette étude se veut être une solution dans plusieurs secteurs clés à savoir la
démographie, l’insécurité, l’analphabétisme etc. Ainsi, les solutions proposées peuvent
permettre à tous citoyens de bénéficier des actes de naissance, de mariage et de décès;
ce qui contribue à la bonne gestion de l’état civil de la mairie.
Des difficultés n’ont pas manqué. Les principales difficultés rencontrées sont
l’insuffisance de capacité technique et le manque d’expertise en matière de compilation
et d’analyse des statistiques de l’état civil. Ce qui nous a obligé à nous contenter des
agents et officiers d’état civil ainsi que les technologies disponibles.
DEDICACE
Je dédie ce travail :
A mon père, Thierno Ahmadou Moctar KANE, en vous je vois un père dévoué à sa famille.
Votre présence en toute circonstance m’a plusieurs fois rappelé le sens de la responsabilité.
4
Merci pour tout !
A ma mère, Fatimata SALL, en vous je vois la maman parfaite, toujours prête à se sacrifier
pour le bonheur de ses enfants.
A tous les membres de la famille, mes amis et mes camarades de classe qui m’ont toujours
soutenu.
REMERCIEMENTS
✔ Mon encadreur, Monsieur Mallé NDIAYE, pour ses conseils judicieux, précieux et ses
directives pertinentes pour sa disponibilité et surtout pour la direction de ce mémoire.
Je lui témoigne de ma sincère gratitude tout en saluant la compétence, la diligence et la
patience dont il a toujours fait preuve pendant ce long processus.
✔ Mon maître de stage, M. Sérigne MBACKÉ pour son expertise, sa disponibilité et les
conseils précieux qu’il m’a prodigués dans le cadre professionnel.
5
✔ Tout le corps professoral d’ISI, pour avoir contribué à ma formation.
RESUME
La mairie de la commune de Fanaye utilise depuis très longtemps des documents écrits pour
la gestion de l’enregistrement des actes d’état civil. Ces documents ne répondent pas entièrement
aux attentes des utilisateurs, ainsi un logiciel de gestion des actes d'état civil a été conçu par AIMF,
installé et exploité au centre principal de Dakar, dans 14 centres secondaires, à Kaolack, Thiès,
Saint-Louis et en 2005 à Ziguinchor.
Mais, ce logiciel présente des limites notamment dans la manipulation que dans l’archivage.
En 2007, la société ATI qui a conçu le logiciel n’existe plus et des problèmes de mises à jour et de
complétude des fonctionnalités ont commencé à se poser au niveau de l’application. Il y a des
difficultés pour adapter le logiciel par rapport à la déclaration de l’acte III de la décentralisation et
l’acceptation du registre électronique par le code de la famille.
6
Mais aussi par rapport à la complétude des fonctionnalités et des documents imprimables. Et
enfin, la partie du logiciel qui était censé gérer la gestion des statistiques n’est pas fonctionnelle, de
même que la gestion de l’archivage.
Dans ce mémoire, nous proposons ainsi une nouvelle application dans le but de remplacer
l’ancienne. Pour ce faire, des études ont été menées ainsi que des séries d’entretiens avec les
utilisateurs (Officier état-civil, Agents d’état civil, administrateur). Nous avons aussi opté pour la
méthode (ou processus) unifiée 2TUP pour le processus de développement de notre application. Une
spécification des besoins nous a permis de formaliser les données avec UML. En ce qui concerne la
structuration et le stockage des données, nous avons utilisé le Système de Gestion de Bases de
Données Relationnelles (SGBDR) MySQL. L’implémentation en Spring Boot (JAVA) nous a
permis de mettre en place une application souple, sécurisée, facile à utiliser et permettant de gérer
parfaitement la gestion des actes d’état-civil dans la commune de Ziguinchor.
ABSTRACT
In order to obtain the diploma of bachelor (B.S) in Informatique and Management at ISI
(Computer Science Institute of Higher Learning), I have designed an end-of-training project in
order to complete my theoretical and practical undergraduate training. Thus, I have
entertained the idea to design and implement a Web application, which will contribute to the
efficiency and management quality of the school named Al Hidaaya for a better performance
and a better competitivity in the educational milieu. On the same occasion, I have seized the
opportunity to deepen and enrich my theoretical knowledge and my practical experience as
well through the elaboration and implementation of this application. The goal for the
development of this application is to qualitatively manage the number of students and solve
some registration issues, which will facilitate the school administration tasks. To put it in a
nutshell, the main goal of this application is to enable online registration and to add, edit and
delete data related to a student.
SOMMAIRE
8
Conclusion générale ………………………………………………………………………...
ABRÉVIATIONS
BS Bachelor
9
ISI Institut Supérieur d’Informatique
CF Commune de Fanaye
10
Figure8 : Formalisme cas d’utilisation
11
LISTE DES TABLEAUX
INTRODUCTION GENERALE
De nos jours, le monde connait une avancée technologique considérable dans tous les
secteurs et cela à l’aide de l’informatique. Celle-ci est la science qui permet de traiter
automatiquement des informations à l’aide d’un ordinateur. Sur le plan éducatif, elle permet
d’améliorer la qualité de l’enseignement en utilisant le numérique. Au Sénégal, les problèmes
liés à l’éducation se posent avec acuité. Cependant, on remarque une nette amélioration de la
qualité de l’enseignement et un meilleur accès à l’éducation, ce qui nous permet d’avoir un
ensemble d’outils pour la production et le traitement des documents numériques. N’ayant pas
une application web dynamique alors, effectuer notre stage au sein de Bushra Consulting nous
permettrai non seulement de mettre en œuvre et de renforcer nos compétences acquises mais
aussi d’élargir nos capacités en informatique par la découverte de nouveaux logiciels et
applications. Dans le cadre de notre formation universitaire, nous avons des connaissances
théoriques qui ne peuvent être valoriser et exploiter que dans un environnement professionnel
et pratique. Dès lors, nous avons opté pour Bushra Consulting qui offre un climat
professionnel dans lequel nous pouvons faire valoir nos connaissances théoriques pour mieux
développer et être en réalité du monde professionnel.
14
Pour bien gérer cette école, l’administration a besoin d’avoir accès à des informations qui
l’aideront à faire un faire choix. L'école coranique peut rencontrer une variété de problèmes.
Nous répondrons à ces problématiques dans notre mémoire en proposant une plateforme web
qui rend la gestion d'une école coranique plus facile, plus rapide et pour nous donner les
meilleurs résultats possibles.
L’objectif principal de notre travail est de faciliter le suivi des élèves, la gestion du
personnel et la comptabilité. Pour cela, nous avons jugé nécessaire de créer une application
simple afin de faciliter la gestion administrative et pédagogique de cette école. Ainsi, ce
projet permettra à l'école de se doter d’un outil efficace pour le contrôle et le suivi de ses
activités éducatives à savoir la facilitation, la simplification du travail, la gestion rationnelle
du temps et le suivi de tous les élèves inscrits.
15
I : Les cadres théorique et méthodologique
Les cadres théorique et méthodologique feront l’objet de notre première partie qui sera
consacrée à la présentation générale du système proprement dit, son architecture et sa
contextualisation.
16
Chapitre1 : Cadre théorique
Fondée en 2019, Al Hidaaya est une école moderne d’enseignement mixte coranique et
conventionnel. Le concept Al Hidaaya part du constat qu'au Sénégal, pays majoritairement
croyant et très ouvert sur le monde, les parents ont souvent à faire un choix entre
l'apprentissage conventionnel et la formation religieuse. Convaincu de la nécessité de
combiner les deux, Al Hidaaya propose de partir de l'enseignement franco-arabe récemment
conventionné par le gouvernement et renforcer l'apprentissage du Coran et la formation
religieuse afin de former de futurs cadres de haute formation mais ayant en sus une éducation
morale et religieuse.
Avec un programme novateur alliant ces deux types d’enseignement, Al Hidaaya fait face à
plusieurs défis et non des moindres : en effet, l'articulation entre les différents régimes
(pensionnat, demi-pensionnat, externat), les différentes matières des différents enseignements
(instituteurs, enseignants coraniques, ...) ainsi que la logistique et l'intendance requises pour
faire fonctionner l'ensemble sont lourds à gérer sans assistance informatique. Ayant moimême
eu ce type de formation et donc convaincu de son bien-fondé, c'est donc tout naturellement que
j'ai orienté mes travaux de stage dans la conception d'un outil de gestion d'école en général et
17
prenant en compte les spécificités du concept Hidaaya en particulier. Avec bien sûr, à la clé,
DIRECTION
Secrétaire Général
Salle des
Comptabilité Surveillance professeurs
une application certes modeste dans son ambition, mais utile au quotidien pour cette école
dont c'est pour moi une forme de contribution mais aussi que je peux continuer à enrichir plus
tard que ce soit dans un cadre professionnel ou extra professionnel.
2. Organigramme
18
Avec une forte culture agile et un minddset client-centric, l’entreprise
développe une proximité assez importante avec ses clients dont elle vise à
digitaliser le business. Avec une équipe pluridisciplinaire regroupant les
compétences transversales nécessaires, les équipes agiles travaillent en toute
autonomie avec leurs clients et partie-prenantes pour construire avec eux un
produit à leur image et répondant à leurs besoins et usages.
Aussi, dans le cadre de mon stage, ai-je travaillé avec une petite équipe
agile qui travaillait avec une école pour en digitaliser les process. J’ai tour à
tour travaillé avec l’équipe produit dans la spécification du besoin et avec
l’équipe de réalisation dans le développement des écrans notamment ceux
du module de gestion des élèves.
1. Problématique
Pour une bonne gestion de cette école, il est fondamental de poser et de trouver des
réponses aux questions suivantes :
Le principe objectif de ce projet est de mettre en place un nouveau système de gestion des
élèves et de l’administration facilitant la saisie, la partage, l’exploitation et le stockage des
informations. Ainsi, notre travail consiste à mettre en place une application qui regroupe les
fonctionnalités suivantes :
▪ Gestion des inscriptions (CRUD)
▪ Gestions des frais de scolarité
▪ Gestion des notes
19
III. Étude de l’existant
L’étude de l’existant est une phase importante pour bien comprendre le système actuel et
définir ses objectifs. Elle vise à permettre à toute personne de l’école de :
20
Chapitre2 : Cadre méthodologique
21
Pour passer de l’étude d’un projet à sa traduction en langage machine, la phase
d’analyse et de modélisation semble incontournable.
I. Méthode d’analyse et de conception
Au niveau de cette phase, nous avons à faire une synthèse de quelques méthodes
d’analyses afin d’en tirer des avantages et inconvénients, ce qui nous permettra de
faire un choix parmi ces méthodes.
1. Étude méthodologique
❖ Le modèle en cascade
Le modèle en cascade est un modèle de gestion linéaire qui divise les processus de
développement en phases de projet successives. Contrairement aux modèles itératifs, chaque
phase est effectuée une seule fois. Les sorties de chaque phase antérieure sont intégrées
comme entrées de la phase suivante. Le modèle en cascade est principalement utilisé dans le
développement de logiciels.
❖ Le modèle en V
Le modèle en V ou cycle en V est un modèle utilisé dans différents processus de
développement, notamment dans le développement de logiciels. Élaboré dans les années 90
sous forme originale, il est perfectionné au fil des années et adapté aux méthodes de
22
développement contemporaines. L’idée de départ remonte cependant aux années 70 et a été
imaginée comme sorte de prolongement du modèle en cascade.
Figure 3 : Modèle en V
23
Figure 4 : Modèle par incrément
❖ La méthode agile
En ingénierie logicielle, les pratiques agiles mettent en avant la collaboration entre des
équipes auto-organisées et pluridisciplinaires et leurs clients. Elles s'appuient sur l’utilisation
d'un cadre méthodologique léger mais suffisant centré sur l’humain et la communication. Elles
24
préconisent une planification adaptative, un développement évolutif, une livraison précoce et
une amélioration continue, et elles encouragent des réponses flexibles au changement.
⮚ Modélisation fonctionnelle
La modélisation fonctionnelle est utilisée au début d'un projet pour créer ou améliorer un
produit.
Cette méthode permet, en phase d’analyse des besoins, de modéliser de façon
méthodique, complète et précise un domaine fonctionnel. ✔ Avantages de la modélisation
La modélisation fonctionnelle (également qualifiée de modélisation structurée) est une
démarche qui consiste à rechercher et à caractériser les fonctions offertes par le produit pour
satisfaire les besoins de son utilisateur. Elle met en évidence les fonctions à assurer et propose
une approche hiérarchique descendante et modulaire. Cette méthode utilise intensivement les
raffinements successifs pour produire des spécifications dont l’essentiel est sous forme de
notation graphique en diagrammes de flots de données. Le plus haut niveau représente
l’ensemble du problème (sous forme d’activité, de données ou de processus, selon la
méthode). Chaque niveau est ensuite décomposé en respectant les entrées/sorties du niveau
supérieur. La décomposition se poursuit jusqu’à arriver à des composants maîtrisables.
L’approche fonctionnelle dissocie le problème de la représentation des données, du problème
du traitement de ces données.
25
❖ Une maintenance complexe en cas d'évolution d’une application (une simple mise à
jour de l'application à un point donné peut impacter en cascade sur d'autres fonctions
de l’application). L'application sera alors retouchée dans sa globalité.
★ Encapsulation
Elle consiste à masquer des attributs et des méthodes de l’objet vis-à-vis des autres objets
car certains objets et méthodes ne doivent pas être exposés aux objets extérieurs. Tout objet
est vu comme une entité́ et le principe de l’encapsulation est qu’il n’est pas possible d’agir
directement sur les données d’un objet ; il est nécessaire de passer par l’intermédiaire de ses
méthodes qui jouent ainsi le rôle d’interface obligatoire. ★ Héritage
L’héritage est un principe propre à la programmation orientée objet, permettant de créer
une nouvelle classe à partir d’une classe existante.
Le nom d’héritage provient du fait que la classe dérivée (la classe nouvellement créée)
contient les attributs et les méthodes de sa super classe (la classe dont elle dérive). En outre, il
évite la duplication et encourage la réutilisation.
★ Polymorphisme
Le polymorphisme signifie qu’une classe (généralement abstraite) représente un ensemble
constitué d’objets différents car ils sont instances de sous classes distinctes et lors de l’appel
d’une méthode de même nom, cette méthode se traduit par des comportements différents. Le
polymorphisme augmente la générosité́ du code.
26
NB : Une classe c’est une abstraction des objets. C’est aussi la description d’un ensemble
d’objets ayant une structure de données communes et disposant les mêmes méthodes.
★ Avantages de la modélisation orientée objet
L’approche objet possède plusieurs avantages tels que :
▪ La modélisation des objets de l'application consiste à modéliser informatiquement un
ensemble d’éléments d’une partie du monde réel en un ensemble d’entités
informatiques. Ces entités informatiques sont appelées objet.
▪ La modularité (la programmation modulaire permet la réutilisation du code, via
l’écriture de libraires)
▪ La réutilisabilité
▪ L’extensibilité (pour une meilleure productivité des développeurs et une plus grande
qualité des applications).
★ Inconvénients de cette méthode
27
claire, une séparation entre entités plus importantes et ont amené les développeurs à introduire
les notions de réutilisabilité, de modificabilité et de traçabilité.
❖ Encapsulation
Elle consiste à masquer des attributs et des méthodes de l’objet vis-à-vis des autres objets
car certains objets et méthodes ne doivent pas être exposés aux objets extérieurs. Tout objet
est vu comme une entité́ et le principe de l’encapsulation est qu’il n’est pas possible d’agir
directement sur les données d’un objet ; il est nécessaire de passer par l’intermédiaire de ses
méthodes qui jouent ainsi le rôle d’interface obligatoire.
❖ Héritage
C’est la propriété́ qui fait bénéficier à une sous classe de la structure et du comportement de
sa superclasse. L’héritage (généralisation / spécialisation) permet de définir une nouvelle
classe à partir d’une classe existante (qu’on réutilise en bloc), à laquelle on ajoute de
nouvelles données et méthodes. La conception de la nouvelle classe, qui hérite des propriétés
et des aptitudes de l’ancienne, peut ainsi s’appuyer sur des réalisations antérieures
parfaitement au point et les réaliser à volonté́ .
❖ Polymorphisme
Le polymorphisme signifie qu’une classe (généralement abstraite) représente un
ensemble constitué d’objets différents car ils sont instances de sous classes distinctes et lors
de l’appel d’une méthode de même nom, cette méthode se traduit par des comportements
différents. Le polymorphisme augmente la généricité́ du code. ❖ Objet
C’est une entité matérielle ou immatérielle ayant un sens pour le système d’information
identifiable par un nom ; son état est caractérisé par un ensemble d’attributs et de méthodes ou
opérations définissant son comportement. Un objet est une instance de classe (une occurrence
de classe).
❖ Classe
Elle n’est rien d’autre que la description d’un ensemble d’objets ayant une structure de
données communes et disposant les mêmes méthodes.
28
- Les aspects fonctionnels : Qui utilisera le logiciel et pour quoi faire ? Comment les actions
devront-elles se dérouler ? Quelles informations seront utilisées pour cela
- Les aspects liés à l’architecture : Quels seront les différents composants logiciels à utiliser
(base de données, librairies, interfaces, etc.) ? Sur quel matériel chacun des composants sera
installé́ ?
UML modélise donc le système logiciel suivant ces deux modes de représentation.
29
● Inclusion : un cas A inclut un cas B si le comportement décrit par le cas A
inclut le comportement du cas B : le cas A dépend de B. Lorsque A est
sollicité, B l'est obligatoirement, comme une partie de A. Cette dépendance est
symbolisée par le stéréotype « include ».
● Extension : on dit qu'un cas d'utilisation A étend un cas d'utilisation B lorsque
le cas d'utilisation A peut être appelé au cours de l'exécution du cas d'utilisation
B. Cette dépendance est symbolisée par le stéréotype « extend »
● Généralisation : un cas A est une généralisation d’un cas B si B est un cas
particulier de A. Par exemple, la consultation d’un compte via Internet est un
cas particulier de la consultation. Cette relation de généralisation/spécialisation
est présente dans la plupart des diagrammes UML et se traduit par le concept
d’héritage dans les langages orientés objet.
Associations, qui ont une relation entre deux classes (association binaire) ou plus
(association n-binaire), qui décrit les connexions de structures entre leurs instances.
Cardinalités, qui définissent le nombre d’instances qui participent à une relation. C’est
donc un nombre entier ou un intervalle de valeur (exactement un ou 1 ou encore 1..1,
plusieurs n, zéro ou 0..1, zéro ou plusieurs 0..n, un ou plusieurs 1..n).
● Diagramme de séquence
Il permet de décrire les scenarios de chaque cas d’utilisation. Un diagramme de séquence
permet de représenter des collaborations entre objets selon un point de vue temporel, on y met
l’accent sur la chronologie des envois de messages entre objets.
31
Figure 10 : Diagramme de séquence
● Diagramme de déploiement
Il montre la disposition physique des matériels qui composent le système et la répartition
des composants sur ces matériels.
Les ressources matérielles sont représentées sous forme de nœuds. Les diagrammes de
déploiement peuvent montrer des instances de nœuds (un matériel précis), ou des classes de
nœuds. De manière générale, le diagramme de déploiement décrit l’architecture technique du
système.
On peut citer aussi d’autres diagrammes : diagramme de communication, diagramme
d'interaction, diagramme de composant, diagramme de temps, diagramme de structure
composite, diagramme d’activité, ...
32
Figure 11 : Diagramme de déploiement
33
CHAPITRE 3 : ANALYSE DU SYSTÈME
I. ANALYSE DES BESOINS
Les besoins fonctionnels ou bien métiers représentent les actions que le système doit
exécuter, il ne devient opérationnel que s’il les satisfait.
Dans notre application, les principales fonctionnalités sont les suivantes :
★ S’authentifier
★ S’inscrire un élève
★ Modifier les informations d’un élève
★ Supprimer un élève
★ Afficher les informations d’un élève
3. Quelques diagrammes
34
01. Diagramme de contexte
35
03. Diagramme de cas d’utilisation
SOMMAIRE
Titre Valider inscription
Objectif Permet d’inscrire un élève dans l’école.
Acteur Principal Secrétaire
ENCHAINEMENT
Précondition Post Condition
Le secrétaire est connecté Le secrétaire clique sur le bouton Valider
36
SCENARIO NOMINAL
1. Le système vérifie si le secrétaire s’est connecté.
2. Le secrétaire clique sur le bouton « Nouveau ».
3. Le système ouvre la page d’inscription.
4. Le secrétaire remplit les informations de l’élève.
5. Le secrétaire remplit les informations de son tuteur.
6. Le secrétaire remplit la colonne de l’enseignement.
7. Le secrétaire clique sur le bouton Valider.
8. Le système vérifie si les champs obligatoires ont été remplis.
9. Le système ajoute un élève dans la liste des inscrits.
SCENARIO ALTERNATIF
1. Le secrétaire n’est pas connecté
a. Le système n’affiche pas la page d’inscription
2. Tous les champs obligatoires ne sont pas remplis
a. Le bouton « Enregistrer » sera grise
SOMMAIRE
Titre Éditer les infos de l’élève
Objectif Permettre au secrétaire de modifier les
informations de l’élève.
ENCHAINEMENT
Précondition Post Condition
Le secrétaire est connecté Le secrétaire clique sur le bouton Éditer
SCENARIO NOMINAL
37
1. Le système vérifie si le secrétaire s’est connecté
2. Le secrétaire clique sur la ligne contenant les informations de l’élève concerné
3. Le système affiche les informations de cet élève
4. Le secrétaire peut modifier les informations de l’élève
5. Le secrétaire peut modifier les informations de son tuteur
6. Le secrétaire peut modifier la colonne de l’enseignement
7. Le secrétaire clique sur le bouton Valider
8. Le système vérifie si les champs obligatoires ont été remplis
9. Le système met à jour la liste des élèves inscrits
SCENARIO ALTERNATIF
1. Tous les champs obligatoires ne sont pas remplis
a. Le bouton « Enregistrer » sera grise
2. Le secrétaire annule le processus
a. Le système le redirige à la page d’inscription
SOMMAIRE
Titre Supprimer infos élève
ENCHAINEMENT
Précondition Post Condition
Le secrétaire est connecté Le secrétaire clique sur le bouton
Supprimer
SCENARIO NOMINAL
38
1. Le système vérifie si le secrétaire s’est connecté
2. Le secrétaire clique sur la ligne contenant les informations de l’élève concerné
3. Le secrétaire clique sur le bouton Supprimer
4. Le secrétaire confirme la suppression
5. Le système supprime définitivement cet élève de la liste des inscrits.
6. Le système met à jour la liste des élèves inscrits
SCENARIO ALTERNATIF
Le secrétaire annule le processus
Le système le redirige à la page d’inscription
39
05. Diagrammes de séquence
40
Chapitre IV : Conception du système
UML est une approche orientée objet de modélisation qui permet de modéliser un problème
d’une manière standard. UML évite de se définir comme une méthodologie, comme son nom
l’indique. C’est un langage « visuel » qui permet d’exprimer la compréhension d’un système.
Il comporte 13 diagrammes dont 9 principaux regroupés dans deux vues différentes :
41
Diagramme de conception ; ✔
Diagramme de déploiement ;
⮚ Vue dynamiques (quatre diagrammes comportementaux)
✔ Diagramme de séquence ;
✔ Diagramme d’activité ; ✔
Diagramme d’états transition ;
✔ Diagramme de collaboration ;
A cet effet, on présente quelques diagrammes de modélisation qu’on a jugés plus
importants pour la compréhension du fonctionnement du système.
42
Figure 21 : Diagramme de séquence de conception de « Valider inscription »
Figure 22 : Diagramme de séquence de conception de « Éditer infos élève » Figure 23 : Diagramme
de séquence de conception de « Supprimer infos élève »
43
Figure 24 : Diagramme de classe de conception
44
III. Diagramme de déploiement
45
III : Mise en œuvre
Chapitre V : Réalisation
C’est le langage dans lequel sont écrites les pages web ; ainsi nous pouvons créer notre
page web rien qu'avec le bloc-notes (notepad.exe) ou tout autre éditeur de texte. Il vous suffit
pour cela d'entrer les instructions comme si c'était du texte et d'enregistrer le texte ainsi obtenu
avec une extension *.htm ou *.html.
Relativement simple, ce langage repose sur un système de balises, comme par exemple
<Head>. Mais nul besoin de les connaitre pour réaliser une page de base. En effet, il existe de
nombreux éditeurs de pages web qui vous permettent de créer des pages web comme on crée
un document sous Word (Mozilla NVU, Macromedia Dreamweaver, etc.). Sachez toutefois
que le code généré́ par ces éditeurs n'est pas des plus propres. À noter qu'on ne parle pas de
langage de programmation pour HTML mais de langage de présentation.
02. CSS
Le CSS (Cascading Style Sheet) ou Feuille de Style en cascade est utilisé́ pour alléger le
code HTML. Pour cela, on crée généralement un fichier *.ccs dans lequel on entre toutes les
instructions codant le style de la page web (couleur d'arrière-plan, type de blocs, de bordures,
etc.). En faisant appel à ce fichier dans la page HTML, on peut désigner un style lourd et
complexe avec une simple petite balise. De plus, si la CSS est employée dans un site entier
(comme c'est toujours le cas), il suffit de mettre à jour le CSS pour refaire le design du site en
entier.
03. JavaScript
PHP : HyperText Preprocessor, plus connue sous son sigle PHP, est un langage de
programmation compilé à la volée libre principalement utilisé pour produire des pages
dynamiques via un server HTTP, mais pouvant également fonctionner comme n’importe quel
autre langage interprété de façon locale, en exécutant les programmes en ligne de commande.
47
PHP est un langage impératif disposant depuis la version 5 de fonctionnalités de modèle objet
complètes. En raison de la richesse de sa bibliothèque, on désigne parfois PHP comme une
plate-forme plus qu’un simple langage.
05. JAVA
Java est un langage de programmation orienté objet moderne développé par Sun
Microsystems Il ne faut surtout pas le confondre avec JavaScript (langage de scripts utilisé
principalement sur les sites web), car Java n'a rien à voir. Une de ses plus grandes forces est
son excellente portabilité : une fois votre programme créé, il fonctionnera automatiquement
sous Windows, Mac, Linux, etc. On peut faire de nombreuses sortes de programmes avec Java
:
06. C#
Notre choix du langage de programmation s’est porté sur le langage TypeScript qui très
avantageux par rapport aux autres :
Avantages du langage
48
● Il a une meilleure documentation pour les API qui est en harmonie avec un
code source.
Symfony est un ensemble de composants PHP ainsi qu'un framework MVC libre écrit en
PHP. Il fournit des fonctionnalités modulables et adaptables qui permettent de faciliter et
d’accélérer le développement d'un site web. Symfony fournit une interface en ligne de
commande pour améliorer la productivité en créant un code de base modifiable à volonté.
Symfony propose entre autres :
❖ une séparation du code en trois couches, selon le modèle MVC, pour une plus
grande maintenabilité et évolutivité ;
❖ Des performances optimisées et un système de cache afin d'assurer des temps
de réponse optimaux ;
❖ Une gestion des URL parlante, permettant à une page d'avoir une URL
distincte de sa position dans l'arborescence ;
❖ L'internationalisation native ;
❖ Le support d’AJAX ;
❖ Une architecture extensible permettant créations et utilisations de plugins.
02. Laravel
Laravel est un framework web open-source écrit en PHP respectant le principe modèle-
vuecontrôleur et entièrement développé en programmation orientée objet. Laravel est distribué
sous licence MIT, avec ses sources hébergées sur GitHub. Laravel a été créé par Taylor
Otwell en juin 2011. La version 5.0 de Laravel nécessite au minimum PHP 5.4 et son
installation est basée sur le gestionnaire de paquets Composer. Laravel fournit des
fonctionnalités en termes de routage de requête, de mapping objet-relationnel (un système
baptisé Éloquent implémentant Active Record), d'authentification, de vue, de migration de
base de données, de gestion des exceptions et de test unitaire.
03. Angular
Angular est un framework open source écrit en JavaScript qui permet la création
d’application Web et plus particulièrement de ce qu’on appelle des “Single Page
Application” : des applications web accessibles via une application web unique qui permet de
fluidifier l’expérience utilisateur et d’éviter les chargements de pages à chaque nouvelle
action. Le framework est basé sur une architecture du type MVC et permet donc de séparer les
données, le visuel et les actions pour une meilleure gestion des responsabilités. Un type
d’architecture qui a largement fait ses preuves et qui permet une forte maintenabilité et une
amélioration du travail collaboratif.
49
4. Choix du framework
Malgré toutes les fonctionnalités et caractéristiques qu'offrent les framework cités, nous
avons choisi de travailler, concernant notre projet, avec Angular qui est un framework solide,
complet et homogène qui a l’avantage de ne pas nécessiter l’ajout de composants extérieurs
pour son fonctionnement. Il est possible de faire nativement du routing de l’AJAX ou encore
du stockage en local contrairement à vue.js ou encore React qui reste au final une librairie
destinée à développer des composants.
Aussi, le framework s'appuie sur TypeScript, une surcouche au JavaScript développée par
Microsoft, qui est un langage typé qui permet de créer des classes, des variables et des
signatures de fonctions. Et s’il est parfaitement possible d’utiliser du JavaScript natif avec
Angular, l’utilisation de TypeScript permet de mieux gérer les erreurs, d’avoir un code plus
clair et aussi d’assurer une transition plus simple pour les développeurs PHP, Java ou encore
C#.
● MySQL
MySQL est certainement la base de données libre la plus connue et la plus présente dans les
entreprises en termes de part de marché. Offrant l'avantage d'être facilement configurable pour
les petites bases (moins de cinq minutes pour installer un serveur), elle supporte l'utilisation de
grosses bases contenant des millions de lignes. La gestion des grappes 1 (clusters) est présente
mais encore fortement limitée (l'ensemble du contenu des tables doit être présent en mémoire
vive). Cette architecture (toutes les données en mémoire vive) offre certes un temps de
réponse minimum, mais impose une forte contrainte. MySQL possède plusieurs systèmes
d'écriture des données. Les systèmes de fichiers sont MyIsam, InnoDB, BDB, etc. Les
fonctionnalités supportées, comme les clés étrangères ou les transactions, sont différentes en
fonction du système de fichier choisi. MySQL fonctionne sur les systèmes suivants :
50
✔ Linux
✔ Unix : Solaris, HP-UX, AIX, SCO ✔ BSD : FreeBSD ✔
Apple : Mac OS ✔ Windows ✔ Novell : NetWare Avantages :
● SQL Server
Avantages :
● Oracle Database
Oracle est un système de gestion de base de données relationnel (SGBDR) qui depuis
l'introduction du support du modèle objet dans sa version 8 peut être aussi qualifié de système
51
de gestion de base de données relationnel-objet (SGBDRO). Fourni par Oracle Corporation, il
a été développé par Larry Ellison, accompagné d'autres personnes telles que Bob Miner et Ed
Oates.
Oracle n’est pas un SGBD optimisé pour de petites entreprises ayant de petits volumes de
données et un peu d’utilisateurs (une vingtaine). Si la gestion des données devient importante
et le nombre d’utilisateurs devient également grandissant alors la nécessité quant au choix
d’un SGBD performant s’impose, et Oracle est une solution. Oracle entreprise
Oracle Standard Edition Oracle Personnal Edition Oracle Database 11g Express Edition
Avantages :
✔ SGBD le plus portable (machines/architectures) ✔ SGBD le plus utilisé
(48% marché global), ✔ SGBD le plus riche en termes de fonctionnalités ✔
SGBD le plus tenable ✔ Larges solutions d'accès (tous langages et toutes
technologies) ✔ Pas mauvais sur le marché de la haute dispo, gestion des
clusters, etc.
✔ Gestion centralisée de plusieurs instances ✔ Service web ✔ Support XML
Inconvénients :
2. Choix du SGBD
A l’issu de l’étude comparative des différents systèmes de gestion de base de données
(SGBD), notre choix s’est porté sur MYSQL. Il est un connu par sa simplicité et adapté pour
une structure de petite taille. En plus d’avoir une interface conviviale mais aussi il assure
l’intégrité des données donc sécurisé. L’une des principaux atouts du SGBD MYSQL est en
plus d’assurer la gestion de la transaction mais aussi est disponible sur plusieurs plateformes
dont Windows, Linux, Mac Os X. Il offre un outil d’administration appelé phpmyadmin sous
Windows.
I. Architecture
1. Présentation
a. L’architecture deux-tiers
L’architecture à deux niveaux caractérise les systèmes clients/serveurs pour lesquels le client
demande une ressource et le serveur la lui fournit directement, en utilisant ses propres
52
ressources. Cela signifie que le serveur ne fait pas appel à une autre application afin de fournir
une partie du service.
b. L’architecture 3-tiers
53
Figure 27 : l’architecture à 3-tiers
c. L’architecture n-tiers
2. Choix de l’architecture
54
Notre choix se porte sur l’architecture 3-tiers car elle est une architecture client/serveur
dans laquelle les applications au niveau serveur sont délocalisées, c'est-à-dire que chaque
serveur est spécialisé dans une tâche (serveur web/serveur de base de données par exemple).
L'architecture à trois niveaux permet :
Page de connexion
55
56
Page de modification et de suppression
57
CONCLUSION GENERALE
Le travail sur l’application a augmenté, en particulier sur les applications de gestion car
c'est l'un des domaines motivants et importants. Dans notre mémoire, nous avons introduit
l'application web de la gestion d’école coranique.
Dans ce travail, nous avons essayé de developper une application web pour toutes les
écoles coraniques. Dans cette application, nous avons essayé́ de rendre facilitez la gestion des
écoles coraniques et faciliter la communication entre les utilisateurs de l'école coranique et
fournir à l'étudiant tous les besoins pour faciliter la mémorisation.
58
BIBLIOGRAPHIE
I. Mémoires
III. Ouvrages
Pascal Roques, UML 2 par la pratique : Études de cas et exercices corrigés, 364 pages
WEBOGRAPHIE
Https://angular.io
https://www.typescriptlang.org
https://www.cours-gratuit.com
https://datascientest.com https://mercator.eu
59
https://www.Mcours.com
https://www.openclassrooms.com
https://www.memoireonline.com
https://www.grafikart.fr
https://www.developpez.com
https://www.w3shool.com
ANNEXES
Annexe : UML
UML, langage de modélisation objet, est récent mais déjà très référencé (qu’il s’agisse
d’ouvrages ou de sites Internet) et dispose de nombreux outils. Notez qu’UML est ouvert et
n’est la propriété de personne. Après avoir cité quelques méthodes objet, ce chapitre présente
succinctement UML : une définition, des généralités, un court historique, une bibliographie et
des outils (i.e. ateliers de génie logiciel).
60
1. Un langage unifié pour la modélisation objet
UML (Unified Modeling Language) est un langage unifié pour la modélisation objet.
✔ UML est un langage (de modélisation objet) et propose donc une notation et une
sémantique associée à cette notation (i.e. des modèles), mais pas de processus (i.e. de
démarche proposant un enchaînement d’étapes et d’activités qui mènent à la résolution
d’un problème posé) ; UML n’est donc pas une méthode.
✔ UML a une approche entièrement (i.e. couvrant tout le cycle de développement :
analyse, conception et réalisation) objet (et non fonctionnelle) : le système est
décomposé en objets collaborant (plutôt qu’en tâches décomposées en fonctions plus
simples à réaliser).
2. Quelques généralités
✔ UML est conçu pour modéliser divers types de systèmes, de taille quelconque et
pour tous les domaines d’application (gestion, scientifique, temps réel, système
embarqué). ✔ UML permet de diviser le système d’information (d’une organisation) en
le système métier et le système informatique. Le système métier modélise les aspects
statiques et dynamiques de l’activité selon une vision externe et une vision interne (en
ignorant l’implémentation technique) tandis que le système informatique recouvre la
partie automatisée du système métier concrétisant les choix effectués parmi les différentes
technologies d’actualité. Les concepts manipulés sont les mêmes, à chacun de ces deux
niveaux d’abstraction.
DÉDICACE………………………………………………………………………………. .06
REMERCIEMENT………………………………………………………………………..07
AVANT-PROPOS…………………………………………………………………………08
SOMMAIRE……………………………………………………………………………….09
GLOSSAIRE………………………………………………………………………………10
RÉSUME…………………………………………………………………………………..14
ABSTRACT……………………………………………………………………………….15
61
INTRODUCTION GÉNÉRALE…………………………………………………………16
I. Présentation de la structure…………………………………………….………...19
1. Description de l’école Al
Hidaaya………………………………………..19
2. Organigramme………………………………………………………
…….19
3. Présentation du lieu de
stage……………………………………………..20
II. Description du sujet……………………………………………………………….21
1. Problématique………………………………………………………
……..21
2. Objet de
l’étude…………………………………………………………....21 III. Étude
de l’existant……………………………………………………………..….21
ANALYSE ET CONCEPTION………………………………………………………….35
62
2. Choix de l’architecture…………………………………………………66
II. Implémentation…………………………………………………………………67
CONCLUSION GÉNÉRALE…………………………………………………70
BIBLIOGRAPHIE……………………………………………………………..71
WEBOGRAPHIE………………………………………………………………72
ANNEXE………………………………………………………………………..73
TABLE DES MATIÈRES……………………………………………………..74
IV. Cadres théorique et méthodologique………………………………………….. 17
7. Cadre théorique ……………………………………………………………… 18
8. Cadre méthodologique ………………………………………………………. 21
V. Analyse et conception…………………………………………………………….34
9. Analyse ………………………………………………………………………... 35
10. Conception ……………………………………………………………..............45
VI. Mise en œuvre ……………………………………………………………………08
9. Réalisation………………………………………………………………………08
10. Implémentation………………………………………………………………...09
63
64