Académique Documents
Professionnel Documents
Culture Documents
Département d’Informatique
Filière Licence fondamentale
en Sciences Mathématiques et Informatique
intitulé :
Au terme de ce travail, nous tenons à exprimer notre profonde gratitude et nos sincères
Remerciements à notre encadrant Monsieur SLAOUI Saïd, pour tout le temps
qu’il nous a consacré, ses conseils précieux, et pour la qualité de son suivi durant
toute la période de notre projet.
Nos remerciements vont aussi à Madame MOULINE Salma membre du jury pour
avoir accepté de juger notre travail.
Nous tenons aussi à remercier vivement tous les membres de jury pour l’honneur
qu’ils nous fonts en acceptant de juger notre travail.
Nos plus vifs remerciements s’adressent aussi à nos chères parents qui nous ont soutenu
et ont placé leur confiance en nous.
Nos remerciements vont enfin à toute personne qui a contribué de près ou de loin à
l’élaboration de ce travail.
i
Table des matières
Remerciements i
Introduction vi
2 Analyse et conception 6
2.1 Règles de gestion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2 Diagrammes UML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2.1 Diagrammes de cas d’utilisation . . . . . . . . . . . . . . . . . . . 7
2.2.2 Diagramme de séquence . . . . . . . . . . . . . . . . . . . . . . . 10
2.2.3 Diagramme de classe . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3 Modèle logique de données . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.4 Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.4.1 Authentification . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.4.2 Administration du portail . . . . . . . . . . . . . . . . . . . . . . 16
2.4.3 Interface utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.4.4 Administration du client . . . . . . . . . . . . . . . . . . . . . . . 18
3 Réalisation du projet 19
3.1 Outils et technologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.1.1 Langages utilisés . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.2 Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.2.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.2.2 Exemple de framework PHP . . . . . . . . . . . . . . . . . . . . . 20
3.2.3 Choix du framework . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.2.4 Framework LARAVEL . . . . . . . . . . . . . . . . . . . . . . . . 22
3.3 Moteur de recherche Solr . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.3.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.3.2 Caractéristiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
ii
4 Démonstration 32
4.1 Ajouter un client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.2 Liste des clients ajoutés . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.3 Profil du client ajouté . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.4 Tableau de bord administration client . . . . . . . . . . . . . . . . . . . . 35
4.5 Ajout d’un groupe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.6 Ajout d’un utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Annexe 40
iii
Table des figures
iv
4.6.12Le modèle User . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.6.13Le modèle Role . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.6.14Le modèle Permission . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.6.15Le modèle PermissionRole . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.6.16Le modèle Newsletter . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.6.17LoginController . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.6.18RegisterController . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.6.19AdminController partie 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.6.20AdminController partie 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.6.21HomeController partie 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.6.22HomeController partie 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.6.23HomeController partie 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.6.24HomeController partie 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.6.25ClientController partie 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.6.26ClientController partie 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.6.27ClientController partie 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.6.28ClientController partie 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.6.29ClientController partie 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.6.30ClientController partie 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.6.31groupeController partie 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.6.32groupeController partie 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.6.33UserController partie 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.6.34UserController partie 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.6.35UserController partie 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.6.36UserController partie 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
v
Introduction
Ce rapport présente le travail que nous avons effectué en tant que stagiaire en
Développement Informatique au sein de la société ITELSYS.
Il s’est déroulé du 6 Mars 2017 au 06 Juin 2016 , période pendant laquelle nous nous
sommes familiarisé avec un environnement technique.
Le projet réalisé s’est avéré très intéressant et très enrichissant pour notre expérience
professionnelle.
Grace à ce stage, nous avons travaillé sur un projet qui nous a permis d’entrevoir à
quoi consiste la profession de Développeur dans ce secteur d’activité.
vi
Chapitre 1
1.1.1 Savoir-faire
Business Process Management (BPM)
L’efficacité avec laquelle, une entreprise exécute ses processus détermine souvent
son succès, c’est pourquoi la maîtrise des processus est devenue primordiale pour toute
organisation. Néanmoins, un grand nombre d’entre elles continuent encore à manipuler
des dossiers papier pour partager des informations ou coordonner des actions liées à
leurs processus métiers, ce qui affecte l’efficacité des collaborateurs et le service rendu
aux clients.
Grâce au BPM, l’entreprise formalise ses processus et obtient les résultats suivants :
1. Visibilité : La description des processus permettra aux collaborateurs au sein
de l’entreprise de mieux comprendre les attentes des clients et d’y contribuer plus
1
efficacement.
Dématérialisation
La dématérialisation est le remplacement dans une entreprise ou une organisation de
ses supports d’informations matériels (souvent en papier) par des fichiers informatiques
et des ordinateurs, jusqu’à la création de « bureau sans papier » ou « zéro papier »
quand la substitution est complète.
Dans ce but, ITELSYS propose des modules sur mesure de partage de l’information
sous n’importe quel format électronique, dans le strict respect des normes fiscales et
juridiques : Classement, circuits de validation « dématérialisés », consultation en ligne,
conservation dans des coffres forts électroniques et échanges sécurisé.
1.1.2 Services
1. ERP (Entreprise Resource Planning)
2
2. ECM (Entreprise Content Management
3. BPO Documentaire
4. CONSEIL
3
1.2 Présentation globale du projet
1.2.1 Contexte du projet
Un Portail Web est défini par Wikipédia comme étant « un site web qui offre une
entrée commune à un large éventail de ressources et de services accessibles sur internet
et centrés sur un domaine d’intérêt ou une communauté particulière ».
Ce projet à été défini par la société ITELSYS afin de mettre en place un portail
web permettant à ses clients d’accéder à des articles de presse papier et numérique de
différentes sources et tout ceci dans un même endroit.
4
3. La base de données retourne les mots clés de l’utilisateur.
4. Le portail envoi une requête avec les mots clés au serveur Apach-Solr.
5. Le serveur Apach-Solr retourne un filtre des articles indexés qui contiennent ces
mots clés.
6. Le portail affiche les articles de ce filtre à l’utilisateur.
5
Chapitre 2
Analyse et conception
Ce chapitre est l’occasion pour nous de présenter l’analyse et les étapes de conception
du portail, ce qui nous a permis de connaitre les acteurs, les interfaces, les règles de
gestions de notre système ainsi que la manière dont celui-ci devrait fonctionner.
— Un ou plusieurs mots clés sont attribués à un client et un mot clé est attribué à
un ou plusieurs clients.
— Un client peut être soit une personne ou un groupe de personnes ( une société,
une association etc... ).
— Ce même client peut contenir un ou plusieurs groupes créé par son administrateur,
et sont attribués à chacun de ces groupes des mots clés issus de la liste des mots
clés de ce client.
— Les comptes utilisateurs de ces personnes sont créés par l’administrateur client.
6
— Un client souscrit à un et un seule abonnement renouvelable et un abonnement
correspond à un seule client.
— Un client peut aussi s’abonner à la newsletter, si c’est le cas il recevra des e-mails
quotidiens qui contiennent un condensé des articles avec les mots clés de ce client.
— Une permission avec un nom et une description, est associé à un ou plusieurs rôles.
Le langage de modélisation UML a été adopté tout au long du projet comme langage de
modélisation et de conception. Ce choix est justifier par le fait qu’UML est un langage de
modélisation de plus en plus utilisé grâce à la puissance des outils qu’il offre et l’efficacité
de ces méthodes.
7
Figure 2.2.1 – Diagramme de cas d’utilisation des clients
8
Figure 2.2.2 – Diagramme de cas d’utilisation de l’administrateur du portail
9
2.2.2 Diagramme de séquence
Le diagramme de séquence permet de montrer les interactions des objets dans le
cadre d’un scénario d’un diagramme de cas d’utilisation.
— Dans le cas où les données sont correctes, la base de données retourne les mots
clés de ce utilisateur au système.
10
— Le système ensuite, envoi ces mots clés au moteur de recherche Solr (serveur
Apache-solr ).
11
2.2.3 Diagramme de classe
La classe keyword
12
La classe client
Elle contient les données d’un client, son nom, son nombre de compte, ses coordonnées
, ses utilisateurs, ses groupes, ses mots clés et son abonnement.
La classe abonnement
Présente la date de début et de fin de l’abonnement d’un client.
La classe groupe
Elle contient les information d’un groupe, ses nom, ses mots clés, le client propriétaire
de ce groupe et ses utilisateurs.
La classe user
Cette classe représente un utilisateur.
La classe rôle
Elle définit le rôle d’un utilisateur et elle permet de connaitre tous les utilisateurs qui
ont ce rôle.
La classe permission
C’est la classe qui définit toutes les permission accordé à un rôle, et aussi de s’avoir
les rôles qui ont cette permission.
La classe newsletter
C’est la classe qui contient les clients abonnés à la newsletter.
Grâce au diagramme de classe nous allons définir ce que nous pensons devoir enregis-
trer comme information
Le schéma qui suit représente le configuration logique de notre base de données rela-
tionnelle.
13
Figure 2.3.1 – Modèle logique de données
14
2.4 Interfaces
2.4.1 Authentification
c’est ici que l’utilisateur saisit son e-mail et son mot de passe pour pouvoir accéder
au portail.
Il a aussi la possibilité de mémoriser son e-mail et mot de passe en cochant la case se
souvenir de moi.
En cas d’oublie de son mot de passe, l’utilisateur peut le réinitialiser en cliquant sur le
lien "Mot de passe oublié ?", il sera ensuite redirigé vers une autre page où il faudra suivre
les instructions.
15
2.4.2 Administration du portail
C’est une interface qui permet à l’administrateur du portail de gérer toutes les
informations relatives à celui-ci. Il devrait pouvoir en premier lieu afficher le tableau de
bord du portail qui contient :
— le nombre de clients ;
— Ajouter un client.
— Afficher le profil d’un client où il y aura la liste de ces utilisateurs, ces infor-
mations personnelles, le statut de son abonnement et aussi la liste de ces mots clés.
16
— Afficher la liste de tous les utilisateurs.
— Ajouter un utilisateur.
Cette interface disposera aussi de différents filtres et tris qui s’appliquent sur les
articles et aussi d’une barre de recherche.
17
2.4.4 Administration du client
Cette interface, accessible par l’administrateur d’un client qui représente un groupe
d’utilisateurs, il y aura un tableau de bord qui donne les statistiques relatives à ce client :
— Nombre de groupes ;
— Créer des groupes et de les attribuer des mots clés dans la listes des mots clés de
ce client.
18
Chapitre 3
Réalisation du projet
Dans ce chapitre sont présenté les différents langages de programmation ainsi que
d’autres outils de développement utilisés pour la réalisation du portail I-Media.
CSS3
(Cascading Style Sheets : feuilles de style en cascade) est utilisé pour la présentation
des documents HTML. Il sépare la structure d’une page web de ses divers styles de
présentation.
JavaScript
Javascript est un langage de script qui est utilisé dans les pages web interactives.
Javascript apporte des améliorations au langage HTML en permettant d’exécuter des
commandes du côté client, c’est-à-dire au niveau du navigateur.
PHP
PHP est un langage de script côté serveur qui a été conçu spécifiquement pour le Web.
Le code PHP est inclus dans une page HTML et sera exécuté à chaque fois qu’un visiteur
affichera la page. Le code PHP est interprété au niveau du serveur web et génère du code
HTML ou tout autre affichable dans le navigateur de l’utilisateur. PHP a été conçu en
1994 par Rasmus Lerdorf.
19
Twitter Bootstrap
Twitter Bootstrap est un Framework de présentation graphique spécialisé dans la
création de sites et d’applications web. C’est un ensemble qui contient des codes HTML
et CSS, des formulaires, boutons, outils de navigation et autres éléments interactifs, ainsi
que des extensions JavaScript en option. C’est l’un des projets les plus populaires sur la
plateforme de gestion de développement GitHub.
JQuery
JQuery est une bibliothèque JavaScript libre qui porte sur l’interaction entre JavaS-
cript (comprenent AJAX) et HTML.
MySQL
MySql est un serveur de base de données relationnelles SQL. C’est un logiciel libre,
open source développé dans un souci de performances élevées en lecture, ce qui signifie
qu’il est davantage orienté vers le service de données déjà en place que vers celui de mises
à jour fréquentes et fortement sécurisées. Il est multi-thread et multi-utilisateur.
3.2 Framework
3.2.1 Définition
Un framework informatique est un ensemble cohérent de composant logiciels structu-
rels, qui sert à créer les fondations ainsi que les grandes lignes de tout ou d’une partie
d’un logiciel.
L’utilité d’un framework est d’éviter de passer du temps à développer ce qui a déjà été
fait par d’autre.
20
Figure 3.2.1 – Evolution de l’intérêt pour cette recherche. Source : Google Trends
21
Pour réaliser ce projet nous avons utilisé le framework Laravel. Ce framework php est
devenu très populaire ces 5 dernières années et sa communauté devient de plus en plus
grande.
22
- Les modèles : ils représentent les données de l’application et permettent l’interac-
tion avec la base de données (ou les web services, etc).
- Les vues : ce sont les représentations (les Templates) des résultats de la requête
que l’utilisateur a effectuée.
23
Figure 3.2.5 – Arborescence Vues Sublime Text
- Les contrôleurs : ils interceptent toutes les requêtes faites par les utilisateurs.
En bref, le modèle gère la base de données, la vue produit les pages HTML et le
contrôleur fait tout le reste.
24
Système de routage
Laravel intègre en son sein un système de routage. Il permet de créer des chemins
URL qui sont simples et naturelles pour accéder aux différentes fonctionnalités du site
en développement. Par exemple, au lieu d’avoir index.php?article_id=57 comme URL
pour accéder à la page d’un article, on pourrait mettre en place l’URL suivante : /mon
blogs/article/présentation-de-laravel. Le routeur de Laravel permet de définir des URL
créatives, associables à différentes zones de votre application simultanément.
/∗ chemin v e r s l a page d ’ a c c u e i l ∗/
Route : : p o s t ( ’ / u s e r s / update /{ i d } ’ , ’ U s e r C o n t r o l l e r @ u p d a t e ’ ) ;
ORM
Un mapping objet-relationnel (en anglais object-relational mapping ou ORM) est
une technique de programmation informatique qui définit des correspondances entre une
base de données et les objets du langage utilisé.
L’utilisation de la programmation orientée objet avec une base de données relationnelle
nécessite de convertir les données relationnelles en objets et vice-versa. Ceci conduit à
programmer cette conversion pour chaque objet et donc à dupliquer énormément de
code similaire. C’est donc principalement à ce problème que tente de répondre un ORM.
Laravel comporte en son sein un ORM performant qui s’appelle Eloquent. Pour mapper
convenablement les données de la base de données et les objets implémentés sous Laravel,
25
il faut utiliser ce qu’on appelle le CRUD. CRUD (Create, Read, Update, Delete) désigne
les quatre opérations de base pour la persistance des données, en particulier le stockage
d’informations en base de données. Concrètement, il s’agit de gérer et d’interroger la
base de données directement avec Laravel, dans du code PHP. Un fichier de configuration
permet de paramétrer la connexion à une base de données, c’est tout ce qu’il y’a à faire.
Laravel s’occupera alors de faire ce que vous lui direz.
/∗ s é l e c t i o n de t o u s l e s u t i l i s a t e u r s ∗/
User : : a l l ( ) ;
/∗ s é l e c t i o n de u t i l i s a t e u r avec l ’ i d é g a l à 1 e t s u p p r e s s i o n ∗/
$ u s e r = User : : f i n d ( 1 ) ;
$ u s e r −>d e l e t e ( ) ;
/∗ Mise à j o u r du nom du p r e m i e r u t i l i s a t e u r a j o u t é ∗/
$ u s e r = User : : f i r s t ( ) ;
$ u s e r −>s a v e ( ) ;
Query builder
Eloquent est efficace mais n’est pas toujours suffisant pour générer toutes les requêtes.
Il est parfois nécessaire de générer des requêtes qui dépassent les possibilités qu’offre cet
outil. Le Query Builder peut alors être utilisé. Il s’agit d’un outil pratique de génération
de requêtes avec une syntaxe explicite, qui est complète les fonctionnalités d’Eloquent.
$ u s e r = DB : : t a b l e ( ’ u s e r s ’ )
−>groupBy ( ’ user_id ’ )
−>where ( ’ user_id ’ , ’ > ’ , 17 )
−>g e t ( ) ;
26
Système d’authentification
Laravel fournit plusieurs approches différentes pour valider les données entrantes de
votre application provenant de formulaire par exemple. Le contrôle des valeurs qui sont
transmises entre les pages est alors facilité. En effet, plus besoin de coder en dur cette
analyse de conformité des données, qui peut être un processus lourd, rébarbatif, et en
général non exempts de défaut de conception. Laravel propose des méthodes robustes
améliorant ce travail.
Il suffit d’enter une ligne de commande dans le terminal à la racine du projet pour
créer les controleurs, les vues et les routes pour l’authentification :
php a r t i s a n make : auth
27
Exemple d’application à notre projet
/∗ M i g r a t i o n de l a t a b l e u s e r s ∗/
<?php
us e I l l u m i n a t e \ Support \ Facades \Schema ;
us e I l l u m i n a t e \ Database \Schema\ B l u e p r i n t ;
us e I l l u m i n a t e \ Database \ M i g r a t i o n s \ M i g r a t i o n ;
/∗∗
∗ Re vers e t he m i g r a t i o n s .
∗ @return v o i d
∗/
p u b l i c f u n c t i o n down ( )
{
Schema : : d r o p I f E x i s t s ( ’ u s e r s ’ ) ;
28
}
}
Envoi d’e-mails
Laravel propose des fonctionnalités très pratique permettant d’envoyer des e-mails,
grâce à l’outil SwiftMailer, riche en fonctionnalités.
Encore une fois, dans l’esprit de centraliser toutes les fonctionnalités d’un site au sein d’un
même outil, la construction des vues d’un email est similaire en tout point à la construc-
tion des vues d’une page du site. Il suffit pour cela d’utiliser Blade, le moteur de Template.
Il faut d’abord créer une classe mail en tapant ceci dans le terminal à la racine du
projet :
php a r t i s a n make : mail nomDeLaClass
La classe est créé dans le dossier App/Mail.
/∗∗
∗ B u i l d t he message .
∗
∗ @return $ t h i s
∗/
public function build ()
{
r e t u r n $ t h i s −>view ( ’ chemin de l a vue c r é é pour c e t e−mail ’ ) ;
}
Le framework Laravel fournit entre autre d’autres caractéristiques comme :
— Un système de cache ;
— Un système d’évenements ;
— Un système d’autorisation ;
Conclusion
Laravel est livré avec un gros sac de caractéristiques impressionnantes. Et par consé-
quent, il fait de l’ombre à d’autres frameworks similaires. Il est facile à apprendre et
29
apporte un nombre conséquent de fonctionnalités permettant de construire une appli-
cation plus robuste, mais aussi plus maintenable et de façon plus rapide. Notamment,
Laravel met à disposition une syntaxe simple et élégante, un des ses plus grands atouts.
3.3.2 Caractéristiques
Solr s’appuit sur un socle : Apache Lucene. Apache Lucene est une librairie Java
open-source d’indexation et de recherche plein-texte qui existe depuis le début des années
2000. Lucene fournit les mécanismes de base d’indexation et de recherche. De son coté,
Solr apporte des aspects techniques qui fond de lui une véritable solution d’entreprise :
30
Exemple d’application à notre projet
/∗∗
∗
∗ @return a r r a y $ r e s u l t s e t
∗/
public function search ( $request )
{
$query = A r t i c l e s : : i n i t ( ) ;
$ h e l p e r = $query−>g e t H e l p e r ( ) ;
$thequery = "";
f o r e a c h ( $ T e x t f i e l d s as $ v a l u e ) {
$ t h e q u e r y .= $ v a l u e . " : ( " . $ r e q u e s t . " ) " ;
}
$query−>setQuery ( $ t h e q u e r y ) ;
// t h i s e x e c u t e s t h e query and r e t u r n s th e r e s u l t
r e t u r n $ r e s u l t s e t = $ t h i s −>c l i e n t −>s e l e c t ( $query ) ;
}
31
Chapitre 4
Démonstration
Dans ce chapitre nous allons faire une démonstration de l’ajout d’un client, de la
création de son abonnement à la création de ces groupe et comptes utilisateurs.
La figure montre l’ajout d’un client qui fournit des champs à remplir par l’adminis-
trateur du portail :
— le nom du client.
— son nombre d’ utilisateurs.
32
— le numéro de téléphone et adresse du client.
— ses mots clés.
— Date du début et de la fin de l’abonnement.
— e-mail et mot de passe de l’administrateur client.
Ici on peut une recherche parmi les client, choisir de supprimer un client ou d’afficher
toutes les informations relatives à un client.
33
4.3 Profil du client ajouté
— Statut de l’abonnement.
Dans ce menu on peut aussi modifier ces informations en cliquant sur le bouton Editer
le profil , comme lui ajouter des mots clés ou lui en supprimer d’autres, prolonger son
abonnement etc .
34
4.4 Tableau de bord administration client
35
4.5 Ajout d’un groupe
On voit ci-dessus, dans l’onglet Créer un groupe, l’ajout d’un groupe par l’adminis-
trateur du client qui rempli un champs pour le nom du groupe et coche les mots clés pour
ce groupe.
36
4.6 Ajout d’un utilisateur
La figure illustre l’ajout d’un utilisateur en saisissant les informations relatives à cet
utilisateur et en lui affectant à un groupe déjà créé.
— Nom de l’utilisateur.
37
Conclusion générale
D’un point de vue informatique les progrès acquis pendant ce stage ont été notable
de part d’une meilleur compréhension du framework Laravel qui commence à s’imposer
comme standard dans le domaine de développement web en php.
Il aura aussi fallu beaucoup réfléchir et trouver des solutions pour mieux gérer les accès
et les données affichés pour chaque utilisateur. Il a donc fallu faire preuve de patience et
réflexion pour résoudre certains problèmes.
38
Bibliographie
https://www.supinfo.com/articles/single/3343-presentation-framework-php-laravel
lucene.apache.org/solr/
laravel.com
laracast.com
[5] Openclassrooms
https://openclassrooms.com
https://trends.google.fr/trends/explore?q=%2Fm%2F09cjcl,%2Fm%
2F0jwy148,%2Fm%2F0cdvjh,%2Fm%2F02qgdkj
39
Annexe
40
Figure 4.6.3 – La vue template 2
41
Figure 4.6.4 – La vue template 3
42
Figure 4.6.5 – La vue template 4
43
Figure 4.6.6 – La vue template 5
44
Code source des Modèles
Le modèle Client
45
Le modèle Keyword
Le modèle ClientKeyword
46
Le modèle Abonnement
47
Le modèle User
48
Le modèle Role
Le modèle Permission
49
Le modèle PermissionRole
Le modèle Newsletter
50
Code source des Contrôleurs
Le contrôleur LoginController
51
Le contrôleur RegisterController pour enrégister un utilisateur
52
Le contrôleur AdminController
53
Le contrôleur HomeController
54
Figure 4.6.23 – HomeController partie 3
55
Le contrôleur ClientController
56
Figure 4.6.26 – ClientController partie 2
57
Figure 4.6.28 – ClientController partie 4
58
Figure 4.6.30 – ClientController partie 6
59
Le contrôleur GroupeController
60
Le contrôleur UserController
61
Figure 4.6.34 – UserController partie 2
62
Figure 4.6.35 – UserController partie 3
63