Académique Documents
Professionnel Documents
Culture Documents
: Mathématiques et Informatique
MEMOIRE DE STAGE
Soutenue le 14 Juin
Devant le jury
Pr ES-SAADY Youssef Professeur à la Faculté Polydisciplinaire de Taroudant Président
Pr Abderrahmane SADIQ Professeur à la Faculté Polydisciplinaire de Taroudant Encadrant
A la femme qui a souffert sans me laisser souffrir, à mon adorable mère qui n’a jamais
dit non-âmes exigences et qui n’a épargné aucun effort pour me rendre heureuse.
A mon cher père, mon précieux offre du dieu, qui doit ma vie, ma réussite et tout mon
respect.
A mon cher frère qui n’a pas cessé de me conseiller, encourager et soutenir tout au
long de mes études.
A tous mes amis pour leurs aides et supports dans les moments difficiles.
Sans oublier mon binôme pour son soutien moral, sa patience et sa compréhension tout
au long de ce projet.
REMERCIEMENTS
Nous tenons à remercier toutes les personnes qui ont contribué au succès de nos stages
et qui nous ont aidés lors de la rédaction de ces rapports.
Tout d'abord, nous adressons nos remerciements à nos professeurs et nos encadrants,
M. ABDERRAHMANE SADIQ, pour leur écoute et leurs conseils.
Enfin, nous tenons à remercier toutes les personnes qui nous ont conseillés et relus lors
de la rédaction de ces rapports de stage.
Résumé
RESUME
ABSTRACT
This report summarizes our internship project within the IMMOLEADER company as
part of our computer engineering training. Our internship lasted two months and had as its
main objective the design and development of a web application intended to improve the
internal management of the IMMOLEADER company. Our mission was to create an intuitive
and user-friendly software solution to manage project processes, customer management, etc.
Our project has made it possible to optimize the internal processes of the company and
facilitate the administrative management of the real estate project.
Today, it is very important to have a website for companies, associations, and societies
to automate and organize certain tasks (registration, payment, sale, purchase, etc.) and even
publish their activities to the public. That is why we are going to carry out an improvement
project in web development that meets the needs of society.
Our project has made it possible to optimize society's internal processes and facilitate
real estate project administrative management. The implementation was made using the
MERN STACK technology, which consists of four technologies : MongoDB, ExpressJS,
ReactJS, and NodeJS.
Introduction générale
INTRODUCTION GENERALE
La numérisation est devenue essentielle dans tous les secteurs d'activité et la fiabilité
d'un système informatique est cruciale pour la réussite d'une entreprise. Dans le cadre de mon
stage de fin d'études chez IMMOLEADER, spécialisée dans les Travaux Divers, le négoce et
l'immobilier, ma mission centrale consiste à comprendre les besoins et à trouver un modèle
efficace pour concrétiser une solution informatique adaptée. Pour répondre à cette
problématique, j'ai proposé une approche combinant les technologies web et mobile.
La réussite de notre travail dépend directement aux choix des technologies et outils adéquats à
ce projet. Pour cela nous avons choisi l’outil GitHub qui permet aux programmeurs
informatiques de collaborer librement sur des projets de code, puis pour la gestion du projet
nous avons utilisé la plate-forme Trello qui permet d’organiser le projet ou de suivre les
tâches.
Ce rapport présente une synthèse des activités menées tout au long de la période de
stage. Il est structuré en quatre chapitres distincts.
7
Introduction générale
8
Table Des Matières
DEDICACES.......................................................................................................................................................... 3
REMERCIEMENTS............................................................................................................................................. 4
RESUME................................................................................................................................................................ 5
ABSTRACT........................................................................................................................................................... 6
INTRODUCTION GENERALE........................................................................................................................ 7
TABLE DES MATIERES................................................................................................................................... 9
LISTE DES ABREVIATIONS......................................................................................................................... 11
LISTE DES FIGURES....................................................................................................................................... 12
LISTE DES TABLEAUX.................................................................................................................................. 13
CADRE GENERAL DU PROJET................................................................................................................... 14
I. Introduction....................................................................................................................................................... 14
II. Structure d’accueil........................................................................................................................................... 14
III. Problématique................................................................................................................................................... 14
IV. Solution proposée............................................................................................................................................ 15
V. Gestion du projet.............................................................................................................................................. 16
VI. Conclusion.......................................................................................................................................................... 17
ETUDE PREALABLE, ANALYSE ET CONCEPTION............................................................................. 18
I. Introduction....................................................................................................................................................... 18
II. UML et Outils utilisés..................................................................................................................................... 18
1. UML.................................................................................................................................................................................... 18
2. PowerAMC...................................................................................................................................................................... 18
3. L’Architecture MVC..................................................................................................................................................... 18
III. Spécification des besoins.............................................................................................................................. 20
1. Besoins fonctionnels................................................................................................................................................... 20
2. Besoins non fonctionnels.......................................................................................................................................... 20
IV. Analyse fonctionnelle..................................................................................................................................... 21
1. Diagramme de classe.................................................................................................................................................. 21
2. Diagramme de cas d’utilisation.............................................................................................................................. 26
3. Diagramme de séquence........................................................................................................................................... 28
V. Conclusion.......................................................................................................................................................... 29
Environnement de Développement........................................................................................................ 30
I. Introduction....................................................................................................................................................... 30
Table Des Matières
I. Introduction
Dans ce chapitre, nous allons présenter en premier lieu la société dans laquelle nous
avons effectué notre sujet de travail proposé tout en expliquant ses objectifs ainsi les
fonctionnalités nécessaires pour le réaliser.
Instituée le 07 août 2013, la société IMMOLEADER est une société privée SARL à la
capitale de 100 000 DHS. Et opérant dans les domaines du secteur Travaux divers, négoces et
immobilier.
Logo de société
ICE 001418620000038
IF 14497779
R.C 10059
C.N.S.S 4655249
ADRESSE LOT MIFTAH AL-KHIER ROUTE GUELMIM - TIZNIT
III. Problématique
Le plus gros obstacle pour la société IMMOLEADER est le passage d'un système
papier traditionnel à un système numérique basé sur les nouvelles technologies et la mise à
disposition de bonnes et rapides solutions pour traiter rapidement ses projets depuis toutes ses
agences à travers le Maroc ; en créant un dossier numérique spécial pour chaque client qui
achète un bien immobilier qui comporte toutes ses informations personnelles. Gestion du
14
Chapitre 1 : Cadre Général Du Projet
15
Chapitre 1 : Cadre Général Du Projet
V. Gestion du projet
Trello est une plateforme de gestion de projet en ligne qui permet aux individus et aux
équipes de collaborer efficacement sur des projets, des tâches et des activités. Il se distingue
par son approche visuelle et intuitive basée sur des tableaux, des listes et des cartes. Vous
pouvez créer des listes pour organiser les différentes étapes, les flux de travail ou les
catégories. Chaque liste peut contenir des cartes, qui représentent des tâches ou des éléments
spécifiques. Il est possible d'ajouter autant de colonnes à un tableau Trello que d'étapes à un
projet : "A valider", "A faire", "En cours", "A tester", "Fait"… Des tâches sont ensuite
assignées aux membres de l'équipe chargée de ce projet.
16
Chapitre 1 : Cadre Général Du Projet
VI. Conclusion
Dans ce chapitre nous avons présenté le contexte général du projet qui s’étale sur quatre
parties. La première décrit la problématique, seconde souligne les solutions proposées,
troisième décrit la structure d'accueil et dernière partie définit la gestion de projet.
17
Chapitre 2 : Etude Préalable, Analyse et Conception
I. Introduction
1. UML
Afin de recenser le mécanisme de travail, l’analyse amenée est basée sur l’approche
UML : Le Langage de Modélisation Unifié, est un langage de modélisation graphique à base
de pictogrammes conçu comme une méthode normalisée de visualisation dans les domaines
du développement logiciel et en conception orientée objet.
2. PowerAMC
Pour la réalisation des diagrammes de notre projet nous avons utilisé l'outil
PowerAMC qu’est l’un des premiers outils qui permet d’élaborer des modèles de données que
cela soit MERISE, UML ou autre, de manière graphique et de les implémenter quel que soit le
SGBD et ce de manière automatique. De même, l’outil permet de modéliser les processus
métiers. Le lien entre la modélisation des données et la modélisation des processus peut être
effectué. Parmi les fonctionnalités principales de PowerAMC :
3. L’Architecture MVC
pour votre projet. L'architecture MVC est conçue pour séparer clairement les responsabilités
des différentes parties d'une application, ce qui facilite la maintenance, l'évolutivité et la
collaboration entre les développeurs.
Dans le cadre de notre application web développée avec le stack MERN, l'architecture
MVC est mise en œuvre de la manière suivante :
Grâce à cette séparation claire des responsabilités, nous obtenons une application bien
structurée, facile à maintenir et à faire évoluer. Les développeurs peuvent travailler de
manière indépendante sur chaque composant de l'architecture MVC, ce qui facilite la
collaboration. De plus, en utilisant React.js, nous bénéficions d'une mise à jour automatique
de l'interface utilisateur en fonction des changements dans le Modèle, ce qui rend notre
application réactive et conviviale pour les utilisateurs.
19
Chapitre 2 : Etude Préalable, Analyse et Conception
1. Besoins fonctionnels
Avant la création de l'application il faut définir quelques besoins fonctionnels qui sont
généralement :
Partie pour les administrateurs pour la gestion des projets, clients, employés et
documents.
Parte pour la communication pour la communication entre les clients et
l’administration (chat).
Partie pour les clients pour suivre les projets auxquels il appartient (app mobile).
Ergonomie et souplesse.
Rapidité.
Efficacité.
20
Chapitre 2 : Etude Préalable, Analyse et Conception
L'utilisation d'une approche basée sur les diagrammes UML permet d'améliorer
l'analyse du mécanisme de travail et des fonctionnalités du système, offrant ainsi une vision
plus claire et détaillée de son fonctionnement global.
1. Diagramme de classe
21
Chapitre 2 : Etude Préalable, Analyse et Conception
Id user.
Username.
Password.
Avatar.
Cette entité nous permet de faire la gestion des utilisateurs (inscription, authentification,
sécurité, ajout ou suppression des utilisateurs).
Id Employée.
Nom complet.
CIN.
Adresse.
Département.
Cette entité nous permet de faire la gestion des employées (ajout, modification ou suppression
des employées).
Id Publication.
Description de publication.
Date publication.
Cette entité nous permet de faire la gestion des publications (ajout, modification et
suppression).
Id image.
Titre d’image.
Cette entité nous permet de faire la gestion des images (parcourir, mettre à jour et effacer).
Id projet.
Nom projet.
Date création de projet.
Adresse de projet.
Etats projet.
23
Chapitre 2 : Etude Préalable, Analyse et Conception
Cette entité nous permet de gérer les projets (ajouter, mettre à jour et effacer).
Id Villa.
Superficie de villa.
Numéro de villa.
Prix.
Nombre chambre.
Nombre de cuisine.
Nombre de salon.
Nombre de salle de bain.
Cette entité Villa est extends dans la super classe projet nous permet de faire la gestion des
villa (parcourir, mise à jour et effacer).
Id Appartement.
Superficie d’appartement.
Numéro d’appartement.
Prix.
N° étage.
Etats d’appartement.
Nombre de chambres.
Nombre de cuisines.
Nombre de salons.
Nombre de salles de bain.
Cette entité Appartement est extends dans la super classe projet nous permet de faire la
gestion des villa (parcourir, mise à jour et effacer).
Id Terrain.
Superficie de Terrain.
Numéro de Terrain.
Prix.
Type de terrain.
Etats du terrain.
Nombre de faces.
Cette entité Terrain est extends dans la super classe projet nous permet de faire la gestion des
villa (parcourir, mise à jour et effacer).
24
Chapitre 2 : Etude Préalable, Analyse et Conception
Id Document.
Titre de document.
Date d’ajout du document.
Cette entité nous permet de gérer les documents de chaque projet (upload des documents,
mise à jour et effacer).
Id Catégorie.
Titre de Catégorie.
Cette entité nous permet de gérer le Catégorie de chaque document (Ajouter, mise à jour et
effacer).
Id Client.
Nom complet.
CIN.
N° téléphone.
Adresse électronique.
Adresse.
Username.
Password.
Image .
Cette entité nous permet de faire la gestion des clients (inscription, authentification, sécurités,
ajout ou suppression des clients).
Id Chat.
Date chat.
Message.
Cette entité nous permet de faire la gestion des chats entre le client et le gestionnaire des
projets (envoyer message, recevoir message).
25
Chapitre 2 : Etude Préalable, Analyse et Conception
Maintenant dans cette partie nous allons préciser les types d’utilisateurs pour cette
plate-forme.
Selon le cahier de charge proposé par l’encadrant nous avons distingué principalement
trois types d’utilisateurs.
Le diagramme suivant explique les accès autorisés pour chaque type d’utilisateur
(Administrateur, utilisateur et client) :
26
Chapitre 2 : Etude Préalable, Analyse et Conception
27
Chapitre 2 : Etude Préalable, Analyse et Conception
3. Diagramme de séquence
28
Chapitre 2 : Etude Préalable, Analyse et Conception
29
Chapitre 2 : Etude Préalable, Analyse et Conception
V. Conclusion
Nous avons essayé dans ce chapitre de faire une conception claire afin de rendre notre
application réalisable, puis nous avons bien spécifié les besoins fonctionnels et non
fonctionnels qui sont indispensables pour mieux faciliter le travail à réaliser.
30
Chapitre 3 : Environnement de Développement
ENVIRONNEMENT DE DÉVELOPPEMENT
I. Introduction
Il existe une très grande variété de technologies pour le développement web. Pour cela
nous mettons en évidence dans ce chapitre l’environnement du travail utilisé autour du
développement de ce projet.
Visual Studio Code est un éditeur de code facile à prendre en main, gratuit et développé en
open source par Microsoft. Il prend en charge plusieurs centaines de langages de
programmation et propose un environnement de développement intégré disposant d’outils
permettant de traiter des projets techniques, comme l’édition et le débogage. C’est un éditeur
très puissant et recommandé par les développeurs de web.
31
Chapitre 3 : Environnement de Développement
MERN STACK est une pile logicielle qui comprend quatre technologies open source :
(MongoDB, Express.js, React.js et Node.js). Ces composants fournissent un cadre de bout en
bout pour la création de sites Web et d’applications Web dynamiques. Parmi ces technologies,
MongoDB est un système de base de données, Node.js est un environnement d'exécution côté
serveur, Express.js est un Framework Web pour Node.js et React.js est une bibliothèque
JavaScript côté client utilisée pour créer des interfaces utilisateur.
React (également connu sous le nom de React.js ou ReactJS) est une bibliothèque JavaScript
frontale gratuite et open source pour la création d'interfaces utilisateur basées sur des
composants d'interface utilisateur. Il est maintenu par Meta (Anciennement Facebook) et une
communauté de développeurs individuels et d'entreprises. React peut être utilisé comme base
dans le développement d'applications mono-page ou mobiles. Cependant, React ne concerne
que la gestion de l'état et le rendu de cet état au DOM, donc la création d'applications React
nécessite généralement l'utilisation de bibliothèques supplémentaires pour le routage, ainsi
que certaines fonctionnalités côté client.
32
Chapitre 3 : Environnement de Développement
33
Chapitre 3 : Environnement de Développement
34
Chapitre 3 : Environnement de Développement
Node.js est un environnement d’exécution du langage JavaScript hors d’un navigateur web,
possédant quelques spécificités supplémentaires. Un serveur Node est donc simplement une
application en JavaScript côté serveur.
Postman est l’un des outils de test logiciel les plus populaires qui est utilisé pour les tests
d’API. À l’aide de cet outil, les développeurs peuvent facilement créer, tester, partager et
documenter les API.
III. Conclusion
Nous avons essayé dans ce chapitre de bien spécifier les besoins techniques
nécessaires pour le développement de ce projet. La prochaine étape de la réalisation du projet
repose totalement sur le travail effectué jusqu’à ici.
35
Chapitre 4 : Mise En Œuvre Du Projet
I. Introduction
Après avoir placé notre projet dans son cadre général, une étape indispensable
serait de présenter l’environnement sur lequel se base l’application. Dans ce chapitre,
nous allons présenter les tâches et les étapes que nous avons suivies pour créer notre
application.
Pour les tâches du côté front-end de notre application, nous avons réalisé les
pages suivantes :
La page d’authentification.
La page d’accueil qui contient la liste des projets.
La page Dashboard.
La page qui contient la liste des clients.
La gestion des clients (pour ajouter, modifier ou supprimer des clients).
La page qui contient la liste des projets.
La gestion des projets (pour ajouter, modifier ou supprimer des projets).
La page qui contient la liste des employés.
La gestion des employées (pour ajouter, modifier ou supprimer des
employées).
La page qui contient la liste des documents.
La gestion des documents (pour ajouter, modifier ou supprimer des
documents).
La gestion des publications (pour ajouter, modifier ou supprimer des
publications).
36
Chapitre 4 : Mise En Œuvre Du Projet
Pour les tâches du côté backend de notre application, nous avons réalisé :
Création base de données sur MongoDB Atlas.
Cree les collections :
«user», «clients », « projets», «appartement», «villas», «terrain», «employées»,
«publications» , «Document».
La page authentification : Une fois que l'utilisateur est connecté à l'application,
nous allons stocker le jeton (token) dans le stockage local (local Storage) pour
gérer les cookies.
La liste des clients : Affichez tous les clients qui sont déjà inscrits dans la base
de données et qui ont été associés à un projet spécifique. Nous utiliserons le
package Axios. Celui-ci est responsable de la liaison entre le backend et le
frontend dans ReactJS.
Ajouter nouveau client : pour insérer les nouveaux clients (nouveau document
sur MongoDB), modifier et supprimer dans la base donnée.
Ajouter un nouveau projet : sur cette page, nous allons insérer le projet dans la
collection "projets" ainsi que dans la collection "étendue" en fonction du type
de projet. Par exemple, si nous insérons un projet de type 'Villa', il devrait
automatiquement ajouter un champ 'utilisateur' dans la collection "projets"
contenant l'ID de l'utilisateur responsable de la gestion du projet. De plus,
dans la collection "Villa", un champ "client" devrait être ajouté pour
enregistrer l'acheteur de la villa.
Page de liste des projets : Pour obtenir toutes les données des projets (logo et
nom du projet).
Liste des employées : affiche toutes les employées de société avec le
département de chaque employée.
37
Chapitre 4 : Mise En Œuvre Du Projet
III. Réalisation
38
Chapitre 4 : Mise En Œuvre Du Projet
Dans la page d'accueil, vous trouverez une liste bien organisée des projets en
cours. Chaque projet est accompagné d'une image représentative et d'un nom. Cette
vue d'ensemble permet de suivre facilement vos projets et de naviguer facilement à
travers la liste pour découvrir les détails importants de chaque projet.
39
Chapitre 4 : Mise En Œuvre Du Projet
Dashboard :
Cette page centrale offre une visualisation claire et concise des données
essentielles d'un projet. Grâce à des graphiques interactifs, des indicateurs clés et des
tableaux de bord.
40
Chapitre 4 : Mise En Œuvre Du Projet
Cette page représente la liste des clients. Vous trouverez une vue claire et
organisée de chaque client, comprenant une image représentative, leur nom et le
numéro d’appartement (ou de villa). Cette interface conviviale permet de visualiser
rapidement les informations essentielles de chaque client. De plus, nous avons inclus
deux boutons d'action pour faciliter la communication et la gestion des clients. Le
bouton 'Discuter' vous permet d'engager une conversation directe avec le client, vous
permettant de répondre rapidement à leurs questions ou de discuter de leurs besoins.
Le bouton 'Se Retirer' vous permet de retirer le client de la liste.
41
Chapitre 4 : Mise En Œuvre Du Projet
La page de gestion des clients offre une gamme complète d'outils pour faciliter
la suppression, la modification et l'insertion de clients. Cette interface conviviale vous
permet de prendre le contrôle total de votre base de clients. Vous pouvez facilement
supprimer les clients dont la transaction est terminée. La fonction de modification
vous permet d'apporter des mises à jour aux informations des clients, telles que les
coordonnées ou toute autre donnée pertinente. De plus, une fonction d'insertion permet
d'ajouter de nouveaux clients à la liste.
42
Chapitre 4 : Mise En Œuvre Du Projet
Cette page représente la liste des projets, cette interface est un guichet unique
pour explorer et gérer l'ensemble des projets. Cette interface claire et organisée offre
une vue d'ensemble complète de tous les projets en cours. Chaque projet est présenté
avec une image et son nom pour une identification rapide.
43
Chapitre 4 : Mise En Œuvre Du Projet
Notre page de gestion des projets offre une flexibilité totale pour la
suppression, la modification et l'insertion de projets. Cette interface conviviale permet
aux utilisateurs de gérer efficacement leur portefeuille de projets. Ils peuvent
facilement supprimer les projets. La fonction de modification permet de mettre à jour
les détails du projet tels que le nom, le type, la date ou toute autre information
essentielle. De plus, la fonction d'insertion permet d'ajouter de nouveaux projets à la
liste.
44
Chapitre 4 : Mise En Œuvre Du Projet
Cette page représente la liste des employés et offre une vue complète de tous
les membres d’équipe. Chaque employé est présenté avec une image professionnelle,
son nom et sa mission au sein de l'entreprise. Cette interface soigneusement conçue
vous permet de connaître rapidement les membres clés d’équipe et leurs
responsabilités.
45
Chapitre 4 : Mise En Œuvre Du Projet
46
Chapitre 4 : Mise En Œuvre Du Projet
Liste de documents :
Notre page de liste des documents est la référence centrale pour accéder à tous
les fichiers importants et documents essentiels d'un projet. Cette interface organisée
permet de visualiser facilement la liste complète des documents disponibles. Chaque
document est accompagné d'une description concise, vous permettant de comprendre
rapidement son contenu. Que ce soient des contrats, des plans téléphoniques, des plans
voiries ou d'autres types de documents, notre page offre une vue d'ensemble complète.
Vous pouvez naviguer à travers la liste, effectuer des recherches pour trouver un
document spécifique et accéder rapidement à son contenu.
47
Chapitre 4 : Mise En Œuvre Du Projet
48
Chapitre 4 : Mise En Œuvre Du Projet
49
Chapitre 4 : Mise En Œuvre Du Projet
Collections de projet :
Login en Postman :
50
Chapitre 4 : Mise En Œuvre Du Projet
51
Chapitre 4 : Mise En Œuvre Du Projet
52
Chapitre 4 : Mise En Œuvre Du Projet
53
Chapitre 4 : Mise En Œuvre Du Projet
IV. Conclusion
54
Conclusion Générale et Perspectives
Les anciennes méthodes utilisées pour la gestion des grands événements sont très
fatigantes et consomment beaucoup d'énergie et de temps ce qui pousse les sociétés et les
entreprises à demander des solutions.
La réalisation de ce projet a été passée par des étapes structurées et bien étudiées.
Le choix de ces outils a été bien étudié. Nous avons choisi ceux qui facilitent la
réalisation de ce projet et rendent notre travail un peu plus simple.
Ensuite sous la direction de l'encadrant nous avons préparé une conception bien
structurée de la plate-forme (IMMOLEADER) tout en tenant compte des besoins de
l'utilisateur.
Et enfin cette expérience nous a énormément aidés sur le côté technique, en effet nous
avons appris de nouvelles compétences comme le développement web avec Le MERN Stack.
Pour conclure, ce stage nous ouvrit la porte vers la vie professionnelle et nous permit
de connaître ce qu’est réellement le métier d’un développeur.
55
Bibliographie
BIBLIOGRAPHIE
56