Mise en place d'une application web pour la gestion des patients du service médecine interne au centre hospitalier régional El Hadji Ahmadou Sakhir Ndiéguène de Thièspar Abdoul Aziz Ba Université Alioune Diop de Bambey - Licence professionnelle 2020 |
CHAPITRE 4 : RÉALISATION DE L'APPLICATIONDans le but de rendre plus réaliste les idées qui ont été évoquées précédemment dans les phases d'analyse et de conception de notre système, nous aborderons dans ce chapitre les différentes étapes qu'ont permis la réalisation du dit système. Nous définirons ensuite les outils et les différentes technologies utilisés pour la concrétisation de ce travail. A. Architecture du système : application web client-serveur L'architecture client-serveur s'appuie sur un poste central, le serveur, qui envoie des données aux machines clientes. Figure 13 : Architecture d'un serveur web Un serveur web peut faire référence à des composants logiciels (software) ou à des composants matériels (hardware) ou à des composants logiciels et matériels qui fonctionnent ensemble. Au niveau des composants matériels, un serveur web est un ordinateur qui stocke les fichiers qui composent un site web (par exemple les documents HTML, les images, les feuilles de style CSS, les fichiers JavaScript) et qui les envoie à l'appareil de l'utilisateur qui visite le site. Cet ordinateur est connecté à Internet et est généralement accessible via un nom de domaine tel que mozilla.org. Au niveau des composants logiciels, un serveur web contient différents fragments qui contrôlent la façon dont les utilisateurs peuvent accéder aux fichiers hébergés. On trouvera à minima un serveur HTTP. Un serveur HTTP est un logiciel qui comprend les URL et le protocoleHTTP3(*). 2. Serveur de bases de données Figure 14 : Architecture d'un serveur de base de données Un serveur de base de données sert à stocker, à extraire et à gérer les données dans une base de données. Il permet également de gérer la mise à jour des données. Il donne un accès simultané à cette base à plusieurs serveurs web et utilisateurs. Enfin, il assure la sécurité et l'intégrité des données. Et quand on parle de données, on entend peut-être des millions d'éléments simultanément accessibles à des milliers d'utilisateurs. En plus de ces fonctions principales, le logiciel de serveur de base de données offre des outils qui facilitent et accélèrent l'administration de la base, comme l'exportation de données, la configuration de l'accès de l'utilisateur et la sauvegarde des données. 3. Les principales technologies d'une application web Comme pour les sites web, une application web est à base de technologies indispensables à l'affichage des pages, on les appelle les langages clients qui décrivent comment le site web doit s'afficher. a. HTML HTML est un langage informatique utilisé sur internet. Ce langage est utilisé pour créer des pages web. L'acronyme signifie HyperText Markup Language, ce qui signifie en français "langage de balisage d'hypertexte". Cette signification porte bien son nom puisqu'effectivement ce langage permet de réaliser de l'hypertexte à base d'une structure de balisage. Par ailleurs, l'HTML n'est pas un langage de programmation proprement dit comme C, C++, etc. mais plutôt un langage qui permet de mettre en forme du contenu et de naviguer d'une page à une autre dans nos modules par l'intermédiaire d'hyperliens. b. CSS Le terme CSS est l'acronyme en anglais de Cascading Style Sheets qui peut se traduire par "feuille de style en cascade". Le CSS est un langage informatique utilisé sur l'internet pour mettre en forme les fichiers HTML ou XML. c. JavaScript JavaScript est un langage (plus précisément orienté objet) de programmation qui permet d'implémenterdes mécanismes complexes sur une page web. C'est un langage principalement côté client qui permet de rendre dynamique et interactives les pages web. d. Langage de programmation côté serveur Figure 15 : Communication entre un client et un serveur Un langage de programmation côté serveur est un langage de programmation mis en oeuvre sur un serveur HTTP pour produire une page web dynamique. L'utilisation d'un langage serveur, nécessaire pour utiliser une base de données, est indispensable pour la majorité des scripts complexes. Un langage serveur est interprété par un logiciel situé sur un serveur, contrairement à la partie client, interprétée sur l'ordinateur du visiteur. L'avantage d'un langage serveur est qu'il permet d'adapter le site à l'utilisateur d'après ses besoins, ses autorisations ou d'autres informations provenant d'une base de données, tout cela sans nécessiter le support d'une technologie supplémentaire par le client. e. Langage de requête (SQL) Un langage de requête est un langage informatique utilisé pour effectuer des requêtes sur des bases de données ou systèmes d'information. Il permet d'obtenir les données vérifiant certaines conditions (on parle de critères de sélection). Les données peuvent être triées, elles peuvent également être regroupées suivant les valeurs d'une donnée particulière. La grammaire d'un langage de requête est adaptée à la structure des données interrogées. Le langage de requête le plus connu et le plus utilisé est SQL. B. Architecture de l'application Le développement de notre application s'est basé sur l'architecture MVC. Ce paradigme divise l'IHM en un modèle, une vue et un contrôleur, chacun ayant un rôle bien précis. Cette architecture permet de bien organiser son code source en nous aidant à savoir quels fichiers créer, mais surtout à définir leur rôle. Ce maitre d'architecture impose la séparation entre les données, la présentation et les traitements, ce qui nous donne trois parties fondamentales dans l'application : le modèle, la vue et le contrôleur. Cette partie illustre le comportement de notre application : traitement des données et interaction avec la base de données. Son rôle est d'aller récupérer les informations « brutes » dans la base de données, de les organiser et de les assembler pour qu'elles puissent ensuite être traitées par le contrôleur. Le modèle offre des méthodes pour mettre à jour les données (ajout, suppression, modification). On y trouve donc entre autres les requêtes SQL. Cette partie se concentre sur l'affichage et correspond à l'interface avec laquelle l'utilisateur interagit. Elle ne fait presque aucun calcul et se contente de récupérer des variables pour savoir ce qu'elle doit afficher. On y trouve essentiellement du code HTML mais aussi quelques boucles et conditions PHP très simples, pour afficher par exemple une liste de messages. Cette partie gère la logique du code qui prend des décisions. C'est en quelque sorte l'intermédiaire entre le modèle et la vue : le contrôleur va demander au modèle les données, les analyser, prendre des décisions et renvoyer le texte à afficher à la vue. Le contrôleur contient exclusivement du PHP. C'est notamment lui qui détermine si le visiteur a le droit de voir la page ou non (gestion des droits d'accès). C. Choix du langage de développement Pour interagir avec le serveur et la base de données, nous sommes appelés à faire recours au moins à un langage de programmation. Cependant nous commencerons par libeller les différents langages utilisables puis nous en ferons un choix judicieux que nous justifierons. 1. Présentation des langages utilisables Etant donné que MVC soit un modèle de conception et non une construction spécifique au langage, nous pouvons donc l'appliquer à d'autres langages de programmation. Ci-dessous, nous allons mettre le point sur quelques langages utilisables. a. JavaScript Récemment, le modèle MVC est appliqué à un large éventail de langages de programmation, y compris JavaScript. Ce dernier consiste en un certain nombre de cadres pour prendre en charge l'architecture MVC ou ses variantes. Il permet aux développeurs d'ajouter de la structure à leurs applications facilement et sans trop d'efforts b. Java Java est un langage de programmation orienté objet créé par James Gosling et Patrick Naughton, employés de Sun Microsystems, avec le soutien de Bill Joy (cofondateur de Sun Microsystems en 1982), présenté officiellement le 23 mai 1995 au SunWorld. La société Sun a été ensuite rachetée en 2009 par la société Oracle qui détient et maintient désormais Java. Une particularité de Java est que les logiciels écrits dans ce langage sont compilés vers une représentation binaire intermédiaire qui peut être exécutée dans une machine virtuelle Java (JVM) en faisant abstraction du système d'exploitation. c. Python Python est un langage de programmation interprété, multi-paradigme et multiplateformes. Il favorise la programmation impérative structurée, fonctionnelle et orientée objet. Il est doté d'un typage dynamique fort, d'une gestion automatique de la mémoire par ramasse-miettes et d'un système de gestion d'exceptions ; il est ainsi similaire à Perl, Ruby, Scheme, Smalltalk et Tcl. Le langage Python est placé sous une licence libre proche de la licence BSD8 et fonctionne sur la plupart des plateformes informatiques, des smartphones aux ordinateurs centraux, de Windows à Unix avec notamment GNU/Linux en passant par macOS, ou encore Android, iOS, et peut aussi être traduit en Java ou .NET. Il est conçu pour optimiser la productivité des programmeurs en offrant des outils de haut niveau et une syntaxe simple à utiliser. Il est également apprécié par certains pédagogues qui y trouvent un langage où la syntaxe, clairement séparée des mécanismes de bas niveau, permet une initiation aisée aux concepts de base de la programmation. d. C# C# est un langage de programmation orientée objet, commercialisé par Microsoft depuis 2002 et destiné à développer sur la plateforme Microsoft .NET. Il est dérivé du C++ et très proche du Java dont il reprend la syntaxe générale ainsi que les concepts, y ajoutant des notions telles que la surcharge des opérateurs, les indexeurs et les délégués. Il est utilisé notamment pour développer des applications web sur la plateforme ASP.NET. e. PHP Hypertext Preprocessor, plus connu sous son sigle PHP (sigle autoréférentiel), est un langage de programmation libre, principalement utilisé pour produire des pages Web dynamiques via un serveur HTTP, mais pouvant également fonctionner comme n'importe quel langage interprété de façon locale. C'est est un langage impératif orienté objet. Il a permis de créer un grand nombre de sites web célèbres, comme Facebook, Wikipédia, etc. Il est considéré comme une des bases de la création de sites web dits dynamiques mais également des applications web. f. Ruby Ruby est un langage de programmation libreconçu par Yukihiro Matsumoto. Il est interprété, orienté objet et multi-paradigme. Le langage a été standardisé au Japon en 2011, et en 2012 par l'Organisation internationale de normalisation. 2. Argumentaire du choix de PHP Tout d'abord, PHP est gratuit et ne nécessite aucune licence d'utilisation. Ensuite, PHP est le langage de programmation Web le plus utilisé au monde. Il existe une communauté de développeurs très active qui rend disponibles des dizaines de milliers de librairies PHP de grande qualité ainsi qu'une vaste quantité de documentation et tutoriels accessible à tous au bénéfice de chacun. Ces ressources facilitent notre travail et réduisent notre temps de programmation ce qui se traduit aussi en économie pour le client. En termes de rapidité et d'efficacité, PHP n'a rien à envier aux autres langages. Plusieurs portails très populaires et nécessitants beaucoup de performance l'utilisent. Nous avons qu'a pensé à Facebook, Wikipédia, le réseau CBC, l'université Harvard, pour ne nommer que ceux-là. D'ailleurs le populaire système de gestion de contenu WordPress est lui-même construit en PHP. Ce dernier représente à lui seul environ 80% des sites Internet sur la toile. Une si grande popularité n'est certainement pas une coïncidence ! D. Choix du framework de développement Dans cette partie nous allons étaler les frameworks PHP les plus populaires afin d'en faire intelligemment un choix. Nous terminerons par une présentation des différentes technologies utilisées. 1. Présentation des frameworks PHP existants S'il est toujours mieux de savoir bien développer en natif, un framework PHP est toujours d'une aide précieuse pour développer des applications robustes et fonctionnelles avec la meilleure efficacité possible. Mais tous les frameworks ne se valent pas et certains sont particulièrement populaires, aussi bien auprès des développeurs que des clients. Parmi eux, on peut citer : a. Laravel Créé en 2011 par Taylor Otwell, Laravel est devenu le framework PHP libre et open source le plus populaire au monde. Il est utilisé dans le développement d'application web tout en suivant l'architecture MVC et basé sur Symfony. Comme chaque version de laravel est documentée de manière détaillée, on peut l'apprendre facilement et compter sur une mise à jour continue de sa base de connaissances. Laravel est conçu pour le développement rapide d'applications. L'infrastructure dispose d'un moteur de templates bien construit qui permet une grande variété de tâches courantes telles que l'authentification, la mise en cache, la gestion des utilisateurs et le routage RESTful pour faciliter la tâche des développeurs de logiciels. b. Symfony Symfony figure dans la liste des meilleurs frameworks PHP, année après année, pour de nombreuses raisons. Créé en 2015, ce cadre offre aux développeurs des composants et du code réutilisable, ainsi que des fonctionnalités de test intégrées. Les ingénieurs en logiciel peuvent utiliser plusieurs composants de Symfony, ou tous simultanément, en fonction des besoins du projet. Pour ce qui est de ceux-là, Symfony est l'un des frameworks PHP populaires pour les efforts de développement de logiciels des grandes entreprises. Le vaste écosystème de Symfony étant continuellement pris en charge par une communauté de développeurs, le cadre offre une documentation technique complète. La courbe d'apprentissage est plutôt raide, de sorte que ceux qui ne sont pas familiarisés avec le cadre auraient besoin de temps et d'efforts pour le comprendre. Si vos solutions s'appuient sur la modularité, Symfony est l'option idéale. c. Phalcon Sur le papier, Phalcon semble étrange. Le code source du framework est écrit en C et C++, ce qui en fait une extension C de PHP (bien que l'on n'ait pas besoin de connaitre ce langage pour l'utiliser). Cependant, Phalcon fait partie des frameworks PHP les plus populaires, offrant une vitesse et des performances optimales. En matière d'architecture, Phalcon fait partie des frameworks suivant l'architecture MVC. Les ressources sont limitées, il ne reste que quelques fichiers après l'installation. Les développeurs peuvent ajouter des bibliothèques et d'autres composants à tout moment. En conséquence, le cadre assure un processus de développement confortable et sans fioriture. d. FuelPHP Publié en 2014, FuelPHP est un développement récent qui vise à faire converger les aspects les plus efficaces des meilleurs framework PHP. Il est complet et supporte à la fois l'architecture MVC et sa version améliorée HMVC. Les principales caractéristiques de FuelPHP incluent la modularité et l'extensibilité. De plus la structure aide à faire face aux problèmes de sécurité avec des fonctionnalités telle que le filtrage des entrée URL et le codage de la sortie. FuelPHP dispose également de son propre cadre d'authentification. e. Zend Framework Zend Framework est un framework professionnel populaire et couramment utilisé pour les applications hautes performances d'entreprise. Zend est construit avec la sécurité, la performance et l'extensibilité à l'esprit. En raison de sa focalisation sur les entreprises, il propose une multitude de composants pour l'authentification des flux, des formulaires des services, etc. En raison de son caractère d'entreprise, Zend n'est pas idéal pour le développement rapide d'applications, bien qu''il soit libre avec des outils facilitant la vie des développeurs, notamment l'IDE propriétaire de Zend : Zend Studio. Ce qui s'intègre parfaitement avec Zend Framework 2. Argumentaire du choix de Laravel La syntaxe raffinée, la possibilité d'exécuter des tâches en arrière-plan de manière asynchrone pour améliorer les performances et l'intégration bien établie avec Amazon Web (AWS) s'ajoute à la liste des fonctionnalités qui font de laravel l'un des meilleurs frameworks PHP Pour la réalisation de notre projet nous l'avons choisi pour plusieurs raisons : ? Laravel convient au développement d'application avec des besoins complexes, qu'ils soient petits ou grands. ? C'est un frameworks PHP complet avec des fonctionnalités qui nous aideront à personnaliser des applications complexes. ? Laravel est très expressif. Sa vitesse et sa sécurité répondent aux attentes d'une application web moderne. Laravel est la voie à suivre pour les développeurs qui souhaitent créer des applications d'entreprise qui évolueront en fonction des tendances du web. 3. Présentation des autres technologies utilisées Notre projet a nécessité pas mal de fonctionnalité, c'est pourquoi on a fait recours à quelques technologies telles que : les frameworks, les templates et les packages. La plupart de ces technologies sont incorporées dans le framework c'est pourquoi nous en présenterons que quelques une. a. AdminLTE AdminLTE est un modèle WebApp open source populaire pour les tableaux de bord et les panneaux de contrôle d'administration. Il s'agit d'un modèle HTML réactif basé sur la structure CSS Bootstrap. Il utilise tous les composants de Bootstrap dans sa conception et redéfinit le style de nombreux plugins couramment utilisés afin de créer une conception cohérente pouvant être utilisée comme interface utilisateur pour les applications dorsales. AdminLTE est basée sur une conception modulaire, ce qui lui permet d'être facilement personnalisé et construit. b. Bootstrap Bootstrap est un framework gratuite, basée sur HTML, CSS et JavaScript. Elle est créée par deux développeurs faisant partie de la mouvance de développeurs qui gravitent autour de Twitter, Mark Otto et Jacob Thornton, pour construire les interfaces d'application (ou site) web compatibles avec tous les équipements avec différentes tailles d'écran (PC, tablette, smartphone). c. Consoltvs/Charts Charts est une bibliothèque PHP (Laravel) permettant de gérer tous les graphiques de notre application. Il prend en charge plusieurs bibliothèques de graphiques (à savoir : ChartJs, Highcharts, Fusioncharts, Echarts, Frappe, C3) et permet de charger sur AJAX avec une belle animation de chargement. d. ChartJs Parmi les bibliothèques libellées, nous avons choisi ChartJs pour de multiples raisons. ChartJs est souvent l'une des bibliothèques les plus choisies de JavaScript. C'est une bibliothèque qui offre une grande variété de graphiques simple et épurés, y compris des versions animées et interactives. On la considère comme une cartographie de JavaScript car étant simple mais flexible pour les concepteurs et les développeurs. e. JQuerry JQuerry est une bibliothèque JavaScript rapide, petite et riche en fonctionnalités. Il simplifie considérablement la navigation et la manipulation de documents HTML, la gestion d'évènements, l'animation et Ajax grâce à une API simple à utiliser qui fonctionne sur une multitude de navigateurs. Avec une combinaison de polyvalence et d'extensibilité, JQuerry a changé la façon dont des millions de personnes écrivent JavaScript. f. FullCalendar Fullcalendar est un plugin gratuit JQuery open source développé par Adam Shaw qui génère un calendrier renversant contenant nos évènements. Il affiche les évènements de calendrier programmes dans des vues entièrement personnalisable, dans des formats de calendrier traditionnels et familiers, ainsi que des listes de style agenda. Les types de vue intégrées sont : o Ordre du jour o Journée o Semaine o Mois Les vues peuvent être personnalisées dans une certaine mesure, et il existe également une API permettant d'implémenter de nouveaux types de vues à utiliser dans le reste de la fonctionnalité du calendrier. Dans cette partie, nous présenterons les différents outils matériels et logiciels qui ont permis la réalisation de ce projet. Pour mieux atteindre nos objectifs, nous avons utilisé l'ordinateur que nous sommes habitué à travailler afin d'accélérer le processus. L'ordinateur portable qui a été utilisé a les caractéristiques suivantes : o Nom : LENOVO o Processeur : Intel(R) Celeron(R) CPU N3060 @ 1.60GHz 1.60 GHz o Mémoire installée (RAM) : 4,00 Go o Type du système : Système d'exploitation 64 bits, processeur x64. Au cours de cette partie nous énumèrerons les différents logiciels utilisés pour la mise en oeuvre de l'application. Le choix de ces logiciels se repose sur leurs simplicités d'utilisation et leurs manières de fournir des résultats correspondants à nos besoins. a. Visual Studio Code Visual Studio Code est éditeur de texte open source, gratuit et multiplateforme (Windows, Mac et Linux), développé par Microsoft. Principalement conçu pour le développement d'application avec JavaScript, TypeScript et Node.js, l'éditeur peut s'adapter à d'autres types de langages grâce à un système d'extension bien fourni. b. Le SGBD MySQL MySQL est un Système de Gestion de Base de Données (SGBD) parmi les plus populaires au monde. Il est distribué sous double licence, une licence publique générale GNU et une propriétaire selon l'utilisation qui en est faites. La première version de MySQL est apparue en 1995 et l'outil est régulièrement entretenu. Ce système est particulièrement connu des développeurs pour faire partit des célèbres quatuors: WAMP (Windows, Apache, MySQL et PHP), LAMP (Linux) et MAMP (Mac). Ces packages sont si populaires et simples à mettre en oeuvre que MySQL est largement connu et exploité comme système de gestion de base de données pour des applications utilisant PHP. C'est d'ailleurs pour cette raison que la plupart des hébergeurs web proposent PHP et MySQL. c. Le serveur web Apache Apache est le serveur le plus répandu sur internet. Il s'agit d'une application fonctionnant à la base sur les systèmes d'exploitation de type Unix, mais il a désormais été porté sur de nombreux systèmes, dont Microsoft Windows. Le pack PHPdev (désormais EasyPHP) est ainsi téléchargeable, il regroupe les applications suivantes : · Le serveur web Apache · Le serveur de base de données MySQL · Le serveur d'application PHP · L'outil PHPMyAdmin permettant de gérer des bases MySQL d. WampServer WampServer est une plate-forme de développement web sous Windows pour des applications Web dynamiques à l'aide du serveur Apache2, du langage de scripts PHP et d'une base de données MySQL. Il possède également PHPMyAdmin pour gérer plus facilement vos bases de données. * 3Le protocole utilisé par le navigateur pour afficher les pages web |
|