Vous êtes sur la page 1sur 25

Ministère de l’Enseignement Supérieur et de la Recherche

Scientifique Université de Carthage

École Supérieure des communications de Tunis

Stage Formation Humaine

Réalisé par :

ZEINEB CHEBAANE

Organisme : WG Consulting

Encadré par : Abderahmen


Fekih Adresse : Teboulba

Année Universitaire :
1
Page

2020-2021

2020-2021
Je tiens à remercier toutes les personnes qui ont contribué au succès de mon stage et qui
m’ont aidé dans toute la période de stage.
Je voudrais remercier mon encadrant M.ABD RAHMEN FEKIH, Il a su me faire confiance
lors de cette aventure dans le monde professionnel et a partagé ses connaissances de manière
très pédagogique.
Je le remercie aussi pour sa disponibilité ainsi que pour sa patience et ses précieux conseils.
Je souhaite ensuite adresser mes remerciements à Mme HAYAT OMMEZINE, responsable
administratif pour son accueil chaleureux qui a toujours été à mon écoute et a su m’apporter
un soutien sans faille.
je voudrais enfin exprimer ma reconnaissance envers les amis et collègues qui m’ont apporté
leur soutien moral et intellectuel tout au long de mon stage et je les remercie pour leur esprit
d’équipe.
2
Page
Table des figures..................................................................................................................4
Introduction Générale.........................................................................................................5

1 Contexte général et étude de l’existant.........................................................................6


1.1 Introduction...............................................................................................................6
1.2 Présentation générale du projet.................................................................................6
1.3 Introduction de l’entreprise........................................................................................6

2 Analyse et spécification de besoins..............................................................................8

2.1 Introduction...............................................................................................................8
2.2 Etude préliminaire.....................................................................................................8
2.2.1 Les besoins fonctionnels...............................................................................8
2.2.2 Les besoins non fonctionnels.........................................................................9

3 Modélisation conceptuelle et organisationnelle.........................................................10


3.1 Introduction.............................................................................................................10
3.2 Conception architecturale........................................................................................10
3.2.1 Le modèle MVC de Laravel.........................................................................10
3.3 Conception détaillée.................................................................................................13
3.3.1 Le Modèle Conceptuel..................................................................................13
3.3.2 Le dictionnaire de donnée............................................................................14

4 Réalisation et test.........................................................................................................15
4.1 Introduction..............................................................................................................15
4.2 Environnement de développement.............................................................................15
4.2.1 Les logiciels utilisés.......................................................................................15

4.3 Réalisation
4.3.1 Obtention du formulaire.................................................................................19
4.3.2 Affichage de la base de données.....................................................................20
4.3.3 Suppression des produits.................................................................................21
3

4.3.4 Mise à jour des produits..................................................................................21


Page

Conclusion
3.1 Le modèle MVC..........................................................................................................10
3.2 Le modèle du contrôleur..............................................................................................11

3.3 Le schéma conceptuel..................................................................................................13

4.1 Logo TeamViewer........................................................................................................15

4.2 Logo GitHub................................................................................................................16

4.3 Logo Xampp.................................................................................................................16

4.4 Logo Visual Studio Code..............................................................................................17

4.5 Logo Laravel..................................................................................................................17

4.6 Le formulaire..................................................................................................................19

4.7 Capture d’écran de la table de la base de données..........................................................20

4.8 Capture d’écran de la page des produits.........................................................................21


4.9 Capture d’écran de la suppression des produits..............................................................22
4.10 Capture d’écran de la mise à jour du produit..................................................................22
4.11 Capture d’écran de la mise à jour du produit..................................................................23
4.12 Capture d’écran de la mise à jour du produit..................................................................23
4
Page
Dans le cadre de notre formation d’ingénieur au sein du SUP’COM, il est nécessaire à la fin
de la première année d’effectuer un stage ouvrier pour découvrir mieux le monde
professionnel et descendre sur terrain pour bien s’intégrer et comprendre les différents
processus.
En fait, c’est une chance pour acquérir de manière spontanée avec la pratique de nouvelles
connaissances scientifiques concrètes qui pourraient éventuellement me servir dans la suite de
mon cursus à l’école ou ultérieurement pendant ma carrière.
Du 1er juillet 2021 au 31 juillet 2021, j’ai effectué un stage au sein de l’entreprise WG
Consulting située à Teboulba.
Ce stage de formation humaine m’a permis en premier lieu de comprendre le mécanisme
général du fonctionnement des entreprises.
Ainsi, au cours de ce stage au département développement web j’ai pu m’intéresser aux
stratégies internationales implantées pour développer un site e-commerce en utilisant l’outil
Laravel..
En vue de rendre compte de manière fidèle et analytique les quatre semaines passées au sein
de la société WG Consulting, il apparaît logique de présenter d’abord le contexte général et
faire une étude de l’existant (I), puis le second chapitre se focalise sur une analyse et
spécification de besoins (II), ensuite il sera précisé la modélisation conceptuelle et
organisationnelle de notre projet (III) et finalement la réalisation de notre projet (IV).
5
Page
1.1 Introduction :
Tout d’abord, nous commencons dans ce premier chapitre par une présentation générale de
notre projet de stage qui est déroulé pendant quatre semaines dans l’entreprise WG Consulting

1.2 Présentation générale du projet :


Le projet sur lequel nous avons travaillé consiste à développer un site e- commerce en
utilisant le framework Laravel version 7.
Au cours du stage on doit apprendre :
 Comment installer laravel
 Comment créer un projet et le paramétrer avec Laravel
 Les notions sur les Routes en Laravel
 Comment créer les contrôleurs avec Laravel
 Les notions sur les modèles et les migrations avec Laravel
 Comment connecter la base de données avec Laravel
 Comment créer et visualiser les produits.
 Comment mettre à jour les données d’articles et comment supprimer les articles.
 les caractéristiques de l’utilisateur.

Le projet contient 5 interfaces (Produit, Utilisateur, Commande, Livraison,Feedback).

Nous sommes une équipe composée de 5 stagiaires chacun doit terminer les tâches
nécessaires pour deux interfaces, je suis chargée de l’interface produit et l’interface
utilisateur.

1.2 Introduction de l’entreprise :


WG Consulting est un acteur dynamique dans les métiers du conseil, du développement et
des services dans l’ingénierie informatique en général. Leur mission consiste à accompagner
leurs clients et partenaires pour la mise en place de solutions logicielles et informatiques
performantes et innovantes dans les domaines de la finance, de l’industrie …
Grâce à son expertise technologique dans les différents domaines TIC, WG Consulting, SSII,
6
Page

conseille et travailles-en étroite collaboration avec ses clients, dans le respect de leurs
contraintes en termes de coûts et de délais pour transformer leurs visions en réalité.
En outre, WG Consulting s’appuie sur des outils et des méthodologies éprouvées (selon les
normes internationales), pour assurer le bon déroulement des missions d’IT consulting.
Enfin, pour répondre aux besoins de ses clients en termes de suivi des installations
informatiques et de leur utilisation, WG Consulting, SSII offre toute une gamme de contrats
de services modulables et personnalisés y compris l’infogérance totale des systèmes
d’informations.
Les services d’infogérance des systèmes d’informations :
 Support technique
 Maintenance des logiciels
 Infogérance du Système d’Information d’entreprise
7
Page
2.1 Introduction :
Dans ce deuxième chapitre, nous allons mettre le sujet dans son cadre général. Par la suite,
nous aborderons l’étude préliminaire qui présente un ensemble des besoins fonctionnels et
autres non fonctionnels.

2.2 Etude préliminaire :


Dans cette section du chapitre, nous nous intéressons aux besoins des utilisateurs traités dans
notre projet c’est à dire l’inscription du client, le choix des produits.

2.2.1 Les besoins fonctionnels :


Les besoins fonctionnels se présentent en deux grandes parties
Exposition des produits ainsi que leurs prix et caractéristiques e l’inscription des clients.
 Exposition des produits :

Notre site doit disposer d’une vitrine virtuelle à travers laquelle le client peut consulter une
grande variété des produits, il sera donc indispensable d’y présenter les prix et les
caractéristiques techniques de chaque produit pour faciliter la sélection du produit à acheter.
 Inscription des clients :

Jusqu’à ce stade, le client est toujours anonyme mais pour pouvoir passer à un stade plus
rigoureux, il faut qu’il s’inscrive, cela se fait uniquement pour la première commande mais
après, notre client peut s’authentifier avec son nom, son prénom, son E-mail, son numéro de
téléphone, son adresse et son mot de passe et son rôle.
Laravel le Framework utilisé au cours du stage facilite cette tache car l’identifiant de
l’utilisateur, son nom, son e-mail et son mot de passe existent déjà dès le début dans Laravel
Il reste alors l’ajout des autres données de l’utilisateur.
8
Page
2.2.2 Les besoins non fonctionnels :
Les besoins non fonctionnels sont importants car ils agissent de façon indirecte sur le résultat
et sur le rendement de l’utilisateur, ce qui fait qu’ils ne doivent pas être négligés, pour cela il
faut répondre aux exigences suivantes :
 Fiabilité :

Le site Web doit fonctionner de façon cohérente sans erreurs.


 Ergonomie et bonne Interface :
Le site Web doit être adaptée à l’utilisateur sans qu’il ne fournisse aucun effort (utilisation
claire et facile) de point de vue navigation entre les différentes pages, couleurs et mise en
textes utilisé.
 Sécurité :

Il faut respecter surtout la confidentialité des données personnelles des clients qui reste l’une
des contraintes les plus importantes dans les sites web.
 Aptitude à la maintenance et la réutilisation :

Le système doit être conforme à une architecture standard et claire permettant sa maintenance
et sa réutilisation.
9
Page
3.1 Introduction :
La conception représente une phase primordiale et déterminante. C’est dans ce stade que nous
devons clarifier en premier lieu la vue globale, en faisant l’architecture générale que nous
allons suivre dans la partie réalisation de notre projet. Puis, dans un deuxième lieu nous allons
détailler notre choix conceptuel.

3.2 Conception architecturale :


3.2.1 Le modèle MVC de Laravel :

Le modèle MVC (Model View Controller ) est une méthode d’organisation du développement
d’applications ou des sites Web permettant de séparer les différents concepts résultant de nos
pages php.
10

FIGURE 3.1 _ Le model MVC


Page
 Le modèle

Le modèle correspond à une table d'une base de données. C'est une classe qui étend la
classe Model qui permet une gestion simple et efficace des manipulations de données et
l'établissement automatisé de relations entre tables.

 La vue :

La vue s’occupe principalement de faire afficher ce que le modèle renvoi. Ensuite, elle
s’occupe de recevoir toute interaction de l’utilisateur. La vue contient la présentation
graphique à renvoyer à l’utilisateur.

 Le contrôleur :

Le contrôleur prend en charge de synchroniser le modèle et la vue. Il capte toutes les activités
de l’utilisateur et en fonction de ses activités, il actionne les changements à effectuer sur
l’application. Le contrôleur traite les actions utilisateurs, demande au modèle d’effectuer les
changements puis passe les données à la vue.

FIGURE 3.2_ Le modèle du contrôleur


11
Page
 Le routage sous Laravel :

Le routage est l’un des composants clés du framework Laravel, c’est simplement un
mécanisme qui effectue le mappage des requêtes vers une action de contrôleur spécifique.

Toutes les routes Laravel sont définies dans le fichier situé sous la forme /routes/web.php.

Les méthodes de routeurs disponibles : GET, POST, PUT, PATCH, DELETE.

 GET :

Ceci est principalement utilisé pour récupérer les données du serveur, sans modifier les
données et les renvoyer à l’utilisateur.

 POST :

Cela nous permet de créer de nouvelles ressources ou données sur le serveur bien que cela
puisse être utilisé uniquement pour envoyer des données pour un traitement ultérieur.

 PUT :

PUT fonctionne comme POST dans le sens où nous permet d’envoyer des données au serveur
généralement pour mettre à jour une ressource existante au lieu de la créer

 PATCH :

On modifie partiellement une ressource (donc à ne pas confondre avec PUT).

 DELETE :

On supprime une ressource.

 Migration :

Les Migrations sont une sorte de contrôleur de version pour la BD, permettant, à une équipe,
de modifier et partager le schéma d’une BD facilement. Les Migrations sont stockées dans le
dossier database/migrations.
12
Page
3.3 Conception détaillée :
La phase conceptuelle est une étape fondamentale pour la réalisation de n’importe quel projet.
Elle permet de faciliter le système d’information et réaliser l’implémentation de la base de
données et le traitement.

3.3.1 Le Modèle Conceptuel :


Un modèle conceptuel de données permet de regrouper et d’ordonner les données nécessaires
à la gestion d’un ensemble d’entités dans un système d’informations.
Voici le schéma ci-dessous qui présente le schéma conceptuel de notre projet :

FIGURE 3.3_Le schéma conceptuel


13
Page
3.3.2 Le dictionnaire de données :

Le dictionnaire de données permet de recenser les informations nécessaires. Il précise le


libellé des données, le nom de chaque champ, le type et la dimension.

 Le tableau de l’utilisateur :

Nom du champ Libellé Type Dimension


Id Identifiant du Entier 10
l’utilisateur
Nom Nom du l’utilisateur Texte 20

Prénom Prénom du l’utilisateur Texte 20

Adresse Adresse du l’utilisateur Texte 20

Num_Tel Numéro de téléphone Entier 8


du l’utilisateur
Rôle Rôle du l’utilisateur Texte 10
(Client Admin
/Livreur)
Password Mot de passe du Entier 30
l’utilisateur
Email Adresse e-mail du Texte 20
l’utilisateur

 Le tableau de produit :

Nom du champ Libellé Type Dimension


Id Identifiant du produit Entier 10
Nom Nom du produit Texte 20
Prix Prix du produit Réel 15
Description Description du produit Texte 60
Couleur Couleur du produit Texte 10
Poids Poids du produit Réel 3

Modèle Modèle du produit Texte 30


Quantité Quantité du produit Entier 20
14
Page
4.1 Introduction :
Après avoir achevé l’étape de la conception, nous entamons dans ce chapitre la partie
réalisation ou implémentation qui est la phase finale de l’élaboration de notre application cette
phase consiste à traduire la conception exprimée à l’aide du formalisme UML en un code
source écrit dans des langages donnés. Nous présentons ensuite quelques captures d’écrans
comme exemple illustratif de notre site Web.

4.2 Environnement de développement :


4.2.1 les logiciels utilisés :
D’abord nous avons préparé l’environnement en suivant les étapes suivantes :
 Installer TeamViewer pour travailler à distance
 Créer un compte Github
 Installer Visual Studio Code
 Installer Xampp
 Installer Laravel

 TeamViewer :
TeamViewer est un logiciel propriétaire de télémaintenance disposant de fonctions de bureau
à distance, de téléadministration, de conférence en ligne et de transfert de fichiers.

FIGURE 4.1 _ Logo TeamViewer


15
Page
 GitHub :
GitHub est une plateforme open source de gestion de versions et de collaboration destinée aux
développeurs de logiciels.
Elle repose sur Git, un système de gestion de code open source dans le but d’accélérer le
développement logiciel.

Figure 4.2 _Logo GitHub

 Xampp :
Xampp est l’environnement de développement PHP le plus populaire.
C’est une distribution Apache entièrement gratuite et facile à installer contenant MYSQL,
PHP et Perl.

FIGURE 4.3 _ Logo Xampp

 MYSQL :
MYSQL data base service est un service de base de données entièrement géré pour déployer
des applications natives du cloud en utilisant la base de données open source la plus populaire
au monde.
16
Page
 Visual Studio Code :
Visual Studio Code est un éditeur de code extensible développé par Microsoft pour
Windows, Linux et MacOs.
Les fonctionnalités incluent la prise en charge du débogage, la mise en évidence de la syntaxe,
la complétion intelligente du code, la refactorisation du code et Git intégré.Les utilisateurs
peuvent modifier le thème, les raccourcis clavier, les préférences et installer des extensions
qui ajoutent des fonctionnalités supplémentaires.

FIGURE 4.4 _ Logo Visual Studio Code

 Laravel :
Laravel est un framework Backend PHP multi-plateforme permettant de créer des
applications et des sites web, il uilise un langage de script plutôt qu’un langage de
programmation PHP strict.
Laravel permet à un développeur de tirer parti d’une vaste bibliothèque de fonctionnalités pré-
programmées (telles que l’authentification, le routage et la création de modèles HTML).
L’accès à cette bibliothèque simplifie la création rapide de site web robuste tout en
minimisant la quantité de code nécessaire.
Les applications Laravel sont hautement évolutives et leur base de code est facile à maintenir.
Les développeurs peuvent également ajouter des fonctionnalités à leurs applications de
manière transparente, grâce au système de packaging modulaire de Laravel et à la gestion
robuste des dépendances.
17
Page

Figure 4.5 _ Logo Laravel


On trouve dans Laravel :

 Un système de routage perfectionné (RESTFul et ressources),


 Un créateur de requêtes SQL et un ORM performants,
 Un moteur de template efficace,
 Un système d'authentification pour les connexions,
 Un système de validation,
 Un système de pagination,
 Un système de migration pour les bases de données,

Les mots clés de Laravel :

 Blade :

Le Framework Laravel intègre un Templating engine (moteur de génération de


Templates) simple et très puissant : Blade.Les Views créées avec Blade utilisent
l’extension .blade.php et sont, typiquement, enregistrées dans le dossier
resources/views.

 Les messages d’allerte :

L’ajout des messages d’alertes dans Laravel est aussi simple. Laravel contient une
classe nommée MessageBag qui contient une variété de méthodes pratiques pour
utiliser les messages d’erreur. Une variable prédéfinie $errors, qui est une instance de
cette classe, est automatiquement instancié et mise à la disposition dans toutes les
Views

 CSRF :

Laravel vous permet de protéger facilement votre application des attaques CSRF
(Cross-Site Request Forgery. Les cross-site request forgeries sont un type d’exploit
malveillant par lequel des commandes non autorisées sont exécutées au nom d’un
utilisateur authentifié.

Laravel génère automatiquement un “jeton” CSRF pour chaque session d’utilisateur


actif gérée par l’application. Ce jeton est utilisé pour vérifier que l’utilisateur
authentifié est réellement celui qui éxecute la requête vers l’application.

À chaque fois que vous définissez un formulaire HTML dans votre application, vous
devriez y inclure un champ caché de jeton CSRF pour permettre au middleware de
protection CSRF de valider la requête.
18
Page
4.3 Réalisation :
4.3.1 Obtention du formulaire :

Nous avons d’abord préparé le formulaire qui est une page contenant toutes les
caractéristiques des produits. Pour identifier chaque produit, nous avons rempli le formulaire
qui est affiché comme ci-dessous :
19

FIGURE 4.6 _ Le formulaire


Page
4.3.2 Affichage de la base de données :

Chaque produit est ajouté automatiquement à la base de données.


Nous avons ajouté à titre d’exemple dans la base de données quatre produits, on trouve le
résultat suivant :

FIGURE 4.7 _Capture d’écran de la table de la base de données


20
Page
4.3.3 Affichage des produits :
Tous les produits ajoutés sont présentés dans une page comme l’indique cette figure :

FIGURE 4.8_Capture d’écran de la page des produits


21
Page
4.3.4 Suppression des produits :
Pour tester la méthode Delete on supprime le 3éme produit ajouté, on trouve le résultat
suivant :

FIGURE 4.9 _ Capture d’écran de la suppression des produits

4.3.5 Mise à jour des produits :


Pour tester la méthode update on modifie le prix de 2éme produit par la valeur 7 :
22

FIGURE 4.10_Capture d’écran de la mise à jour du produit


Page
Nous avons testé le bouton Update

FIGURE 4.11_Capture d’écran de la mise à jour du produit


Nous avons trouvé le résultat :

FIGURE 4.12_Capture d’écran de la mise à jour du produit


23
Page
Bref, Au cours d’un mois de stage de formation humaine au sein du WG Consulting nous
avons pu acquérir plusieurs connaissances dans le domaine du développement Web.
Ce stage nous a donné l’opportunité d’apprendre non seulement les notions de base de
Framework Laravel mais aussi le taches nécessaires pour développer un site e-commerce.
C’était une bonne initiation au monde professionnelle et une excellente préparation pour mon
insertion dans le pratique.
En outre, il nous a permis d’apprendre à mieux communiquer avec nos collègues et notre
encadreur.
Je considère mon stage à WG Consulting parmi les meilleures opportunités que j’ai eu comme
étant une expérience professionnelle enrichissante et valorisante.
24
Page
Développement personnel et formation humaine
25
Page

Vous aimerez peut-être aussi