WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Conception et deploiement d'un gestionnaire numerique de documentation de l'universite des sciences et techniques de Masuku


par Ghandy Steeve MBONGO ESSINGONE
Université des Sciences et Techniques de Masuku - Ingénieur de Conception en Génie des Réseaux et Télécommunications 2017
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

CHAPITRE 5 : BASE DE DONNEES

Dans le chapitre précédent nous avons fait une analyse minutieuse du cahier des charges. Cette analyse nous a permis d'obtenir le Modèle Conceptuel de Données de la méthode Merise. Maintenant nous allons nous référer à ce modèle pour obtenir notre base de données.

5.1 MODELE LOGIQUE DE DONNEES

Pour obtenir notre MLD, nous appliquons les règles de normalisation énoncées dans le CHAPITRE 3. Ces règles nous permettent de traduire notre MCD en MLD que nous pouvons voir sur le schéma suivant :

Figure 24 : Modèle Logique de Données du GED.

Nous pouvons remarquer que les entités sont devenues des tables. Les associations de type 1 : n ont disparu au profit d'une clé étrangère dans la table qui se trouve du côté où la cardinalité maximale de l'association était n. De plus, les associations de types n : m sont devenues des tables de jonctions auxquelles nous avons ajouté quelques attributs utiles pour le backend.

Page 33 sur 57

5.2 MODELE PHYSIQUE DE DONNEES (SCHEMA DE LA BASE DE DONNEES)

Après réalisation du MLD, nous définissons le type de chaque propriété afin d'aboutir à une base de données fiable qui nous permettra de sauvegarder nos données en toute intégrité. Ainsi, nous obtenons le modèle Physique de données ci-dessous :

Figure 26 : Structure de la base de données.

A ce stade nous avons la structure de notre base de données qui résulte de l'implémentation du code SQL sur la console de maria dB du logiciel WampServer.

Page 34 sur 57

Page 35 sur 57

CHAPITRE 6 ARCHITECTURE DU PROJET

Pour l'implémentation de notre backend, nous avons utilisé l'architecture MVC expliquée au CHAPITRE 2. Nous suivrons une logique MVC plutôt personnalisée en limitant au maximum de s'encombrer avec des fichiers inutiles au regard de la taille de notre projet. Voyons de près l'arborescence de notre application web sur le serveur :

1

2

3

4

5

6

7

8

9

10

Figure 26 : Arborescence de notre application

11

En « 1 », nous avons la racine de notre serveur. Chaque fichier ou dossier qu'elle contient joue un rôle bien spécifique qui contribue au bon fonctionnement de notre système. Déclinons le rôle de chacun.

6.1 FICHIER « INDEX.PHP »

Figure 27 : Fichier index.php

Page 36 sur 57

C'est le fichier d'entrée de notre application, c'est-à-dire, lorsqu'un qu'un ordinateur client émet un requête http pour avoir accès à notre application, c'est ce fichier que le serveur renvoie comme réponse. Ce fichier spécifie le contenu de notre page d'accueil, c'est-à-dire le texte, les images, les icônes ainsi que tout élément visible dans la fenêtre du navigateur lorsqu'un visiteur accède au site via l'URL. Le fait que ce soit un fichier PHP lui confère la possibilité d'écrire de la logique pour inclure dynamiquement : les pages au niveau de la vue (ligne 8) et les fichiers de configuration indispensables (lignes 3, 6 et 10). De plus, c'est dans ce fichier que l'on démarre la session qui permet de conserver les informations des utilisateurs de page en page lorsqu'ils sont authentifiés (ligne 2).

6.2 FICHIER « .HTACCESS »

Serveur
Apache

Figure 28 : Fichier de configuration .HTACCESS

.HTACCESS permet d'ajouter une couche de sécurité supplémentaire à la configuration de notre application web.

Dans le script de la figure, nous sécurisons notre application web contre : l'accès aux dossiers sensibles situés à la racine du serveur depuis le navigateur ou origine inconnue. Ce script est important en ce sens qu'il empêche quiconque d'avoir accès à l'arborescence de notre serveur.

Page 37 sur 57

6.3 FICHIER « SETTING.PHP »

Figure 29 : Code source du fichier de configuration de l'application

Le fichier setting.php est le fichier de configuration de notre application. Il permet de :

définir l'encodage des caractères (à la ligne 3) ;

d'instancier l'objet PDO (à la ligne 4) afin d'établir la connexion à la base de données en renseignant : le SGBD « mysql », l'url de l'hôte du serveur de base de données (bdd) « localhost », le nom de la bdd « numerixgab », l'encodage de caractère « utf8mb4 », le nom d'utilisateur « root » et le mot de passe qui est ici une chaine de caractère vide vu que nous sommes en mode développement en local. Ces paramètres changeront naturellement lors du déploiement de notre application ;

d'inclure le fichier permettant de faire de l'autoloading c'est-à-dire le chargement dynamique des classes php.

6.4 FICHIER « PACKAGE-LOCK.JSON »

Le fichier package-lock.json permet de stocker la structure de l'arborescence de dépendances à chaque installation. Il est généré automatiquement lors de la modification du fichier package.json ou dans l'architecture du dossier node_module.

6.5 FICHIER « NUMERIXGAB.SQL »

Ce fichier contient le code source de notre base de données à vide. Il ne joue pas de rôle particulier dans l'arborescence mais permet néanmoins de sauvegarder la structure de notre base de données.

6.6 MODELE « MODEL/ »

Figure 31 : Contenu du Modèle

Le modèle constitue l'ensemble de fichier qui communique avec la base de données. Il est constitué exclusivement de classes. Ces classes sont étroitement liées aux tables de notre base de données.

Figure 32 : Illustration de la similitude entre la classe Types.class.php et la table types

Ainsi, à chaque table de notre base de données est associée deux classes du modèle ayant des rôles distincts :

Une classe, portant le même nom que la table, contenant des propriétés identiques aux attributs de la table (voir la figure précédente). Chaque propriété comporte le même type que l'attribut de la table à laquelle il correspond. Ces attributs sont

Page 38 sur 57

Page 39 sur 57

déclarés en « private » pour respecter les règles d'encapsulation. De fait, nous avons défini des méthodes « getters » et « setters » pour obtenir ou modifier les propriétés des objets découlant de cette classe. De plus, nous y avons défini un constructeur qui hydratera (définir des valeurs initiales aux attributs de la classe) notre classe automatiquement lors de son instanciation.

une classe ayant pour radicale le nom de la table et pour préfixe le mot Manager. Exemple : « TypesManager.class.php ».

Cette classe permet d'effectuer des requêtes SQL vers la base de données. Elle communique avec la base de données pour permettre à notre code source d'écrire, de lire, de modifier ou de supprimer une ou plusieurs données dans la table correspondant au radical.

Figure 32 : Illustration de la liaison entre la classe TypesManager.class.php et la base de données

6.7 VUES « VIEW/ »

C'est l'ensemble des fichiers qui contribuent à l'affichage des interfaces de l'application sur l'écran de l'utilisateur.

Figure 33 : Dossier contenant les vues

Le fichier « index_view.php » : fichier des vues permettant de charger le Controller responsable du chargement dynamique des vues.

Figure 34 : Illustration source d'inclusion des vues

Le dossier « footer / » : il contient le fichier « footer.php ». Ce fichier contient le code html permettant d'afficher le pied de la page.

Figure 35 : Illustration du dossier du pied de page et de son code source

Le dossier « nav /» : il contient les fichiers contenant le code HTML de navigation de l'application web.

Figure 36 : Illustration du dossier contenant les fichiers du code source de navigation

Nous pouvons visualiser deux fichiers qui sont :

o « nav.php » : navigation lorsque l'utilisateur n'est pas authentifié.

o « nav_inside.php » : navigation lorsque l'utilisateur est authentifié.

Le dossier « main /» : contient les dossiers et fichiers responsable de l'affichage du corps de l'application.

Page 40 sur 57

Page 41 sur 57

Figure 37 : Contenu du dossier main contenant toutes les vues du corps de l'application

Détaillons ces éléments :

o « document/ » : dossier contenant le fichier « document.php » où est écrit le code html de l'interface « ajout de documents » ;

Figure 38 : Vue de l'interface document

o « dossier/ » : contient le fichier « dossier.php » dans lequel est écrit le code html de l'interface « ajout de dossiers » ;

Figure 39 : Vue de l'interface dossier

o « employer/ » : contient le fichier « employer.php » dans lequel est écrit le code html de l'interface « ajout d'employers» ;

Figure 40 : Vue de l'interface gestion des employés

o « message/ » : contient le fichier « message.php » dans lequel est écrit le code html de l'interface « mini forum» ;

Figure 41 : Vue de l'interface du forum

o « rubrique/ » : contient les fichiers responsables de l'affichage des interfaces d'exploration de la banque documentaire. Nous avons successivement : ? « documentList.php » : affiche la liste des documents contenus dans un dossier ;

Page 42 sur 57

? « dossierList.php » : affiche la liste des dossiers contenus dans une rubrique ;

? « rubrique.php » : affiche la liste des rubriques d'une structure spécifique ;

? « script_pdf.php » : script php permettant de charger dynamiquement la dépendance javascript permettant d'afficher les documents PDF.

Figure 42 : Contenu du fichier script_pdf.php

o Le fichier « form_connect.php » : formulaire de connexion à la session utilisateur ;

o Le fichier « main.php » : corps du site lorsque l'utilisateur ne s'est pas encore connecté ;

o Le fichier « main_check.php » : l'interface du choix du portail après l'authentification ;

o Le fichier « main_inside.php » : l'interface du choix du service (ajouter dossier, ajouter document, ajouter rubrique) après authentification.

6.8 CONTROLEURS « CONTROLLER /»

Ce dossier contient les fichiers qui sont appelés contrôleurs. Ces fichiers assurent la logique métier de notre application :

Figure 43 : Contenu du dossier controller

gère l'affichage dynamique des vues sur l'interface de l'utilisateur en fonction du choix de navigation ;

gère le traitement des requêtes asynchrones (AJAX) provenant du javascript ; transmet les données provenant du Modèle à la Vue.

Dans le souci de préservation des données à caractères personnels, nous ne détaillerons pas ce dossier afin de garantir la sécurité du système.

6.9 VERSIONNAGE AVEC GIT

A la racine de notre application, nous pouvons voir un dossier caché nommé « .git ».

Page 43 sur 57

Figure 44 : Racine de notre application web

Ce dossier contient les sauvegardes des différentes versions de notre projet.

Nous avons utilisé le versionnage GIT afin d'éviter des actions irréversibles lors du développement de notre solution.

Figure 45 : Console du gestionnaire de versionnage GIT

Observons sur le terminal représenté à la figure de la page suivante les différentes versions de notre projet.

Page 44 sur 57

Figure 46 : Résultat de la commande "git status" permettant d'avoir un listing des différentes versions de

l'application

Page 45 sur 57

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Ceux qui rêvent de jour ont conscience de bien des choses qui échappent à ceux qui rêvent de nuit"   Edgar Allan Poe