SlideShare une entreprise Scribd logo
1  sur  40
Télécharger pour lire hors ligne
Université Cadi Ayyad Marrakech
École Supérieure de Technologie de SAFI
Département Génie Informatique
AU : 2018/2019
Rapport de stage PFE
Pour l’obtention de DUT en génie informatique / Administration système et réseau
Présenté et Soutenu par
Mr.Mohammed Jaiti
Encadré par :Mr.Maataoui Benaissa
Sous la Thématique :
Développement de deux applications web
Avec Spring boot / PHP-MYSQL
Établissement de Formation : UCA - École Supérieure de Technologie
de SAFI
Société d’accueil : Synthèse Conseil - CASABLANCA
Promo : 2018/2019
Dédicaces
A mes très chers parents
En témoignage de notre amour et de notre gratitude pour les
sacrifices
consentis à notre égard
A ma famille
Pour leur soutien et leur encouragement
A mes amis
A tous les professeurs et personnels de l’école EST-SAFI qui
nous ont accompagnés
tout au long de nos Études,
A tous ceux qui de près ou de loin nous sont chers
Veuillez trouver ici, le témoignage de nos sentiments respectueux
et l’expression
de ma sincère reconnaissance.
Que ce travail vous apporte l’estime et le respect que je porte à
votre égard,
et soit la preuve du désir que j’ai pour vous honorer.
3
Remerciements
De prime à bord, je tiens à exprimer ma gratitude et présenter mes cha-
leureux remerciement à toutes les personnes qui ont contribué au succès de
mon stage et qui m’ont aidé lors de la rédaction de ce rapport.
Tout d’abord, j’adresse mes remerciements à Monsieur le directeur générale de
l’entreprise SYNTHESE - CONSEIL-CASABLANCA Mr.Akouddane
Ahmed et à Mr.Khalid Gabi qui m’a permis de postuler dans cette en-
treprise. sans oublier mes profs de l’Université Cadi Ayyad Marrakech -
École Supérieure de Technologie de SAFI , Son écoute et ses conseils
m’ont permis d’améliorer mon niveau durant toutes ces deux années , et je
remercie mes amis qui m’ont aidé spirituellement et moralement.
Je tiens à remercier vivement mon maitre de stage, Mr Maataoui Benaissa
, Ingénieur en informatique au sein de l’entreprise SC , pour son accueil, le
temps passé ensemble et le partage de son expertise au quotidien. Grâce aussi
à sa confiance j’ai pu m’accomplir totalement dans mes missions. Il fut d’une
aide précieuse dans les moments les plus délicats.
Je remercie également toute l’équipe de SYNTHESE CONSEIL pour leur
accueil, leur esprit d’équipe et en particulier Mr.Faiçal Alami Ingénieur en
informatique et Mme.Erraki Siham, qui m’ont beaucoup aidé à comprendre
et régler les problématiques au niveau conceptuel et de développement.
Enfin je tiens à remercier toutes les personnes qui m’ont conseillé et relu
4
lors de la rédaction de ce rapport de stage : ma famille, mon amie Taha
Belrhiatia camarade de promotion.
5
Table des matières
Dédicaces 3
Remerciements 4
1 Introduction générale 9
2 Organisme d’accueil 10
2.1 Présentation du SYNTHESE CONSEIL . . . . . . . . . . . . 10
2.2 Moyens humains et technique . . . . . . . . . . . . . . . . . . 11
2.2.1 Moyens humains de SYNTHESE CONSEIL . . . . . . 11
2.2.2 Moyens techniques de SYNTHESE CONSEIL . . . . . 12
2.3 Services de l’entreprise . . . . . . . . . . . . . . . . . . . . . . 12
2.3.1 Analyse de l’existence et l’identification des besoins . . 13
2.3.2 Conception et développement de systèmes d’information 13
2.3.3 Assistance et support . . . . . . . . . . . . . . . . . . . 14
2.3.4 Moyens techniques . . . . . . . . . . . . . . . . . . . . 15
3 Présentation générale 16
3.1 Présentation des projets . . . . . . . . . . . . . . . . . . . . . 16
4 Développement d’application 1 : Gestion des comptes ban-
caires 17
4.1 Présentation d’application . . . . . . . . . . . . . . . . . . . . 17
4.2 Exigences fonctionnelles . . . . . . . . . . . . . . . . . . . . . 17
4.3 Exigences techniques . . . . . . . . . . . . . . . . . . . . . . . 18
4.4 Travail demandé . . . . . . . . . . . . . . . . . . . . . . . . . 18
6
4.5 Structure et Architecture Technique . . . . . . . . . . . . . . . 19
4.5.1 Architecture Technique du projet . . . . . . . . . . . . 19
4.5.2 Structure du projet . . . . . . . . . . . . . . . . . . . . 19
4.6 Conception . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.6.1 Diagramme de classes des entités et MLDR . . . . . . 20
4.6.2 Diagramme EER . . . . . . . . . . . . . . . . . . . . . 20
4.7 Codage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.8 Démonstration de l’application . . . . . . . . . . . . . . . . . 23
5 Développement d’application 2 : Gestion d’un clinique 25
5.1 Présentation d’application . . . . . . . . . . . . . . . . . . . . 25
5.2 Exigences fonctionnelles . . . . . . . . . . . . . . . . . . . . . 25
5.3 Exigences techniques . . . . . . . . . . . . . . . . . . . . . . . 26
5.4 Conception . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5.4.1 Diagramme EER . . . . . . . . . . . . . . . . . . . . . 27
5.5 Codage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5.6 Démonstration de l’application . . . . . . . . . . . . . . . . . 30
5.7 Conversion en une application de bureau . . . . . . . . . . . . 33
6 Outils de développement 35
6.1 Langage de développent . . . . . . . . . . . . . . . . . . . . . 35
6.1.1 Le langage Java . . . . . . . . . . . . . . . . . . . . . . 35
6.1.2 Le langage Python . . . . . . . . . . . . . . . . . . . . 36
6.1.3 Le langage JavaScript . . . . . . . . . . . . . . . . . . 37
6.2 Environnement de développement . . . . . . . . . . . . . . . . 37
6.2.1 Spring boot . . . . . . . . . . . . . . . . . . . . . . . . 37
7 Conclusion et perspectives 40
7
Table des figures
2.1 Différentes département de l’entreprise . . . . . . . . . . . . . 11
2.2 Qualification, expérience professionnelle et postes occupés eu
sein de l’entreprise . . . . . . . . . . . . . . . . . . . . . . . . 11
4.1 Architecture Technique . . . . . . . . . . . . . . . . . . . . . . 19
4.2 Structure du projet - Gestion des comptes . . . . . . . . . . . 19
4.3 Diagramme de classes des entités . . . . . . . . . . . . . . . . 20
4.4 MLRD - Gestion des comptes . . . . . . . . . . . . . . . . . . 20
4.5 Diagramme EER - Gestion des comptes . . . . . . . . . . . . . 20
4.6 Interface d’authentification . . . . . . . . . . . . . . . . . . . . 23
4.7 Interface de consultation des comptes et Operations . . . . . . 24
4.8 Interface de consultation des clients et ces comptes . . . . . . 24
5.1 Diagramme EER - Gestion d’un Clinique . . . . . . . . . . . . 27
5.2 Front de l’application . . . . . . . . . . . . . . . . . . . . . . . 30
5.3 Ajout d’un patient . . . . . . . . . . . . . . . . . . . . . . . . 30
5.4 Ajout d’un médecin . . . . . . . . . . . . . . . . . . . . . . . . 31
5.5 Consultation d’un patient . . . . . . . . . . . . . . . . . . . . 31
5.6 Traitement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5.7 Les opérations . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5.8 Application de desktop . . . . . . . . . . . . . . . . . . . . . . 33
5.9 Installation de module nativefier . . . . . . . . . . . . . . . . . 33
5.10 convertir n’importe quel site Web en une application . . . . . 33
5.11 L’application dans un fichier win32-x64 . . . . . . . . . . . . . 34
6.1 Spring Framework Architecture . . . . . . . . . . . . . . . . . 39
TABLE DES FIGURES 8
1Introduction générale
Le domaine de développement web est un domaine très actif , récemment
plusieurs technologies sont inventés pour faciliter la création des applications
web surtout Intranet et pour les PME.
Dans le cadre de ma 2ème année de DUT Génie informatique, j’ai eu l’oppor-
tunité de réaliser un stage au sein de l’entreprise Synthèse Conseil.
Ce stage d’une durée de deux mois , a consisté de réaliser des applications
web basée sur deux techniques différentes .
Ce rapport présente le travail que j’ai effectué , Ce stage s’est déroule du 01
avril 2019 au 24 mai 2019 , Pendant cette période , je me familiarisé avec un
environnement technique et un ensemble d’outils .
Les projet réalisés sont avérés très intéressants et très enrichissants pour
mon expérience professionnel ,En effet ma formation s’inscrit précisément
dans ce secteur (l’ingénierie et développement informatique) .
Le but de ce rapport n’est pas de faire uniquement une présentation ex-
haustive de tous les aspects techniques que j’ai pu apprendre ou approfondir ,
mais aussi du manière synthétique et claire , de faire un tour d’horizon des
aspects techniques et humains auxquels j’ai été confronté.
je vous expose dans ce rapport en premier lieu une présentation des en-
treprises , Ensuite je vous explique les différents aspects de mon travail durant
deux mois et enfin je clôture et je résume avec les apports du stage et une
brève conclusion.
1 Introduction générale 9
2Organisme d’accueil
2.1 Présentation du SYNTHESE CONSEIL
Synthèse Conseil a été fondée en 2001 pour apporter une solution concrète
et des produits innovants aux entreprises qui ont besoin d’examiner et refondre
leur système d’information en recherchant des objectifs de performance et de
qualité. Le chemin parcouru est d’excellente facture grâce aux partenariats
noués avec des clients que nous aimons et qui nous le rendent bien. Chaque
projet signé est pour nous une opportunité pour entamer à long terme une
relation durable basée sur la confiance, la transparence, l’honnêteté intellec-
tuelle et le devoir de conseil. En effet, nous fondons notre propre stratégie sur
les valeurs suivantes :
• La complexité du projet de système d’information en raison du nombre
de spécialistes qui participent à son élaboration
• La maîtrise que le client apprécierait d’avoir tout au long du processus
de mise en œuvre et en dépit des difficultés d’arbitrage
• L’ancrage du système d’information dans la stratégie globale de l’en-
treprise, son organisation et ses plans de développement
• Le souhait d’aboutir à des mécanismes d’intégration entre les différentes
fonctions de l’entreprise pour une meilleure gestion et un pilotage
efficace des activités.
2 Organisme d’accueil 10
2.2 Moyens humains et technique
2.2.1 Moyens humains de SYNTHESE CONSEIL
Figure 2.1 – Différentes département de l’entreprise
L’effectif de Synthèse Conseil comprend 8 personnes dont :
• Direction Générale : Ahmed KOUDDANE (Directeur général)
• Département financier : Zakaria CHOUGRAD (Consultant financière)
• Département développement : Mohamed DAIF (Cadre supérieur),
Fouad WARHOU (Consultant Fonctionnel et technique), Siham ER-
RAKI (Cadre technique), Benaissa Maataoui (Cadre technique)
• Département support : Fayçal Alami BOUDRAA (Cadre technique)
• Département intégration : Zakaria TOULO (Consultant technique)
Figure 2.2 – Qualification, expérience professionnelle et postes occupés eu
sein de l’entreprise
2 Organisme d’accueil 11
2.2.2 Moyens techniques de SYNTHESE CONSEIL
— Superficie de Local occupé : 170 m2
— Equipements et installations (consistance, importance, affectation,
implantation. . . .) :
• Deux voitures ;
• 2 Serveurs ;
• 15 Poste de travail ;
• 5 Stations de travail en réseau (Recherche et développement)
• 2 Routeurs ;
• 1 Switch ;
• 2 Imprimantes ;
• 1 Scanner ;
• Outil de conception et de développement.
2.3 Services de l’entreprise
Nos services peuvent vous accompagner depuis l’examen de votre existant
et tout au long de la conception et la mise en œuvre de votre système d’infor-
mation cible. Si un créneau parmi ceux que nous citons vous correspond, nous
serons heureux de vous montrer de façon concrète comment nous procédons
pour faire en sorte que notre passion soit également la votre. Nous avons
choisi le parti de vous décrire parmi nos prestations celles qui ont l’avantage
d’avoir une signification pour vous. Un projet commence d’abord par la prise
de connaissance de votre métier, ses contraintes, ses spécificités et ses enjeux.
Pour conduire cette première phase préalable à toute construction future,
nous avons élaboré des méthodes affinées au fil des années que nous mettons à
la disposition de votre projet. L’objectif est, en effet, de restituer de manière
fidèle votre existant que vous serez à même de valider sans difficulté. La
conception réussie de votre solution future est une condition nécessaire à la
réalisation de vos ambitions en matière de système d’information sous votre
contrôle et conformément à vos objectifs et vos orientations. Synthèse Conseil
adopte et applique en ce domaine les normes et standards vous garantissant
un bon retour sur investissement. Notre engagement est total puisque nous
sommes en mesure de vous assurer un support professionnel et une mainte-
nance de qualité à long terme. Nous sommes heureux de constater que nos
clients nous font confiance au point de reconduire constamment nos missions
de support parce que précisément elles leur donnent entière satisfaction.
2 Organisme d’accueil 12
2.3.1 Analyse de l’existence et l’identification des be-
soins
Au lieu d’être une phase préalable à de multiples projets, nous considérons
qu’il s’agit d’un travail de fond et un investissement durable que l’entreprise
a intérêt à entreprendre même en l’absence d’un projet cible. La base de
connaissances ainsi élaborée a un impact certain sur l’ensemble des actions
qui ensuite seront envisagées en organisation, contrôle interne et système d’in-
formation. Nos méthodes avancées pour conduire de telles missions s’appuient
sur l’état de l’art en la matière. Nous avons recours à différents concepts
facilitant l’élaboration d’un document sur l’existant à la fois pertinent, précis
et exhaustif et dans lequel les processus métier occupent une place centrale.
Nous vous donnons ici un bref aperçu sur cette démarche en restant à votre
entière disposition pour plus de détails à ce sujet.
• Les faits générateurs qui déclenchent les processus métier et qui revêtent
une importance considérable dans l’identification des fonctions
• La description des traitements effectués et leur relation avec des règles
de gestion métier, organisationnelles et techniques
• Les positions d’attente qui permettent de situer les goulots d’étrangle-
ment et les possibilités d’amélioration de la réactivité de l’organisme
système vis-à-vis du monde extérieur
• Les ressources consommées et qui conditionnent l’exécution des opéra-
tions et leur positionnement dans les processus
• L’établissement du référentiel métier correspondant aux fonctions
de base qui s’affranchit de la contingence organisationnelle et son
éventuelle évolution
• Le diagnostic des processus et des systèmes d’organisation et d’infor-
mation par l’identification des écarts avec le référentiel de base.
Le résultat obtenu à travers cette prestation est fondamental car il facilite la
diffusion des procédures et la mise en place d’un référentiel des règles métier
sous forme d’une base travers des clients légers de connaissances ouverte à
l’évolution et accessible à tous.
2.3.2 Conception et développement de systèmes d’in-
formation
C’est la prestation centrale du projet de refonte d’un système d’information
et la partie apparente de son iceberg. Notre vocation dans ce domaine consiste à
construire sur du solide pour assurer une cohérence totale entre les fondements
du système et les aspects opérationnels dont l’utilisateur a recours pour son
exploitation au quotidien. Les technologies sont diverses et variées et il
2 Organisme d’accueil 13
s’agit de choisir celles qui correspondent au contexte de l’entreprise et à
l’évolution du marché. Notre observation du marché montre que bien souvent
la plateforme technologique est souvent sacrifiée au détriment de restitutions
et de présentations séduisantes. Notre recommandation récurrente sur ce plan
est d’inscrire le développement du système d’information en facilitant ses
possibilités d’évolution sur des bases pérennes en adoptant les technologies
les plus récentes :
• Les solutions framework professionnelles avec l’ensemble des outils de
conception, de développement, de génération, de documentation, de
suivi de versions et de gestion des incidents. La première condition
de réussite des projets de systèmes d’information se situe à ce niveau.
Les études de cadrage et de choix de plateformes sont rares à notre
regret et notre vacation est d’y pallier au bénéfice de projets pérennes
et innovants
• Les architectures orientées service car l’évolution du monde informa-
tique va dans le sens de l’objet, du service, de la réutilisation de
services acquis permettant ainsi la sauvegarde des investissements
réalisés. notre ambition consiste à sensibiliser à l’avènement de ces
concepts et à préparer les systèmes d’information à leur accueil dans
les meilleures conditions
• Les mécanismes d’intégration pour assurer la cohérence entre les appli-
cations qui cohabitent au sein du même système d’information sans
parler le même langage et en communiquant laborieusement entre elles.
Des avancées certaines sur le plan technologique permettent d’accéder
aujourd’hui ce à ce qui paraissait prohibitif dans un passé récent.
2.3.3 Assistance et support
À l’ère de l’externalisation, le recours à des ressources externes disponibles,
à l’écoute et réactives constitue une solution alternative capable d’enrichir
la démarche des entreprises à la recherche d’une assistance professionnelle
sans en acquérir l’appropriation interne. Les avantages de cette stratégie
dans les activités d’une entreprise ne sont plus à démontrer mais il faut
savoir l’intégrer de façon heureuse dans une démarche globale. Nous avons
compris très tôt cette donnée du marché et nous avons investi pour que nous
ayons en ce domaine une offre concrète et pertinente. Notre succès fait de
nous un des rares opérateurs intervenant dans les NTIC qui a des contrats
de maintenance et de support sur une durée ininterrompue sur plus de dix
années, quelques mois seulement après la création de Synthèse Conseil. Notre
satisfaction est de constater que les clients de cette business unit apprécient
fortement nos services rendus et en demandent davantage à chaque fois que
2 Organisme d’accueil 14
leur développement l’exige. Notre assistance englobe différentes activités
stratégiques pour les entreprises qui veulent gagner en performance dans la
mise en œuvre de leur système d’information et la gestion de son évolution
dans le temps.
2.3.4 Moyens techniques
Pour la réalisation des missions qui nous sont confiées par nos clients,
nous nous appuyons essentiellement sur une maîtrise des méthodes et des
outils. Grâce à leurs expériences antérieures, nos consultants ont élaboré
des méthodes de conception de systèmes d’information et de diagnostic des
aspects organisationnels que nous proposons d’appliquer au cas spécifiques
de nos clients. Cette méthode s’appuie sur les outils d’appréciation et de
validation suivants :
• L’évolution des structures ;
• L’évolution des systèmes d’information ;
• La méthode Merise ;
• La méthode Axial.
La méthode Racine est utilisée dans l’organisation et la planification des
projets ainsi que dans la constitution des structures de travail, leur pilotage
et de leur suivi opérationnel. Les outils et les technologies de mise en œuvre
qui sont utilisés dans la conduite des projets sont notamment les suivants :
• AMC designer pour la conception
• Méthode RAD
• Méthode UML
• Base de données et outils de développement ORACLE
• Base de données SQL SERVER
• Visual basic
• Asp, Interdev, Asp.net pour le développement web
• Développement Java
• Développement ESM et DSM du FRP Sage 1000
• Business Intelligence à travers différentes solutions du marché
• Le paramétrage et le développement d’une solution ERP propre à
notre société.
2 Organisme d’accueil 15
3Présentation générale
Les projets que j’ai réalisés sont inclus dans la programmation d’ap-
plications Web et peuvent être utilisés comme applications de bureau
après l’ajout de nouvelles technologies. Ces projets sont des applications
pour développer des capacités et découvrir des technologies permettant
un meilleur développement.
Les projets sont les suivants :
• Une application pour les transactions bancaires , cette application
uniquement un appareil pour implémenter d’autres aspects tel que la
technologie de la blockchain.
• Une application de gestion d’un clinique , cette application consiste à
gérer les opérations effectueés au sein d’un clinique.
3.1 Présentation des projets
Les applications ont été mises en œuvre en utilisant une technologie
différente, ce qui était dû au développement des capacités et à la
comparaison des technologies pour améliorer la maturité des futures
applications .
3 Présentation générale 16
4Développement d’application 1 : Gestion des
comptes bancaires
4.1 Présentation d’application
On souhaite créer une application qui permet de gérer des comptes ban-
caires
• Chaque compte est défini un code , un solde et une date de création
• Un compte courant est un compte qui possède en plus un découvert
• Un compte épargne est un compte qui possède en plus un taux d’intérêt
• Chaque compte appartient à un client
• Chaque client est défini par son code et son nom
• Chaque compte peut subir plusieurs opérations
• Il existe deux types d’opérations : versement et retrait
• Une opération est défini par un numéro et une date et un montant.
4.2 Exigences fonctionnelles
• L’application doit permettre de :
— Gérer des clients :
1. Ajouter un client
2. Consulter tous les clients
3. Consulter les clients dont le nom contient un mot clé.
— Gérer les comptes :
1. Ajouter compte
2. Consulter compte
4 Développement d’application 1 : Gestion des comptes
bancaires 17
— Gérer les opérations :
1. Effectuer un versement d’un montant dans un compte
2. Effectuer un retrait d’un montant dans un compte
3. Effectuer un virement d’un montant d’un compte vers un autre
4. Consulter les opérations d’un compte page par page.
• Les opérations nécessitent une opération d’authentification
4.3 Exigences techniques
• Les données sont stockées dans une base de donnée MySQL
• L’application se compose de trois couches :
— La couche DAO qui est basée sur Spring Data , JPA ,Hibernate et
JDBC.
— La couche Métier
— La couche Web basée sur MVC coté serveur en utilisant Thymeleaf.
• La sécurité est basée sur Spring Sécurity
4.4 Travail demandé
• Etablir une architecture technique du projet
• Etablir un diagramme de classes qui montre les entités, la couche DAO
et la couche métier.
• Créer un projet SpringBoot qui contient les éléments suivants :
— Les entités
— La couche DAO (Interfaces Spring data)
— La couche métier (Interfaces et implémentations)
— La couche web :
— Les contrôleurs Spring MVC
— Les Vue basée sur Thymeleaf
• Sécuriser l’application en utilisant un système d’authentification basé
sur Spring Security
4 Développement d’application 1 : Gestion des comptes
bancaires 18
4.5 Structure et Architecture Technique
4.5.1 Architecture Technique du projet
Figure 4.1 – Architecture Technique
4.5.2 Structure du projet
Figure 4.2 – Structure du projet - Gestion des comptes
4 Développement d’application 1 : Gestion des comptes
bancaires 19
4.6 Conception
4.6.1 Diagramme de classes des entités et MLDR
Figure 4.3 – Diagramme de classes des entités
Figure 4.4 – MLRD - Gestion des comptes
4.6.2 Diagramme EER
Figure 4.5 – Diagramme EER - Gestion des comptes
4.7 Codage
Pour la partie du codage , on a bien créer des classes qui va représenter
des tables dans la base de données :
— La classe Client qui représente la table des clients , chaque client
possède un compte
— La classe Comptes qui possède aussi un lien réflexif vers client
4 Développement d’application 1 : Gestion des comptes
bancaires 20
— La classe Opération qui possède un ensemble des opérations qui seront
implémenter à un compte
On a aussi des classes qui hérite des autres classes , tel que la classe Compte
courant qui hérite de la classe Compte , Class Versement qui hérite de la
classe opérations
La couche Entities englobe tout ces classes :
Un aperçus de code pour quelques classe :
⇒ La classe Client :
⇒ La classe Compte :
La couche DAO regroupe les repository de chaque classe créer dans la base
de donnée :
Un aperçus de code pour chaque interface : ⇒ interface ClientRepository qui
hérite de JpaRepository
4 Développement d’application 1 : Gestion des comptes
bancaires 21
⇒ interface CompteRepository qui hérite de JpaRepository
⇒ interface OperationRepository qui hérite de JpaRepository
La couche Metier englobe tout les méthodes implémenter dans l’application :
— Consulter compte
— Verser
— Retirer
— Virement
— listoperation
Les autres couches représente la partie WEB : Spring Sécurity pour le login
et Web pour les controllers
Par exmple la méthode SaveOperation utilise la méthode POST et retourne
le compte Consulter avec son code .
4 Développement d’application 1 : Gestion des comptes
bancaires 22
4.8 Démonstration de l’application
Figure 4.6 – Interface d’authentification
l’authentification se fait en deux type :
— Administrateur : Il peut faire des operations
— Utilisateur : il n’a pas le droit de faire des operations
4 Développement d’application 1 : Gestion des comptes
bancaires 23
Figure 4.7 – Interface de consultation des comptes et Operations
Figure 4.8 – Interface de consultation des clients et ces comptes
4 Développement d’application 1 : Gestion des comptes
bancaires 24
5Développement d’application 2 : Gestion d’un
clinique
5.1 Présentation d’application
Cette application et pour gérer les opérations effectuées au sein d’un
clinique , comprend ces modules :
• Ajout des patients
• Ajout des médecins
• Effectuer une consultation
• Ajout d’un traitement
• Laboratoire
• Affichage des opérations effectuées
5.2 Exigences fonctionnelles
• L’application doit permettre de :
— Ajouter un patient :
1. Nom & Prénom
2. Sexe & Température & Poids
— Effectuer une consultation
1. Nom du patient
2. Nom du médecins
3. Frais de consultation
4. Date de consultation
— Traitement :
5 Développement d’application 2 : Gestion d’un clinique 25
1. Nom du patient
2. Nom de la maladie
3. Début / Fin de traitement
4. Frais de traitement & État du patient
5. Les médicaments prescrit
— Laboratoire :
1. Nom du patient
2. Type d’examen
3. Observation
4. Date d’examen
5. Frais d’examen
— Ajout des infos sur les médecins :
1. Nom & Prénom
2. Sexe & Adresse
3. Tel & Fonction
— Les opérations :
1. Consultation
2. Les traitements effectués
3. Les malades transférer au laboratoire
4. Les patients
5. Les médecins
5.3 Exigences techniques
• Les données sont stockées dans une base de donnée MySQL
• l’application se compose de :
— les feuilles de style : CSS
— JavaScript folder
— PHP folder
5 Développement d’application 2 : Gestion d’un clinique 26
5.4 Conception
5.4.1 Diagramme EER
Figure 5.1 – Diagramme EER - Gestion d’un Clinique
5.5 Codage
Connexion de data Base :
Fichier Index :
5 Développement d’application 2 : Gestion d’un clinique 27
Ajout d’un patient :
Ajout d’un médecin :
5 Développement d’application 2 : Gestion d’un clinique 28
La Structure de projet :
NB : Les autres parties du codage comprend : un ajout en PHP et une appelle
des fonction en javascript .
5 Développement d’application 2 : Gestion d’un clinique 29
5.6 Démonstration de l’application
Figure 5.2 – Front de l’application
Figure 5.3 – Ajout d’un patient
5 Développement d’application 2 : Gestion d’un clinique 30
Figure 5.4 – Ajout d’un médecin
Figure 5.5 – Consultation d’un patient
5 Développement d’application 2 : Gestion d’un clinique 31
Figure 5.6 – Traitement
Figure 5.7 – Les opérations
5 Développement d’application 2 : Gestion d’un clinique 32
5.7 Conversion en une application de bureau
Figure 5.8 – Application de desktop
Pour qu’on puisse Convertissez n’importe quel emplacement en application
de bureau pour Windows :
Exigences
— NodeJS
— nativefier
Nativefier est un outil de ligne de commande qui vous permet de créer
facilement une application de bureau pour un site Web avec une configuration
succincte et minimale. Les applications sont encapsulées par Electron dans
un exécutable de système d’exploitation (.app, .exe, etc.) pour une utilisation
sous Windows, OSX et Linux.
Installation de module nativefier globalement
Figure 5.9 – Installation de module nativefier
Figure 5.10 – convertir n’importe quel site Web en une application
5 Développement d’application 2 : Gestion d’un clinique 33
Figure 5.11 – L’application dans un fichier win32-x64
5 Développement d’application 2 : Gestion d’un clinique 34
6Outils de développement
6.1 Langage de développent
6.1.1 Le langage Java
le langage compatible avec le framewrok Spirng boot est le langage Java
6 Outils de développement 35
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 particularité et l’objectif central de Java est que les logiciels écrits
dans ce langage doivent être très facilement portables sur plusieurs sys-
tèmes d’exploitation tels que Unix, Windows, Mac OS ou GNU/Linux,
avec peu ou pas de modifications, mais qui ont l’inconvénient d’être
plus lourd à l’exécution (en mémoire et en temps processeur) à cause
de sa machine virtuelle. Pour cela, divers plateformes et frameworks
associés visent à guider, sinon garantir, cette portabilité des applications
développées en Java.
NB : pour l’utilisation web -coté serveur : Avec les serveurs d’applications,
on utilise des EJB pour encapsuler les classes définies précédemment. Ces
éléments sont utilisés dans des architectures J2EE pour des applications
multicouches. L’avantage qu’on tire de ce travail est de pouvoir cacher au
client l’implémentation du code côté serveur.
6.1.2 Le langage Python
PHP : Hypertext Preprocessor4, plus connu sous son sigle PHP (acro-
nyme récursif), est un langage de programmation libre5, principalement
utilisé pour produire des pages Web dynamiques via un serveur HTTP4,
mais pouvant également fonctionner comme n’importe quel langage
interprété de façon locale. PHP est un langage impératif orienté objet.
PHP 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.
Fonctionnemnt :
PHP appartient à la grande famille des descendants du C, dont la syntaxe
est très proche. En particulier, sa syntaxe et sa construction ressemblent à
celles des langages Java et Perl, à ceci près que du code PHP peut facilement
6 Outils de développement 36
être mélangé avec du code HTML au sein d’un fichier PHP.
Dans une utilisation destinée à l’internet, l’exécution du code PHP se déroule
ainsi : lorsqu’un visiteur demande à consulter une page de site web, son
navigateur envoie une requête au serveur HTTP correspondant. Si la page
est identifiée comme un script PHP (généralement grâce à l’extension .php),
le serveur appelle l’interprète PHP qui va traiter et générer le code final de la
page (constitué généralement d’HTML ou de XHTML, mais aussi souvent de
feuilles de style en cascade et de JS). Ce contenu est renvoyé au serveur HTTP,
qui l’envoie finalement au client. Ce schéma explique ce fonctionnement :
6.1.3 Le langage JavaScript
JavaScript est un langage de programmation de scripts principalement
employé dans les pages web interactives mais aussi pour les serveurs
avec l’utilisation (par exemple) de Node.js. C’est un langage orienté
objet à prototype, c’est-à-dire que les bases du langage et ses principales
interfaces sont fournies par des objets qui ne sont pas des instances
de classes, mais qui sont chacun équipés de constructeurs permettant
de créer leurs propriétés, et notamment une propriété de prototypage
qui permet d’en créer des objets héritiers personnalisés. En outre, les
fonctions sont des objets de première classe.
6.2 Environnement de développement
6.2.1 Spring boot
6 Outils de développement 37
Spring est un framework libre pour construire et définir l’infrastructure d’une
application java3, dont il facilite le développement et les tests.
Spring est considéré comme un conteneur dit « léger ». La raison de ce
nommage est expliquée par Erik Gollot dans l’introduction du document
Introduction au framework Spring.
Spring est effectivement un conteneur dit « léger », c’est-à-dire une infra-
structure similaire à un serveur d’applications J2EE. Il prend donc en charge
la création d’objets et la mise en relation d’objets par l’intermédiaire d’un
fichier de configuration qui décrit les objets à fabriquer et les relations de
dépendances entre ces objets. Le gros avantage par rapport aux serveurs
d’application est qu’avec Spring, les classes n’ont pas besoin d’implémenter
une quelconque interface pour être prises en charge par le framework (au
contraire des serveur d’applications J2EE et des EJBs). C’est en ce sens que
Spring est qualifié de conteneur « léger ».
Spring s’appuie principalement sur l’intégration de trois concepts clés :
• l’inversion de contrôle est assurée de deux façons différentes : la re-
cherche de dépendances et l’injection de dépendances
• la programmation orientée aspect
• une couche d’abstraction.
La couche d’abstraction permet d’intégrer d’autres frameworks et biblio-
thèques avec une plus grande facilité. Cela se fait par l’apport ou non de
couches d’abstraction spécifiques à des frameworks particuliers. Il est ainsi
possible d’intégrer un module d’envoi de mails plus facilement.
L’inversion de contrôle :
1. La recherche de dépendance : consiste pour un objet à interroger le
conteneur, afin de trouver ses dépendances avec les autres objets. C’est
un cas de fonctionnement similaire aux EJBs.
2. L’injection de dépendances : cette injection peut être effectuée de trois
manières possibles :
— L’injection de dépendance via le constructeur
— L’injection de dépendance via les modificateurs (setters)
— L’injection de dépendance via une interface.
Les deux premières sont les plus utilisées par Spring.
6 Outils de développement 38
Ce framework, grâce à sa couche d’abstraction, ne concurrence pas d’autres
frameworks dans une couche spécifique d’un modèle architectural Modèle-Vue-
Contrôleur mais s’avère être un framework multi-couches pouvant s’insérer
au niveau de toutes les couches ; modèle, vue et contrôleur. Ainsi il permet
d’intégrer Hibernate ou iBATIS pour la couche de persistance ou encore Struts
et JavaServer Faces pour la couche présentation.
Figure 6.1 – Spring Framework Architecture
6 Outils de développement 39
7Conclusion et perspectives
Dans le cadre de notre projet de formation, nous avons conçu et développé
des applications Web. Nous avons d’abord commencé par comprendre le
contexte général de notre application et à identifier les différentes exigences
de notre système dans le futur.
Malgré toutes les difficultés rencontrées dans le processus de développement
et les contraintes de temps, nous avons été en mesure de réaliser l’ensemble de
notre application en respectant le volet sécurité et en préparant les documents
nécessaires. Ce travail était intéressant car il nous a permis de découvrir un
nouveau domaine de travail et de nous éloigner des projets traditionnels tels
que le commerce électronique, où nous avons été autorisés à approfondir notre
connaissance des bonnes pratiques de programmation.
Enfin, notre travail ne se limite pas à ce niveau, de nombreuses fonctionnalités
peuvent en fait être ajoutées à nos applications.
7 Conclusion et perspectives 40

Contenu connexe

Tendances

Tendances (20)

Conception et développement d'une application de gestion de production et de ...
Conception et développement d'une application de gestion de production et de ...Conception et développement d'une application de gestion de production et de ...
Conception et développement d'une application de gestion de production et de ...
 
Rapport stage pfe
Rapport stage  pfe Rapport stage  pfe
Rapport stage pfe
 
Conception et Réalisation Application Web Laravel PFE BTS
Conception et Réalisation Application Web Laravel PFE BTSConception et Réalisation Application Web Laravel PFE BTS
Conception et Réalisation Application Web Laravel PFE BTS
 
Rapport PFE réalisation d’un Framework Kinect
Rapport PFE réalisation d’un Framework KinectRapport PFE réalisation d’un Framework Kinect
Rapport PFE réalisation d’un Framework Kinect
 
Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...
Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...
Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...
 
Rapport Projet de Fin d'Etudes
Rapport Projet de Fin d'EtudesRapport Projet de Fin d'Etudes
Rapport Projet de Fin d'Etudes
 
Rapport PFE Développent d'une application bancaire mobile
Rapport PFE Développent d'une application bancaire mobileRapport PFE Développent d'une application bancaire mobile
Rapport PFE Développent d'une application bancaire mobile
 
Modele rapport pfe esprit
Modele rapport pfe  espritModele rapport pfe  esprit
Modele rapport pfe esprit
 
Rapport PFE Application Web Mobiles belwafi bilel
Rapport PFE Application Web Mobiles belwafi bilelRapport PFE Application Web Mobiles belwafi bilel
Rapport PFE Application Web Mobiles belwafi bilel
 
Pfe conception et réalisation d'une application de gestion des processus d'ac...
Pfe conception et réalisation d'une application de gestion des processus d'ac...Pfe conception et réalisation d'une application de gestion des processus d'ac...
Pfe conception et réalisation d'une application de gestion des processus d'ac...
 
RAPPORT DE PROJET DE FIN D’ETUDES
RAPPORT DE PROJET DE FIN D’ETUDESRAPPORT DE PROJET DE FIN D’ETUDES
RAPPORT DE PROJET DE FIN D’ETUDES
 
Rapport de projet de fin d'étude licence informatique et multimédia
Rapport de projet de fin d'étude licence informatique et multimédiaRapport de projet de fin d'étude licence informatique et multimédia
Rapport de projet de fin d'étude licence informatique et multimédia
 
Rapport
RapportRapport
Rapport
 
Conception et developpement d'une application mobile Android e-location
Conception et developpement d'une application mobile Android e-locationConception et developpement d'une application mobile Android e-location
Conception et developpement d'une application mobile Android e-location
 
Rappport PFE 2012 Ghodhbane Hani - OpenSNC
Rappport PFE 2012 Ghodhbane Hani - OpenSNCRappport PFE 2012 Ghodhbane Hani - OpenSNC
Rappport PFE 2012 Ghodhbane Hani - OpenSNC
 
Rapport pfe talan_2018_donia_hammami
Rapport pfe talan_2018_donia_hammamiRapport pfe talan_2018_donia_hammami
Rapport pfe talan_2018_donia_hammami
 
Rapport PFE Ilef Ben Slima
Rapport PFE Ilef Ben SlimaRapport PFE Ilef Ben Slima
Rapport PFE Ilef Ben Slima
 
PFE :: Application de gestion des dus d'enseignement
PFE :: Application de gestion des dus d'enseignementPFE :: Application de gestion des dus d'enseignement
PFE :: Application de gestion des dus d'enseignement
 
Projet Fin D'étude Application Mobile
Projet Fin D'étude Application MobileProjet Fin D'étude Application Mobile
Projet Fin D'étude Application Mobile
 
Rapport de projet de conception et de développement
Rapport de projet de conception et de développementRapport de projet de conception et de développement
Rapport de projet de conception et de développement
 

Similaire à Rapport de stage PFE ( DUT) chez Synthèse Conseil - Jaiti Mohammed

Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Sofien Benrhouma
 

Similaire à Rapport de stage PFE ( DUT) chez Synthèse Conseil - Jaiti Mohammed (20)

Rapport PFE: PIM (Product Information Management) - A graduation project repo...
Rapport PFE: PIM (Product Information Management) - A graduation project repo...Rapport PFE: PIM (Product Information Management) - A graduation project repo...
Rapport PFE: PIM (Product Information Management) - A graduation project repo...
 
Conception et developpement d'un site web pour la suggestion et notification ...
Conception et developpement d'un site web pour la suggestion et notification ...Conception et developpement d'un site web pour la suggestion et notification ...
Conception et developpement d'un site web pour la suggestion et notification ...
 
Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...
 
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
 
Conception et développement d'une marketplace basée sur l'architecture micros...
Conception et développement d'une marketplace basée sur l'architecture micros...Conception et développement d'une marketplace basée sur l'architecture micros...
Conception et développement d'une marketplace basée sur l'architecture micros...
 
Rapport de stage boite à idées innovantes avec dashboard
Rapport de stage boite à idées innovantes avec dashboardRapport de stage boite à idées innovantes avec dashboard
Rapport de stage boite à idées innovantes avec dashboard
 
Rapport PFE2021.pdf
Rapport PFE2021.pdfRapport PFE2021.pdf
Rapport PFE2021.pdf
 
Rapport pfe isi_Big data Analytique
Rapport pfe isi_Big data AnalytiqueRapport pfe isi_Big data Analytique
Rapport pfe isi_Big data Analytique
 
Gestion des actifs applicatifs
Gestion des actifs applicatifsGestion des actifs applicatifs
Gestion des actifs applicatifs
 
Outpatient Department System (OPD)
Outpatient Department System (OPD) Outpatient Department System (OPD)
Outpatient Department System (OPD)
 
Implémentation et mise en place d’un système décisionnel pour la solution Meg...
Implémentation et mise en place d’un système décisionnel pour la solution Meg...Implémentation et mise en place d’un système décisionnel pour la solution Meg...
Implémentation et mise en place d’un système décisionnel pour la solution Meg...
 
Fourth year internship report
Fourth year internship reportFourth year internship report
Fourth year internship report
 
Belwafi bilel
Belwafi bilelBelwafi bilel
Belwafi bilel
 
Belwafi bilel
Belwafi bilelBelwafi bilel
Belwafi bilel
 
PFE::Conception et développement du Back Office d'une application mobile de g...
PFE::Conception et développement du Back Office d'une application mobile de g...PFE::Conception et développement du Back Office d'une application mobile de g...
PFE::Conception et développement du Back Office d'une application mobile de g...
 
rapport
rapportrapport
rapport
 
Rapport (Mémoire de Master) de stage PFE pour l’obtention du Diplôme Nationa...
Rapport (Mémoire de Master) de stage PFE pour  l’obtention du Diplôme Nationa...Rapport (Mémoire de Master) de stage PFE pour  l’obtention du Diplôme Nationa...
Rapport (Mémoire de Master) de stage PFE pour l’obtention du Diplôme Nationa...
 
Projet Passerelle sécurisée intelligente pour l'internet des objets
Projet Passerelle sécurisée intelligente pour l'internet des objetsProjet Passerelle sécurisée intelligente pour l'internet des objets
Projet Passerelle sécurisée intelligente pour l'internet des objets
 
Rapport de projet de fin d"études
Rapport de projet de fin d"étudesRapport de projet de fin d"études
Rapport de projet de fin d"études
 
Projet de conception et de développement
Projet de conception et de développementProjet de conception et de développement
Projet de conception et de développement
 

Plus de Mohammed JAITI (6)

Présentation de Projet Azure Mircosoft LDAP - Jaiti Mohammed
Présentation de Projet Azure Mircosoft LDAP - Jaiti MohammedPrésentation de Projet Azure Mircosoft LDAP - Jaiti Mohammed
Présentation de Projet Azure Mircosoft LDAP - Jaiti Mohammed
 
Soutenance de Mon PFE de Stage (DUT)
Soutenance de Mon PFE de Stage (DUT) Soutenance de Mon PFE de Stage (DUT)
Soutenance de Mon PFE de Stage (DUT)
 
Soutenance de Mon PFE - Interaction Homme Machine par geste avec Python - Jai...
Soutenance de Mon PFE - Interaction Homme Machine par geste avec Python - Jai...Soutenance de Mon PFE - Interaction Homme Machine par geste avec Python - Jai...
Soutenance de Mon PFE - Interaction Homme Machine par geste avec Python - Jai...
 
Rapport de mon First Projet Web à l'Ecole Supérieure de Technologie de SAFI -...
Rapport de mon First Projet Web à l'Ecole Supérieure de Technologie de SAFI -...Rapport de mon First Projet Web à l'Ecole Supérieure de Technologie de SAFI -...
Rapport de mon First Projet Web à l'Ecole Supérieure de Technologie de SAFI -...
 
Rapport de mon First Projet Web à l'Ecole Supérieure de Technologie de SAFI -...
Rapport de mon First Projet Web à l'Ecole Supérieure de Technologie de SAFI -...Rapport de mon First Projet Web à l'Ecole Supérieure de Technologie de SAFI -...
Rapport de mon First Projet Web à l'Ecole Supérieure de Technologie de SAFI -...
 
Présentation du projet IPTV
Présentation du projet IPTV Présentation du projet IPTV
Présentation du projet IPTV
 

Rapport de stage PFE ( DUT) chez Synthèse Conseil - Jaiti Mohammed

  • 1. Université Cadi Ayyad Marrakech École Supérieure de Technologie de SAFI Département Génie Informatique AU : 2018/2019 Rapport de stage PFE Pour l’obtention de DUT en génie informatique / Administration système et réseau Présenté et Soutenu par Mr.Mohammed Jaiti Encadré par :Mr.Maataoui Benaissa Sous la Thématique : Développement de deux applications web Avec Spring boot / PHP-MYSQL Établissement de Formation : UCA - École Supérieure de Technologie de SAFI Société d’accueil : Synthèse Conseil - CASABLANCA Promo : 2018/2019
  • 2.
  • 3. Dédicaces A mes très chers parents En témoignage de notre amour et de notre gratitude pour les sacrifices consentis à notre égard A ma famille Pour leur soutien et leur encouragement A mes amis A tous les professeurs et personnels de l’école EST-SAFI qui nous ont accompagnés tout au long de nos Études, A tous ceux qui de près ou de loin nous sont chers Veuillez trouver ici, le témoignage de nos sentiments respectueux et l’expression de ma sincère reconnaissance. Que ce travail vous apporte l’estime et le respect que je porte à votre égard, et soit la preuve du désir que j’ai pour vous honorer. 3
  • 4. Remerciements De prime à bord, je tiens à exprimer ma gratitude et présenter mes cha- leureux remerciement à toutes les personnes qui ont contribué au succès de mon stage et qui m’ont aidé lors de la rédaction de ce rapport. Tout d’abord, j’adresse mes remerciements à Monsieur le directeur générale de l’entreprise SYNTHESE - CONSEIL-CASABLANCA Mr.Akouddane Ahmed et à Mr.Khalid Gabi qui m’a permis de postuler dans cette en- treprise. sans oublier mes profs de l’Université Cadi Ayyad Marrakech - École Supérieure de Technologie de SAFI , Son écoute et ses conseils m’ont permis d’améliorer mon niveau durant toutes ces deux années , et je remercie mes amis qui m’ont aidé spirituellement et moralement. Je tiens à remercier vivement mon maitre de stage, Mr Maataoui Benaissa , Ingénieur en informatique au sein de l’entreprise SC , pour son accueil, le temps passé ensemble et le partage de son expertise au quotidien. Grâce aussi à sa confiance j’ai pu m’accomplir totalement dans mes missions. Il fut d’une aide précieuse dans les moments les plus délicats. Je remercie également toute l’équipe de SYNTHESE CONSEIL pour leur accueil, leur esprit d’équipe et en particulier Mr.Faiçal Alami Ingénieur en informatique et Mme.Erraki Siham, qui m’ont beaucoup aidé à comprendre et régler les problématiques au niveau conceptuel et de développement. Enfin je tiens à remercier toutes les personnes qui m’ont conseillé et relu 4
  • 5. lors de la rédaction de ce rapport de stage : ma famille, mon amie Taha Belrhiatia camarade de promotion. 5
  • 6. Table des matières Dédicaces 3 Remerciements 4 1 Introduction générale 9 2 Organisme d’accueil 10 2.1 Présentation du SYNTHESE CONSEIL . . . . . . . . . . . . 10 2.2 Moyens humains et technique . . . . . . . . . . . . . . . . . . 11 2.2.1 Moyens humains de SYNTHESE CONSEIL . . . . . . 11 2.2.2 Moyens techniques de SYNTHESE CONSEIL . . . . . 12 2.3 Services de l’entreprise . . . . . . . . . . . . . . . . . . . . . . 12 2.3.1 Analyse de l’existence et l’identification des besoins . . 13 2.3.2 Conception et développement de systèmes d’information 13 2.3.3 Assistance et support . . . . . . . . . . . . . . . . . . . 14 2.3.4 Moyens techniques . . . . . . . . . . . . . . . . . . . . 15 3 Présentation générale 16 3.1 Présentation des projets . . . . . . . . . . . . . . . . . . . . . 16 4 Développement d’application 1 : Gestion des comptes ban- caires 17 4.1 Présentation d’application . . . . . . . . . . . . . . . . . . . . 17 4.2 Exigences fonctionnelles . . . . . . . . . . . . . . . . . . . . . 17 4.3 Exigences techniques . . . . . . . . . . . . . . . . . . . . . . . 18 4.4 Travail demandé . . . . . . . . . . . . . . . . . . . . . . . . . 18 6
  • 7. 4.5 Structure et Architecture Technique . . . . . . . . . . . . . . . 19 4.5.1 Architecture Technique du projet . . . . . . . . . . . . 19 4.5.2 Structure du projet . . . . . . . . . . . . . . . . . . . . 19 4.6 Conception . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 4.6.1 Diagramme de classes des entités et MLDR . . . . . . 20 4.6.2 Diagramme EER . . . . . . . . . . . . . . . . . . . . . 20 4.7 Codage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 4.8 Démonstration de l’application . . . . . . . . . . . . . . . . . 23 5 Développement d’application 2 : Gestion d’un clinique 25 5.1 Présentation d’application . . . . . . . . . . . . . . . . . . . . 25 5.2 Exigences fonctionnelles . . . . . . . . . . . . . . . . . . . . . 25 5.3 Exigences techniques . . . . . . . . . . . . . . . . . . . . . . . 26 5.4 Conception . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 5.4.1 Diagramme EER . . . . . . . . . . . . . . . . . . . . . 27 5.5 Codage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 5.6 Démonstration de l’application . . . . . . . . . . . . . . . . . 30 5.7 Conversion en une application de bureau . . . . . . . . . . . . 33 6 Outils de développement 35 6.1 Langage de développent . . . . . . . . . . . . . . . . . . . . . 35 6.1.1 Le langage Java . . . . . . . . . . . . . . . . . . . . . . 35 6.1.2 Le langage Python . . . . . . . . . . . . . . . . . . . . 36 6.1.3 Le langage JavaScript . . . . . . . . . . . . . . . . . . 37 6.2 Environnement de développement . . . . . . . . . . . . . . . . 37 6.2.1 Spring boot . . . . . . . . . . . . . . . . . . . . . . . . 37 7 Conclusion et perspectives 40 7
  • 8. Table des figures 2.1 Différentes département de l’entreprise . . . . . . . . . . . . . 11 2.2 Qualification, expérience professionnelle et postes occupés eu sein de l’entreprise . . . . . . . . . . . . . . . . . . . . . . . . 11 4.1 Architecture Technique . . . . . . . . . . . . . . . . . . . . . . 19 4.2 Structure du projet - Gestion des comptes . . . . . . . . . . . 19 4.3 Diagramme de classes des entités . . . . . . . . . . . . . . . . 20 4.4 MLRD - Gestion des comptes . . . . . . . . . . . . . . . . . . 20 4.5 Diagramme EER - Gestion des comptes . . . . . . . . . . . . . 20 4.6 Interface d’authentification . . . . . . . . . . . . . . . . . . . . 23 4.7 Interface de consultation des comptes et Operations . . . . . . 24 4.8 Interface de consultation des clients et ces comptes . . . . . . 24 5.1 Diagramme EER - Gestion d’un Clinique . . . . . . . . . . . . 27 5.2 Front de l’application . . . . . . . . . . . . . . . . . . . . . . . 30 5.3 Ajout d’un patient . . . . . . . . . . . . . . . . . . . . . . . . 30 5.4 Ajout d’un médecin . . . . . . . . . . . . . . . . . . . . . . . . 31 5.5 Consultation d’un patient . . . . . . . . . . . . . . . . . . . . 31 5.6 Traitement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 5.7 Les opérations . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 5.8 Application de desktop . . . . . . . . . . . . . . . . . . . . . . 33 5.9 Installation de module nativefier . . . . . . . . . . . . . . . . . 33 5.10 convertir n’importe quel site Web en une application . . . . . 33 5.11 L’application dans un fichier win32-x64 . . . . . . . . . . . . . 34 6.1 Spring Framework Architecture . . . . . . . . . . . . . . . . . 39 TABLE DES FIGURES 8
  • 9. 1Introduction générale Le domaine de développement web est un domaine très actif , récemment plusieurs technologies sont inventés pour faciliter la création des applications web surtout Intranet et pour les PME. Dans le cadre de ma 2ème année de DUT Génie informatique, j’ai eu l’oppor- tunité de réaliser un stage au sein de l’entreprise Synthèse Conseil. Ce stage d’une durée de deux mois , a consisté de réaliser des applications web basée sur deux techniques différentes . Ce rapport présente le travail que j’ai effectué , Ce stage s’est déroule du 01 avril 2019 au 24 mai 2019 , Pendant cette période , je me familiarisé avec un environnement technique et un ensemble d’outils . Les projet réalisés sont avérés très intéressants et très enrichissants pour mon expérience professionnel ,En effet ma formation s’inscrit précisément dans ce secteur (l’ingénierie et développement informatique) . Le but de ce rapport n’est pas de faire uniquement une présentation ex- haustive de tous les aspects techniques que j’ai pu apprendre ou approfondir , mais aussi du manière synthétique et claire , de faire un tour d’horizon des aspects techniques et humains auxquels j’ai été confronté. je vous expose dans ce rapport en premier lieu une présentation des en- treprises , Ensuite je vous explique les différents aspects de mon travail durant deux mois et enfin je clôture et je résume avec les apports du stage et une brève conclusion. 1 Introduction générale 9
  • 10. 2Organisme d’accueil 2.1 Présentation du SYNTHESE CONSEIL Synthèse Conseil a été fondée en 2001 pour apporter une solution concrète et des produits innovants aux entreprises qui ont besoin d’examiner et refondre leur système d’information en recherchant des objectifs de performance et de qualité. Le chemin parcouru est d’excellente facture grâce aux partenariats noués avec des clients que nous aimons et qui nous le rendent bien. Chaque projet signé est pour nous une opportunité pour entamer à long terme une relation durable basée sur la confiance, la transparence, l’honnêteté intellec- tuelle et le devoir de conseil. En effet, nous fondons notre propre stratégie sur les valeurs suivantes : • La complexité du projet de système d’information en raison du nombre de spécialistes qui participent à son élaboration • La maîtrise que le client apprécierait d’avoir tout au long du processus de mise en œuvre et en dépit des difficultés d’arbitrage • L’ancrage du système d’information dans la stratégie globale de l’en- treprise, son organisation et ses plans de développement • Le souhait d’aboutir à des mécanismes d’intégration entre les différentes fonctions de l’entreprise pour une meilleure gestion et un pilotage efficace des activités. 2 Organisme d’accueil 10
  • 11. 2.2 Moyens humains et technique 2.2.1 Moyens humains de SYNTHESE CONSEIL Figure 2.1 – Différentes département de l’entreprise L’effectif de Synthèse Conseil comprend 8 personnes dont : • Direction Générale : Ahmed KOUDDANE (Directeur général) • Département financier : Zakaria CHOUGRAD (Consultant financière) • Département développement : Mohamed DAIF (Cadre supérieur), Fouad WARHOU (Consultant Fonctionnel et technique), Siham ER- RAKI (Cadre technique), Benaissa Maataoui (Cadre technique) • Département support : Fayçal Alami BOUDRAA (Cadre technique) • Département intégration : Zakaria TOULO (Consultant technique) Figure 2.2 – Qualification, expérience professionnelle et postes occupés eu sein de l’entreprise 2 Organisme d’accueil 11
  • 12. 2.2.2 Moyens techniques de SYNTHESE CONSEIL — Superficie de Local occupé : 170 m2 — Equipements et installations (consistance, importance, affectation, implantation. . . .) : • Deux voitures ; • 2 Serveurs ; • 15 Poste de travail ; • 5 Stations de travail en réseau (Recherche et développement) • 2 Routeurs ; • 1 Switch ; • 2 Imprimantes ; • 1 Scanner ; • Outil de conception et de développement. 2.3 Services de l’entreprise Nos services peuvent vous accompagner depuis l’examen de votre existant et tout au long de la conception et la mise en œuvre de votre système d’infor- mation cible. Si un créneau parmi ceux que nous citons vous correspond, nous serons heureux de vous montrer de façon concrète comment nous procédons pour faire en sorte que notre passion soit également la votre. Nous avons choisi le parti de vous décrire parmi nos prestations celles qui ont l’avantage d’avoir une signification pour vous. Un projet commence d’abord par la prise de connaissance de votre métier, ses contraintes, ses spécificités et ses enjeux. Pour conduire cette première phase préalable à toute construction future, nous avons élaboré des méthodes affinées au fil des années que nous mettons à la disposition de votre projet. L’objectif est, en effet, de restituer de manière fidèle votre existant que vous serez à même de valider sans difficulté. La conception réussie de votre solution future est une condition nécessaire à la réalisation de vos ambitions en matière de système d’information sous votre contrôle et conformément à vos objectifs et vos orientations. Synthèse Conseil adopte et applique en ce domaine les normes et standards vous garantissant un bon retour sur investissement. Notre engagement est total puisque nous sommes en mesure de vous assurer un support professionnel et une mainte- nance de qualité à long terme. Nous sommes heureux de constater que nos clients nous font confiance au point de reconduire constamment nos missions de support parce que précisément elles leur donnent entière satisfaction. 2 Organisme d’accueil 12
  • 13. 2.3.1 Analyse de l’existence et l’identification des be- soins Au lieu d’être une phase préalable à de multiples projets, nous considérons qu’il s’agit d’un travail de fond et un investissement durable que l’entreprise a intérêt à entreprendre même en l’absence d’un projet cible. La base de connaissances ainsi élaborée a un impact certain sur l’ensemble des actions qui ensuite seront envisagées en organisation, contrôle interne et système d’in- formation. Nos méthodes avancées pour conduire de telles missions s’appuient sur l’état de l’art en la matière. Nous avons recours à différents concepts facilitant l’élaboration d’un document sur l’existant à la fois pertinent, précis et exhaustif et dans lequel les processus métier occupent une place centrale. Nous vous donnons ici un bref aperçu sur cette démarche en restant à votre entière disposition pour plus de détails à ce sujet. • Les faits générateurs qui déclenchent les processus métier et qui revêtent une importance considérable dans l’identification des fonctions • La description des traitements effectués et leur relation avec des règles de gestion métier, organisationnelles et techniques • Les positions d’attente qui permettent de situer les goulots d’étrangle- ment et les possibilités d’amélioration de la réactivité de l’organisme système vis-à-vis du monde extérieur • Les ressources consommées et qui conditionnent l’exécution des opéra- tions et leur positionnement dans les processus • L’établissement du référentiel métier correspondant aux fonctions de base qui s’affranchit de la contingence organisationnelle et son éventuelle évolution • Le diagnostic des processus et des systèmes d’organisation et d’infor- mation par l’identification des écarts avec le référentiel de base. Le résultat obtenu à travers cette prestation est fondamental car il facilite la diffusion des procédures et la mise en place d’un référentiel des règles métier sous forme d’une base travers des clients légers de connaissances ouverte à l’évolution et accessible à tous. 2.3.2 Conception et développement de systèmes d’in- formation C’est la prestation centrale du projet de refonte d’un système d’information et la partie apparente de son iceberg. Notre vocation dans ce domaine consiste à construire sur du solide pour assurer une cohérence totale entre les fondements du système et les aspects opérationnels dont l’utilisateur a recours pour son exploitation au quotidien. Les technologies sont diverses et variées et il 2 Organisme d’accueil 13
  • 14. s’agit de choisir celles qui correspondent au contexte de l’entreprise et à l’évolution du marché. Notre observation du marché montre que bien souvent la plateforme technologique est souvent sacrifiée au détriment de restitutions et de présentations séduisantes. Notre recommandation récurrente sur ce plan est d’inscrire le développement du système d’information en facilitant ses possibilités d’évolution sur des bases pérennes en adoptant les technologies les plus récentes : • Les solutions framework professionnelles avec l’ensemble des outils de conception, de développement, de génération, de documentation, de suivi de versions et de gestion des incidents. La première condition de réussite des projets de systèmes d’information se situe à ce niveau. Les études de cadrage et de choix de plateformes sont rares à notre regret et notre vacation est d’y pallier au bénéfice de projets pérennes et innovants • Les architectures orientées service car l’évolution du monde informa- tique va dans le sens de l’objet, du service, de la réutilisation de services acquis permettant ainsi la sauvegarde des investissements réalisés. notre ambition consiste à sensibiliser à l’avènement de ces concepts et à préparer les systèmes d’information à leur accueil dans les meilleures conditions • Les mécanismes d’intégration pour assurer la cohérence entre les appli- cations qui cohabitent au sein du même système d’information sans parler le même langage et en communiquant laborieusement entre elles. Des avancées certaines sur le plan technologique permettent d’accéder aujourd’hui ce à ce qui paraissait prohibitif dans un passé récent. 2.3.3 Assistance et support À l’ère de l’externalisation, le recours à des ressources externes disponibles, à l’écoute et réactives constitue une solution alternative capable d’enrichir la démarche des entreprises à la recherche d’une assistance professionnelle sans en acquérir l’appropriation interne. Les avantages de cette stratégie dans les activités d’une entreprise ne sont plus à démontrer mais il faut savoir l’intégrer de façon heureuse dans une démarche globale. Nous avons compris très tôt cette donnée du marché et nous avons investi pour que nous ayons en ce domaine une offre concrète et pertinente. Notre succès fait de nous un des rares opérateurs intervenant dans les NTIC qui a des contrats de maintenance et de support sur une durée ininterrompue sur plus de dix années, quelques mois seulement après la création de Synthèse Conseil. Notre satisfaction est de constater que les clients de cette business unit apprécient fortement nos services rendus et en demandent davantage à chaque fois que 2 Organisme d’accueil 14
  • 15. leur développement l’exige. Notre assistance englobe différentes activités stratégiques pour les entreprises qui veulent gagner en performance dans la mise en œuvre de leur système d’information et la gestion de son évolution dans le temps. 2.3.4 Moyens techniques Pour la réalisation des missions qui nous sont confiées par nos clients, nous nous appuyons essentiellement sur une maîtrise des méthodes et des outils. Grâce à leurs expériences antérieures, nos consultants ont élaboré des méthodes de conception de systèmes d’information et de diagnostic des aspects organisationnels que nous proposons d’appliquer au cas spécifiques de nos clients. Cette méthode s’appuie sur les outils d’appréciation et de validation suivants : • L’évolution des structures ; • L’évolution des systèmes d’information ; • La méthode Merise ; • La méthode Axial. La méthode Racine est utilisée dans l’organisation et la planification des projets ainsi que dans la constitution des structures de travail, leur pilotage et de leur suivi opérationnel. Les outils et les technologies de mise en œuvre qui sont utilisés dans la conduite des projets sont notamment les suivants : • AMC designer pour la conception • Méthode RAD • Méthode UML • Base de données et outils de développement ORACLE • Base de données SQL SERVER • Visual basic • Asp, Interdev, Asp.net pour le développement web • Développement Java • Développement ESM et DSM du FRP Sage 1000 • Business Intelligence à travers différentes solutions du marché • Le paramétrage et le développement d’une solution ERP propre à notre société. 2 Organisme d’accueil 15
  • 16. 3Présentation générale Les projets que j’ai réalisés sont inclus dans la programmation d’ap- plications Web et peuvent être utilisés comme applications de bureau après l’ajout de nouvelles technologies. Ces projets sont des applications pour développer des capacités et découvrir des technologies permettant un meilleur développement. Les projets sont les suivants : • Une application pour les transactions bancaires , cette application uniquement un appareil pour implémenter d’autres aspects tel que la technologie de la blockchain. • Une application de gestion d’un clinique , cette application consiste à gérer les opérations effectueés au sein d’un clinique. 3.1 Présentation des projets Les applications ont été mises en œuvre en utilisant une technologie différente, ce qui était dû au développement des capacités et à la comparaison des technologies pour améliorer la maturité des futures applications . 3 Présentation générale 16
  • 17. 4Développement d’application 1 : Gestion des comptes bancaires 4.1 Présentation d’application On souhaite créer une application qui permet de gérer des comptes ban- caires • Chaque compte est défini un code , un solde et une date de création • Un compte courant est un compte qui possède en plus un découvert • Un compte épargne est un compte qui possède en plus un taux d’intérêt • Chaque compte appartient à un client • Chaque client est défini par son code et son nom • Chaque compte peut subir plusieurs opérations • Il existe deux types d’opérations : versement et retrait • Une opération est défini par un numéro et une date et un montant. 4.2 Exigences fonctionnelles • L’application doit permettre de : — Gérer des clients : 1. Ajouter un client 2. Consulter tous les clients 3. Consulter les clients dont le nom contient un mot clé. — Gérer les comptes : 1. Ajouter compte 2. Consulter compte 4 Développement d’application 1 : Gestion des comptes bancaires 17
  • 18. — Gérer les opérations : 1. Effectuer un versement d’un montant dans un compte 2. Effectuer un retrait d’un montant dans un compte 3. Effectuer un virement d’un montant d’un compte vers un autre 4. Consulter les opérations d’un compte page par page. • Les opérations nécessitent une opération d’authentification 4.3 Exigences techniques • Les données sont stockées dans une base de donnée MySQL • L’application se compose de trois couches : — La couche DAO qui est basée sur Spring Data , JPA ,Hibernate et JDBC. — La couche Métier — La couche Web basée sur MVC coté serveur en utilisant Thymeleaf. • La sécurité est basée sur Spring Sécurity 4.4 Travail demandé • Etablir une architecture technique du projet • Etablir un diagramme de classes qui montre les entités, la couche DAO et la couche métier. • Créer un projet SpringBoot qui contient les éléments suivants : — Les entités — La couche DAO (Interfaces Spring data) — La couche métier (Interfaces et implémentations) — La couche web : — Les contrôleurs Spring MVC — Les Vue basée sur Thymeleaf • Sécuriser l’application en utilisant un système d’authentification basé sur Spring Security 4 Développement d’application 1 : Gestion des comptes bancaires 18
  • 19. 4.5 Structure et Architecture Technique 4.5.1 Architecture Technique du projet Figure 4.1 – Architecture Technique 4.5.2 Structure du projet Figure 4.2 – Structure du projet - Gestion des comptes 4 Développement d’application 1 : Gestion des comptes bancaires 19
  • 20. 4.6 Conception 4.6.1 Diagramme de classes des entités et MLDR Figure 4.3 – Diagramme de classes des entités Figure 4.4 – MLRD - Gestion des comptes 4.6.2 Diagramme EER Figure 4.5 – Diagramme EER - Gestion des comptes 4.7 Codage Pour la partie du codage , on a bien créer des classes qui va représenter des tables dans la base de données : — La classe Client qui représente la table des clients , chaque client possède un compte — La classe Comptes qui possède aussi un lien réflexif vers client 4 Développement d’application 1 : Gestion des comptes bancaires 20
  • 21. — La classe Opération qui possède un ensemble des opérations qui seront implémenter à un compte On a aussi des classes qui hérite des autres classes , tel que la classe Compte courant qui hérite de la classe Compte , Class Versement qui hérite de la classe opérations La couche Entities englobe tout ces classes : Un aperçus de code pour quelques classe : ⇒ La classe Client : ⇒ La classe Compte : La couche DAO regroupe les repository de chaque classe créer dans la base de donnée : Un aperçus de code pour chaque interface : ⇒ interface ClientRepository qui hérite de JpaRepository 4 Développement d’application 1 : Gestion des comptes bancaires 21
  • 22. ⇒ interface CompteRepository qui hérite de JpaRepository ⇒ interface OperationRepository qui hérite de JpaRepository La couche Metier englobe tout les méthodes implémenter dans l’application : — Consulter compte — Verser — Retirer — Virement — listoperation Les autres couches représente la partie WEB : Spring Sécurity pour le login et Web pour les controllers Par exmple la méthode SaveOperation utilise la méthode POST et retourne le compte Consulter avec son code . 4 Développement d’application 1 : Gestion des comptes bancaires 22
  • 23. 4.8 Démonstration de l’application Figure 4.6 – Interface d’authentification l’authentification se fait en deux type : — Administrateur : Il peut faire des operations — Utilisateur : il n’a pas le droit de faire des operations 4 Développement d’application 1 : Gestion des comptes bancaires 23
  • 24. Figure 4.7 – Interface de consultation des comptes et Operations Figure 4.8 – Interface de consultation des clients et ces comptes 4 Développement d’application 1 : Gestion des comptes bancaires 24
  • 25. 5Développement d’application 2 : Gestion d’un clinique 5.1 Présentation d’application Cette application et pour gérer les opérations effectuées au sein d’un clinique , comprend ces modules : • Ajout des patients • Ajout des médecins • Effectuer une consultation • Ajout d’un traitement • Laboratoire • Affichage des opérations effectuées 5.2 Exigences fonctionnelles • L’application doit permettre de : — Ajouter un patient : 1. Nom & Prénom 2. Sexe & Température & Poids — Effectuer une consultation 1. Nom du patient 2. Nom du médecins 3. Frais de consultation 4. Date de consultation — Traitement : 5 Développement d’application 2 : Gestion d’un clinique 25
  • 26. 1. Nom du patient 2. Nom de la maladie 3. Début / Fin de traitement 4. Frais de traitement & État du patient 5. Les médicaments prescrit — Laboratoire : 1. Nom du patient 2. Type d’examen 3. Observation 4. Date d’examen 5. Frais d’examen — Ajout des infos sur les médecins : 1. Nom & Prénom 2. Sexe & Adresse 3. Tel & Fonction — Les opérations : 1. Consultation 2. Les traitements effectués 3. Les malades transférer au laboratoire 4. Les patients 5. Les médecins 5.3 Exigences techniques • Les données sont stockées dans une base de donnée MySQL • l’application se compose de : — les feuilles de style : CSS — JavaScript folder — PHP folder 5 Développement d’application 2 : Gestion d’un clinique 26
  • 27. 5.4 Conception 5.4.1 Diagramme EER Figure 5.1 – Diagramme EER - Gestion d’un Clinique 5.5 Codage Connexion de data Base : Fichier Index : 5 Développement d’application 2 : Gestion d’un clinique 27
  • 28. Ajout d’un patient : Ajout d’un médecin : 5 Développement d’application 2 : Gestion d’un clinique 28
  • 29. La Structure de projet : NB : Les autres parties du codage comprend : un ajout en PHP et une appelle des fonction en javascript . 5 Développement d’application 2 : Gestion d’un clinique 29
  • 30. 5.6 Démonstration de l’application Figure 5.2 – Front de l’application Figure 5.3 – Ajout d’un patient 5 Développement d’application 2 : Gestion d’un clinique 30
  • 31. Figure 5.4 – Ajout d’un médecin Figure 5.5 – Consultation d’un patient 5 Développement d’application 2 : Gestion d’un clinique 31
  • 32. Figure 5.6 – Traitement Figure 5.7 – Les opérations 5 Développement d’application 2 : Gestion d’un clinique 32
  • 33. 5.7 Conversion en une application de bureau Figure 5.8 – Application de desktop Pour qu’on puisse Convertissez n’importe quel emplacement en application de bureau pour Windows : Exigences — NodeJS — nativefier Nativefier est un outil de ligne de commande qui vous permet de créer facilement une application de bureau pour un site Web avec une configuration succincte et minimale. Les applications sont encapsulées par Electron dans un exécutable de système d’exploitation (.app, .exe, etc.) pour une utilisation sous Windows, OSX et Linux. Installation de module nativefier globalement Figure 5.9 – Installation de module nativefier Figure 5.10 – convertir n’importe quel site Web en une application 5 Développement d’application 2 : Gestion d’un clinique 33
  • 34. Figure 5.11 – L’application dans un fichier win32-x64 5 Développement d’application 2 : Gestion d’un clinique 34
  • 35. 6Outils de développement 6.1 Langage de développent 6.1.1 Le langage Java le langage compatible avec le framewrok Spirng boot est le langage Java 6 Outils de développement 35
  • 36. 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 particularité et l’objectif central de Java est que les logiciels écrits dans ce langage doivent être très facilement portables sur plusieurs sys- tèmes d’exploitation tels que Unix, Windows, Mac OS ou GNU/Linux, avec peu ou pas de modifications, mais qui ont l’inconvénient d’être plus lourd à l’exécution (en mémoire et en temps processeur) à cause de sa machine virtuelle. Pour cela, divers plateformes et frameworks associés visent à guider, sinon garantir, cette portabilité des applications développées en Java. NB : pour l’utilisation web -coté serveur : Avec les serveurs d’applications, on utilise des EJB pour encapsuler les classes définies précédemment. Ces éléments sont utilisés dans des architectures J2EE pour des applications multicouches. L’avantage qu’on tire de ce travail est de pouvoir cacher au client l’implémentation du code côté serveur. 6.1.2 Le langage Python PHP : Hypertext Preprocessor4, plus connu sous son sigle PHP (acro- nyme récursif), est un langage de programmation libre5, principalement utilisé pour produire des pages Web dynamiques via un serveur HTTP4, mais pouvant également fonctionner comme n’importe quel langage interprété de façon locale. PHP est un langage impératif orienté objet. PHP 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. Fonctionnemnt : PHP appartient à la grande famille des descendants du C, dont la syntaxe est très proche. En particulier, sa syntaxe et sa construction ressemblent à celles des langages Java et Perl, à ceci près que du code PHP peut facilement 6 Outils de développement 36
  • 37. être mélangé avec du code HTML au sein d’un fichier PHP. Dans une utilisation destinée à l’internet, l’exécution du code PHP se déroule ainsi : lorsqu’un visiteur demande à consulter une page de site web, son navigateur envoie une requête au serveur HTTP correspondant. Si la page est identifiée comme un script PHP (généralement grâce à l’extension .php), le serveur appelle l’interprète PHP qui va traiter et générer le code final de la page (constitué généralement d’HTML ou de XHTML, mais aussi souvent de feuilles de style en cascade et de JS). Ce contenu est renvoyé au serveur HTTP, qui l’envoie finalement au client. Ce schéma explique ce fonctionnement : 6.1.3 Le langage JavaScript JavaScript est un langage de programmation de scripts principalement employé dans les pages web interactives mais aussi pour les serveurs avec l’utilisation (par exemple) de Node.js. C’est un langage orienté objet à prototype, c’est-à-dire que les bases du langage et ses principales interfaces sont fournies par des objets qui ne sont pas des instances de classes, mais qui sont chacun équipés de constructeurs permettant de créer leurs propriétés, et notamment une propriété de prototypage qui permet d’en créer des objets héritiers personnalisés. En outre, les fonctions sont des objets de première classe. 6.2 Environnement de développement 6.2.1 Spring boot 6 Outils de développement 37
  • 38. Spring est un framework libre pour construire et définir l’infrastructure d’une application java3, dont il facilite le développement et les tests. Spring est considéré comme un conteneur dit « léger ». La raison de ce nommage est expliquée par Erik Gollot dans l’introduction du document Introduction au framework Spring. Spring est effectivement un conteneur dit « léger », c’est-à-dire une infra- structure similaire à un serveur d’applications J2EE. Il prend donc en charge la création d’objets et la mise en relation d’objets par l’intermédiaire d’un fichier de configuration qui décrit les objets à fabriquer et les relations de dépendances entre ces objets. Le gros avantage par rapport aux serveurs d’application est qu’avec Spring, les classes n’ont pas besoin d’implémenter une quelconque interface pour être prises en charge par le framework (au contraire des serveur d’applications J2EE et des EJBs). C’est en ce sens que Spring est qualifié de conteneur « léger ». Spring s’appuie principalement sur l’intégration de trois concepts clés : • l’inversion de contrôle est assurée de deux façons différentes : la re- cherche de dépendances et l’injection de dépendances • la programmation orientée aspect • une couche d’abstraction. La couche d’abstraction permet d’intégrer d’autres frameworks et biblio- thèques avec une plus grande facilité. Cela se fait par l’apport ou non de couches d’abstraction spécifiques à des frameworks particuliers. Il est ainsi possible d’intégrer un module d’envoi de mails plus facilement. L’inversion de contrôle : 1. La recherche de dépendance : consiste pour un objet à interroger le conteneur, afin de trouver ses dépendances avec les autres objets. C’est un cas de fonctionnement similaire aux EJBs. 2. L’injection de dépendances : cette injection peut être effectuée de trois manières possibles : — L’injection de dépendance via le constructeur — L’injection de dépendance via les modificateurs (setters) — L’injection de dépendance via une interface. Les deux premières sont les plus utilisées par Spring. 6 Outils de développement 38
  • 39. Ce framework, grâce à sa couche d’abstraction, ne concurrence pas d’autres frameworks dans une couche spécifique d’un modèle architectural Modèle-Vue- Contrôleur mais s’avère être un framework multi-couches pouvant s’insérer au niveau de toutes les couches ; modèle, vue et contrôleur. Ainsi il permet d’intégrer Hibernate ou iBATIS pour la couche de persistance ou encore Struts et JavaServer Faces pour la couche présentation. Figure 6.1 – Spring Framework Architecture 6 Outils de développement 39
  • 40. 7Conclusion et perspectives Dans le cadre de notre projet de formation, nous avons conçu et développé des applications Web. Nous avons d’abord commencé par comprendre le contexte général de notre application et à identifier les différentes exigences de notre système dans le futur. Malgré toutes les difficultés rencontrées dans le processus de développement et les contraintes de temps, nous avons été en mesure de réaliser l’ensemble de notre application en respectant le volet sécurité et en préparant les documents nécessaires. Ce travail était intéressant car il nous a permis de découvrir un nouveau domaine de travail et de nous éloigner des projets traditionnels tels que le commerce électronique, où nous avons été autorisés à approfondir notre connaissance des bonnes pratiques de programmation. Enfin, notre travail ne se limite pas à ce niveau, de nombreuses fonctionnalités peuvent en fait être ajoutées à nos applications. 7 Conclusion et perspectives 40