Rapport PFA S2 V Finale
Rapport PFA S2 V Finale
Systèmes - RABAT
Filière : IDSIT
Encadrée par :
Nos remerciements vont également à tous les membres du Jury d’avoir accepté
d’évaluer ce travail, afin de lui donner une valeur ajoutée par leurs remarques et
leurs critiques.
Nous remercions aussi toute personne ayant contribué de près ou de loin, direc-
témoignage de notre profonde reconnaissance pour l’aide précieuse qu’ils nous ont
apportée.
Ce rapport résume les travaux réalisés dans le cadre de notre projet au cours
tion et nos réalisations dans les différents cours de Système d’information, Base
Pour ce faire, nous avons tout d’abord analysé les caractéristiques que nous de-
vions atteindre. Ensuite, nous avons élaboré une conception basée sur Merise.
This report summarizes the work of our project during the second half of
and our achievements in the various courses of Information System, Database and
Web Frameworks. The idea of the project is to develop a web application for the
management of real estate rentals, solving both the problem of prolonged search
developed a Merise-based design. Finally, we carried out the project using the
Abréviation Désignation
MVC Model-View-Controller
Introduction Générale 10
Chapitre II : Conception 19
2.1 Diagramme de cas d’utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2 Description des interactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.3 Diagramme de séquence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.4 Diagramme de classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Conclusion générale 43
Introduction Générale
Les locations immobilières peuvent être un processus fastidieux, et vous devez d’abord trouver
un immeuble non loin de chez vous famille ou de votre travail, et soyez patient avant de pouvoir
trouver un immeuble convonable.
Vous pouvez chercher longtemps alors que votre immeuble n’est qu’à quelques pas, ou votre im-
meuble peut être absent ou votre agence peut changer d’adresse à votre insu.
La gestion des locations chez une agence est une partie importante du son fonctionnement normal.
Ainsi, notre travail consiste à concevoir et mettre en place un site web de gestion dynamique des
réservations qui prend en compte quelques contraintes pouvant survenir lors de la réservation d’un
locataire.
À travers le site, il est possible de prendre une location selon les critères souhaités par le locataire
(lieu, date, durée, prix, . . .) et selon la disponibilité des immeubles..
Le but de notre projet est de faciliter le travail des locataires ainsi que celui des bailleurs, en
essayant d’économiser le temps d’attente et la distance parcourue.
Chapitre I
Contexte du travail
Introduction
Dans ce projet, nous allons créer une application web qu’on espérera facilement intégrable
dans l’environnement du travail du secteur immobilières.
Cela va nous conduire à mettre en place une plateforme permettant de fournir des services
immobilières tels que la location en ligne des immeubles de leur choix 24 heures sur 24 (et 7 jours
sur 7), la demande d’information, le suivi en ligne, etc.
Les locataires peuvent désormais consulter les agences pour connaı̂tre les immeubles dis-
ponibles, choisir les dates qui leur conviennent le mieux et de pouvoir modifier des locations en
temps opportun si nécessaire, assurant une meilleure expérience immobilières.
1.2.1 Périmètre
Notre application cible les gens qui ont des services de location ainsi ceux qui ont besoin de
ces services dans le secteur immobilier.
Le site Web sera créé dans le but de réaliser les fonctions suivantes :
• Les utilisateurs doivent établir une connexion pour accéder à notre site web.
• Les utilisateurs peuvent chercher un immeuble à louer selon son type (bureau, appartement,
chambre. . .), selon son adresse et son prix, et selon la date ...
• Les locataires peuvent prendre une location après avoir trouvé un immeuble et s’ils n’ont pas
de compte, ils doivent s’inscrire.
• Le locataire peut télécharger une fiche de confirmation de prise de location d’un immeuble.
• Le locataires doit s’authentifier pour accéder à son espace personnel.
• Les locataires peuvent consulter leurs locations et les modifier si certaines conditions sont
vérifiées.
• Les bailleurs peuvent s’inscrire et avoir des comptes après un vérification des informations.
• Les bailleurs doivent s’authentifier pour accéder à leur espace personnel.
• Les bailleurs peuvent ajouter plusieurs immeubles à leur compte avec les vérifiée.
• Un bailleur peut modifier les informations relatives à un immeuble ou le supprimer si certaines
conditions sont vérifiées.
Pour assurer le bon fonctionnement du site internet et garantir la satisfaction des utilisa-
teurs, des contraintes doivent être prises en compte tout au long de l’élaboration du projet :
— Ergonomie et convivialité :
l’application doit fournir une interface homme-machine (IHM) simple et facile à utiliser
pour une navigation intuitive sur le site.
— Graphisme :
• Le choix des couleurs utilisées s’est porté sur une palette de couleurs qui n’agressent pas
les yeux. Dans un mélange d’orange et blanc, parfaitement adaptés au secteur immobilier.
• Le choix de la police s’est porté sur (monospace) car elle est simple et facilement lisible
en plus d’être prise en charge par la quasi-totalité des navigateurs.
— Rapidité et robustesse :
Le site Web doit garantir la réactivité et la fiabilité des résultats : les locataires peuvent
prendre des locations facilement.
— Sécurité :
Le site Internet doit prendre en compte la sécurité des données des utilisateurs.
— Compatibilité :
• Notre application web doit être compatible avec tous les navigateurs
• Notre application doit être compatible avec la machine de l’utilisateur, ainsi son écran
résolution c’est-à-dire soit il est sur sa tablette ou son pc ou son smartphone(site web
responsive).
— Maintenabilité :
Le code source de notre application doit être lisible et compréhensible en cas de besoin
pour des futures améliorations.
— Facilité :
L’application doit contenir des interfaces faciles à utiliser .
1.3 Méthodologie
C’est une méthode qui enveloppe toutes les étapes du cycle de vie d’un projet. C’est-à-dire
la conception, la réalisation et la validation. Ce processus comporte une phase ascendante et une
phase descendante. C’est de là qu’elle tient son nom ≪ V ≫.
La méthode du cycle en V repose sur une idée simple. Les étapes de développement logiciel
et de tests unitaires se répondent les unes aux autres. En clair, cela signifie que chaque phase de
développement logiciel doit se conclure par une phase de tests unitaires.
Pour les projets informatiques modernes, la méthode Agile est souvent préférée car elle
permet de travailler simultanément sur plusieurs aspects et de livrer des résultats partiels plus
rapidement.
Cependant, étant donné que notre projet S2 n’est pas très volumineux, nous avons choisi
d’adopter une approche classique en utilisant la méthode en V, ce qui était approprié compte
tenu de notre progression dans les cours d’analyse, de conception et de réalisation.
1.4 Plannification
Notre projet est géré en suivant un découpage chronologique en phases, qui spécifie ce qui
doit être fait (les tâches) et par qui (les ressources). Pour représenter cette répartition, nous
utilisons un diagramme de Gantt, un type de graphique à barres qui illustre une série de tâches
sur une période donnée. Ce diagramme affiche la liste des activités à réaliser dans le projet, ainsi
que leurs dates de début et de fin, et constitue une représentation visuelle d’un calendrier de
projet. Voici un exemple de notre diagramme de Gantt :
1.6 Conclusion
Dans ce qui précède, nous avons situé le projet dans son contexte global en décrivant son
objectif général, le cahier des charges du projet ainsi que la spécification de la méthodologie du
cycle de vie adoptée et la planification.
Sur la base de ces recherches, nous montrerons dans le chapitre suivant les différentes fonctions
de notre projet.
Chapitre II
Conception
Introduction
La réalisation d’un site web doit être impérativement précédée d’une méthodologie d’ana-
lyse et de conception qui a pour objectif de permettre de formaliser les étapes préliminaires du
développement d’un site afin de rendre ce développement plus fidèle aux besoins.
Dans ce chapitre, nous allons nous intéresser aux fonctionnalités apportées par notre site internet.
Ensuite, nous nous intéresserons à l’aspect architectural du site. Cette phase vise à concevoir des
schémas généraux permettant de modéliser et de décrire sans ambiguı̈té le fonctionnement sou-
haité de notre site Internet. Dans ce chapitre, deux perspectives conceptuelles seront décrites. Le
premier donne un aperçu de l’architecture tandis que le second fournit une vue détaillée basée sur
le langage UML (Unified Modeling Langage).
Un diagramme de cas d’utilisation permet de représenter les fonctions d’un système du point
de vue de l’utilisateur (appelé ≪ acteur ≫ en UML). Cet acteur ne doit pas nécessairement être
un utilisateur humain. Le rôle peut également être attribué à un système externe qui accède à un
autre système. Le diagramme de cas d’utilisation montre en fait la relation entre un acteur et ses
demandes ou attentes vis-à-vis du système (interactions), sans décrire les actions.
Ci-dessous nous représentons le diagramme de cas d’utilisation de notre système (figure 2.1) :
Identifier :
Processus par lequel le système s’assure de l’authentification de l’utilisateur avec un identifiant et
un mot de passe.
Après avoir visité le site Web, un locataire ou un proprietaire doit remplir un formulaire qui
sera utilisé pour sauvegarder ses informations dans la base de données. L’authentification se fait
une seule fois. Les connexions ultérieures au site seront créditées sur le compte avec son identifiant.
Prendre location :
Pour prendre une location en ligne d’un immeuble, il suffit de se connecter au site et choisir l’im-
meuble convenable. La location sera automatiquement enregistré dans la base de données avec
toutes informations nécessaires (nom du locataire, nom du proprietaire, prix, date et nombre de
mois ...).
Le diagramme de séquence permet de montrer les interactions d’objets dans le cadre d’un
scénario d’un diagramme des cas d’utilisation. Dans un souci de simplification, on représente l’ac-
teur principal à gauche du diagramme, et les acteurs secondaires éventuels à droite du système.
Le but est de décrire comment se déroulent les interactions entre les acteurs ou objets.
Typiquement utilisés pour représenter l’interaction détaillée qui prend place dans un cas d’utili-
sation ou pour une opération, En général, les diagrammes de séquence contiennent :
L’objet : qui est une manifestation concrète d’une abstraction à laquelle on peut appliquer un
ensemble d’opérations et qui possède un état capable de mémoriser les effets de ces opérations.
On représente un objet en soulignant son nom.
Le lien : qui est une liaison sémantique entre objets, en général, il s’agit d’une instance d’une
association. Chaque fois qu’une classe est reliée à une autre par une association, il peut y avoir
un lien entre les instances des deux classes, et chaque fois qu’un lien existe entre deux objets, le
premier objet peut envoyer un message au deuxième.
Le message : c’est la spécification d’une communication entre objets, qui transporte des infor-
mations et qui s’affiche dans le but de déclencher une activité. La réception d’une instance de
message peut être considérée comme une instance d’un événement.
Voilà ci-dessous le diagramme de la recherche d’un immeuble et effectuer une location pour un
locataire inscrit Dans les bonnes conditions :
Les diagrammes de classes sont les plus utilisés dans la langage UML. Ils décrivent les types
des objets qui composent un système et les différents types de relations statiques qui existent entre
eux.
Rappelons qu’une classe est une représentation abstraite d’un ensemble d’objets, qui contient
les informations nécessaires à la construction de l’objet (c’est-à-dire la définition des attributs et
des méthodes). La classe peut donc être considérée comme le modèle, le moule ou la notice qui
va permette la construction d’un objet. Nous pouvons encore parler de type (comme pour une
donnée). On dit également qu’un objet est l’instance d’une classe (la concrétisation d’une classe).
2.5 Conclusion
Dans ce chapitre, nous nous sommes concentrés sur les aspects analytiques et conceptuels
de notre système. Nous avons fourni une conception globale. Un détail de cette conception a été
donné à travers des diagrammes UML, qui nous ont permet de définir des vues statiques ainsi que
dynamiques du site. Pour illustrer la réalisation de travail, nous allons présenter l’implémentation
de notre système dans le chapitre suivant.
Chapitre III
Réalisation
Introduction
Après avoir effectué une analyse et une conception, nous nous intéresserons dans ce chapitre
à la réalisation (implémentation) de l’objectif de ce travail. Nous allons commencer par un bref
rappel sur les outils utilisés (langages et environnements et frameworks), puis nous présenterons
les fonctionnalités et quelques interfaces de notre travail.
Visual studio code : est un éditeur de code source qui peut être
utilisé avec une variété de langages de programmation, notamment
Java, JavaScript, Go, [Link] et C++. Il est basé sur le cadre Elec-
tron, qui est utilisé pour développer applications Web.
Lucid app : Lucid App est une application qui aide les utilisateurs à
créer des diagrammes clairs et visuellement attrayants pour présenter
des informations de manière efficace.
Git : Git est un système de contrôle de version utilisé pour gérer les
modifications apportées à un projet informatique. Il permet de suivre
les changements, de revenir en arrière si nécessaire et de collaborer
efficacement avec d’autres développeurs.
Dans un esprit de défi, et de vouloir mettre en œuvre les connaissances qu’on a acquis durant
notre formation, nous avons choisi HTML, CSS , JavaScript et PHP des langages qui sont très
utiliser pour la programmation web .
3.1.3 Framworks :
Les frameworks sont des outils logiciels qui fournissent une structure et des fonctionnalités
prêtes à l’emploi pour faciliter le développement d’applications. Dans cette section, nous exami-
nerons les frameworks spécifiques que nous avons choisis et discuterons de leur importance dans
la construction de notre application.
Dans cette partie, nous présentons notre travail en montrant des captures d’écran des inter-
faces les plus importantes de notre site.
L’interface de la page d’accueil du site web se compose d’un menu principal contenant des
liens pour permettre à l’utilisateur de naviguer sur les pages du site qui l’intéresse. De plus, une
section lui offrira la possibilité de chercher un immeuble convenable selon la ville, le type, le nombre
de chambres, la surface, et le prix
Lorsque l’utilisateur clique sur le bouton “se connecter” le bloc suivant s’affiche :
Dans cette interface l’utilisateur (locataire ou propriétaire) qui a déjà un compte peut s’au-
thentifier pour accéder à son espace avec ses informations valides, sinon un message d’erreur
s’affiche en lui indiquant que les informations insérées sont erronées. et l’utilisateur qui n’a pas de
compte peut s’inscrire en cliquant sur le lien s’inscrire.
Cette page pour la regestration d’un nouveau locataire, elle lui demande de saisir ses in-
formations (nom, prenom, telephone, email, mot de passe). Il faut impérativement qu’il remplisse
toutes les informations de façon correcte, sinon un message d’erreur sera affiché
Cette page pour la regestration d’un nouveau proprietaire, elle lui demande de saisir ses
informations (nom, prenom, telephone,cin, cin pdf, email, mot de passe). Il faut impérativement
qu’il remplisse toutes les informations de façon correcte, sinon un message d’erreur sera affiché
Après que le locataire ait inséré ses informations de façon correcte dans l’interface de login
il peut accéder à son espace comme il est montré ci-dessous :
Cette interface contient un menu principal qui se compose des liens permettant au locataire
de naviguer entre les différentes pages de son espace. et un formulaire qui lui permet de chercher
un immeuble.
Après une insertion des informations, le locataire peut cliquer sur le bouton chercher ( dans
la figure-3.2), la liste des immeubles convenables aux informations insérées s’affiche comme suit :
Cet interface affiche les cartes des information des differents immeubles, et le locataire peut
choisir l’immeuble qui lui convient, et lui voir en cliquant sur le lien qui est affiché au-dessous de
sa carte. Une carte se caractérise par les images la ville et le type d’immeuble aussi son prix en
plus que sa surface et son nombre de chambres.
Si le locataire a choisi un immeuble et a appuyé sur le lien “voir”, il se renvoie vers la page
ci-dessous qui affiche plus d’informations sur l’immeuble :
Cet interface affiche tous les locations du locataire et un lien pour voir le reçu de chaque
location.
Cet interface affiche les information du location d’un immeuble sous form PDF comme suit :
Le locataire peut voir à tout moment ses informations à travers cette page.
Le locataire peut changer à tout moment ses informations à travers cette page qui contient
des champs à remplir (Nom, prénom, Téléphone).
Après que le propriétaire ait inséré ses informations de facon correctes il peut accède son
espace comme il est montre ci-dessous :
cette interface contient un menu principal qui se compose des liens permettant au pro-
priétaire de naviguer entre les différentes pages de son espace. et les annonces non réservées pour
le propriétaire qui connecte.
Le proprietaire peut voir la carte d’un annonce contient leur détails et il peut l’éditer par
le bouton “éditer ”et elle peut même les effacer par le bouton “effacer”
3.3 Conclusion
Dans ce chapitre, nous avons décrit les environnements matériels et logiciels dans lesquels
notre application a été construite. Ensuite, nous avons démontré les fonctionnalités importantes
en fournissant certaines interfaces graphiques de l’application.
Conclusion générale
Ce projet de fin d’annee a pour but la création d’un site web dynamique de gestion des locations
immobilieres. Afin de répondre à cet objectif, nous avons commencé par poser la problématique liée
aux conséquences de la difficulté de la location. Ensuite, nous avons abordé les différentes étapes
de la conception de notre application en se basant sur le langage UML. Dans ce cas, plusieurs
diagrammes ont été présentés : Classes, Cas d’utilisation, Séquence. Puis on a conçu la base de
données à l’aide du SGBD MYSQL. Cela nous a conduit à la réalisation de l’application à l’aide
du framwork Symfony et react js et langage de programmation PHP, moyennant le langage de
manipulation de requêtes SQL. Enfin, nous avons essayé de rendre notre site avec une interface
graphique simple et attrayante, ce qui est un atout important dans les sites web modernes. Malgré
le rôle important que peut jouer notre application dans le domaine immobilier, cette dernière
présente quelques restrictions, que nous espérons aborder prochainement, telles que : - Limitation
à une zone géographique donnée. - Mise en place d’un système de classes pour les locataire en
fonction de leurs fidélités. - Mise en place d’un système de sécurité des données fournies, ainsi que
les différentes transactions effectuées.
BIBLIOGRAPHIE
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]