Académique Documents
Professionnel Documents
Culture Documents
République du Burundi
Ministère de l’Enseignement
Supérieur et de la Recherche Mastère en Génie
Informatique
Scientifique
Année Académique:
Université du Burundi
2021-2023
Faculté des Sciences de l’Ingénieur
MEMOIRE
Présentée Par
IRAMBONA Méthode
à la
MASTER
en
Génie Informatique
Soutenu le /10/2023, devant le jury composé
de :
Dr. NDAYISABA Longin Président
Dr. MUKESHIMANA Michèle Vice-Président
Dr. NKUNZIMANA Hilaire Secrétaire
Pr. Jérémie NDIKUMAGENGE Directeur
Dr. SAHINGUVU William Membre
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
DEDICACES
i
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
REMERCIEMENTS
ii
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
IG : Informatique de Gestion
IM : Informatique de Maintenance
IT : Informatique de Télécommunication
JS : Javascript
iii
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
iv
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
v
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
vi
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
RESUME
vii
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
ABSTRACT
The world is very active and continuously evolving, it needs efficient and reliable
means of management, communication and information exchange for its best
evolution. It is in this context that a digital/digital revolution centered/based on the
availability of data and access to information in real time remains relevant. Thus, the
use of the Internet is accentuated in the smooth running of the digital/digital
revolution.
The security of data/information of companies and/or organizations remains a
challenge to be met despite the management and exchange of these on the network.
It is in this perspective that our work will focus on the implementation of a software
tool for managing trainees with the integration of an OTP authentication mode in
order to protect against any usurpation of system data.
Our work will be detailed according to the different phases of implementation of the
new tool, including the conceptualization, development and presentation of the
results obtained with a view to achieving a satisfactory tool.
viii
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
TABLE DE MATIERE
DEDICACES ..................................................................................................... i
REMERCIEMENTS ......................................................................................... ii
conlusion ......................................................................................................... 10
ix
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
x
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
xi
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
ANNEXES ...................................................................................................... 76
xii
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
INTRODUCTION GENERALE
1
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
I.1 Généralité
2
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
Les mots de passe à usage unique sont basés sur un algorithme qui crée un
nouveau code aléatoire chaque fois qu'un mot de passe est demandé. Mais pour
bien comprendre le fonctionnement d’OTP, il faut tenir compte de deux
éléments : le générateur OTP et le serveur d'authentification. Nous allons nous
pencher plus en détail sur ces deux composants.
Le générateur OTP fournira à l'utilisateur un mot de passe unique généré sur :
quelque chose que l'utilisateur possède (un jeton d'authentification) ;
Un mot de passe unique basé sur le temps (TOTP), il s'agit d'un mot de passe
OTP dont le facteur de déplacement est basé sur le temps ;Un algorithme de
mot de passe à usage unique basé sur HMAC (HOTP) qui est un algorithme
basé sur les événements OTP où le facteur de déplacement est basé sur les
compteurs plutôt que sur le temps.
En fonction de la solution MFA qui est à l'origine d’OTP, le générateur OTP
peut également inclure un élément connu de l'utilisateur. C'est pourquoi il est
important de vérifier soigneusement si votre solution MFA est basée sur
plusieurs facteurs ou sur un seul.
Le serveur d’authentification : Une fois que le générateur OTP a fourni à
l'utilisateur un mot de passe unique, comme indiqué ci-dessus, le serveur
d'authentification doit vérifier l’OTP. [13]
L’objectif principal est de mettre en place une application web avec mode
d’authentification « One Time Password » de gestion des stagiaires dans le
Centre de Nouvelle Technologie de Cibitoke
3
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
I.3. Problématique
4
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
5
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
documents peuvent être perdus, mal reclassées ou bien détériorés par l’usage
fréquent, les dossiers occupent beaucoup d’espace, les dossiers ne sont pas
sécurisés, n’importe quelle personne peut y accéder, vu qu’il n’y a pas d’un
système de génération automatique des attestations, les stagiaires doivent
toujours attendre le secrétaire pour qu’elle génère leurs attestations.
Notre étude porte essentiellement sur la gestion des stagiaires dans CNTC. En
effet la gestion des stagiaires consiste à faciliter la recherche des stagiaires, la
traçabilité des stages, l'impression des attestations du stagiaire ainsi que la
définition des profils des stagiaires. Il est donc important pour la CNTC de
mettre sur pied un système compétent pour palier à ce problème, un système
qui n'est autre que le Système Informatique de Gestion des Stagiaires de CNTC
d'où le choix de notre Thème.
6
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
7
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
I.9 Methodologies
8
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
PHP (HyperText Preprocessor), plus connu sous son sigle PHP, est un langage
de programmation libre, principalement utilisé pour produire des pages Web
dynamiques via un serveur HTTP. PHP est un langage impératif orienté
objet. Il s'agit d'un langage de script interprété côté serveur. Même s'il peut être
utilisé en ligne de commande, PHP est principalement associé à un serveur Web
utilisant le protocole HTTP dans le cadre d'une architecture client/serveur.
HTML signifie « HyperText Markup Language » qu'on peut traduire par
« langage de balises pour l'hypertexte ». Il est utilisé afin de créer et de
représenter le contenu d'une page web et sa structure.
CSS (Cascading Style Sheets : feuilles de style en cascade) est un langage
informatique qui sert à décrire la présentation des documents HTML et XML.
Les standards définissant CSS sont publiés par le World Wide Web Consortium
(W3C).
JavaScript (souvent abrégé JS) est un langage de programmation de scripts
principalement utilisé dans les pages web interactives
Bootstrap est un Framework destiné aux applications web. Développé par
Twitter et distribué sous licence Apache 2, c'est un outil à considérer lors du
développement rapide d'applications web.
APACHE est un serveur HTTP créé et maintenu au sein de la fondation
Apache. Jusqu'en avril 2019, ce fut le serveur HTTP le plus populaire du World
Wide Web.
MySQL est un système de gestion de bases de données relationnelles
(SGBDR). Il fait partie des logiciels de gestion de base de données les plus
utilisés au monde, autant par le grand public (applications web principalement)
que par des professionnels, en concurrence avec Oracle, PostgreSQL et
Microsoft SQL Server.
Sublimetext est un éditeur de texte générique codé en C++ et Python,
disponible sur Windows, Mac et Linux. Le logiciel a été conçu tout d'abord
comme une extension pour Vim, riche en fonctionnalités.
9
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
conlusion
Après avoir évoqué les généralités sur la gestion des stagiaires et décrit le
problème dans le cadre de notre étude, nous nous intéresserons dans le chapitre
suivant à l'analyse et à la conception du système de gestion des stagiaires où
nous présentons tout d'abord le langage de modélisation, ensuite la démarche
de développement et enfin la modélisation du système.
10
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
II.1.1 Historique
Pour faire face à ces problèmes, il a envisagé de mettre en place un centre qui
permettra à la population de cette localité d’apprendre et accroitre l’utilisation
des nouvelles technologies et qui permettra aussi aux élèves des écoles
techniques de cette province qu’ailleurs, de trouver un milieu adéquat des
pratiques sur l’ordinateur. Même si le CNTC a été créé en juillet 2018, il a resté
dans les idées du fondateur durant une année.
- Par exemple, un certain lundi du 05 juin 2017, le fondateur s’est réuni avec
quelques élèves finalistes de la section « informatique des
télécommunications » qu’il enseignait pour leur expliquer le projet et les
inciter à y participer ;
- En février 2018, il s’est réuni pour la 2ème fois avec les chômeurs techniciens
A2 en différentes sections informatiques comme IG, IM et IT pour planifier
comment on peut débuter ledit projet mais là aussi, il n’a pas réussi à
commencer suite au manque de moyens vu que à cette époque, le projet lui
demandait au minimum 5 million qu’il ne pouvait pas trouver sur place.
11
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
Notre projet est bénéfique non seulement pour nous, mais aussi pour la
population locale puisque notre centre constitue un environnement adéquat
pour la manipulation de la machine ordinateur et ainsi, offre des satisfactions
aux divers besoins de la population en rapport avec l’information et la
communication.
Nous rémunérons nos travailleurs.
12
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
Le siège social dudit centre se situe entre une pharmacie vétérinaire et le local
de l’ATRABU-Cibitoke.
Par rapport aux quatre points cardinaux et les points stratégiques :
- Au Nord, se trouve le Bar-Guest house HOME SAINT JOSEPH des
Frères BENEYOZEFU de Cibitoke;
- Au Nord-Ouest, se trouve la station KOBIL de Cibitoke ;
- A l’Ouest, se trouve le Quartier social A;
- Au Sud, se trouve la Paroisse Catholique Christ-Roi de Cibitoke ;
- Et en fin, à l’Est, se trouve l’ECOFO Cibitoke.
Quant au local-atelier, ce local se situe par rapport aux quatre points cardinaux :
- Au Nord, se trouve le 112ème Bataillon de Cibitoke;
- Au Nord-Ouest, l’Université UPI de Cibitoke et le palais provincial ;
- Au Nord-Est, se trouve l’Hôpital de Cibitoke ;
- A l’Est, se trouve la rivière Nyamagana ;
- A l’Ouest, sur la route nationale 5, le principal chemin qui mène à ce
local passe par la BANCOBU-Cibitoke;
- Au Sud-Ouest, se trouve le chef-lieu de la Zone Cibitoke ;
- Au sud, se trouve l’Ecole des Techniciens de Laboratoire de Cibitoke ;
- Et enfin, au Sud-Est, se trouve le camp de transit des déplacées
Cishemere.
C’est juste au Nord-Ouest du Burundi, la province qui partage les frontières
avec le Rwanda au Nord, la province de Kayanza à l’Est, la RDC à l’Ouest ainsi
que la province de Bubanza au sud (voir Sud-Est, Sud).
13
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
14
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
Les objectifs à atteindre à long terme sont: Arriver à créer les agences du centre
dans les communes de la province Cibitoke ainsi qu’ailleurs ; Développer un
site web de notre centre pour faire connaître plus loin le dit centre et ainsi
accéder à concourir à des marchés nationaux, interrégionaux et même
internationaux surtout en programmation et de diverses formations (cas des
séminaires et ateliers, etc.).
15
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
16
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
III.1. Introduction
17
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
Le cycle de vie d'un logiciel (en anglais software lifecycle), désigne toutes les
étapes du développement d'un logiciel, de sa conception à sa disparition.
L'objectif d'un tel découpage est de permettre de définir des jalons
intermédiaires permettant la validation du développement logiciel, c'est-à-dire
la conformité du logiciel avec les besoins exprimés, et la vérification du
processus de développement, c'est-à-dire l'adéquation des méthodes mises en
œuvre.
L'origine de ce découpage provient du constat que les erreurs ont un coût
d'autant plus élevé qu'elles sont détectées tardivement dans le processus de
réalisation. Le cycle de vie permet de détecter les erreurs au plus tôt et ainsi de
maîtriser la qualité du logiciel, les délais de sa réalisation et les coûts associés.
Le cycle de vie du logiciel comprend généralement au minimum les étapes
suivantes :
Analyse des besoins et faisabilité signifie l'expression, le recueil et la
formalisation des besoins du demandeur (le client) et de l'ensemble des
contraintes, puis l'estimation de la faisabilité de ces besoins ;
Spécifications ou conception générale c’est une élaboration des
spécifications de l'architecture générale du logiciel ;
Conception détaillée est une étape qui consiste à définir précisément chaque
sous-ensemble du logiciel ;
Codage (Implémentation ou programmation) :c'est la traduction dans un
langage de programmation des fonctionnalités définies lors de phases de
conception ;
18
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
19
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
20
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
22
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
23
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
Les classes sont regroupées pour créer des diagrammes de classe lors de la
modélisation de systèmes de grande taille.
Diagramme de composants : Représente la relation structurelle entre les
éléments d'un système logiciel, le plus souvent utilisé avec des systèmes
complexes disposant de multiples composants. Les composants communiquent
à l'aide d'interfaces.
Diagramme de structure composite : Les diagrammes de structure composite
sont utilisés pour présenter la structure interne d'une classe.
Diagramme de déploiement : Illustre les infrastructures physique et logicielle
d'un système. Ils sont utiles lorsqu'une solution logicielle est déployée sur de
nombreuses machines avec des configurations uniques.
Diagramme d'objets: Montre les relations entre des objets à travers des
exemples tirés du monde réel et permet de voir l'apparence d'un système à
n'importe quel instant donné. Les données sont disponibles à l'intérieur des
objets, elles peuvent donc être utilisées pour clarifier les relations entre des
objets.
Diagramme de paquetages : Il existe deux types de dépendances spéciales entre
les paquetages : l'importation de paquetages et la fusion de paquetages. Les
paquetages peuvent représenter les différents niveaux d'un système pour en
révéler l'architecture. Les dépendances des paquetages peuvent être marquées
pour mettre en avant le mécanisme de communication entre les différents
niveaux. [1][14]
24
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
25
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
- Un objet est caractérisé par les valeurs de ses propriétés qui lui confèrent
des états significatifs suivant les instants considérés.
- Concept de classe.
- Une classe décrit un groupe d’objets ayant les mêmes propriétés
(attributs), un même comportement (opérations), et une sémantique
commune (domaine de définition).
- Un objet est une instance d’une classe. La classe représente l’abstraction
de ses objets. Au niveau de l’implémentation, c’est-à-dire au cours de
l’exécution d’un programme, l’identificateur d’un objet correspond une
adresse mémoire [10].
Une classe se représente à l’aide d’un rectangle comportant plusieurs
compartiments.
-Les trois compartiments de base sont : La désignation de la classe ; La
description des attributs ; La description des opérations.
-Deux autres compartiments peuvent être aussi indiqués : La description des
responsabilités de la classe ; La description des exceptions traitées par la classe.
Cependant Il est possible de manipuler les classes en limitant le niveau de
description à un nombre réduit de compartiments selon les objectifs poursuivis
par le modélisateur.
Ainsi les situations suivantes sont possibles pour la manipulation d’une
description restreinte de classe: description uniquement du nom et des
caractéristiques générales de la classe ;description du nom de la classe et de la
liste d’attributs.
La figure suivante montre le formalisme général des comportements d’une
classe:
Nom de la classe
Attributs
Operations
26
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
Attributs est une propriété élémentaire d’une classe. Pour chaque objet d’une
classe, l’attribut prend une valeur (sauf cas d’attributs multivalués).
La description complète des attributs d’une classe comporte un certain nombre
de caractéristiques qui doivent respecter le formalisme suivant :
Visibilité/Nom attribut : type [= valeur initiale {propriétés}]
Visibilité : Chaque attribut d’une classe peut être de type public, protégé,
privé ou paquetage ;
Nom d’attribut : nom unique dans sa classe ;
Type: type primitif (entier, chaîne de caractères…) dépendant des
types disponibles dans le langage d’implémentation ou type classe
matérialisant un lien avec une autre classe.
Valeur initiale : valeur facultative donnée à l’initialisation d’un objet de la
classe.
Propriétés : valeurs marquées facultatives (ex. : « interdit » pour mise à jour
interdite).
Opération : Une opération est une fonction applicable aux objets d’une classe.
Une opération permet de décrire le comportement d’un objet. Une méthode est
l’implémentation d’une opération.
-Caractéristiques d’une opération:
Visibilité : Chaque opération d’une classe peut être de type public, protégé,
privé ou paquetage.
Nom d’opération : utiliser un verbe représentant l’action à réaliser.
Paramètres : liste de paramètres (chaque paramètre peut être décrit, en plus de
son nom, par son type et sa valeur par défaut). L’absence de paramètre est
indiquée par ( ).
Type résultat : type de (s) valeur(s) retourné(s) dépendant des types disponibles
dans le langage d’implémentation.
Propriétés : valeurs facultatives applicables (ex. : {query} pour un
comportement sans influence sur l’état du système).
Visibilité des attributs et opérations
Nous avons vu que chaque attribut ou opération d’une classe peut être de type
public, protégé, privé ou paquetage.
27
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
Stagiaire
-Idstagr : int
-Nomstgr : String
-Prenomstgr :String
+ Enregistrer() :void
+Modifier() : void
+Supprimer() : void
28
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
Elle spécifie le nombre d'instances pouvant être associées (liées) avec une seule
instance source de la relation. Exemple : Une personne peut posséder plusieurs
voitures (entre zéro et un nombre quelconque) ; une voiture est possédée par
une seule personne.
Les associations comportent des cardinalités : Cette notion est identique à celle
contenue dans Merise. Dans UML, on parle de valeurs de multiplicité.
Interprétation : Une revue est disponible dans un ou plusieurs points de vente.
Un point de vente distribue de une à plusieurs revues.
Commentaire: Le nombre de classes participant à l'association définissent
l'arité de l'association. L’exemple précédent montre une association d'arité 2,
Ceci sera le plus fréquent.
Valeurs de multiplicité :
Tableau 1: valeurs de multiplicité
1..1 Un et un seul
1 Un et un seul
0..1 Zéro ou un
m..n De m à n
* De zéro à plusieurs
1..* De un à plusieurs
Relation de spécialisation/généralisation
Relation d'héritage, dans laquelle les objets de l'élément spécialisé (classe
enfant) peuvent remplacer les objets de l'élément général (classe parent).
29
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
Notation UML : Un trait plein, orienté de la classe spécialisée (enfant) vers son
modèle (parent) et se terminant par une flèche fermée.
utilisateur Encadreur
30
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
31
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
32
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
33
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
34
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
35
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
Acteurs
secondaires
36
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
Nom Authentification
Résume Ce cas d'utilisation permet à un utilisateur de se
connecter à la plateforme et d'avoir accès à son compte
Acteurs primaires Utilisateur,
Acteurs
secondaires
Précondition Avoir les informations (email, mot de passe)
enregistrées dans la base de données du système
Scenario nominal 1. L'utilisateur lance l'application
2. Le système affiche l'interface de connexion
3. L'utilisateur saisie les informations de son compte
4. Le système vérifie les informations entrées
5. Le système envoie le mot de passe unique en mode
OTP sur mail
6. L’utilisateur entre le mot de passe provenant sur son
mail
7. Le système affiche la page d'accueil (utilisateur,
administrateur, secrétaire)
37
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
Acteurs
secondaires
Scénario alternatif
Scénario d'erreur
38
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
39
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
40
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
41
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
42
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
43
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
44
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
IV.1 Définition
IV.2 Introduction
45
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
46
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
47
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
OPERATEUR
S SYNTAXE EN SQL
48
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
1. Sélection ou Restriction
La restriction est une opération unaire (c'est à dire portant sur une seule
relation). La restriction de R1, étant donnée une condition C, produit une
relation R2 de même schéma que R1 et dont les tuples sont les tuples de R1
vérifiant la condition C : R = Restriction (R1, condition)
Elle est notée : 𝜎𝑝𝑟𝑒𝑑𝑖𝑐𝑎𝑡(𝑅)
2. Projection
La projection est une opération unaire (c'est à dire portant sur une seule
relation). La projection de R1 sur une partie de ses attributs {A1, A2, ...}
produit une relation R2 dont le schéma est restreint aux attributs mentionnés en
opérande, comportant les mêmes tuples que R1, et dont les doublons sont
éliminés.
R = Projection (R1, a1, a2, ...)
Elle est notée : 𝜋𝑎1, 𝑎2 … , 𝑎𝑘𝜋(𝑅)
3. Union
Le produit cartésien est une opération binaire (c'est à dire portant sur deux
relations). Le produit de R1 par R2 (équivalent au produit de R2 par R1) produit
une relation R3 ayant pour schéma la juxtaposition de ceux des relations R1 et
49
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
Le renommage est une opération qui permet de redéfinir les noms des attributs
d'une relation R
Syntaxe :
R = Renommage (R1, a1, a2, ...)
Elle est notée : ∝ [𝑛𝑜𝑚_𝑎𝑡𝑡𝑟1: 𝑛𝑜𝑢𝑣𝑒𝑎𝑢_𝑛𝑜𝑚 𝑝𝑜𝑢𝑟 𝑎𝑡𝑡𝑟1, … ]𝑅
7. Intersection
L'intersection de deux relations R1 et R2 de même schéma produit une relation
R3 de même schéma constituée de l'ensemble des tuples appartenant à la fois à
R1 et à R2. Notons que l'intersection n'est pas une opération de base, car elle
est équivalente à deux opérations de différence successives.
R = Intersection (R1, R2)
Elle se note : 𝑅∩𝑆
8. Jointure
La jointure est une opération binaire (c'est à dire portant sur deux relations).
La jointure de R1 et R2, étant donné une condition C portant sur des attributs
de R1 et de R2, de même domaine, produit une relation R3 ayant pour schéma
la juxtaposition de ceux des relations R1 et R2 et pour tuples l'ensemble de
ceux obtenus par concaténation des tuples de R1 et de R2, et qui vérifient la
condition C.
R = Jointure (R1, R2, condition) ;
Elle est notee : 𝑅 ⋈ 𝑆|𝜃
R et S sont deux relations
θ est une condition entre les attributs de R et S
La jointure est l'opération qui permet de rassembler les informations séparées
entre plusieurs tables et référencées par des clés étrangères.
50
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
La theta-jointure produit une relation qui contient tous les tuples qui satisfont
la condition θ. La condition θ est une expression booléenne qui compare les
valeurs des attributs de R et S.
Exemple :𝑡𝑏𝑙_𝑢𝑠𝑒𝑟 ⋈ 𝑡𝑏𝑙_𝑠𝑒𝑟𝑣𝑖𝑐𝑒|𝑡𝑏_𝑢𝑠𝑒𝑟. 𝑢𝑠𝑒𝑟_𝑖𝑑 = 𝑡𝑏𝑙_𝑠𝑒𝑟𝑣𝑖𝑐𝑒. 𝑢𝑠𝑒𝑟_𝑖𝑑
9. Equi-jointure
Une équi-jointure est une jointure dont la condition est un test d'égalité.
𝑅 =⋈ (𝑅1, 𝑅2, 𝑐𝑜𝑛𝑑𝑖𝑡𝑖𝑜𝑛)
𝑅 = 𝑅1 ⋈ (𝑐𝑜𝑛𝑑𝑖𝑡𝑖𝑜𝑛)𝑅2
10. Jointure naturelle
La jointure naturelle entre R1 et R2 est une jointure pour laquelle la condition
est l'égalité entre les attributs de même nom de R1 et de R2. Il est donc inutile
de spécifier la condition dans une jointure naturelle, elle reste toujours
implicite.
R = Jointure Naturelle (R1, R2)
Syntaxes alternatives :
𝑅 =⋈ (𝑅1, 𝑅2)
𝑅 = 𝑅1 ⋈ 𝑅2
11. Division
La division est une opération binaire (c'est à dire portant sur deux relations).
La division de RD par Rd a pour résultat RQ tel que RQ comporte le plus grand
ensemble possible de tuples qui concaténés à ceux de Rd donnent toujours un
tuple de RD.
Fondamental :
𝑅𝑄 = 𝑅𝐷 ÷ 𝑅𝐷 Si et seulement si :
𝑅𝑑 × 𝑅𝑄 ⊆ 𝑑𝑎𝑛𝑠 𝑅𝐷
∄ RQ' tel que 𝑅𝑄 ⊂ 𝑅𝑄′et 𝑅𝑑 × 𝑅𝑄′ ⊆ 𝑑𝑎𝑛𝑠 𝑅𝐷
Syntaxe
𝑅𝑄 = 𝐷𝑖𝑣𝑖𝑠𝑖𝑜𝑛(𝑅𝐷, 𝑅𝑑)
51
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
Le but pour cette partie était de choisir une forme très simpliste de la requête
SQL en l’analysant sous l’angle algèbre relationnelle.
Nous pouvons présenter d’autres requêtes SQL avec leurs expressions
équivalentes en algèbre relationnel de la manière suivante :
– Sélection
1. affichage de tous les stagiaires qui ont une note inferieur à 80%
SELECT * FROM `tbl_affectation` WHERE cotation <80;
𝜎 𝑐𝑜𝑡𝑎𝑡𝑖𝑜𝑛 < 80(𝑡𝑏𝑙_𝑎𝑓𝑓𝑒𝑐𝑡𝑎𝑡𝑖𝑜𝑛)
2. affichage de tous les utilisateurs.
SELECT*FROM tbl_user;
𝜋 ∗ (𝑡𝑏𝑙_𝑢𝑠𝑒𝑟)
52
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
– Projection
Exemple : Affichage les services qui ont les memes nons ques les
département :
SQL:SELECT DISTINCT nomservice FROM tbl_service WHERE
nomservice IN (SELECT nomdepartement FROM tbl_departement
𝜋nomservice (σnomservice = nomdepartement(tbl_departement)
⋈ tbl_service
Différence
Si les deux tables n'ont pas la même structure, vous pouvez utiliser l'opérateur
EXCEPT. L'opérateur EXCEPT fonctionne de la même manière que l'opérateur
MINUS, mais il prend en charge les tables qui n'ont pas la même structure.
Exemple : Affichage du nom, prénom, grade des utilisateurs dont le niveau
n’est pas bachelier
SELECT nom, prenom, telephone, nomgrade FROM
tbl_inscription,tbl_grade EXCEPT WHERE nomgrade = 'bachelier';
53
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
54
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
– Division
Pour optimiser les requêtes SQL, on peut suivre certaines bonnes pratiques et
utiliser des techniques spécifiques pour améliorer les performances de vos
requêtes. Voici quelques conseils d'optimisation et des exemples : [5]
1. Utiliser des index :
Utilisez des index : Les index permettent d'accélérer les requêtes en fournissant
un accès plus rapide aux données.
Les index accélèrent les recherches dans une table en créant une copie triée des
données, permettant ainsi d'accéder rapidement aux enregistrements. Il est
essentiel d'indexer les colonnes utilisées fréquemment dans les clauses
WHERE, JOIN et ORDER BY. [6][20]
Exemple :
Utilisez la INDEX()fonction pour créer un index sur les colonnes nom
et prénom
CREATE INDEX idx_nom_prenom ON tbl_inscription (nom, prénom);
2. Éviter les étoiles (*) dans la clause SELECT : Spécifiez explicitement les
colonnes dont vous avez besoin pour éviter de récupérer des données inutiles.
55
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
Exemple :
Sql optimisé
56
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
Exemple : affichage des services qui ont les mêmes noms que les départements
Sql optimisé
Sql optimisé
57
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
IV.5.2 Optimisation OR
58
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
Les prédicats servent très souvent à spécifier quelles lignes sont incluses dans
une sélection de données, via une clause Where dans une instruction SQL
Select, Update, ou Delete.
Les prédicats sont utilisés dans la condition de recherche des clauses WHERE
et HAVING, dans les conditions de jointure des clauses FROM ainsi que dans
d'autres constructions où une valeur booléenne est nécessaire.
L'optimiseur réorganise l'évaluation des prédicats dans une clause WHERE
selon le coût d'exécution qui leur est affecté. Si le premier prédicat d'une
optimisation OR est défini sur TRUE, les prédicats suivants n'ont pas besoin
d'être définis. De même, dans une optimisation AND, si le premier prédicat est
défini sur FALSE, les prédicats suivants n'ont pas besoin d'être définis. [5]
Le coût d'exécution affecté dans l'ordre croissant est le suivant :
1. True/False
2. Comparaison d'entier
3. Comparaison de chaîne
4. Entier ANY/ALL/IN
5. Chaîne ANY/ALL/IN
6. Sous-requête : il s'agit d'une instruction SELECT imbriquée
Exemple d’optimisation AND (a AND b AND c)
Requette reorganisee
59
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
Exemple d’optimisation OR (a OR b OR c)
60
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
Conclusion
Toutes les fonctionnalités du système se traduisent par une sorte des requêtes à
construire. Dans ce chapitre nous avons présenté les opérateurs de l’algèbre
relationnelle et montrer son importance dans la construction des requêtes SQL.
Le code SQL est traduit dans le code relationnel avec son exécution dans ces
environnements. La plupart des solutions que nous préconisons dans ce présent
travail consiste à l’élaboration des requêtes SQL. C’est pourquoi, il nous a été
utile de les construire en utilisant l’algèbre relationnelle. Ainsi, Nous avions
présenté dans ce chapitre les opérateurs de l’algèbre relationnelle,
l’optimisation des requêtes SQL et enfin la manière dont nous avions
réalisé nos propres requêtes en vue de minimiser le temps d’exécution et
d’obtenir les résultats dans un moment réduit.
61
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
L’application que nous avons mis en place a pour objectif de gérer les
demandes des stages en linge et le suivi des stagiaires dans le centre technique
de Cibitoke; elle permet aussi d’approuver ou de refuser les demande si c’est
le cas du profil non demande ,et d’attribuer l’encadreur aux stagiaires selon les
services auxquels sont affectés .
Cette interface permet à l’utilisateur de saisir son adresse mail et mot de passe
correspondant à celui qui se trouve dans la base de données pour qu’il puisse
recevoir l’OTP générer aléatoirement par le système.
62
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
Cette interface permet à l’utilisateur d’entrer le code envoyer sur son mail pour
accéder à la page d’accueil
63
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
64
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
65
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
66
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
67
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
La liste de présence des stagiaire montre les heures que le stagiaires ont
travaillés dès l’heure d’arrivée jusqu’ à l’heure de départ.
68
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
69
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
Cette liste contienne des stagiaires qui ont terminés leur période de stage
Figure 30: Liste des stagiaires qui ont terminés le stage (archivés)
70
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
71
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
72
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
73
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
Conclusion générale
Au terme de notre travail, nous avons apporté une solution informatique aux
problèmes de gestion des stagiaires au sein du CNTC.
Nous avons mis en place une application fiable et apte à atteindre les objectifs
fixés .L'application va permettre de réaliser les tâches suivantes : Assurer une
authentification avec mode OTP ;Attribuer les droits d’accès aux données à
chaque utilisateur du système ;Sécuriser les donnes contre les accès non
autorisé ;Réduire la multiplication des supports papier ;Automatiser
l’acquisition des demandes des stages ;la recherche automatique des
informations ; l’attribution en ligne des stages ; générer et l’envoyer des
attestations à l’encadreur et aux stagiaires ; stocker des données ;Archiver
électroniquement des données relatives aux stagiaires. De ce fait nous pouvons
dire que les objectifs de notre projet ont été atteints.
Recommandations
74
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
75
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.
[17]https://www.techno-science.net/definition/2880.html,consulte
le31/08/2023
[18] MOHAMAD.NEMICHE,Algèbre Relationnelle, Faculté Polydisciplinaire
de Ouarzazate Filière: Informatique et Gestion d’Entreprises 2012-2013,
consulte le 03/09/2023
[19] Elisabetta De Maria, Cours de Base de Données ´ Cours n.3 Algèbre
relationnelle ` L2 Informatique - Portail Sciences et Technologies, DS4H et
Laboratoire I3S, Université Côte d’Azur, CNRS 2022-2023, consulte le
03/09/2023
[20] Jeffreya nd Jennifer Widom, A First Course_in_Database_Systems_3ed_
ANNEXES
76
IRAMBONA Méthode A/A 2022-2023