Rapport de stage développement informatique

M

memoire de stage developpement web Si tu veux la version word contacter moi via mon email ouqas.pro@gmail.com Ce rapport n'est pas le meilleur.

2
Département Génie Informatique
Mémoire de Stage de Fin d’Etudes
Présenté pour l’obtention du
Diplôme Licence Professionnelle
Filière
Développement des Systèmes d'Information et de
Communication
Entreprise
IN4
Présenté Par
EL MAHDI OUQAS
Titre
Contribuer à la réalisation d’un
projet LMS
Encadré au niveau entreprise par
ILIASS BOUTALHA
Soutenu le 25/06/2021 devant le jury
Pr. NABIL BENAMAR UMI-EST-Meknès
Pr. El OUAZZANI RAJAE UMI-EST-Meknès
3
Table desmatières
Table des figures.................................................................................................................................................. 5
Dédicace ............................................................................................................................................................... 7
Remerciements .................................................................................................................................................... 8
Chapitre V : Introduction .................................................................................................................................. 9
1-Le Contexte de stage....................................................................................................................................................9
2-L’entreprise in4 :..........................................................................................................................................................9
Chapitre II : présentation de projet ................................................................................................................ 11
I-Etude de projet : ........................................................................................................................................... 11
1-Objectifs du projet .....................................................................................................................................................11
2-C'est quoi, une plate-forme d'apprentissage en ligne? ...............................................................................................11
3- E-learning .................................................................................................................................................................12
4-Etude des besoins fonctionnels..................................................................................................................................12
5-Etude des besoins non fonctionnels...........................................................................................................................13
Chapitre III : Conception du projet................................................................................................................ 15
I-Choix de langage de modélisation : ............................................................................................................. 15
1-UML ..........................................................................................................................................................................15
II- diagrammes UML : .................................................................................................................................... 15
1-Diagramme de classe .................................................................................................................................................15
2-Diagramme de cas d’utilisation .................................................................................................................................18
3-Diagramme de séquence :..........................................................................................................................................23
4- Diagramme d’activités :............................................................................................................................................27
Chapitre III : les technologies utilisées ........................................................................................................... 29
I- Les Framework............................................................................................................................................ 29
1-Qu’est-ce qu’un Framework? ....................................................................................................................................29
2-Pourquoi un Framework? ..........................................................................................................................................32
3-Analyse de différents Framework :............................................................................................................................32
II-Choix du Framework et explication de ce choix......................................................................................... 35
1-Front-End...................................................................................................................................................................35
2-Back-End ...................................................................................................................................................................36
4
3-Organisation du projet et division des tache :............................................................................................................37
Chapitre IV : Avancement des travaux du projet ......................................................................................... 38
1-installation de laravel :...............................................................................................................................................38
2- cloner le projet déjà Crée :........................................................................................................................................38
3- L'avancement du projet.............................................................................................................................................41
I-Mes tache dans Le projet:............................................................................................................................. 53
1-AdminCheck :............................................................................................................................................................53
2-MacCheck :................................................................................................................................................................53
3-CRUDs : ....................................................................................................................................................................54
Chapitre V : Conclusion................................................................................................................................... 58
Conclusion générale........................................................................................................................................ 58
Bibliographie................................................................................................................................................... 59
5
Table des figures
Figure 1 : Logo de la société In4........................................................................................................... 10
Figure 2 : Organigramme du projet a réalisé ...................................................................................... 16
Figure 3 : Diagramme de classe........................................................................................................... 19
Figure 4 : Diagramme de cas d'utilisation générale............................................................................21
Figure 5 : Diagramme de séquence "Passer un quiz" ...................................................................... 26
Figure 6 : Diagramme de séquence "Participer a un cour " ........................................................... 27
Figure 7 : Diagramme de séquence "Ajouter Un Cour ".................................................................. 28
Figure 8 : Diagramme de séquence "Gestion des adresses mac ".................................................... 29
Figure 9 : Diagramme d’activité "Gestion des badges".................................................................... 31
Figure 10 : Logo du framework Laravel.................................................................................................40
Figure 11 : Logo du Git ....................................................................................................................... 41
Figure 12 : commande clone ................................................................................................................ 43
Figure 13 : l’arborisant du projet........................................................................................................ 44
Figure 14 : Le fichier de configuration “.env”. .................................................................................. 45
Figure 15 : la page d’authentification ................................................................................................. 46
Figure 16 : le profile de l’utilisateur.................................................................................................... 47
Figure 17 : pop-up de génération d’avatar......................................................................................... 48
Figure 18 : générer un avatar aléatoirement...................................................................................... 49
Figure 19 : L’erreur qui apparaitre si on a dépassé le nombre maximal des adresse mac ………50
Figure 20 : table de gestion des adresse mac...............................................................................................51
Figure 21 : Le fichier de routage "web.php"...................................................................................... 52
Figure 22 : le code de vérification par mail ........................................................................................ 52
Figure 23 : la page dashboard.............................................................................................................. 53
Figure 24 : la page dashboard en bas.................................................................................................. 54
Figure 25 : la page de Gestion des Cours............................................................................................ 55
Figure 26 : la suppression d’un badge. ............................................................................................... 56
6
Figure 27 : l’ajoute d’un quiz............................................................................................................... 56
Figure 28 : la modification un badge................................................................................................... 57
Figure 29 : Le code source du midlleware AdminCheck. ................................................................. 59
Figure 30 : Le code source du midlleware MacCheck....................................................................... 41
Figure 31 : Le code source du model Trophie.................................................................................... 60
Figure 32 : Le code source du fichier de migration trophies. ........................................................... 60
Figure 33 : la table générée dans le serveur........................................................................................ 61
Figure 34 : code source du Controlleur TrophieController.............................................................. 62
7
Dédicace
En têtes de la liste de toutes personnes nous plaçons
les membres de nos familles bien aimés qui ne nous ont
jamais hésité à nous offrir le meilleur qu’ils pouvaient.
Notamment à nos chers parents En témoigne de notre
profonde gratitude et pour tous les sacrifices qu'ils ont
fait, Grâce à leurs encouragements, leur soutiens moral
et matériel, et leurs amours infinis.
8
Remerciements
Auterme de stage de fin d’etude quej’aieffectué ausein de
la société IN4 à MEKNES, je tiens à exprimer mes sincères
remerciements et mes profondes gratitudes à « Monsieur
Boutalha Iliass et Monsieur Houssam Sadiki pour m’avoir
encadré tout au long de la période de stage, je tiens aussi à
remercier toutes l’équipe IN4 pour leur support que j’apprécie
beaucoup.
Mes remerciements vont à tous mes enseignants et
professeurs au sein de l’Ecole Supérieur de technologie
Meknès pour leur sympathie, leurs conseils et
directives, lesquels me seront sans nul doute d’un grand
intérêt, pour mon parcours académique et professionnel.
9
Chapitre I : Introduction
1-Le Contexte de stage
Ce stage entre dans le cadre de l’approfondissement des apprentissages théoriques et
l’amélioration des compétences techniques, professionnels et personnels afin de se préparer
pour une intégration moins difficile dans le marché de travail.
Puisque l’évolution du monde favorise le tout digital, j’ai choisi de faire mon stage de fin
d’études de deux mois dans une société active dans le domaine de digitalisation et de
l’informatique, afin de se familiariser avec les outils et méthodes de conceptions et
développement des projets informatiques.
Figure 1 : Logo de la société In4
2-L’entreprise in4 :
IN4 est une société fondée en 2019, qui accompagne ses clients dans la transformation
digitale de leur entreprise. Animé par la passion du numérique, de l’innovation et du
management de transition. L’équipe IN4 dont le chef est le président directeur général de la
société « M. Nabil LEMRAZI » est composé de profils confirmés et complémentaires dont la
mission est de transformer le défi de digitalisation en une réelle opportunité.
Installée à MEKNES au MAROC, IN4 offre aux entreprises, aussi bien marocaines
qu’étrangères, un service optimal dans le domaine de la transformation digitale en mettant la
collaboration, la Cocréation et l’adaptabilité au cœur de son intervention.
10
La société IN4 est principalement active dans les domaines suivants :
11
Chapitre II : présentation de projet
I-Etude de projet :
Le système consiste à mettre en place pour un client(directeur d’une école privée), une
plateforme sociale Learning pour les étudiant de l’école qui souhaitent bénéficier du cours
accélérés.
1-Objectifs du projet
Dans un secteur où les contraintes de formation en présentiel sont importantes
(disponibilité, le frais de déplacement, etc.), le concept de la formation à distance offre des
réponses complémentaires et une plus grande flexibilité à l’apprenant qui pourra se former à
son rythme en fonction de ses disponibilités.
Notre objectif consiste à créer une plateforme du social Learning qui répond au besoin du
tuteur et des apprenants à la fois et de manière à :
✓ Favoriser une pédagogie socioconstructiviste (collaboration, activités, réflexion
critique, etc.),
✓ Garantir plus de souplesse pour la planification des formations à l’aide d’une interface
ergonomique, légère, efficace, compatible et simple à manipuler pour les différents
utilisateurs,
✓ Faciliter l’accès aux ressources et services,
✓ Offrir aux apprenants un espace d’apprentissage individualisé,
✓ Faciliter le partage, la production, la communication et la collaboration à distance,
2-C'est quoi, une plate-forme d'apprentissage en ligne?
Une plateforme d'apprentissage en ligne, appelée encore LMS (Learning Management
System), est un site web qui héberge le contenu didactique et facilite la gestion de
l'apprentissage et la mise en œuvre de stratégies pédagogiques.
12
3- E-learning
Le E-learning, ou formation en ligne est une technique de formation reposant sur la mise
à disposition de contenus pédagogiques via un support électronique : Cd-rom, Internet,
intranet, extranet, etc.
Le E-learning désigne les outils, les applications et l’ensemble des contenus mis à
disposition d’un stagiaire dans le but d’une formation pédagogique. Longtemps réduites à des
supports cd- rom, le E-learning a évolué et utilise dorénavant le web et différentes
applications. Contrairement à ce que l’on pourrait penser. Cette solution permet aussi de
nombreuses possibilités d’échange et d’interactivité.
4-Etude des besoins fonctionnels
Les besoins fonctionnels représentent les attentes de chaque acteur de la future plate-
forme. Toute solution conceptuelle doit satisfaire, préalablement, à des besoins fonctionnels
afin de délimiter le périmètre fonctionnel de l‘application et surveiller la traçabilité des
besoins lors de la phase de développement.
La présente plateforme doit satisfaire les besoins fonctionnels suivants :
▪ La gestion des utilisateurs,
▪ La gestion des cours,
▪ La gestion des Trophées,
▪ La gestion des Quizz,
▪ La gestion des badges,
▪ La gestion des points,
▪ La gestion des Adresse Mac,
13
5-Etude des besoins non fonctionnels
Un besoin non fonctionnel est une restriction ou une contrainte qui pèse sur un service du
système, telle les contraintes liées à l’environnement et à l’implémentation et les exigences en
matière de performances.
Les besoins non fonctionnels :
▪ Le code doit être clair pour permettre des futures évolutions ou améliorations,
▪ La plateforme doit fournir un accès rapide aux informations, et doit faire la mise à jour
en temps réel,
▪ La plateforme doit être portable, extensible, réutilisable et fiable,
▪ La plateforme offre une interface conviviale et facile à utiliser,
▪ La plateforme doit garantir la confidentialité, l’intégrité et la cohérence des données.
5-1 : Les acteurs système
Un acteur représente l’abstraction d’un rôle joué par des entités externes (utilisateur,
dispositif matériel ou autre système) qui interagissent directement avec le système étudié.
Les acteurs interagissant avec notre système sont :
• Administrateur : il anime les formations et responsable de l’administration du
site.
• Client ou utilisateur : Assister à les formations.
14
Figure 2 : Organigramme du projet a réalisé :
Cette figure représente un schéma général du fonctionnement de platform
15
Chapitre III : Conception du projet
I-Choix de langage de modélisation :
1-UML
UML est un langage de modélisation, très répandu et très utile pour la conception des
systèmes d'informations orientées objets.
C'est vrai que UML n'est pas choisi automatiquement pour la conception mais il est déjà plus
connu que merise et merise n'est pas orientée objet.
Pour les applications web, je pense que UML exprime mieux la vue statique et dynamique du
système d’information : il propose je presque 13 diagrammes qu'on peut exploiter pour
définir les fonctionnalités du système (use case) et les objets y intervenant (modèle de
domaine) ... Donc une application web nécessite vraiment une analyse très approfondie pour
pouvoir dégager les nécessités de développement ainsi que quelques scénarios d'exécution.
II- diagrammes UML :
1-Diagramme de classe
16
Figure 3 : Diagramme de classe
➔Ce diagramme représente les classes nécessaires pour assurer un
bon fonctionnement du système à mettre en œuvre.
17
• User : C’est la class la plus dominant de le fonctionnement du system, elle est dédié à
tous ce qui concerne les interactions de l’utilisateur Soit Administrateur ou Client.
• Spended_Time : Consiste à gérer le temps passer par le client dans la plateforme.
• Badges : Gere tous les badges existe dans la plateforme.
• AsignBadge : les badges obtenus par l’utilisateur.
• Quize : Toutes les quizes existe dans la plateforme, chaque quiz a plusieurs questions
qui ont des reponse a un ou multiple choix.
• Question : ce qui concerne toutes les questions relative a un Quiz, peut être un ou
multiple.
• Answer : contient le la réponse liée a chaque des Question.
• QuizTest : Le quiz passer par un utilisateur, contient aussi le temp passée par ce client
dans ce test.
• Macs : Cette class dédié pour gérer les Adresse mac des appareils d’un utilisateur.
• Cour : la classe gérer les cours de la formation, ils peuvent être des images, vidéo ou
un livre pdf.
• ViewedCour : les cours déjà vue par l’utilisateur, elle contient aussi le temps passé
dans le cour et la progression de l’utilisateur.
• Trophies : ils sont des produits virtuels que l’utilisateur peut les acheter depuis
le « market ».
• Points : C'est comme le concept de badge.
18
2-Diagramme de cas d’utilisation
Dans le but de mieux comprendre notre système et les interactions avec les utilisateurs,
dans cette partie nous allons détailler les scenarios de principaux cas d’utilisation
Figure 4 : Diagramme de cas d'utilisation générale.
➔ Cette figure représente le diagramme de cas d’utilisation globale qui est
compose de deux acteurs admin et utilisateur et de quatre cas de gestion pour l’admin
et quatre pour l’utilisateur et un qui est commun entre les deux C’est L’Authentification.
Je vais détailler les cas dans ce qui suit.
19
3-1 Utilisateur :
Nom du cas : Modifier le profile.
Chaque utilisateur a un profil avec ses propres informations telles que le nom, prénom,
adresse, avatar.. , dans ce cas l’utilisateur peut Modifier ses information.
Scénario explicatif :
✓ L’utilisateur s’authentifier
✓ Le système affiche le page d’accueil.
✓ L’utilisateur choisir « mes information ».
✓ Le système affiche toutes les informations relatives à l'utilisateur authentifié.
✓ L’utilisateur faire des modifications.
✓ L’utilisateur sauvegarder les modifications.
Nom du cas : Gérer les adresse mac.
Pour empêcher le partage d’un seul compte entre plusieurs utilisateurs, on a limité les
appareils peuvent s’authentifié depuis le même compte par les adresses mac de ses appareils
Scénario explicatif :
✓ L’utilisateur s’authentifier
✓ Le système affiche le page d’accueil.
✓ L’utilisateur choisir accéder la page « Gérer mes adresse mac » via le « dropDown »
En haut.
✓ Le system affiche un tableau les adresse mac, les navigateurs et le system d’exploitation
Liée à l’utilisateur authentifie,
✓ L’utilisateur demande de l’envoie d’un mail de vérification avant qu’il puisse modifier
ses Adresse mac.
✓ Le system envoi un code de vérification vers l’email de l’utilisateur.
✓ L’utilisateur confirme le code et commence à faire ses modifications.
✓ L’utilisateur sauvegarder les modifications.
20
Nom du cas : Acheter des trophées.
Les trophées ce sont des cartes virtuelles vendu dans le marché du plateforme,
l’utilisateur peut les Acheter par une devise de la plateforme appelé « token », ses trophées
donne a l’utilisateur des Avantage dans son parcours de formation.
Scénario explicatif :
✓ L’utilisateur s’authentifier
✓ Le système affiche le page d’accueil.
✓ L’utilisateur choisir la page « Marché ».
✓ Le system affiche toutes les Trophées existe dans le marché avec leur prix et leurs
options
✓ L’utilisateur choisi le trophée qui il veut acheter
✓ S’il a le nombre de tokens suffisant il va poursuivre son achat.
✓ Le system déduire le nombre des tokens depuis le solde de l’utilisateur.
✓ Si l'utilisateur n'a pas un solde suffisant alors il doit convertir les points en tokens.
✓ Si l’utilisateur n’a pas les points suffisants donc l'achat ne peut pas être effectué.
Nom du cas : Participer au Cours.
Les Cours sont la formation offerte par le platform, ils sont sous forme des livre PDF ou
des vidéo explicatif ou bien des photos, un coure a un titre, un niveau, un nombre de point ou
de badge a obtenir par l’utilisateur lors qu’il le termine
Scénario explicatif :
✓ L’utilisateur s’authentifier
✓ Le système affiche le page d’accueil.
✓ L’utilisateur choisir la page « Dashboard ».
✓ Le system affiche la page Dashboard qui contient le niveau de l’utilisateur, le cour
suivante. et des statistiques relatifs a l’utilisateur tel que nombre de point, tokens.
✓ L’utilisateur accèdes vers la cour suivante.*
21
✓ S’il a terminé le cours le system va le donner les point et les badge de ce cour et afficher
le cour suivant, sinon le system doit enregistrer le progresse de l’utilisateur dans ce cours
La prochaine connexion de l’utilisateur.
Nom du cas : Passer Des Quiz.
Apres chaque cours l’utilisateur doit passer un Quiz pour qu’il puisse passer vers le
niveau
Suivant, il aura un nombre de point et badges comme une récompense.
Scénario explicatif :
✓ L’utilisateur Termine un cour.
✓ Le système affiche le page du quiz.
✓ L’utilisateur passe le quiz.
✓ S’il a terminé le quiz le system va le donner les point et les badges de ce quiz et le faite
monter vers le niveau suivant.
3-2 Administrateur :
Nom du cas : Gestion des Quiz.
Le quiz est un test que l’utilisateur doit passer après chaque cour il a terminé,
Chaque quiz se compose de plusieurs questions d’un seul choix ou de choix multiple.
Scénario explicatif :
✓ L’admin s’authentifier
✓ Le système affiche le centre de gestion.
✓ L’admin choisi de gérer les Quiz.
✓ Le system affiche la liste des Quiz avec la possibilité de des changement.
✓ L’admin faire les modification (suppression, modification, ajoute).
✓ L’admin sauvegarder les modifications.
22
Nom du cas : Gestion des Badges.
Le Badge est une récompense revoit par l’utilisateur lors il passe un Quiz ou bien lors
qu’il termine un cour.
Scénario explicatif :
✓ L’admin s’authentifier
✓ Le système affiche le centre de gestion.
✓ L’admin choisi de gérer les Badges.
✓ Le system affiche la liste des Badges avec la possibilité de des changement.
✓ L’admin faire les modification (suppression, modification, ajoute).
✓ L’admin sauvegarder les modifications.
Nom du cas : Gestion des Trophées.
Les trophées ce sont des cartes virtuelles vendu dans le marche du plateforme,
l’utilisateur peut les Acheter par un devise spécial du platform appelé « token » :
Scénario explicatif :
✓ L’admin s’authentifier
✓ Le système affiche le centre de gestion.
✓ L’admin choisi de gérer les Trophées.
✓ Le system affiche la liste des Trophées avec la possibilité de des changement.
✓ L’admin faire les modification (suppression, modification, ajoute).
✓ L’admin sauvegarder les modifications.
Nom du cas : Gestion des Cours.
Les Cours sont la formation offerte par le platform, ils sont sous forme des livre PDF ou
des vidéo explicatif ou bien des photos, un coure a un titre, un niveau, un nombre de point ou
de badge a obtenir par l’utilisateur lors qu’il le termine.
Scénario explicatif :
✓ L’admin s’authentifier
✓ Le système affiche le centre de gestion.
✓ L’admin choisi de gérer les Cours.
23
✓ Le system affiche la liste des Cours avec la possibilité de des changement.
✓ L’admin faire les modification (suppression, modification, ajoute).
✓ L’admin sauvegarder les modifications.
3-Diagramme de séquence :
Figure 5 : Diagramme de séquence "Passer un quiz" :
➔ Ce diagramme illustre le processus de passer un quiz par l’utilisateur avec ses
diffèrent interactions entre l’utilisateur et le system.
24
Figure 6 : Diagramme de séquence "Participer a un cour " :
➔ Ce diagramme Montre comment se déroule les différent processus de passer un quiz
par l’utilisateur avec ses diffèrent interactions entre l’utilisateur et le system.
25
Figure 7 : Diagramme de séquence "Ajouter Un Cour ".
➔ Ce diagramme illustre le processus d’ajouter un cour par l’administrateur et les
différant interaction entre l’admin et le system pour assurer le bon fonctionnement.
26
Figure 8 : Diagramme de séquence "Gestion des adresses mac".
➔ Ce diagramme illustre le processus de la gestion des adresse mac de l’utilisateur les
différant interaction avec et le system pour assurer le bon fonctionnement.
27
4- Diagramme d’activités :
28
Figure 9 : Diagramme d’activité "Gestion des badges".
➔ Ce diagramme illustre le processus de la gestion des badges par l’administrateur et le
scénario du fonctionnement.
Scenario normal
1. L’administrateur S’authentifier.
2. Le système Vérifie les informations entrées.
3. Le system ouvre le profil d’administrateur.
4. L’administrateur choisi le mode de modification.
5. L’administration entre les nouvelles informations pour l’ajoute et la modification du badge.
6. L’administrateur Valide les modifications
7. Le système Vérifie les informations entrées.
Scenario exceptionnel
1. Si les informations d’authentification ne sont pas valides, le system va rediriger
l’utilisateur vers la page d’authentification avec un message d’erreur.
2. Si les informations entrées du badge ne sont pas valides, le system va demander a l’admin
de ressaisir ses information.
29
Chapitre IV : les technologies utilisées
I- Les Framework
1-Qu’est-ce qu’un Framework?
Un framework désigne un ensemble de composants logiciels formant le squelette d’un
programme, conçu pour aider les développeurs informatiques dans leur travail de
programmation et leur offrir une base de travail réutilisable sur plusieurs projets.
Un framework s’apparente à un véritable espace de travail modulaire, réunissant les outils, les
ressources et les conventions ou normes nécessaires à la création d’applications web sur
mesure. Traduit littéralement, le mot anglais framework signifie « cadre de travail ». Cette
traduction est plutôt heureuse pour comprendre le concept qui se cache derrière le terme. Un
framework de développement est donc :
• Un ensemble cohérent de composants éprouvés et réutilisables
(bibliothèques, classes, helpers…).
• Un ensemble de préconisations pour la conception et le développement
d'applications.
Il existe un très grand nombre de frameworks et ce pour chaque technologie. Ils sont là
pour donner un cadre de travail au développeur. Grâce à ces outils, le développeur sera mieux
organisé, son code sera maintenable, évolutif et clair. En effet, deux développeurs utilisant le
même framework, n'auront donc aucun mal à se comprendre. Dans le monde du web il y’a
deux types de framework principale, ceux de la catégorie front-end, puis ceux de la catégorie
back-end.
30
1-1 :Front-End Framework :
Également appelés «frameworks CSS», il s'agit de packages contenant du code pré-écrit
et normalisé dans des fichiers et des dossiers. Ils vous donnent une base sur laquelle
construire tout en permettant une flexibilité dans la conception finale. En générale les
frameworks front-end contiennent les composants suivants:
• Une grille qui facilite l'organisation des éléments de conception de votre site Web
• Styles de police définis et taille variant en fonction de sa fonction (typographie
différente pour les titres par rapport aux paragraphes, etc.)
• Composants de site Web prédéfinis tels que les panneaux latéraux, les boutons et les
barres de navigation.
En fonction du cadre spécifique que vous choisissez, ils sont également beaucoup plus
capables de le faire. Voici quelques-uns des frameworks front-end le plus connus :
✓ Bootstrap
✓ Semantic-UI
✓ Foundation
✓ Materialize
31
1-2: Back-End Framework (PHP) :
Un framework PHP est une plateforme de base qui nous permet de développer des
applications web. En d'autres termes, il fournit une structure. En utilisant un framework PHP,
vous gagnerez du temps, vous éviterez de produire du code répétitif et vous pourrez créer des
applications rapidement (RAD). Sans un framework PHP en place, il est beaucoup plus
difficile de créer des applications car vous devrez coder de manière répétée beaucoup de PHP.
Vous devrez également établir la connexion entre votre base de données et l’application que
vous développez à partir de rien. Pendant ce temps, utilisation d’un framework PHP vous
permet d’assurer plus facilement cette connexion. Voici quelques-uns des frameworks back-
end le plus connus :
✓ Laravel
✓ CakePHP
✓ Symfony
✓ Zend Framework
32
2-Pourquoi un Framework?
Utiliser un framework comporte de nombreux avantages :
Nous sommes cadrés ! Comme son nom l’indique, le framework nous permet d’être plus
disciplinés et de ne pas partir dans tous les sens
Gain de temps et d’efficacité : le framework apporte de nombreux outils qui permettent de
ne pas réinventer la roue pour toutes les fonctionnalités courantes
Meilleure structuration du code : le cadre et les directives fournies par les frameworks
permettent de donner une structure et par conséquent, d’améliorer la qualité du code. Ils
permettent de construire une unité cohérente.
Maintenance simplifiée : un projet bien structuré est infiniment plus simple à maintenir
qu’un projet fourre-tout.
3-Analyse de différents Framework :
3-1: Front-End
➢ Bootstrap
compte parmi les plus populaires. Open Source, il présente un nombre important de
modules et d’extensions. La documentation disponible est tout aussi impressionnante. Il
fonctionne sur un système de grille en douze colonnes avec un affichage adapté pour
différentes tailles d’écran et il est possible de personnaliser les fichiers CSS.
➢ Materialize
s’appuie sur les recommandations design de Google et est fourni avec de nombreux
composants prêts à l’emploi.
33
3-2 : Back-End
➢ Symfony, le framework PHP avec la plus grande communauté
Symfony est incontestablement un des frameworks PHP les plus appréciés. Sa très
importante communauté rend les choses plus faciles en cas de difficulté et il est toujours
particulièrement agréable de ne pas se sentir seul face à son écran. La documentation est
également très fournie et accompagne les développeurs, qui se sentent généralement très à
l’aise en développement en Symfony. Symfony est particulièrement apprécié pour sa
modularité. Le framework offre de vastes possibilités de fonctions pour créer de nombreux
projets et applications à la fois stables et performantes. Le développement des API REST y est
très robuste et Symfony est donc un framework idéal pour les applications professionnelles.
➢ Laravel, un framework PHP de plus en plus populaire
Tout comme Symfony, Laravel est un framework très bien documenté. Là encore,
l’importante communauté permet de trouver rapidement réponse à ses questions en cas de
doute. Le framework Laravel offre à la fois la structure du modèle MVC et la rapidité de
développement que l’on attend d’un framework PHP. Laravel reprend le système de routage
Symfony et l’étend pour proposer un système d’envoi de mail, un moteur de template ultra-
efficace, un constructeur de formulaire particulièrement pratique, un créateur de requêtes
SQL, un ORM performant… et bien plus encore. Le principal avantage de Laravel est d’offrir
une structure claire au langage PHP. Complet et très puissant, il est parfois considéré comme
plus souple que Symfony.
34
➢ CakePHP, le framework idéal pour débuter en PHP
Très facile à prendre en main, CakePHP est un framework idéal pour les développeurs
débutants ou non initiés au PHP. La configuration de Cake est à la fois simple et ordonnée.
Elle utilise la convention MVC et propose différents outils de sécurité et de validation de
formulaire. CakePHP intègre un ORM particulièrement fonctionnel. Les requêtes de
construction sont très simples, et le framework est livré avec des plugins robustes permettant
de réutiliser le code très facilement. Les héritages de classe sont très compréhensibles, et la
communauté suffisamment développée pour trouver facilement réponse à ses questions. Cela
est d’autant plus le cas que la documentation est à la fois fournie et très simple à comprendre.
➢ Zend, pour une qualité de code irréprochable
Zend Framework est à la fois robuste et stable. Son package Open Source est très bien
documenté et bénéficie du soutien d’une large communauté de développeurs. Sa
documentation est également très complète. Zend permet à la fois de s’appuyer sur des
components MVC pour un code plus propre, d’avoir une architecture souple, et de développer
rapidement. Zend Framework est une solution particulièrement réputée pour la qualité de son
code. Son automatisation des mécanismes de protection des applications (filtrage de
validation d’entrée, Injection SQL, protection XSS) en fait un langage privilégié pour les gros
projets d’entreprise.
35
II-Choix du Framework et explication de ce choix
1-Front-End
Figure 9 : Logo du framework bootstrap.
Twitter Bootstrap est un framework CSS très puissant, permettant de développer et
concevoir des frontends/backends très rapidement sans avoir à passer par de l’intégration.
Comme les autres frameworks CSS que l’on peut trouver sur internet, il dispose d’une Grid
qui permet de placer les éléments avec beaucoup plus de facilité.
Mais Bootstrap se démarque des autres frameworks car il a l’avantage de :
• Etre “Responsive” (s’adapte à la taille de l’écran, que se soit tablette,
ordinateur, smartphone, etc.)
• Fonctionner sur tous les navigateurs.
• Posséder deux types de layout : le premier qui est fixe (la scrollbar
s’affichera si nécessaire), le second qui s’adapte à la largeur du
navigateur.
• Embarquer un tas de composants prêts à l’usage (labels, badges, boutons,
boutons dropdown, icônes, menus, navbar, progressbar, etc.) qui sont, qui
plus est, plutôt soignés.
36
• Posséder également une dizaine de composants JavaScript comme des
modals, tooltip, alert, carousel, etc. permettant de donner un peu
d’interaction à votre future interface.
• D’être développé en LESS.
En bref, c’est un framework très complet, et surtout agrémenté d’une très forte
communauté car il est le projet le plus “forké” et le plus suivi sur Github pour tous ces
raison il a été choisi.
2-Back-End
Figure 10 : Logo du framework Laravel.
Laravel a été choisi pour plusieurs raisons. Tout d’abord, il répondait aux critères de la
société, à savoir la mise en place de toutes les fonctionnalités désirées. Ensuite, bien
documenté qui permet de faire gagner du temps face à ces concurrents. Il possède une
communauté importante, ce qui nous donne la possibilité de trouver rapidement une réponse
en cas de doute. Laravel est un framework s’inspirant de ce qui existe de mieux, il reprends le
système de routage de Symfony en l’étendant de manière efficace, il utilise la bibliothèque
SwiftMailer pour l’envoi de mail, et bien d’autre encore. Tout en ajoutant ces propres
composants originaux pour former au final Laravel.
37
Laravel nous offre :
• un système d’envoi de mail.
• un système de routage performant,
• un moteur de template efficace,
• un constructeur de formulaire très pratique,
• un système d’authentification pour les connexions,
• un créateur de requêtes SQL et un ORM performants (éloquent).
3-Organisation du projet et division des tache :
Figure 11 : Logo du Git.
Git est un système de contrôle de version distribué gratuit et open source conçu pour tout
gérer, des petits aux très grands projets, avec rapidité et efficacité.
Git est facile à apprendre et a une faible empreinte avec des performances ultra-rapides. Il
surclasse les outils SCM tels que Subversion, CVS, Perforce et ClearCase avec des
fonctionnalités telles que des branchements locaux bon marché, des zones de transit pratiques
et des flux de travail multiples.
38
Chapitre IV : Avancement des travaux du projet
1-installation de laravel :
L’installation de Laravel a tout d’abord été faite sur un serveur local par le logiciel
composer qui est un logiciel gestionnaire de dépendances libre écrit en PHP. Il permet à ses
utilisateurs de déclarer et d'installer les bibliothèques dont le projet principal a besoin. Avant
d’installer Laravel et de le paramétrer, il a fallu mettre en place un serveur Web et créer une
base de données. Pour cela, Xampp a été téléchargé et installé. Le serveur utilisé est Apache
et concernant la base de donnée, il s’agit de MySQL.
2- cloner le projet déjà Crée :
Tout d'abord, pour Intégrer dans l'équipe de développement contribuer a des tache dans
le projet il faut le télécharger ou le cloner par un command dans la ligne de commande CMD
ou GIT BASH
Dans notre cas :
Figure 12 : commande clone.
39
Figure 13 : l’arborisant du projet.
40
Apreé cloner le projet il faut crée un base de donnée et modifier le fichier .env pour que
le projet puisse accéder à la base de données :
o Nom du serveur de base de données : localhost
o Le port de la base de données : 3306
o Nom de la base de données : oze_kids
o Nom de l’utilisateur de la base de données : root
o Mot de passe de la base de données : rien
Figure 14 : Le fichier de configuration “.env”.
41
3- L'avancement du projet
Jusque’ ce moment-là nous avons pas terminer le projet parce que on a toujours des
modification , ajouter des fonctionnalités, changer le Template ..etc.
je vais vous montrer la version la plus récente du site :
Figure 15 : la page d’authentification.
➔ C’est La première page qui apparaît à l'utilisateur, comme j’ai déjà dit l’utilisateur
peut être utilisateur simple ou administrateur , cette page va verifier les information de
l’utilisateur et le rediriger vers La page appropriée pour chaque type d’utilisateur
42
Une fois l'utilisateur authentifié, le système le redirigera vers le centre de gestion de
l'administrateur ou le profil client :
1-Simple Utilisateur :
Figure 16 : le profile de l’utilisateur.
Cette page contient :
✓ Navbar : Barre Fixée en haut de la page contient le nom d’utilisateur et son avatar, les
notifications barre de recherche et full-screen option
✓ Your Point : nombre de points de l’utilisateur.
✓ My level : le niveau de l’utilisateur.
✓ Customize me : changer l’avatar comme vous le verrez après.
✓ Mes informatons : Ou l’utilisateur peut modifier ses informations personnelles.
✓ Your progress : Progression de l'utilisateur dans toutes les formations.
✓ Your tokens : nombre de tokens de l’utilisateur.
✓ Trophies : le trophie en cours d’utilisation.
43
✓ Achievement : les badges obtenu(colorée) et non obtenu par l’utilisateur(noir et
blanc).
Si l’utilisateur Cliquer pour modifier sa photo d’avatar il ‘aura cette page de génération
d’avatar.
Figure 17 : pop-up de génération d’avatar.
➔ Ce générateur des avatars est un API qui prend en paramètre les valeur des « inputs »
de type « select » et retourne une image svg, le bouton du dé en bas à gauche permet de
choisir un avatar aléatoirement.
44
Figure 18 :générer un avatar aléatoirement.
➔ Pour éviter qu'un compte soit partagé entre plusieurs utilisateurs, nous avons adopté
une solution utilisant les adresses mac, on a limiter le nombre des adresse mac a cinq, Donc si
l'utilisateur dépasse ce nombre on l'empêche de se connecter depuis un autre appareil comme
vous voyez ci-dessous
45
Apres une section dans laquelle j'ai exprimé les ativitées principales du société, une
Figure 19 : L’erreur qui apparaitre si on a dépassé le nombre maximal des adresse mac .
➔ La solution ici c’est de se connecter depuis un appareil déjà enregistrer et
gérer les adresse mac (activer/désactiver) depuis la table suivante :
46
Figure 20 : table de gestion des adresse mac
➔ Pour des raisons de sécurité, l’utilisateur n’a pas le droit de modifier les
« checkboxes » du states de l’adresse mac, Cette Action a une procédure spéciale à suivre :
1. Cliquer sur activer les changements pour obtenir un code de vérification par email.
2. Entrer le code de vérification, si il est valide le system vas donner la main l’utilisateur de
modifié le statue des adresses mac.
47
Figure 21 : le code de vérification par mail.
Figure 22 : Si le code est valide.
48
Figure 23 : la page dashboard.
➔ En suite on a la page dashborad ou l’utilisateur peut participer a des cours, elle contient
✓ Xp Progress : un graphe présente les points obtenus par mois.
✓ Les image: sont les cours existe dans la formation.
✓ Le cercle autour des Images: Progression de l'utilisateur dans toutes le cour lié à
chaque image.
✓ Growth: Graphique montrant le pourcentage des formation terminées.
On n’a pas encore fini cette partie Au niveau Back-End.
49
Figure 24 : la page dashboard en bas.
2-Administrateur :
50
Figure 25 : la page de Gestion des Cours.
La gestion Des Cours, Badges, Quizz, Trophées et des notifications presque la même, on
a un DataTable avec tous les champs de notre objet (cour, badge, quiz, trophée ou bien
notification), le DataTable est remplie dynamiquement depuis la base de donnée,
Chaque ligne du DataTable contient deux boutons pour la suppression et pour la modification
Comme vous le verrez en détail en suite,
Chaque colonne dans le DataTable a deux flèches pour trier la table selon les valeurs de ce
champ.
La DataTable a une barre de recherche pour chercher dans la table
La page contient Aussi un bouton pour l’ajoute on va le simuler pour les trophées ci-dessous.
Le DataTable : une bibliothèque de javascript Il s'agit d’une table qui a plus de
fonctionnalités tel que le tri, la recherche, la responsivité et la pagination. etc.
51
Figure 26 : la suppression d’un badge.
Si on clique sur Supprimé le system vas actualiser la page avec un message de succès
Figure 27 : l’ajoute d’un quiz.
Si on clique sur ajouter dans la page des quizz on aura ce formulaire à remplir, il contient
tous les champs d’un quiz,
-titre du quiz.
-les points et les badges liée à ce quiz.
52
-Global : est ce que ce quiz et contribuer dans le résultat général du niveau actuel de
l’utilisateur
-Ce quiz appartient à quel cours.
-Le sous-formulaire pour les questions liée à ce Quiz (Ajouter Contenu pour ajouter une autre
question)
Figure 28 : la modification un badge.
La modification d’un badge nous ramenée vers le même formulaire de l’ajoute, mais les
champs sont déjà remplis par les anciennes valeurs.
53
I-Mes tache dans Le projet :
1-AdminCheck :
C’est une couche de sécurité consiste à empêcher les non-administrateur d’accédé vers le
centre de gestion de l’admin :
Figure 29 : code source du midlleware AdminCheck .
Ce middleware var rediriger l’utilisateur var son page actuel s’il a tenté d'accéder vers le
centre de gestion de l’admin.
2-MacCheck :
C'est la partie des adresses mac décrite ci-dessus.
54
Figure 30 : code source du midlleware MacCheck .
Ce middleware s'exécutent lors de la connexion, il compte les adresses mac active distincte de
l’utilisateur en traine d’authentifier, Si le nombre est dépasser 5 le middleware va empêcher
l’utilisateur de s’authentifier avec un message d’erreur comme indiquée dans la figue **.
3-CRUDs :
CRUD s’est les quatre fonctionnalités principales dans la gestion d’un objet :
C : CREATE
R : READ
U : UPDATE
D : DELETE
Au cours de ce stage j’ai implémenté plusieurs CRUD tel que : la gestion des Trophée, la
gestion des Badges comme indiquer dans la partie Administrateur en dessu.
55
Pour implémenter un CRUD il faut d’abord crée le model et le table de migration depuis cette
command
php artisan make:model Trophie -m
Cette commande va créer un model (classe) Trophée, et la « -m » var générer un fichier de
migration pour le model.
Figure 31 : code source du model Trophie.
Figure 32 : code source du fichier de migration trophies.
56
Il faut ajouter les champs au table trophies et exécuter la commande
php artisan migrate
Après l’exécution de cette commande on aura la table dans notre serveur :
Figure 33 : la table générée dans le serveur.
Puis il faut crée le Controlleur qui va gérer les interactions avec le serveur et implémenter les
méthodes nécessaires
Php artisan make:controller TrophieController
57
Figure 34 : code source du Controlleur TrophieController .
58
Chapitre V : Conclusion
Conclusion générale
Ce stage m’a apporté une nouvelle expérience professionnelle enrichissante. Grâce à ces
deux mois passés au sein de la société IN4, j’ai acquis de nouvelles connaissances autant sur
le milieu de l’entreprise que sur les langages informatiques.
Travaillé avec des frameworks tel que Laravel et Bootstrap a été bénéfique puisque j’ai pu
développer mes connaissances des langages PHP, HTML, CSS et javascript ainsi que celles
des langages-objet. J’ai bien entendu rencontrer quelques problèmes lors de la conception du
site tels que les erreurs générées par le php ou par des problèmes de compatibilités. Ces
problèmes ont tous été résolus à l’aide de mes encadrant iliass et houssam et m’ont également
apporté de nouveaux savoirs.
Au cours de Ces deux mois j’ai pu maitriser l'utilisation des frameworks front-end et back-
end, Et d’autres outils que je ne connaissais que de nom et que j’ai appris à les utilisées lors
de ce stage. J’ai eu aussi la chance d’assister et travailler dans une équipe de développement.
59
Bibliographie
J’étais basé sur la documentation du sites officiels des frameworks utilisées «
Laravel, Botstrap ». Mais il existe plusieur sources d’informations dont voici les
principales :
www.laravel.com : le site officiel de Laravel avec un forum actif.
www.laracasts.com : le forume officiel de Laravel.
www.laravel.io : le forum officiel.
www.laracasts.com : De nombreux tutoriels vidéo en anglais dont un certain nombre en
accées gratuit dont une série complète pour Laravel 8.
www.getbootstrap.com : le site officiel de Bootstrap.
www.codepen.io : ce site m'a aidé au niveau du design de site Web.
www.stackoverflow.com/documentation/laravel/topics : Le site des questions il y a
plusieurs solutions sur les problèmes du Laravel.

Recommandé

Rapport- Conception et réalisation d'une plateforme social learning par
Rapport- Conception et réalisation d'une plateforme social learningRapport- Conception et réalisation d'une plateforme social learning
Rapport- Conception et réalisation d'une plateforme social learningRouâa Ben Hammouda
39.4K vues74 diapositives
Rapport Projet de fin d'etude sur le parc informatique par
Rapport Projet  de fin d'etude sur le parc informatiqueRapport Projet  de fin d'etude sur le parc informatique
Rapport Projet de fin d'etude sur le parc informatiqueHicham Ben
68.4K vues96 diapositives
Rapport pfe Conceptionet Developpement d'une Application web et Mobile par
Rapport pfe Conceptionet Developpement d'une Application web et  Mobile Rapport pfe Conceptionet Developpement d'une Application web et  Mobile
Rapport pfe Conceptionet Developpement d'une Application web et Mobile Raoua Bennasr
17.1K vues108 diapositives
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2 par
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 Symfony2Sofien Benrhouma
155.6K vues69 diapositives
CONCEPTION ET REALISATION D ’ UNE APPLICATION WEB POUR GESTION DE P ROJETS DE... par
CONCEPTION ET REALISATION D ’ UNE APPLICATION WEB POUR GESTION DE P ROJETS DE...CONCEPTION ET REALISATION D ’ UNE APPLICATION WEB POUR GESTION DE P ROJETS DE...
CONCEPTION ET REALISATION D ’ UNE APPLICATION WEB POUR GESTION DE P ROJETS DE...Madjid Meddah
11K vues77 diapositives
Rapport stage pfe par
Rapport stage  pfe Rapport stage  pfe
Rapport stage pfe rimeh moussi
33.6K vues111 diapositives

Contenu connexe

Tendances

Rapport PFE : Développement D'une application de gestion des cartes de fidéli... par
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...Riadh K.
202K vues91 diapositives
Rapport de stage PFE - Mémoire master: Développement d'une application Android par
Rapport de stage PFE - Mémoire master: Développement d'une application AndroidRapport de stage PFE - Mémoire master: Développement d'une application Android
Rapport de stage PFE - Mémoire master: Développement d'une application AndroidBadrElattaoui
36K vues103 diapositives
Rapport de stage de fin d'études ISI 2015 par
Rapport de stage de fin d'études ISI 2015Rapport de stage de fin d'études ISI 2015
Rapport de stage de fin d'études ISI 2015Anouar Kacem
11.7K vues73 diapositives
Pfe conception et développement d'une application web GMAO JEE par
Pfe conception et développement d'une application web GMAO JEEPfe conception et développement d'une application web GMAO JEE
Pfe conception et développement d'une application web GMAO JEEOussama Djerba
98.2K vues91 diapositives
Ecole ESMA : Rapport de projet - Application de gestion d'une bibliotheque par
Ecole ESMA : Rapport de projet - Application de gestion d'une bibliothequeEcole ESMA : Rapport de projet - Application de gestion d'une bibliotheque
Ecole ESMA : Rapport de projet - Application de gestion d'une bibliothequeMehdi Hamime
26.4K vues23 diapositives
Conception et réalisation d'une application de gestion intégrée au sein de la... par
Conception et réalisation d'une application de gestion intégrée au sein de la...Conception et réalisation d'une application de gestion intégrée au sein de la...
Conception et réalisation d'une application de gestion intégrée au sein de la...Addi Ait-Mlouk
128.2K vues96 diapositives

Tendances(20)

Rapport PFE : Développement D'une application de gestion des cartes de fidéli... par Riadh K.
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Riadh K.202K vues
Rapport de stage PFE - Mémoire master: Développement d'une application Android par BadrElattaoui
Rapport de stage PFE - Mémoire master: Développement d'une application AndroidRapport de stage PFE - Mémoire master: Développement d'une application Android
Rapport de stage PFE - Mémoire master: Développement d'une application Android
BadrElattaoui36K vues
Rapport de stage de fin d'études ISI 2015 par Anouar Kacem
Rapport de stage de fin d'études ISI 2015Rapport de stage de fin d'études ISI 2015
Rapport de stage de fin d'études ISI 2015
Anouar Kacem11.7K vues
Pfe conception et développement d'une application web GMAO JEE par Oussama Djerba
Pfe conception et développement d'une application web GMAO JEEPfe conception et développement d'une application web GMAO JEE
Pfe conception et développement d'une application web GMAO JEE
Oussama Djerba98.2K vues
Ecole ESMA : Rapport de projet - Application de gestion d'une bibliotheque par Mehdi Hamime
Ecole ESMA : Rapport de projet - Application de gestion d'une bibliothequeEcole ESMA : Rapport de projet - Application de gestion d'une bibliotheque
Ecole ESMA : Rapport de projet - Application de gestion d'une bibliotheque
Mehdi Hamime26.4K vues
Conception et réalisation d'une application de gestion intégrée au sein de la... par Addi Ait-Mlouk
Conception et réalisation d'une application de gestion intégrée au sein de la...Conception et réalisation d'une application de gestion intégrée au sein de la...
Conception et réalisation d'une application de gestion intégrée au sein de la...
Addi Ait-Mlouk128.2K vues
Projet de fin étude ( LFIG : Conception et Développement d'une application W... par Ramzi Noumairi
Projet de fin étude  ( LFIG : Conception et Développement d'une application W...Projet de fin étude  ( LFIG : Conception et Développement d'une application W...
Projet de fin étude ( LFIG : Conception et Développement d'une application W...
Ramzi Noumairi20.4K vues
Conception d’une plateforme web d’e-Commerce au sein d’une entreprise commerc... par Symphorien Niyonzima
Conception d’une plateforme web d’e-Commerce au sein d’une entreprise commerc...Conception d’une plateforme web d’e-Commerce au sein d’une entreprise commerc...
Conception d’une plateforme web d’e-Commerce au sein d’une entreprise commerc...
Rapport final pfe_systeme_de_gestion _de_cabinet_de_formation_mobile_web par Salma Gouia
Rapport final pfe_systeme_de_gestion _de_cabinet_de_formation_mobile_webRapport final pfe_systeme_de_gestion _de_cabinet_de_formation_mobile_web
Rapport final pfe_systeme_de_gestion _de_cabinet_de_formation_mobile_web
Salma Gouia6.2K vues
rapport de projet de fin d'étude_PFE par Donia Hammami
rapport de projet de fin d'étude_PFErapport de projet de fin d'étude_PFE
rapport de projet de fin d'étude_PFE
Donia Hammami45.3K vues
Conception et développement d'une application Android pour TUNISAIR par Skander Driss
Conception et développement d'une application Android pour TUNISAIRConception et développement d'une application Android pour TUNISAIR
Conception et développement d'une application Android pour TUNISAIR
Skander Driss6.7K vues
Rapport de projet de fin d'étude licence informatique et multimédia par Nazih Heni
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
Nazih Heni181.3K vues
Rapport pfe talan_2018_donia_hammami par Donia Hammami
Rapport pfe talan_2018_donia_hammamiRapport pfe talan_2018_donia_hammami
Rapport pfe talan_2018_donia_hammami
Donia Hammami33.6K vues
Rapport pfe isi_Big data Analytique par Yosra ADDALI
Rapport pfe isi_Big data AnalytiqueRapport pfe isi_Big data Analytique
Rapport pfe isi_Big data Analytique
Yosra ADDALI15.1K vues
Rapport du Projet de Fin d'année Génie informatique par ayoub daoudi
Rapport du Projet de Fin d'année Génie informatique Rapport du Projet de Fin d'année Génie informatique
Rapport du Projet de Fin d'année Génie informatique
ayoub daoudi7.6K vues
Rapport projet c : Logiciel de gestion des ressources humaines par Hosni Mansour
Rapport projet c : Logiciel de gestion des ressources humainesRapport projet c : Logiciel de gestion des ressources humaines
Rapport projet c : Logiciel de gestion des ressources humaines
Hosni Mansour11.4K vues
RapportPFE_IngenieurInformatique_ESPRIT par Lina Meddeb
RapportPFE_IngenieurInformatique_ESPRITRapportPFE_IngenieurInformatique_ESPRIT
RapportPFE_IngenieurInformatique_ESPRIT
Lina Meddeb6.3K vues
Rapport de Stage PFE - Développement d'un Projet ALTEN MAROC Concernant le Sy... par tayebbousfiha1
Rapport de Stage PFE - Développement d'un Projet ALTEN MAROC Concernant le Sy...Rapport de Stage PFE - Développement d'un Projet ALTEN MAROC Concernant le Sy...
Rapport de Stage PFE - Développement d'un Projet ALTEN MAROC Concernant le Sy...
tayebbousfiha15.2K vues

Similaire à Rapport de stage développement informatique

Les serious games - Mémoire de master en Sc. Educ de Bernard Lamailloux par
Les serious games - Mémoire de master en Sc. Educ de Bernard LamaillouxLes serious games - Mémoire de master en Sc. Educ de Bernard Lamailloux
Les serious games - Mémoire de master en Sc. Educ de Bernard LamaillouxBernard Lamailloux
20.3K vues110 diapositives
Rapport stage pact13 par
Rapport stage pact13Rapport stage pact13
Rapport stage pact13Faustine Loiseau
3.2K vues47 diapositives
Technocles2010 1 par
Technocles2010 1Technocles2010 1
Technocles2010 1Cyril Durand
942 vues46 diapositives
L'impact des médias sociaux sur l'entreprise par
L'impact des médias sociaux sur l'entrepriseL'impact des médias sociaux sur l'entreprise
L'impact des médias sociaux sur l'entrepriseIdnition
28.5K vues87 diapositives
rapport de stage. par
rapport de stage.rapport de stage.
rapport de stage.wajdi1985
4.8K vues123 diapositives
Manuel administrateurs NetExplorer par
Manuel administrateurs NetExplorerManuel administrateurs NetExplorer
Manuel administrateurs NetExplorerNetExplorer
1.7K vues92 diapositives

Similaire à Rapport de stage développement informatique (20)

Les serious games - Mémoire de master en Sc. Educ de Bernard Lamailloux par Bernard Lamailloux
Les serious games - Mémoire de master en Sc. Educ de Bernard LamaillouxLes serious games - Mémoire de master en Sc. Educ de Bernard Lamailloux
Les serious games - Mémoire de master en Sc. Educ de Bernard Lamailloux
Bernard Lamailloux20.3K vues
L'impact des médias sociaux sur l'entreprise par Idnition
L'impact des médias sociaux sur l'entrepriseL'impact des médias sociaux sur l'entreprise
L'impact des médias sociaux sur l'entreprise
Idnition28.5K vues
rapport de stage. par wajdi1985
rapport de stage.rapport de stage.
rapport de stage.
wajdi19854.8K vues
Manuel administrateurs NetExplorer par NetExplorer
Manuel administrateurs NetExplorerManuel administrateurs NetExplorer
Manuel administrateurs NetExplorer
NetExplorer1.7K vues
La génération 2.0 chinoise par svenska33
La génération 2.0 chinoiseLa génération 2.0 chinoise
La génération 2.0 chinoise
svenska332.7K vues
Rapport PFE BIAT Conception et mise en place d’une plate-forme de gestion des... par Yasmine Lachheb
Rapport PFE BIAT Conception et mise en place d’une plate-forme de gestion des...Rapport PFE BIAT Conception et mise en place d’une plate-forme de gestion des...
Rapport PFE BIAT Conception et mise en place d’une plate-forme de gestion des...
Yasmine Lachheb17.7K vues
Terminaux et Réseaux - Répartir l'intelligence par Philippe DEWOST
Terminaux et Réseaux - Répartir l'intelligenceTerminaux et Réseaux - Répartir l'intelligence
Terminaux et Réseaux - Répartir l'intelligence
Philippe DEWOST1.3K vues
gestion de notariat avec openerp par HORIYASOFT
gestion de notariat avec openerpgestion de notariat avec openerp
gestion de notariat avec openerp
HORIYASOFT2.7K vues
Guide Utilisateur Codendi 4.0 par Codendi
Guide Utilisateur Codendi 4.0Guide Utilisateur Codendi 4.0
Guide Utilisateur Codendi 4.0
Codendi5.1K vues
La génération numérique en france. usages d'internet et comportements face au... par sophie mateo
La génération numérique en france. usages d'internet et comportements face au...La génération numérique en france. usages d'internet et comportements face au...
La génération numérique en france. usages d'internet et comportements face au...
sophie mateo11.1K vues
Conception et développement d'une application de gestion de production et de ... par Mohamed Aziz Chetoui
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 ...

Dernier

Caprinov2023 Reconquête de l’engraissement du chevreau à la ferme comment en... par
Caprinov2023 Reconquête de l’engraissement du chevreau à la ferme  comment en...Caprinov2023 Reconquête de l’engraissement du chevreau à la ferme  comment en...
Caprinov2023 Reconquête de l’engraissement du chevreau à la ferme comment en...Institut de l'Elevage - Idele
27 vues50 diapositives
BeBop : l’apport des vidéos pour analyser le comportement des taurillons par
BeBop : l’apport des vidéos pour analyser le comportement des taurillonsBeBop : l’apport des vidéos pour analyser le comportement des taurillons
BeBop : l’apport des vidéos pour analyser le comportement des taurillonsInstitut de l'Elevage - Idele
12 vues24 diapositives
GAV2023 - Méthane 2030 - Une démarche collective française à destination de t... par
GAV2023 - Méthane 2030 - Une démarche collective française à destination de t...GAV2023 - Méthane 2030 - Une démarche collective française à destination de t...
GAV2023 - Méthane 2030 - Une démarche collective française à destination de t...Institut de l'Elevage - Idele
118 vues14 diapositives
GAV2023 - Quel cheptel et quels leviers de décarbonation la filière met en pl... par
GAV2023 - Quel cheptel et quels leviers de décarbonation la filière met en pl...GAV2023 - Quel cheptel et quels leviers de décarbonation la filière met en pl...
GAV2023 - Quel cheptel et quels leviers de décarbonation la filière met en pl...Institut de l'Elevage - Idele
137 vues17 diapositives
GAV2023 - L’albédo (α) des prairies : un levier d'atténuation du changement c... par
GAV2023 - L’albédo (α) des prairies : un levier d'atténuation du changement c...GAV2023 - L’albédo (α) des prairies : un levier d'atténuation du changement c...
GAV2023 - L’albédo (α) des prairies : un levier d'atténuation du changement c...Institut de l'Elevage - Idele
110 vues18 diapositives
GAV2023 - Diversité et transformation de l'élevage bovin allaitant français. ... par
GAV2023 - Diversité et transformation de l'élevage bovin allaitant français. ...GAV2023 - Diversité et transformation de l'élevage bovin allaitant français. ...
GAV2023 - Diversité et transformation de l'élevage bovin allaitant français. ...Institut de l'Elevage - Idele
143 vues12 diapositives

Dernier(20)

Rapport de stage développement informatique

  • 1. 2 Département Génie Informatique Mémoire de Stage de Fin d’Etudes Présenté pour l’obtention du Diplôme Licence Professionnelle Filière Développement des Systèmes d'Information et de Communication Entreprise IN4 Présenté Par EL MAHDI OUQAS Titre Contribuer à la réalisation d’un projet LMS Encadré au niveau entreprise par ILIASS BOUTALHA Soutenu le 25/06/2021 devant le jury Pr. NABIL BENAMAR UMI-EST-Meknès Pr. El OUAZZANI RAJAE UMI-EST-Meknès
  • 2. 3 Table desmatières Table des figures.................................................................................................................................................. 5 Dédicace ............................................................................................................................................................... 7 Remerciements .................................................................................................................................................... 8 Chapitre V : Introduction .................................................................................................................................. 9 1-Le Contexte de stage....................................................................................................................................................9 2-L’entreprise in4 :..........................................................................................................................................................9 Chapitre II : présentation de projet ................................................................................................................ 11 I-Etude de projet : ........................................................................................................................................... 11 1-Objectifs du projet .....................................................................................................................................................11 2-C'est quoi, une plate-forme d'apprentissage en ligne? ...............................................................................................11 3- E-learning .................................................................................................................................................................12 4-Etude des besoins fonctionnels..................................................................................................................................12 5-Etude des besoins non fonctionnels...........................................................................................................................13 Chapitre III : Conception du projet................................................................................................................ 15 I-Choix de langage de modélisation : ............................................................................................................. 15 1-UML ..........................................................................................................................................................................15 II- diagrammes UML : .................................................................................................................................... 15 1-Diagramme de classe .................................................................................................................................................15 2-Diagramme de cas d’utilisation .................................................................................................................................18 3-Diagramme de séquence :..........................................................................................................................................23 4- Diagramme d’activités :............................................................................................................................................27 Chapitre III : les technologies utilisées ........................................................................................................... 29 I- Les Framework............................................................................................................................................ 29 1-Qu’est-ce qu’un Framework? ....................................................................................................................................29 2-Pourquoi un Framework? ..........................................................................................................................................32 3-Analyse de différents Framework :............................................................................................................................32 II-Choix du Framework et explication de ce choix......................................................................................... 35 1-Front-End...................................................................................................................................................................35 2-Back-End ...................................................................................................................................................................36
  • 3. 4 3-Organisation du projet et division des tache :............................................................................................................37 Chapitre IV : Avancement des travaux du projet ......................................................................................... 38 1-installation de laravel :...............................................................................................................................................38 2- cloner le projet déjà Crée :........................................................................................................................................38 3- L'avancement du projet.............................................................................................................................................41 I-Mes tache dans Le projet:............................................................................................................................. 53 1-AdminCheck :............................................................................................................................................................53 2-MacCheck :................................................................................................................................................................53 3-CRUDs : ....................................................................................................................................................................54 Chapitre V : Conclusion................................................................................................................................... 58 Conclusion générale........................................................................................................................................ 58 Bibliographie................................................................................................................................................... 59
  • 4. 5 Table des figures Figure 1 : Logo de la société In4........................................................................................................... 10 Figure 2 : Organigramme du projet a réalisé ...................................................................................... 16 Figure 3 : Diagramme de classe........................................................................................................... 19 Figure 4 : Diagramme de cas d'utilisation générale............................................................................21 Figure 5 : Diagramme de séquence "Passer un quiz" ...................................................................... 26 Figure 6 : Diagramme de séquence "Participer a un cour " ........................................................... 27 Figure 7 : Diagramme de séquence "Ajouter Un Cour ".................................................................. 28 Figure 8 : Diagramme de séquence "Gestion des adresses mac ".................................................... 29 Figure 9 : Diagramme d’activité "Gestion des badges".................................................................... 31 Figure 10 : Logo du framework Laravel.................................................................................................40 Figure 11 : Logo du Git ....................................................................................................................... 41 Figure 12 : commande clone ................................................................................................................ 43 Figure 13 : l’arborisant du projet........................................................................................................ 44 Figure 14 : Le fichier de configuration “.env”. .................................................................................. 45 Figure 15 : la page d’authentification ................................................................................................. 46 Figure 16 : le profile de l’utilisateur.................................................................................................... 47 Figure 17 : pop-up de génération d’avatar......................................................................................... 48 Figure 18 : générer un avatar aléatoirement...................................................................................... 49 Figure 19 : L’erreur qui apparaitre si on a dépassé le nombre maximal des adresse mac ………50 Figure 20 : table de gestion des adresse mac...............................................................................................51 Figure 21 : Le fichier de routage "web.php"...................................................................................... 52 Figure 22 : le code de vérification par mail ........................................................................................ 52 Figure 23 : la page dashboard.............................................................................................................. 53 Figure 24 : la page dashboard en bas.................................................................................................. 54 Figure 25 : la page de Gestion des Cours............................................................................................ 55 Figure 26 : la suppression d’un badge. ............................................................................................... 56
  • 5. 6 Figure 27 : l’ajoute d’un quiz............................................................................................................... 56 Figure 28 : la modification un badge................................................................................................... 57 Figure 29 : Le code source du midlleware AdminCheck. ................................................................. 59 Figure 30 : Le code source du midlleware MacCheck....................................................................... 41 Figure 31 : Le code source du model Trophie.................................................................................... 60 Figure 32 : Le code source du fichier de migration trophies. ........................................................... 60 Figure 33 : la table générée dans le serveur........................................................................................ 61 Figure 34 : code source du Controlleur TrophieController.............................................................. 62
  • 6. 7 Dédicace En têtes de la liste de toutes personnes nous plaçons les membres de nos familles bien aimés qui ne nous ont jamais hésité à nous offrir le meilleur qu’ils pouvaient. Notamment à nos chers parents En témoigne de notre profonde gratitude et pour tous les sacrifices qu'ils ont fait, Grâce à leurs encouragements, leur soutiens moral et matériel, et leurs amours infinis.
  • 7. 8 Remerciements Auterme de stage de fin d’etude quej’aieffectué ausein de la société IN4 à MEKNES, je tiens à exprimer mes sincères remerciements et mes profondes gratitudes à « Monsieur Boutalha Iliass et Monsieur Houssam Sadiki pour m’avoir encadré tout au long de la période de stage, je tiens aussi à remercier toutes l’équipe IN4 pour leur support que j’apprécie beaucoup. Mes remerciements vont à tous mes enseignants et professeurs au sein de l’Ecole Supérieur de technologie Meknès pour leur sympathie, leurs conseils et directives, lesquels me seront sans nul doute d’un grand intérêt, pour mon parcours académique et professionnel.
  • 8. 9 Chapitre I : Introduction 1-Le Contexte de stage Ce stage entre dans le cadre de l’approfondissement des apprentissages théoriques et l’amélioration des compétences techniques, professionnels et personnels afin de se préparer pour une intégration moins difficile dans le marché de travail. Puisque l’évolution du monde favorise le tout digital, j’ai choisi de faire mon stage de fin d’études de deux mois dans une société active dans le domaine de digitalisation et de l’informatique, afin de se familiariser avec les outils et méthodes de conceptions et développement des projets informatiques. Figure 1 : Logo de la société In4 2-L’entreprise in4 : IN4 est une société fondée en 2019, qui accompagne ses clients dans la transformation digitale de leur entreprise. Animé par la passion du numérique, de l’innovation et du management de transition. L’équipe IN4 dont le chef est le président directeur général de la société « M. Nabil LEMRAZI » est composé de profils confirmés et complémentaires dont la mission est de transformer le défi de digitalisation en une réelle opportunité. Installée à MEKNES au MAROC, IN4 offre aux entreprises, aussi bien marocaines qu’étrangères, un service optimal dans le domaine de la transformation digitale en mettant la collaboration, la Cocréation et l’adaptabilité au cœur de son intervention.
  • 9. 10 La société IN4 est principalement active dans les domaines suivants :
  • 10. 11 Chapitre II : présentation de projet I-Etude de projet : Le système consiste à mettre en place pour un client(directeur d’une école privée), une plateforme sociale Learning pour les étudiant de l’école qui souhaitent bénéficier du cours accélérés. 1-Objectifs du projet Dans un secteur où les contraintes de formation en présentiel sont importantes (disponibilité, le frais de déplacement, etc.), le concept de la formation à distance offre des réponses complémentaires et une plus grande flexibilité à l’apprenant qui pourra se former à son rythme en fonction de ses disponibilités. Notre objectif consiste à créer une plateforme du social Learning qui répond au besoin du tuteur et des apprenants à la fois et de manière à : ✓ Favoriser une pédagogie socioconstructiviste (collaboration, activités, réflexion critique, etc.), ✓ Garantir plus de souplesse pour la planification des formations à l’aide d’une interface ergonomique, légère, efficace, compatible et simple à manipuler pour les différents utilisateurs, ✓ Faciliter l’accès aux ressources et services, ✓ Offrir aux apprenants un espace d’apprentissage individualisé, ✓ Faciliter le partage, la production, la communication et la collaboration à distance, 2-C'est quoi, une plate-forme d'apprentissage en ligne? Une plateforme d'apprentissage en ligne, appelée encore LMS (Learning Management System), est un site web qui héberge le contenu didactique et facilite la gestion de l'apprentissage et la mise en œuvre de stratégies pédagogiques.
  • 11. 12 3- E-learning Le E-learning, ou formation en ligne est une technique de formation reposant sur la mise à disposition de contenus pédagogiques via un support électronique : Cd-rom, Internet, intranet, extranet, etc. Le E-learning désigne les outils, les applications et l’ensemble des contenus mis à disposition d’un stagiaire dans le but d’une formation pédagogique. Longtemps réduites à des supports cd- rom, le E-learning a évolué et utilise dorénavant le web et différentes applications. Contrairement à ce que l’on pourrait penser. Cette solution permet aussi de nombreuses possibilités d’échange et d’interactivité. 4-Etude des besoins fonctionnels Les besoins fonctionnels représentent les attentes de chaque acteur de la future plate- forme. Toute solution conceptuelle doit satisfaire, préalablement, à des besoins fonctionnels afin de délimiter le périmètre fonctionnel de l‘application et surveiller la traçabilité des besoins lors de la phase de développement. La présente plateforme doit satisfaire les besoins fonctionnels suivants : ▪ La gestion des utilisateurs, ▪ La gestion des cours, ▪ La gestion des Trophées, ▪ La gestion des Quizz, ▪ La gestion des badges, ▪ La gestion des points, ▪ La gestion des Adresse Mac,
  • 12. 13 5-Etude des besoins non fonctionnels Un besoin non fonctionnel est une restriction ou une contrainte qui pèse sur un service du système, telle les contraintes liées à l’environnement et à l’implémentation et les exigences en matière de performances. Les besoins non fonctionnels : ▪ Le code doit être clair pour permettre des futures évolutions ou améliorations, ▪ La plateforme doit fournir un accès rapide aux informations, et doit faire la mise à jour en temps réel, ▪ La plateforme doit être portable, extensible, réutilisable et fiable, ▪ La plateforme offre une interface conviviale et facile à utiliser, ▪ La plateforme doit garantir la confidentialité, l’intégrité et la cohérence des données. 5-1 : Les acteurs système Un acteur représente l’abstraction d’un rôle joué par des entités externes (utilisateur, dispositif matériel ou autre système) qui interagissent directement avec le système étudié. Les acteurs interagissant avec notre système sont : • Administrateur : il anime les formations et responsable de l’administration du site. • Client ou utilisateur : Assister à les formations.
  • 13. 14 Figure 2 : Organigramme du projet a réalisé : Cette figure représente un schéma général du fonctionnement de platform
  • 14. 15 Chapitre III : Conception du projet I-Choix de langage de modélisation : 1-UML UML est un langage de modélisation, très répandu et très utile pour la conception des systèmes d'informations orientées objets. C'est vrai que UML n'est pas choisi automatiquement pour la conception mais il est déjà plus connu que merise et merise n'est pas orientée objet. Pour les applications web, je pense que UML exprime mieux la vue statique et dynamique du système d’information : il propose je presque 13 diagrammes qu'on peut exploiter pour définir les fonctionnalités du système (use case) et les objets y intervenant (modèle de domaine) ... Donc une application web nécessite vraiment une analyse très approfondie pour pouvoir dégager les nécessités de développement ainsi que quelques scénarios d'exécution. II- diagrammes UML : 1-Diagramme de classe
  • 15. 16 Figure 3 : Diagramme de classe ➔Ce diagramme représente les classes nécessaires pour assurer un bon fonctionnement du système à mettre en œuvre.
  • 16. 17 • User : C’est la class la plus dominant de le fonctionnement du system, elle est dédié à tous ce qui concerne les interactions de l’utilisateur Soit Administrateur ou Client. • Spended_Time : Consiste à gérer le temps passer par le client dans la plateforme. • Badges : Gere tous les badges existe dans la plateforme. • AsignBadge : les badges obtenus par l’utilisateur. • Quize : Toutes les quizes existe dans la plateforme, chaque quiz a plusieurs questions qui ont des reponse a un ou multiple choix. • Question : ce qui concerne toutes les questions relative a un Quiz, peut être un ou multiple. • Answer : contient le la réponse liée a chaque des Question. • QuizTest : Le quiz passer par un utilisateur, contient aussi le temp passée par ce client dans ce test. • Macs : Cette class dédié pour gérer les Adresse mac des appareils d’un utilisateur. • Cour : la classe gérer les cours de la formation, ils peuvent être des images, vidéo ou un livre pdf. • ViewedCour : les cours déjà vue par l’utilisateur, elle contient aussi le temps passé dans le cour et la progression de l’utilisateur. • Trophies : ils sont des produits virtuels que l’utilisateur peut les acheter depuis le « market ». • Points : C'est comme le concept de badge.
  • 17. 18 2-Diagramme de cas d’utilisation Dans le but de mieux comprendre notre système et les interactions avec les utilisateurs, dans cette partie nous allons détailler les scenarios de principaux cas d’utilisation Figure 4 : Diagramme de cas d'utilisation générale. ➔ Cette figure représente le diagramme de cas d’utilisation globale qui est compose de deux acteurs admin et utilisateur et de quatre cas de gestion pour l’admin et quatre pour l’utilisateur et un qui est commun entre les deux C’est L’Authentification. Je vais détailler les cas dans ce qui suit.
  • 18. 19 3-1 Utilisateur : Nom du cas : Modifier le profile. Chaque utilisateur a un profil avec ses propres informations telles que le nom, prénom, adresse, avatar.. , dans ce cas l’utilisateur peut Modifier ses information. Scénario explicatif : ✓ L’utilisateur s’authentifier ✓ Le système affiche le page d’accueil. ✓ L’utilisateur choisir « mes information ». ✓ Le système affiche toutes les informations relatives à l'utilisateur authentifié. ✓ L’utilisateur faire des modifications. ✓ L’utilisateur sauvegarder les modifications. Nom du cas : Gérer les adresse mac. Pour empêcher le partage d’un seul compte entre plusieurs utilisateurs, on a limité les appareils peuvent s’authentifié depuis le même compte par les adresses mac de ses appareils Scénario explicatif : ✓ L’utilisateur s’authentifier ✓ Le système affiche le page d’accueil. ✓ L’utilisateur choisir accéder la page « Gérer mes adresse mac » via le « dropDown » En haut. ✓ Le system affiche un tableau les adresse mac, les navigateurs et le system d’exploitation Liée à l’utilisateur authentifie, ✓ L’utilisateur demande de l’envoie d’un mail de vérification avant qu’il puisse modifier ses Adresse mac. ✓ Le system envoi un code de vérification vers l’email de l’utilisateur. ✓ L’utilisateur confirme le code et commence à faire ses modifications. ✓ L’utilisateur sauvegarder les modifications.
  • 19. 20 Nom du cas : Acheter des trophées. Les trophées ce sont des cartes virtuelles vendu dans le marché du plateforme, l’utilisateur peut les Acheter par une devise de la plateforme appelé « token », ses trophées donne a l’utilisateur des Avantage dans son parcours de formation. Scénario explicatif : ✓ L’utilisateur s’authentifier ✓ Le système affiche le page d’accueil. ✓ L’utilisateur choisir la page « Marché ». ✓ Le system affiche toutes les Trophées existe dans le marché avec leur prix et leurs options ✓ L’utilisateur choisi le trophée qui il veut acheter ✓ S’il a le nombre de tokens suffisant il va poursuivre son achat. ✓ Le system déduire le nombre des tokens depuis le solde de l’utilisateur. ✓ Si l'utilisateur n'a pas un solde suffisant alors il doit convertir les points en tokens. ✓ Si l’utilisateur n’a pas les points suffisants donc l'achat ne peut pas être effectué. Nom du cas : Participer au Cours. Les Cours sont la formation offerte par le platform, ils sont sous forme des livre PDF ou des vidéo explicatif ou bien des photos, un coure a un titre, un niveau, un nombre de point ou de badge a obtenir par l’utilisateur lors qu’il le termine Scénario explicatif : ✓ L’utilisateur s’authentifier ✓ Le système affiche le page d’accueil. ✓ L’utilisateur choisir la page « Dashboard ». ✓ Le system affiche la page Dashboard qui contient le niveau de l’utilisateur, le cour suivante. et des statistiques relatifs a l’utilisateur tel que nombre de point, tokens. ✓ L’utilisateur accèdes vers la cour suivante.*
  • 20. 21 ✓ S’il a terminé le cours le system va le donner les point et les badge de ce cour et afficher le cour suivant, sinon le system doit enregistrer le progresse de l’utilisateur dans ce cours La prochaine connexion de l’utilisateur. Nom du cas : Passer Des Quiz. Apres chaque cours l’utilisateur doit passer un Quiz pour qu’il puisse passer vers le niveau Suivant, il aura un nombre de point et badges comme une récompense. Scénario explicatif : ✓ L’utilisateur Termine un cour. ✓ Le système affiche le page du quiz. ✓ L’utilisateur passe le quiz. ✓ S’il a terminé le quiz le system va le donner les point et les badges de ce quiz et le faite monter vers le niveau suivant. 3-2 Administrateur : Nom du cas : Gestion des Quiz. Le quiz est un test que l’utilisateur doit passer après chaque cour il a terminé, Chaque quiz se compose de plusieurs questions d’un seul choix ou de choix multiple. Scénario explicatif : ✓ L’admin s’authentifier ✓ Le système affiche le centre de gestion. ✓ L’admin choisi de gérer les Quiz. ✓ Le system affiche la liste des Quiz avec la possibilité de des changement. ✓ L’admin faire les modification (suppression, modification, ajoute). ✓ L’admin sauvegarder les modifications.
  • 21. 22 Nom du cas : Gestion des Badges. Le Badge est une récompense revoit par l’utilisateur lors il passe un Quiz ou bien lors qu’il termine un cour. Scénario explicatif : ✓ L’admin s’authentifier ✓ Le système affiche le centre de gestion. ✓ L’admin choisi de gérer les Badges. ✓ Le system affiche la liste des Badges avec la possibilité de des changement. ✓ L’admin faire les modification (suppression, modification, ajoute). ✓ L’admin sauvegarder les modifications. Nom du cas : Gestion des Trophées. Les trophées ce sont des cartes virtuelles vendu dans le marche du plateforme, l’utilisateur peut les Acheter par un devise spécial du platform appelé « token » : Scénario explicatif : ✓ L’admin s’authentifier ✓ Le système affiche le centre de gestion. ✓ L’admin choisi de gérer les Trophées. ✓ Le system affiche la liste des Trophées avec la possibilité de des changement. ✓ L’admin faire les modification (suppression, modification, ajoute). ✓ L’admin sauvegarder les modifications. Nom du cas : Gestion des Cours. Les Cours sont la formation offerte par le platform, ils sont sous forme des livre PDF ou des vidéo explicatif ou bien des photos, un coure a un titre, un niveau, un nombre de point ou de badge a obtenir par l’utilisateur lors qu’il le termine. Scénario explicatif : ✓ L’admin s’authentifier ✓ Le système affiche le centre de gestion. ✓ L’admin choisi de gérer les Cours.
  • 22. 23 ✓ Le system affiche la liste des Cours avec la possibilité de des changement. ✓ L’admin faire les modification (suppression, modification, ajoute). ✓ L’admin sauvegarder les modifications. 3-Diagramme de séquence : Figure 5 : Diagramme de séquence "Passer un quiz" : ➔ Ce diagramme illustre le processus de passer un quiz par l’utilisateur avec ses diffèrent interactions entre l’utilisateur et le system.
  • 23. 24 Figure 6 : Diagramme de séquence "Participer a un cour " : ➔ Ce diagramme Montre comment se déroule les différent processus de passer un quiz par l’utilisateur avec ses diffèrent interactions entre l’utilisateur et le system.
  • 24. 25 Figure 7 : Diagramme de séquence "Ajouter Un Cour ". ➔ Ce diagramme illustre le processus d’ajouter un cour par l’administrateur et les différant interaction entre l’admin et le system pour assurer le bon fonctionnement.
  • 25. 26 Figure 8 : Diagramme de séquence "Gestion des adresses mac". ➔ Ce diagramme illustre le processus de la gestion des adresse mac de l’utilisateur les différant interaction avec et le system pour assurer le bon fonctionnement.
  • 27. 28 Figure 9 : Diagramme d’activité "Gestion des badges". ➔ Ce diagramme illustre le processus de la gestion des badges par l’administrateur et le scénario du fonctionnement. Scenario normal 1. L’administrateur S’authentifier. 2. Le système Vérifie les informations entrées. 3. Le system ouvre le profil d’administrateur. 4. L’administrateur choisi le mode de modification. 5. L’administration entre les nouvelles informations pour l’ajoute et la modification du badge. 6. L’administrateur Valide les modifications 7. Le système Vérifie les informations entrées. Scenario exceptionnel 1. Si les informations d’authentification ne sont pas valides, le system va rediriger l’utilisateur vers la page d’authentification avec un message d’erreur. 2. Si les informations entrées du badge ne sont pas valides, le system va demander a l’admin de ressaisir ses information.
  • 28. 29 Chapitre IV : les technologies utilisées I- Les Framework 1-Qu’est-ce qu’un Framework? Un framework désigne un ensemble de composants logiciels formant le squelette d’un programme, conçu pour aider les développeurs informatiques dans leur travail de programmation et leur offrir une base de travail réutilisable sur plusieurs projets. Un framework s’apparente à un véritable espace de travail modulaire, réunissant les outils, les ressources et les conventions ou normes nécessaires à la création d’applications web sur mesure. Traduit littéralement, le mot anglais framework signifie « cadre de travail ». Cette traduction est plutôt heureuse pour comprendre le concept qui se cache derrière le terme. Un framework de développement est donc : • Un ensemble cohérent de composants éprouvés et réutilisables (bibliothèques, classes, helpers…). • Un ensemble de préconisations pour la conception et le développement d'applications. Il existe un très grand nombre de frameworks et ce pour chaque technologie. Ils sont là pour donner un cadre de travail au développeur. Grâce à ces outils, le développeur sera mieux organisé, son code sera maintenable, évolutif et clair. En effet, deux développeurs utilisant le même framework, n'auront donc aucun mal à se comprendre. Dans le monde du web il y’a deux types de framework principale, ceux de la catégorie front-end, puis ceux de la catégorie back-end.
  • 29. 30 1-1 :Front-End Framework : Également appelés «frameworks CSS», il s'agit de packages contenant du code pré-écrit et normalisé dans des fichiers et des dossiers. Ils vous donnent une base sur laquelle construire tout en permettant une flexibilité dans la conception finale. En générale les frameworks front-end contiennent les composants suivants: • Une grille qui facilite l'organisation des éléments de conception de votre site Web • Styles de police définis et taille variant en fonction de sa fonction (typographie différente pour les titres par rapport aux paragraphes, etc.) • Composants de site Web prédéfinis tels que les panneaux latéraux, les boutons et les barres de navigation. En fonction du cadre spécifique que vous choisissez, ils sont également beaucoup plus capables de le faire. Voici quelques-uns des frameworks front-end le plus connus : ✓ Bootstrap ✓ Semantic-UI ✓ Foundation ✓ Materialize
  • 30. 31 1-2: Back-End Framework (PHP) : Un framework PHP est une plateforme de base qui nous permet de développer des applications web. En d'autres termes, il fournit une structure. En utilisant un framework PHP, vous gagnerez du temps, vous éviterez de produire du code répétitif et vous pourrez créer des applications rapidement (RAD). Sans un framework PHP en place, il est beaucoup plus difficile de créer des applications car vous devrez coder de manière répétée beaucoup de PHP. Vous devrez également établir la connexion entre votre base de données et l’application que vous développez à partir de rien. Pendant ce temps, utilisation d’un framework PHP vous permet d’assurer plus facilement cette connexion. Voici quelques-uns des frameworks back- end le plus connus : ✓ Laravel ✓ CakePHP ✓ Symfony ✓ Zend Framework
  • 31. 32 2-Pourquoi un Framework? Utiliser un framework comporte de nombreux avantages : Nous sommes cadrés ! Comme son nom l’indique, le framework nous permet d’être plus disciplinés et de ne pas partir dans tous les sens Gain de temps et d’efficacité : le framework apporte de nombreux outils qui permettent de ne pas réinventer la roue pour toutes les fonctionnalités courantes Meilleure structuration du code : le cadre et les directives fournies par les frameworks permettent de donner une structure et par conséquent, d’améliorer la qualité du code. Ils permettent de construire une unité cohérente. Maintenance simplifiée : un projet bien structuré est infiniment plus simple à maintenir qu’un projet fourre-tout. 3-Analyse de différents Framework : 3-1: Front-End ➢ Bootstrap compte parmi les plus populaires. Open Source, il présente un nombre important de modules et d’extensions. La documentation disponible est tout aussi impressionnante. Il fonctionne sur un système de grille en douze colonnes avec un affichage adapté pour différentes tailles d’écran et il est possible de personnaliser les fichiers CSS. ➢ Materialize s’appuie sur les recommandations design de Google et est fourni avec de nombreux composants prêts à l’emploi.
  • 32. 33 3-2 : Back-End ➢ Symfony, le framework PHP avec la plus grande communauté Symfony est incontestablement un des frameworks PHP les plus appréciés. Sa très importante communauté rend les choses plus faciles en cas de difficulté et il est toujours particulièrement agréable de ne pas se sentir seul face à son écran. La documentation est également très fournie et accompagne les développeurs, qui se sentent généralement très à l’aise en développement en Symfony. Symfony est particulièrement apprécié pour sa modularité. Le framework offre de vastes possibilités de fonctions pour créer de nombreux projets et applications à la fois stables et performantes. Le développement des API REST y est très robuste et Symfony est donc un framework idéal pour les applications professionnelles. ➢ Laravel, un framework PHP de plus en plus populaire Tout comme Symfony, Laravel est un framework très bien documenté. Là encore, l’importante communauté permet de trouver rapidement réponse à ses questions en cas de doute. Le framework Laravel offre à la fois la structure du modèle MVC et la rapidité de développement que l’on attend d’un framework PHP. Laravel reprend le système de routage Symfony et l’étend pour proposer un système d’envoi de mail, un moteur de template ultra- efficace, un constructeur de formulaire particulièrement pratique, un créateur de requêtes SQL, un ORM performant… et bien plus encore. Le principal avantage de Laravel est d’offrir une structure claire au langage PHP. Complet et très puissant, il est parfois considéré comme plus souple que Symfony.
  • 33. 34 ➢ CakePHP, le framework idéal pour débuter en PHP Très facile à prendre en main, CakePHP est un framework idéal pour les développeurs débutants ou non initiés au PHP. La configuration de Cake est à la fois simple et ordonnée. Elle utilise la convention MVC et propose différents outils de sécurité et de validation de formulaire. CakePHP intègre un ORM particulièrement fonctionnel. Les requêtes de construction sont très simples, et le framework est livré avec des plugins robustes permettant de réutiliser le code très facilement. Les héritages de classe sont très compréhensibles, et la communauté suffisamment développée pour trouver facilement réponse à ses questions. Cela est d’autant plus le cas que la documentation est à la fois fournie et très simple à comprendre. ➢ Zend, pour une qualité de code irréprochable Zend Framework est à la fois robuste et stable. Son package Open Source est très bien documenté et bénéficie du soutien d’une large communauté de développeurs. Sa documentation est également très complète. Zend permet à la fois de s’appuyer sur des components MVC pour un code plus propre, d’avoir une architecture souple, et de développer rapidement. Zend Framework est une solution particulièrement réputée pour la qualité de son code. Son automatisation des mécanismes de protection des applications (filtrage de validation d’entrée, Injection SQL, protection XSS) en fait un langage privilégié pour les gros projets d’entreprise.
  • 34. 35 II-Choix du Framework et explication de ce choix 1-Front-End Figure 9 : Logo du framework bootstrap. Twitter Bootstrap est un framework CSS très puissant, permettant de développer et concevoir des frontends/backends très rapidement sans avoir à passer par de l’intégration. Comme les autres frameworks CSS que l’on peut trouver sur internet, il dispose d’une Grid qui permet de placer les éléments avec beaucoup plus de facilité. Mais Bootstrap se démarque des autres frameworks car il a l’avantage de : • Etre “Responsive” (s’adapte à la taille de l’écran, que se soit tablette, ordinateur, smartphone, etc.) • Fonctionner sur tous les navigateurs. • Posséder deux types de layout : le premier qui est fixe (la scrollbar s’affichera si nécessaire), le second qui s’adapte à la largeur du navigateur. • Embarquer un tas de composants prêts à l’usage (labels, badges, boutons, boutons dropdown, icônes, menus, navbar, progressbar, etc.) qui sont, qui plus est, plutôt soignés.
  • 35. 36 • Posséder également une dizaine de composants JavaScript comme des modals, tooltip, alert, carousel, etc. permettant de donner un peu d’interaction à votre future interface. • D’être développé en LESS. En bref, c’est un framework très complet, et surtout agrémenté d’une très forte communauté car il est le projet le plus “forké” et le plus suivi sur Github pour tous ces raison il a été choisi. 2-Back-End Figure 10 : Logo du framework Laravel. Laravel a été choisi pour plusieurs raisons. Tout d’abord, il répondait aux critères de la société, à savoir la mise en place de toutes les fonctionnalités désirées. Ensuite, bien documenté qui permet de faire gagner du temps face à ces concurrents. Il possède une communauté importante, ce qui nous donne la possibilité de trouver rapidement une réponse en cas de doute. Laravel est un framework s’inspirant de ce qui existe de mieux, il reprends le système de routage de Symfony en l’étendant de manière efficace, il utilise la bibliothèque SwiftMailer pour l’envoi de mail, et bien d’autre encore. Tout en ajoutant ces propres composants originaux pour former au final Laravel.
  • 36. 37 Laravel nous offre : • un système d’envoi de mail. • un système de routage performant, • un moteur de template efficace, • un constructeur de formulaire très pratique, • un système d’authentification pour les connexions, • un créateur de requêtes SQL et un ORM performants (éloquent). 3-Organisation du projet et division des tache : Figure 11 : Logo du Git. Git est un système de contrôle de version distribué gratuit et open source conçu pour tout gérer, des petits aux très grands projets, avec rapidité et efficacité. Git est facile à apprendre et a une faible empreinte avec des performances ultra-rapides. Il surclasse les outils SCM tels que Subversion, CVS, Perforce et ClearCase avec des fonctionnalités telles que des branchements locaux bon marché, des zones de transit pratiques et des flux de travail multiples.
  • 37. 38 Chapitre IV : Avancement des travaux du projet 1-installation de laravel : L’installation de Laravel a tout d’abord été faite sur un serveur local par le logiciel composer qui est un logiciel gestionnaire de dépendances libre écrit en PHP. Il permet à ses utilisateurs de déclarer et d'installer les bibliothèques dont le projet principal a besoin. Avant d’installer Laravel et de le paramétrer, il a fallu mettre en place un serveur Web et créer une base de données. Pour cela, Xampp a été téléchargé et installé. Le serveur utilisé est Apache et concernant la base de donnée, il s’agit de MySQL. 2- cloner le projet déjà Crée : Tout d'abord, pour Intégrer dans l'équipe de développement contribuer a des tache dans le projet il faut le télécharger ou le cloner par un command dans la ligne de commande CMD ou GIT BASH Dans notre cas : Figure 12 : commande clone.
  • 38. 39 Figure 13 : l’arborisant du projet.
  • 39. 40 Apreé cloner le projet il faut crée un base de donnée et modifier le fichier .env pour que le projet puisse accéder à la base de données : o Nom du serveur de base de données : localhost o Le port de la base de données : 3306 o Nom de la base de données : oze_kids o Nom de l’utilisateur de la base de données : root o Mot de passe de la base de données : rien Figure 14 : Le fichier de configuration “.env”.
  • 40. 41 3- L'avancement du projet Jusque’ ce moment-là nous avons pas terminer le projet parce que on a toujours des modification , ajouter des fonctionnalités, changer le Template ..etc. je vais vous montrer la version la plus récente du site : Figure 15 : la page d’authentification. ➔ C’est La première page qui apparaît à l'utilisateur, comme j’ai déjà dit l’utilisateur peut être utilisateur simple ou administrateur , cette page va verifier les information de l’utilisateur et le rediriger vers La page appropriée pour chaque type d’utilisateur
  • 41. 42 Une fois l'utilisateur authentifié, le système le redirigera vers le centre de gestion de l'administrateur ou le profil client : 1-Simple Utilisateur : Figure 16 : le profile de l’utilisateur. Cette page contient : ✓ Navbar : Barre Fixée en haut de la page contient le nom d’utilisateur et son avatar, les notifications barre de recherche et full-screen option ✓ Your Point : nombre de points de l’utilisateur. ✓ My level : le niveau de l’utilisateur. ✓ Customize me : changer l’avatar comme vous le verrez après. ✓ Mes informatons : Ou l’utilisateur peut modifier ses informations personnelles. ✓ Your progress : Progression de l'utilisateur dans toutes les formations. ✓ Your tokens : nombre de tokens de l’utilisateur. ✓ Trophies : le trophie en cours d’utilisation.
  • 42. 43 ✓ Achievement : les badges obtenu(colorée) et non obtenu par l’utilisateur(noir et blanc). Si l’utilisateur Cliquer pour modifier sa photo d’avatar il ‘aura cette page de génération d’avatar. Figure 17 : pop-up de génération d’avatar. ➔ Ce générateur des avatars est un API qui prend en paramètre les valeur des « inputs » de type « select » et retourne une image svg, le bouton du dé en bas à gauche permet de choisir un avatar aléatoirement.
  • 43. 44 Figure 18 :générer un avatar aléatoirement. ➔ Pour éviter qu'un compte soit partagé entre plusieurs utilisateurs, nous avons adopté une solution utilisant les adresses mac, on a limiter le nombre des adresse mac a cinq, Donc si l'utilisateur dépasse ce nombre on l'empêche de se connecter depuis un autre appareil comme vous voyez ci-dessous
  • 44. 45 Apres une section dans laquelle j'ai exprimé les ativitées principales du société, une Figure 19 : L’erreur qui apparaitre si on a dépassé le nombre maximal des adresse mac . ➔ La solution ici c’est de se connecter depuis un appareil déjà enregistrer et gérer les adresse mac (activer/désactiver) depuis la table suivante :
  • 45. 46 Figure 20 : table de gestion des adresse mac ➔ Pour des raisons de sécurité, l’utilisateur n’a pas le droit de modifier les « checkboxes » du states de l’adresse mac, Cette Action a une procédure spéciale à suivre : 1. Cliquer sur activer les changements pour obtenir un code de vérification par email. 2. Entrer le code de vérification, si il est valide le system vas donner la main l’utilisateur de modifié le statue des adresses mac.
  • 46. 47 Figure 21 : le code de vérification par mail. Figure 22 : Si le code est valide.
  • 47. 48 Figure 23 : la page dashboard. ➔ En suite on a la page dashborad ou l’utilisateur peut participer a des cours, elle contient ✓ Xp Progress : un graphe présente les points obtenus par mois. ✓ Les image: sont les cours existe dans la formation. ✓ Le cercle autour des Images: Progression de l'utilisateur dans toutes le cour lié à chaque image. ✓ Growth: Graphique montrant le pourcentage des formation terminées. On n’a pas encore fini cette partie Au niveau Back-End.
  • 48. 49 Figure 24 : la page dashboard en bas. 2-Administrateur :
  • 49. 50 Figure 25 : la page de Gestion des Cours. La gestion Des Cours, Badges, Quizz, Trophées et des notifications presque la même, on a un DataTable avec tous les champs de notre objet (cour, badge, quiz, trophée ou bien notification), le DataTable est remplie dynamiquement depuis la base de donnée, Chaque ligne du DataTable contient deux boutons pour la suppression et pour la modification Comme vous le verrez en détail en suite, Chaque colonne dans le DataTable a deux flèches pour trier la table selon les valeurs de ce champ. La DataTable a une barre de recherche pour chercher dans la table La page contient Aussi un bouton pour l’ajoute on va le simuler pour les trophées ci-dessous. Le DataTable : une bibliothèque de javascript Il s'agit d’une table qui a plus de fonctionnalités tel que le tri, la recherche, la responsivité et la pagination. etc.
  • 50. 51 Figure 26 : la suppression d’un badge. Si on clique sur Supprimé le system vas actualiser la page avec un message de succès Figure 27 : l’ajoute d’un quiz. Si on clique sur ajouter dans la page des quizz on aura ce formulaire à remplir, il contient tous les champs d’un quiz, -titre du quiz. -les points et les badges liée à ce quiz.
  • 51. 52 -Global : est ce que ce quiz et contribuer dans le résultat général du niveau actuel de l’utilisateur -Ce quiz appartient à quel cours. -Le sous-formulaire pour les questions liée à ce Quiz (Ajouter Contenu pour ajouter une autre question) Figure 28 : la modification un badge. La modification d’un badge nous ramenée vers le même formulaire de l’ajoute, mais les champs sont déjà remplis par les anciennes valeurs.
  • 52. 53 I-Mes tache dans Le projet : 1-AdminCheck : C’est une couche de sécurité consiste à empêcher les non-administrateur d’accédé vers le centre de gestion de l’admin : Figure 29 : code source du midlleware AdminCheck . Ce middleware var rediriger l’utilisateur var son page actuel s’il a tenté d'accéder vers le centre de gestion de l’admin. 2-MacCheck : C'est la partie des adresses mac décrite ci-dessus.
  • 53. 54 Figure 30 : code source du midlleware MacCheck . Ce middleware s'exécutent lors de la connexion, il compte les adresses mac active distincte de l’utilisateur en traine d’authentifier, Si le nombre est dépasser 5 le middleware va empêcher l’utilisateur de s’authentifier avec un message d’erreur comme indiquée dans la figue **. 3-CRUDs : CRUD s’est les quatre fonctionnalités principales dans la gestion d’un objet : C : CREATE R : READ U : UPDATE D : DELETE Au cours de ce stage j’ai implémenté plusieurs CRUD tel que : la gestion des Trophée, la gestion des Badges comme indiquer dans la partie Administrateur en dessu.
  • 54. 55 Pour implémenter un CRUD il faut d’abord crée le model et le table de migration depuis cette command php artisan make:model Trophie -m Cette commande va créer un model (classe) Trophée, et la « -m » var générer un fichier de migration pour le model. Figure 31 : code source du model Trophie. Figure 32 : code source du fichier de migration trophies.
  • 55. 56 Il faut ajouter les champs au table trophies et exécuter la commande php artisan migrate Après l’exécution de cette commande on aura la table dans notre serveur : Figure 33 : la table générée dans le serveur. Puis il faut crée le Controlleur qui va gérer les interactions avec le serveur et implémenter les méthodes nécessaires Php artisan make:controller TrophieController
  • 56. 57 Figure 34 : code source du Controlleur TrophieController .
  • 57. 58 Chapitre V : Conclusion Conclusion générale Ce stage m’a apporté une nouvelle expérience professionnelle enrichissante. Grâce à ces deux mois passés au sein de la société IN4, j’ai acquis de nouvelles connaissances autant sur le milieu de l’entreprise que sur les langages informatiques. Travaillé avec des frameworks tel que Laravel et Bootstrap a été bénéfique puisque j’ai pu développer mes connaissances des langages PHP, HTML, CSS et javascript ainsi que celles des langages-objet. J’ai bien entendu rencontrer quelques problèmes lors de la conception du site tels que les erreurs générées par le php ou par des problèmes de compatibilités. Ces problèmes ont tous été résolus à l’aide de mes encadrant iliass et houssam et m’ont également apporté de nouveaux savoirs. Au cours de Ces deux mois j’ai pu maitriser l'utilisation des frameworks front-end et back- end, Et d’autres outils que je ne connaissais que de nom et que j’ai appris à les utilisées lors de ce stage. J’ai eu aussi la chance d’assister et travailler dans une équipe de développement.
  • 58. 59 Bibliographie J’étais basé sur la documentation du sites officiels des frameworks utilisées « Laravel, Botstrap ». Mais il existe plusieur sources d’informations dont voici les principales : www.laravel.com : le site officiel de Laravel avec un forum actif. www.laracasts.com : le forume officiel de Laravel. www.laravel.io : le forum officiel. www.laracasts.com : De nombreux tutoriels vidéo en anglais dont un certain nombre en accées gratuit dont une série complète pour Laravel 8. www.getbootstrap.com : le site officiel de Bootstrap. www.codepen.io : ce site m'a aidé au niveau du design de site Web. www.stackoverflow.com/documentation/laravel/topics : Le site des questions il y a plusieurs solutions sur les problèmes du Laravel.