0% ont trouvé ce document utile (0 vote)
22 vues45 pages

PFA Rapport

Le projet présente un site web de location de voitures, offrant une interface moderne et conviviale pour la réservation en ligne. Il inclut un moteur de recherche efficace, un processus de réservation rapide, et un chatbot intelligent pour assister les utilisateurs. L'application est conçue pour être accessible sur tous types d'écrans, garantissant une expérience utilisateur fluide et sécurisée.

Transféré par

mohammed rajeb
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
22 vues45 pages

PFA Rapport

Le projet présente un site web de location de voitures, offrant une interface moderne et conviviale pour la réservation en ligne. Il inclut un moteur de recherche efficace, un processus de réservation rapide, et un chatbot intelligent pour assister les utilisateurs. L'application est conçue pour être accessible sur tous types d'écrans, garantissant une expérience utilisateur fluide et sécurisée.

Transféré par

mohammed rajeb
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Projet de Fin d’Année

Présenté pour validation du 3eme année d’Ingénierie


Informatique et Réseaux

Site web de location de voitures avec réservation


rapide, gestion simplifiée pour une expérience
utilisateur fluide, moderne et adaptée aux besoins
des clients.

Présenté еt soutenu pаr :


RAJEB Mohammmed
EZZAHRAOUI Hoda

Dеvаnt lе Jury composé dе

Pr. Lobna ELAMRANI EMSI Encadrante


Pr. Mohamed EL ASSAD EMSI Jury

Mai 2025
Table de matières

Remerciements ……………………………………………………………………… 5
Dédicace……………………………………………………………………………. 6
Résumé……………………………………………………………………………… 7
Abstract……….…………………………………………………………………….. 8
‫………… مل ّخص‬.…………………………………………………………………….. 9
Introduction générale………………………...………………………................... 10
Chapitre I : Généralités……………………………………………...................... 12
1. Introduction ……………………………………………………………………… 13
3. Définition d’un système informatique…………………………………................. 13
3.1. Système informatique: le matériel………………………………………….. 13

3.2 Système informatique: le logiciel…………….…………………………….. 14

4. Types d’applications en informatique……………….…………………………… 15

4.1 Application Mobile…………………………………………….…………….. 15

4.2 Application desktop ou de bureau …………………………………..……….. 15

4.3 Applications web…………………………………………………………….. 16

5. Cycle de vie d'un logiciel…………………………………….…………….…….. 16


5.1 Définition d’un cycle de vie d’un logiciel ……………………………….... 16
5.2 Modèles de cycles de vie………………………………………….…………. 18
5.2.1 Modèle en cascade………………………………………………...…… 18

5.2.2 Modèle en V……………………………………………………….…… 19

5.2.3 Modèle par incrément……………………………………..................... 20

5.2.4 Notre choix de modèles de cycle de vie……………………………... 20

[Link]…………………………………………………................................. 20

Chapitre II :Analyse et Conception…………………………............................. 21


1. Introduction……………………………………………………..…………… 22
2. Problématique………………………………………..……………………… 22
3. Objectifs…………………………….…………………………..…………… 22
4. A qui s’adresse le site ?……….…………….…………………….………… 23

5. L’étude de l’éxistant……….………………………………………………… 23

5.1 Etude du site CasaDrive……….…………………………………….…… 24


6. Besoin et cahier de charge…………………………………………………… 25

7. Le langage UML……………..……………………………………………… 25
7.1. Définition du modèle UML …………………………….…..…………… 26
7.2. Les différents diagrammes UML………………………….……..………. 26

7.3. Les différents diagrammes UML………………………….……..………. 27

7.3.1. Identifiction des acteurs………………………….……..………. 27

7.3.2 Diagramme de cas d’utilisation……..…………….……..………. 28

7.3.3 Specification des taches……….………………….……..………. 28

a) Taches de visiteur ……….………………….……..………. 29

a) Taches de client……….….………………….……..………. 30

c) Taches de l’administrateur.………………….……..………. 30

7.3.4 Diagramme de classe….……….………………….……..………. 31

8. Passage au modèle relationnel…………………………………....…………. 32

Chapitre III : Implémentation……………………………….…………………. 33

1. Introduction…………………………………………………………………… 34

2. Les meilleurs langages de programmation pour le Web………………………. 34

3. Les technologies et langages utilisés dans notre application………………….. 34


4. Le modèle physique des données (MPD)………………………………..…….. 35
[Link] de l’application………………………………………………………. 39
5.1 Page d’Accueil……………………………………………………………… 39
5.2. Page d’inscription…………………….…………………………………… 40
[Link] profil de client………………………………………….................... 36
6 Conclusion……………………………………..……………………………….. 43
Conclusion générale……………………………………..………………………….. 44
Références……………………………………..……….….………………………… 45
Liste des figures

Figure 1 : Le matériel d’un SI……………………………………………………….. 14


Figure 2 : Le Machine Virtuel………………………………………………………... 15
Figure 3 : Modèle en Cascade…………………………………………..……………. 19
Figure 4 : Modèle en V………………………………………………………………. 19
Figure 5 : Page de recherche des Voitures disponibles …...………………………… 24
Figure 6 : Diagramme de contexte statique………………………………………….. 27
Figure 7 : Diagramme de cas d’utilisation général…………………………………... 28
Figure 8 : Diagramme de cas d’utilisation gestion Voiture et Réservations.……....... 29
Figure 9 : Diagramme de classes…………………………………………………… 30
Figure 10: les tables de Base de données :site ………………………………………. 36
Figure 11: table Admin……………………………………………………………. 36
Figure 12: table Cars……………………………………………………………… 37
Figure 13: table Client……………………………………………………………. 37
Figure 14: table Location…………………………………………………………. 38
Figure15: table Reservarion…………………………………………………………... 38
Figure 16 : page d’Accueil visiteur………………………………………………….. 39
Figure 17 : Affichage des résultats rechercher …………………………………….. 40
Figure 18:la page d’inscription……………………………………………………. 40
Figure19: la page de connexion…………………………………………………….. 41
Figure 20: la page de profil client …………………………………………………... 41
Figure 21: page d’Admin…….……………………………………………………….. 42

Liste des Tableaux


Tableau 1 : taches du visiteur…………………………………………. 29

Tableau 2 : taches du client…………………………………………… 30

Tableau 3 : taches d’administrateur…………………………………. 30


Remerciement :

Nous tenons tout d’abord à exprimer notre profonde gratitude à Allah, le Tout-Puissant, pour la
force, la persévérance et la volonté qu’Il nous a accordées tout au long de la réalisation de ce projet.

Nous adressons nos sincères remerciements à toutes les personnes qui ont, de près ou de loin,
contribué à l’aboutissement de ce travail.

Nous souhaitons particulièrement remercier Mme Lobna ELAMRANI, notre encadrante, pour sa
disponibilité constante, ses conseils éclairés, sa bienveillance et la confiance qu’elle nous a accordée
durant toute la durée de ce projet. Son accompagnement a été d’une grande valeur pour nous.

Nos remerciements vont également aux membres du jury, qui nous font l’honneur d’évaluer notre
travail, ainsi qu’à l’ensemble des enseignants du département d’informatique de l’école marocaine
des sciences de l’ingénieur à Casablanca, pour la qualité de leur enseignement et leur
accompagnement tout au long de notre parcours académique.

5
Dédicaces :

Je dédie ce mémoire à ma chère sœur Salma Rajeb, dont le soutien, les encouragements et la
bienveillance m’ont été d’un grand réconfort tout au long de ce parcours. Je pense également avec
gratitude à mes amis Anass Kida, Youness Sabaoui, Youssef Khalafto et Abdesslam Ouazrii, pour
leur amitié sincère, leur humour et leur présence constante. Mes remerciements vont aussi à mon
professeur, pour ses conseils éclairés et son accompagnement bienveillant. À mes parents, que Dieu
les protège et leur accorde santé et bonheur, pour leur amour inconditionnel et leur courage
inestimable. À mes frères Zineddine et Mohammed, à ma grand-mère, et à toute ma famille, pour
leur soutien moral et leurs prières. Enfin, je dédie ce travail à toutes les personnes qui, de près ou de
loin, m’ont encouragé, guidé ou soutenu dans la réalisation de ce mémoire. Merci du fond du cœur.

6
Résumé :

Le site web de location de voitures offre une solution complète et conviviale pour réserver un
véhicule en ligne. Dès l’arrivée sur la plateforme, l’utilisateur accède à un moteur de recherche
simple et efficace pour trouver une voiture selon ses critères : localisation, dates, catégorie de
véhicule, carburant, prix, etc. Chaque voiture dispose d’une fiche détaillée avec photos,
informations techniques et avis d’autres clients. Le processus de réservation est fluide et rapide,
avec la possibilité de sélectionner des options supplémentaires (GPS, siège enfant, assurance).
L’espace personnel permet à chaque utilisateur de suivre ses réservations, d’en modifier ou d’en
annuler facilement. Le paiement est entièrement sécurisé. Un des éléments clés du site est son
chatbot intelligent intégré, disponible 24h/24. Il aide les visiteurs à naviguer sur le site, à choisir
une voiture en fonction de leurs besoins et répond aux questions courantes. En cas de demande
spécifique, il peut également orienter vers un conseiller humain. Ce chatbot améliore l’expérience
utilisateur en apportant une assistance immédiate et personnalisée. Le site est également responsive,
s’adaptant à tous les types d’écrans : smartphones, tablettes et ordinateurs. Moderne, simple
d’utilisation et riche en fonctionnalités, cette plateforme rend la location de voiture rapide, pratique
et accessible à tous, à tout moment.

Mots clés : Location, voiture, réservation, chatbot, utilisateur, plateforme, assistance, responsive.

7
Abstract:

The car rental website offers a complete and user-friendly solution for booking a vehicle online.
Upon arriving on the platform, users are presented with a simple and efficient search engine to find
a car based on their criteria: location, dates, vehicle category, fuel type, price, and more. Each car
has a detailed listing with photos, technical specifications, and customer reviews. The booking
process is smooth and fast, with the option to select additional services (GPS, child seat, insurance).
A personal user space allows customers to track, modify, or cancel their reservations easily.
Payment is fully secure. One of the key features of the site is its integrated intelligent chatbot,
available 24/7. It assists visitors in navigating the website, choosing a car based on their needs, and
answering common questions. For specific inquiries, it can also refer users to a human agent. This
chatbot enhances the user experience by providing immediate and personalized support. The
website is also responsive, adapting to all screen types: smartphones, tablets, and computers.
Modern, easy to use, and feature-rich, this platform makes car rental fast, convenient, and accessible
to everyone, anytime.

Keywords: Rental, car, booking, chatbot, user, platform, assistance, secure payment, responsive.

8
‫الملخص‬

‫يقدّم موقع تأجير السيارات حالً شامالً وسهل االستخدام لحجز المركبات عبر اإلنترنت‪ .‬عند دخول المستخدم إلى المنصة‪ ،‬يظهر‬
‫له محرك بحث بسيط وفعّال يسمح له بالعثور على السيارة المناسبة وفقا ً لمعايير مختلفة مثل‪ :‬الموقع‪ ،‬التواريخ‪ ،‬فئة السيارة‪ ،‬نوع‬
‫الوقود‪ ،‬السعر وغيرها‪ .‬تحتوي كل سيارة على صفحة مخصصة تتضمن صوراً‪ ،‬معلومات تقنية‪ ،‬وآراء عمالء سابقين‪ .‬عملية‬
‫يتيح الفضاء ‪).‬مقعد أطفال‪ ،‬تأمين ‪ GPS،‬نظام تحديد المواقع( الحجز سلسة وسريعة‪ ،‬وتتيح إمكانية اختيار خدمات إضافية مثل‬
‫الشخصي لكل مستخدم متابعة حجوزاته وتعديلها أو إلغائها ب كل سهولة‪ .‬كما أن الدفع يتم بطريقة مؤمنة بالكامل‪ .‬من بين أبرز‬
‫مميزات الموقع هو دمج روبوت محادثة ذكي يعمل على مدار الساعة‪ ،‬يساعد الزوار على تصفح المنصة‪ ،‬اختيار السيارة حسب‬
‫حاجاتهم‪ ،‬ويجيب عن األسئلة الشائعة‪ .‬وفي حال وجود استفسارات خاصة‪ ،‬يمكنه تحويل المستخدم إلى مستشار بشري‪ .‬هذا الروبوت‬
‫يسهم في تحسين تجربة المستخدم من خالل تقديم دعم فوري وشخصي‪ .‬كما أن الموقع يتميز بتصميم متجاوب يتناسب مع جميع‬
‫أنواع الشاشات‪ :‬الهواتف الذكية‪ ،‬األجهزة اللوحية‪ ،‬والحواسيب‪ .‬بفضل تصميمه الحديث‪ ،‬سهولة استخدامه‪ ،‬وغناه بالوظائف‪ ،‬يجعل‬
‫هذا الموقع تجربة تأجير السيارات سهلة‪ ،‬سريعة‪ ،‬ومناسبة للجميع في أي وقت‬

‫‪.‬الكلمات المفتاحية‪ :‬تأجير‪ ،‬سيارة‪ ،‬حجز‪ ،‬روبوت محادثة‪ ،‬مستخدم‪ ،‬منصة‪ ،‬مساعدة‪ ،‬دفع آمن‪ ،‬متجاوب‬

‫‪9‬‬
Introduction
générale :

10
Introduction Générale :

Avec l'essor d’Internet, de nombreuses activités humaines ont progressivement migré vers le
numérique : enseignement à distance, télétravail, loisirs et bien sûr, le commerce électronique. Ce
dernier s’impose aujourd’hui comme un pilier essentiel de l’économie moderne, offrant aux
professionnels de nouveaux moyens d’élargir leur clientèle, de valoriser leurs services et
d’optimiser leur gestion interne.

C’est dans ce contexte que s’inscrit notre projet, dont l’objectif est de développer une application
web dédiée à la gestion de la location de voitures. Cette plateforme a pour vocation de répondre aux
besoins des professionnels du secteur, tels que les agences de location ou les gestionnaires de flotte,
en leur proposant un outil pratique et performant pour gérer leur parc automobile, suivre les
réservations, et améliorer l’expérience client.

Notre application permet notamment l’ajout, la modification, la suppression et la recherche de


véhicules, tout en intégrant des options de filtrage avancées selon des critères variés (prix, catégorie,
disponibilité, etc.). Une interface conviviale et une gestion sécurisée des données via MySQL
assurent une utilisation fluide et efficace. Le backend, développé en PHP natif, est déployé sur un
serveur Apache, tandis que l’interface utilisateur repose sur les langages classiques du web (HTML,
CSS, JavaScript).

Afin de structurer au mieux notre travail, ce mémoire est organisé comme suit :

- Chapitre 1 est consacré aux généralités, en présentant les systèmes d'information et les différents
types d’applications (desktop, web, mobiles), ainsi que les grandes étapes du cycle de vie logiciel.
- Chapitre II aborde l’analyse et la conception de notre application, à travers une étude de
l’existant, la définition des besoins, et la modélisation du système.
- Chapitre III traite de l’implémentation, en détaillant l’environnement de développement, les
outils utilisés et les principales interfaces de l’application.
Enfin, une conclusion générale viendra clôturer ce mémoire, accompagnée de quelques perspectives
d’amélioration et d’évolution future.

11
Chapitre I
Généralités

12
1. Introduction
Aujourd’hui, le web occupe une place centrale dans notre quotidien et son expansion touche
pratiquement tous les secteurs d’activité : finance, banque, éducation, commerce, et bien d’autres
encore. L’omniprésence des applications web témoigne de cette transformation numérique
profonde.
Parmi les usages les plus courants, les plateformes de petites annonces en ligne connaissent une
croissance notable, tant auprès des particuliers — pour des raisons économiques — que des
professionnels, qui y voient un moyen efficace d’élargir leur clientèle et de renforcer leur visibilité.
Dans ce chapitre introductif, nous commencerons par définir les concepts clés liés au domaine du
développement web et au type d’application ciblé dans le cadre de notre projet. Nous présenterons
ensuite la méthodologie adoptée pour mener à bien l’analyse, la conception et la mise en œuvre de
la solution informatique proposée.

2. Définition d’un système d’information


Un système d’information (SI) désigne un ensemble structuré de ressources humaines, matérielles,
logicielles et organisationnelles, conçu pour acquérir, traiter, stocker et diffuser l’information au
sein d’une organisation. Véritable centre névralgique de l’entreprise, le SI joue un rôle fondamental
dans la prise de décision, la coordination des activités et l’optimisation des processus internes [1].

3. Définition d’un système informatique


Un système informatique désigne l’ensemble des moyens informatiques et de télécommunication
mis en œuvre pour élaborer, traiter, stocker, transmettre, afficher ou supprimer des données.
Il constitue la composante technologique du système d’information, intégrant à la fois le matériel
(hardware), les logiciels (software), les réseaux de communication, ainsi que les procédures
d’utilisation.
Ce système repose sur deux éléments fondamentaux : le matériel, qui représente les composants
physiques (ordinateurs, serveurs, périphériques, etc.), et le logiciel, qui regroupe les programmes et
applications permettant l’exploitation des données [2].

3.1. Système informatique : le matériel


L’objectif d’un système informatique est d’automatiser le traitement de l’information. Un système
informatique est constitué de deux entités : le matériel et le logiciel. Côté matériel, un ordinateur
est composé de :

13
• Microprocesseur : Exécute instructions et coordonne opérations
• Horloge : Synchronise toutes les opérations
• R.O.M. : Stocke données fixes de démarrage
• R.A.M. : Mémoire temporaire pour traitements actifs
• Interface Entrées-Sorties : Gère communication avec périphériques
• Périphériques : Interagissent avec l’unité centrale

Figure 1 : Le matériel d’un SI

3.2 Système informatique : le logiciel.


Sur le plan logiciel, un système informatique se compose de deux niveaux principaux : le système
d’exploitation et les applications. Le rôle du logiciel est de fournir à l’utilisateur des fonctionnalités
répondant à ses besoins, tout en masquant la complexité matérielle sous-jacente. Pour y parvenir,
les logiciels sont généralement structurés en couches hiérarchiques, où chaque couche offre des
services de plus en plus élaborés à la couche supérieure. Cette abstraction du matériel par le logiciel
est désignée sous le terme de machine virtuelle [3].

14
Figure 2 : Le Machine Virtuel.

4. Types d’applications en informatique


Les trois grandes familles d'applications informatiques, qui dominent le marché, sont :

4.1. Application Mobile


Une application mobile est un programme spécifiquement développé pour être installé et utilisé sur
des appareils mobiles tels que les smartphones, tablettes ou assistants personnels. Une fois
téléchargée, l’application reste installée sur l’appareil, offrant ainsi un accès immédiat et continu à
ses fonctionnalités, même hors connexion dans certains cas. L’un des atouts majeurs des
applications mobiles réside dans leur capacité à exploiter les fonctionnalités natives de l’appareil,
telles que la géolocalisation, la caméra, ou les notifications push, améliorant ainsi l’expérience
utilisateur.
Cependant, le développement d’une application mobile présente plusieurs contraintes. Il nécessite
le respect de normes strictes imposées par les plateformes d’exploitation, notamment Apple pour
iOS et Google pour Android, ce qui peut complexifier le processus. Par ailleurs, ce type de
développement représente souvent un investissement financier important, en raison des
compétences techniques requises et des tests nécessaires pour assurer une compatibilité optimale
avec différents appareils et versions de systèmes d’exploitation [4].

4.2. Application desktop ou de bureau


Une application de bureau, également appelée application native, est un programme installé
localement sur un poste de travail et ne nécessitant pas l’usage d’un navigateur Web pour
fonctionner. Conçue pour des usages spécifiques, elle offre généralement de hautes performances

15
et une grande stabilité, car elle ne dépend pas d’une connexion réseau ou d’un service distant. Des
exemples courants incluent des logiciels comme Microsoft Word ou la suite iWork. Toutefois, ces
applications présentent des limites en termes de portabilité : elles doivent être installées
manuellement sur chaque appareil, ce qui peut compliquer leur déploiement. De plus, elles peuvent
être sujettes à des problèmes de compatibilité entre différents systèmes d’exploitation [4].

4.3. Une application Web


Une application web est un programme accessible via un navigateur (comme Google Chrome,
Mozilla Firefox ou Microsoft Edge) et qui repose sur les technologies du Web. Elle ne nécessite
aucune installation locale, ce qui facilite considérablement son déploiement et son utilisation. Son
principal avantage réside dans sa portabilité : elle peut être utilisée depuis n’importe quel appareil
— ordinateur, tablette ou smartphone — et à partir de n’importe quel lieu disposant d’une connexion
Internet. Contrairement aux applications de bureau, elle n’est pas limitée par la compatibilité des
systèmes d’exploitation.
Les applications web offrent également une meilleure centralisation de la sécurité : toutes les
données sont stockées sur un serveur, et l’accès est généralement protégé par un système
d’authentification. De plus, les mises à jour sont automatiques et transparentes pour l’utilisateur,
garantissant une évolution continue de l’application et réduisant les risques d’obsolescence.
Toutefois, leur principal inconvénient est qu’elles nécessitent impérativement une connexion réseau
pour fonctionner correctement.

5. Cycle de vie d'un logiciel


5.1. Définition d’un cycle de vie d’un logiciel
Le cycle de vie d’un logiciel désigne l’ensemble des phases par lesquelles passe un logiciel, depuis
la définition de ses objectifs jusqu’à son retrait définitif. Ce concept structurant vise à encadrer le
processus de développement afin de garantir la qualité du produit final, de maîtriser les délais, et de
contrôler les coûts associés. Il constitue un référentiel essentiel pour la planification, la gestion et la
validation des projets logiciels.
L’adoption d’un cycle de vie bien défini permet notamment de détecter les erreurs le plus tôt
possible, car leur correction en phase avancée (ex. : après déploiement) engendre des surcoûts
importants, selon le principe bien connu du « coût croissant de la correction ». Cette approche
renforce ainsi la traçabilité, la conformité aux besoins utilisateurs, et l’efficacité des méthodes
employées.

16
Selon la norme ISO/IEC 12207, un cycle de vie logiciel comprend généralement les étapes
suivantes :
• Définition des objectifs : cette étape clarifie les finalités du projet et son alignement avec
la stratégie globale de l’organisation.
• Analyse des besoins et étude de faisabilité : elle consiste à identifier, recueillir,
documenter et valider les besoins fonctionnels et non fonctionnels, tout en évaluant les
contraintes techniques, économiques et organisationnelles.
• Conception générale : elle porte sur la définition de l’architecture globale du système, des
grandes fonctions et des flux d’interactions.
• Conception détaillée : chaque composant ou module logiciel est spécifié avec précision en
vue de sa mise en œuvre.
• Implémentation (codage) : les spécifications sont traduites dans un ou plusieurs langages
de programmation adaptés, en respectant les bonnes pratiques de développement.
• Tests unitaires : chaque module est testé isolément pour vérifier sa conformité aux
spécifications définies.
• Intégration : les modules sont assemblés progressivement afin de tester leur bon
fonctionnement en interaction. Des tests d’intégration sont réalisés à chaque étape pour
s'assurer de la cohérence de l’ensemble.
• Validation (ou qualification) : elle vérifie que le logiciel global répond bien aux exigences
exprimées initialement par le client. Cette phase est souvent accompagnée d’une
homologation avant le déploiement.
• Documentation : à chaque étape du développement, la production de documents techniques
et fonctionnels est essentielle. Elle permet d’assurer une compréhension partagée du
logiciel, tant pour les utilisateurs que pour les développeurs en charge de futures évolutions
ou de la maintenance. Une documentation bien structurée facilite aussi la transmission de
connaissances et la pérennité du projet.
• Mise en production (déploiement) : cette phase marque la transition entre l’environnement
de développement/test et l’environnement réel d’exploitation. Le logiciel est alors rendu
accessible aux utilisateurs finaux. Elle peut s’accompagner de procédures de formation, de
migration de données, ou de tests de non-régression.

• Maintenance : après la mise en service, le logiciel entre dans une phase de maintenance

17
continue. Celle-ci regroupe :
o La maintenance corrective, visant à corriger les erreurs détectées après la livraison ;
o La maintenance évolutive, qui consiste à faire évoluer le logiciel pour intégrer de
nouvelles fonctionnalités ou répondre à des changements d’environnement
(technologique, réglementaire, etc.).

5.2. Modèles de cycles de vie


Afin de garantir une méthodologie commune entre le client et l’entreprise en charge du
développement, des modèles de cycle de vie logiciel ont été élaborés. Ces modèles définissent les
différentes phases du développement, ainsi que les livrables attendus à chaque étape, permettant
de valider les travaux réalisés avant de passer à l’étape suivante.
À l’issue de chaque phase, des revues formelles (ou revues de jalon) sont organisées. Elles ont pour
objectif d’évaluer la conformité des livrables par rapport aux exigences initiales, d’identifier
d’éventuelles anomalies et de valider la transition vers la phase suivante. Ce processus structuré
assure une meilleure traçabilité, une communication claire entre les acteurs du projet, et une maîtrise
plus rigoureuse de la qualité du logiciel.

5.2.1. Modèle en cascade


Le modèle en cascade reposant sur les exigences de Winston Walter Royce divise les processus de
développement en cinq phases de projet, qui sont les suivantes : analyse, conception,
implémentation, test et exploitation. Le schéma présente déjà l’une des extensions du modèle
recommandé par Royce : la vérification des résultats de chaque phase en tenant compte des
exigences et des spécifications élaborées au préalable.

18
Figure 3 : Modèle en Cascade
5.2.2. Modèle en V
Le cycle en V en gestion de projet découle du modèle en cascade théorisé dans les années 1970, qui
permet de représenter des processus de développement de manière linéaire et en phases successives.
Ce mode de gestion de projet a été développé dans les années 1980 et appliqué au champ des projets
industriels, puis étendu aux projets informatiques. Il a été remis en cause à partir du début des années
2000, sous l’effet de l’accélération des changements technologiques, favorisant davantage les
méthodes dites « agiles ».
La lettre V fait référence à la vision schématique de ce cycle, qui prend la forme d’un V : une phase
descendante suivie d’une phase ascendante. Le cycle en V associe à chaque phase de réalisation une
phase de validation.

Figure 4 : Modèle en V
5.2.3. Modèle incrémental

19
Le modèle incrémental repose sur une approche itérative où le système est développé par portions
successives (incréments), autour d’un noyau fonctionnel initial. Chaque incrément vient enrichir
progressivement le logiciel en y ajoutant de nouvelles fonctionnalités, jusqu’à obtention du produit
final. Ce modèle combine ainsi souplesse de développement et maîtrise de la complexité, car chaque
incrément est traité comme un mini-projet en soi.
En pratique, chaque incrément peut être réalisé selon un modèle de cycle de vie structuré, comme
le modèle en V ou en cascade. Cette approche permet de bénéficier à la fois de la rigueur
méthodologique de ces modèles et de l’adaptabilité offerte par l’incrémentation. Elle est
particulièrement efficace lorsqu’il s’agit de construire un système répondant de manière progressive
aux exigences du cahier des charges tout en réduisant les risques d’erreur et en facilitant les retours
clients.

5.2.4. Choix du modèle pour notre projet

Dans le cadre de notre projet, nous avons opté pour le modèle en V, en raison de sa rigueur et de sa
clarté méthodologique. Ce modèle repose sur une logique séquentielle descendante (spécification
et conception), suivie d’une phase de remontée symétrique (tests et validation). Chaque étape de
conception est ainsi associée à une phase de test correspondante, ce qui permet de valider et corriger
chaque composant du système avant de passer à l’étape suivante.
Ce modèle nous paraît particulièrement adapté à notre contexte, car il favorise la traçabilité, réduit
les erreurs en amont et offre une meilleure garantie de conformité du logiciel aux besoins exprimés
dans le cahier des charges.

6. Conclusion du chapitre

Dans ce premier chapitre, nous avons défini les concepts fondamentaux liés aux systèmes
d'information, aux types d'applications, ainsi qu'aux modèles de cycle de vie logiciel. Ces notions
constituent le socle méthodologique sur lequel repose notre projet.
Le prochain chapitre sera consacré à l’analyse des besoins et à la conception fonctionnelle et
technique de notre application de location de voitures, en tenant compte des spécificités du domaine
et des objectifs fixés.

20
Chapitre Ⅱ
Analyse et Conception

21
1. Introduction
Avant de prendre la route ensemble, découvrez notre approche détaillée pour vous offrir un service
de location de voitures sans égal. Notre plateforme en ligne est conçue avec soin pour répondre
précisément à vos besoins.
Notre équipe d'experts a effectué une analyse approfondie du marché pour créer une interface
intuitive et performante. Cette étude nous a permis d'identifier les fonctionnalités essentielles qui
rendront votre expérience de réservation simple et agréable.
Chaque aspect de notre site a été pensé dans un objectif précis : vous permettre de trouver et réserver
le véhicule idéal en quelques clics, sans complications. Notre conception est le fruit d'une réflexion
stratégique visant à optimiser chaque étape de votre parcours client.
Explorez notre plateforme et découvrez comment nous avons transformé la location de voitures en
une expérience fluide et personnalisée.

2. Problématique
Lorsque nos véhicules sont prêts à prendre la route après leur entretien, notre équipe les prépare
méticuleusement pour vous. Nous disposons d'aires de stationnement sécurisées et modernes pour
maintenir notre flotte dans un état impeccable jusqu'à votre réservation.
Fini les tracas pour trouver un véhicule adapté à vos besoins ! Notre plateforme en ligne vous offre
un accès direct à une gamme complète de véhicules, sélectionnés rigoureusement par nos experts
automobiles. Réservez en quelques clics et récupérez votre voiture à l'agence ou optez pour notre
service de livraison à domicile, selon vos préférences.
Une expérience de location simplifiée, des véhicules fiables et un service client réactif - c'est notre
engagement pour rendre chaque trajet aussi agréable que possible.

3. Objectifs

Notre mission est de développer une plateforme web innovante pour la gestion de notre flotte, les
réservations et le suivi de nos véhicules. Notre application vous offre un espace complet :

• Pour nos agents, la possibilité de publier des informations détaillées sur chaque véhicule et
ses caractéristiques (spécifications, tarifs journaliers, options disponibles...)
• Également, la publication d'informations sur nos services complémentaires (assurances
premium, GPS, sièges enfants et autres équipements indispensables pour votre confort)

22
• Pour nos clients, la facilité de réserver le véhicule idéal grâce à un système de panier intuitif,
permettant d'ajouter des options et de finaliser votre location en quelques clics.

Simplicité, transparence et efficacité - découvrez une nouvelle façon de louer votre véhicule.

4. A qui s’adresse le site ?

Notre plateforme s'adresse à tous les profils concernés par la location de véhicules :

• Les propriétaires de véhicules souhaitant proposer leur flotte à la location (publication


d'annonces détaillées)
• Les entreprises offrant des services complémentaires automobiles (publication d'offres
spéciales)
• Les clients recherchant une solution de mobilité adaptée à leurs besoins

5. L’étude de l’existant
Pour développer notre service de location de voitures, nous avons étudié attentivement les offres
existantes en Maroc et à l'international. Cette analyse nous a permis d'identifier les pratiques
exemplaires et les points d'amélioration du secteur.

Grâce à cette démarche, nous vous proposons aujourd'hui une solution de location automobile qui
capitalise sur le meilleur du marché tout en apportant des innovations significatives pour votre
confort.

23
5.1. Etude du site CasaDrive

Figure 5 : Page de recherche des Voitures disponibles

• Nom du site web : CasaDrive


• Accès au site : Libre avec possibilité d’inscription gratuite pour réserver en ligne.
• Catégories d’annonces : Véhicules à louer (SUV, berlines, économiques…), options avec
chauffeur, voitures de luxe.
• Recherche : Recherche rapide par mot-clé / Recherche avancée par type de véhicule, prix,
disponibilité, nombre de places, transmission, carburant…
• Points positifs (+) :
o Interface moderne, intuitive et responsive, adaptée à tous les supports (mobile,
tablette, PC).
o Fonctionnalités pratiques : filtrage dynamique, visualisation des véhicules, système
de réservation sécurisé en ligne.
• Points négatifs (-) :
o Offre encore en développement : certaines catégories peuvent manquer de choix
selon la période.
o Pas encore d’espace de messagerie directe entre client et loueur

24
6. Besoins et cahier des charges

Le projet CasaDrive a pour objectif de développer une plateforme web de location de voitures,
entièrement dynamique, avec une gestion complète côté administrateur et une expérience fluide
pour les utilisateurs. Le site repose sur une architecture connectée à une base de données
relationnelle, garantissant une synchronisation en temps réel des données.

Fonctionnalités côté client :


• Inscription et activation du compte : Chaque nouvel utilisateur doit créer un compte en ligne.
Pour accéder à son espace personnel, il doit obligatoirement activer son compte via un lien
envoyé par e-mail. Cette activation est indispensable pour se connecter, modifier ses
informations ou compléter son profil.
• Gestion du profil utilisateur : Après activation, le client peut modifier ses informations
personnelles, compléter son profil et gérer ses préférences de réservation.
• Recherche de voitures : Le client peut effectuer une recherche rapide ou avancée à l’aide de
filtres :
o Marque / Modèle
o Catégorie (SUV, Berline, etc.)
o Transmission, carburant, nombre de places
o Prix journalier

Fonctionnalités côté administrateur :


• Gestion dynamique des voitures : L’administrateur peut ajouter, modifier ou supprimer une
voiture via l’interface d’administration. Toute action est immédiatement enregistrée dans la
base de données.
• Gestion des réservations : Possibilité de consulter, valider, modifier ou supprimer les
réservations effectuées par les clients.

7. Le langage UML

7.1 Définition du modèle UML

25
Le langage UML (Unified Modeling Language) est un langage de modélisation graphique et textuel
normalisé, utilisé pour représenter, spécifier, visualiser et documenter les éléments d’un système
logiciel. Il permet de décrire les besoins fonctionnels, concevoir des solutions logicielles,
documenter les architectures et faciliter la communication entre les différentes parties prenantes
(développeurs, analystes, clients, etc.).

UML est particulièrement adapté à la modélisation orientée objet, en offrant une structure cohérente
pour représenter aussi bien les aspects statiques que dynamiques d’un système.

7.2 Les différents diagrammes UML

UML propose un ensemble de diagrammes standardisés, chacun se concentrant sur un aspect


particulier du système à modéliser. Ces diagrammes sont généralement classés en trois grandes
catégories :
• Diagrammes structurels : ils décrivent l’architecture statique du système.
o Diagramme de classes
o Diagramme d’objets
o Diagramme de composants
o Diagramme de structure composite
o Diagramme de déploiement
o Diagramme de paquetages
• Diagrammes comportementaux : ils modélisent le comportement général du système ou
de ses éléments.
o Diagramme de cas d’utilisation
o Diagramme d’activités
o Diagramme d’états-transitions
• Diagrammes d’interaction : ils illustrent les échanges entre les objets dans un scénario
donné.
o Diagramme de séquence
o Diagramme de communication
o Diagramme d’interaction globale
o Diagramme de temps

26
7.3 Diagrammes utilisés dans le projet

Dans le cadre du développement de notre site CasaDrive, nous avons sélectionné les diagrammes
UML suivants pour modéliser et concevoir notre système :
• Diagramme de cas d’utilisation : pour identifier les différents acteurs et leurs interactions
avec les principales fonctionnalités du site (inscription, réservation, gestion des voitures,
etc.).
• Diagramme de séquence : pour décrire les échanges de messages entre les objets au cours
d’un scénario précis (ex : processus de réservation d’un véhicule).
• Diagramme de classes : pour définir la structure statique du système, les entités principales
(Client, Voiture, Réservation, etc.) et leurs relations.

7.3.1 Identification des acteurs

Pour montrer les acteurs du système et ces multiplicités, c’est-à-dire combien d’acteurs accèdent au
système, à tout montent on utilise le Diagramme de contexte sttique

Figure 6 : Diagramme de contexte statique


Les acteurs qui interviendront dans notre système CasaDrive sont :

• Le visiteur : consulte les voitures sans être inscrit.


• Le client : s’inscrit, active son compte, complète son profil, puis peut réserver une voiture.
• L’administrateur : gère les voitures, les réservations, les comptes utilisateurs et les
paramètres du site.

27
7.3.2 Diagramme de cas d’utilisation

• Diagramme de cas d’utilisation général

Identification des cas d’utilisation : Un cas d’utilisation (use case) représente un ensemble de
séquences d’actions réalisées par le système et produisant un résultat observable intéressant pour
un acteur particulie [Link] acteurs de notre système et leurs tâches sont présentés dans le
diagramme de cas d’utilisation général suivant :

Figure 7 : Diagramme de cas d’utilisation général

28
• Diagramme de cas d’utilisation gestion panier

Figure 8 : Diagramme de cas d’utilisation gestion réservation et Voitures

7.3.3 Spécification des taches

a) Taches de visiteur

Tâche Actions
Consulter les voitures disponibles Accéder à la liste des voitures sans être
connecté
Effectuer une recherche avancée Filtrer les voitures par catégorie, date,
localisation, etc.
Créer un compte Remplir le formulaire d’inscription
Activer son compte via lien email Cliquer sur le lien reçu par e-mail pour valider
le compte

Tableau 1 : taches de visiteur

29
b) Taches de client

Tâche Actions
Se connecter Saisir ses identifiants (email et mot de passe),
puis valider
Gérer son profil Modifier ses informations personnelles (nom,
mot de passe, etc.)
Réserver une voiture Choisir une voiture disponible, sélectionner une
période, puis réserver
Se déconnecter Sélectionner le lien «se déconnecter »

Tableau 2 : tache de client

c) Tâches de l’Administrateur

Tâche Actions
Se connecter Accéder à l’espace d’administration avec
identifiants sécurisés
Gérer les réservations Voir, modifier ou annuler les réservations
effectuées par les clients

Gérer les voitures (CRUD) Ajouter, modifier, supprimer ou consulter les


informations des voitures

Se déconnecter Sélectionner le lien «se déconnecter »

Tableau 3 : tache de l’administrateur

30
7.3.4 Diagramme de classe

Notre diagramme de classe est présenté dans la section suivante :

Figure 9 : Diagramme de classes

31
8. Passage au modèle relationnel

Après avoir élaboré le modèle conceptuel de notre système à l’aide des diagrammes de classes et de
cas d’utilisation UML, nous passons à une représentation logique des données. Cette transformation
suit les règles classiques de passage du modèle conceptuel (UML) vers le modèle relationnel
(relation base de données).

Pour construire la base de données de notre système de location de voitures, nous appliquons les
principes suivants :

• Règle 1 : Chaque classe du diagramme UML est convertie en une relation (table) du modèle
relationnel.
• Règle 2 : Pour chaque association 1-N ou 1-1, on ajoute une clé étrangère dans la table
correspondant à la classe "fille", pointant vers la clé primaire de la classe "mère".
• Règle 3 : Pour les associations N-N (non présentes dans ce modèle), une table associative
intermédiaire serait créée, avec une clé composée des clés primaires des entités concernées.

Selon les règles de passage au modèle relationnel, notre schéma relationnel est comme suit :

clients(id_client, num_cin, nom, prenom, adresse, code_postal, ville, email, telephone,


mot_de_passe, date_creation, date_modification, image_url, is_active, activation_token)

admins(id_admin, nom, email, phone, mot_de_passe, created_at, img_url)

cars(id_voiture, marque, modele, annee, categorie, transmission, carburant, nb_places,


prix_journalier, description, disponibilite, image_url, date_creation, date_derniere_modification)

Location(location_id, name, address, type, latitude, longitude)

reservations(id_reservation, pickup_date, dropoff_date, total_price, statut, created_at, updated_at,


id_client, id_voiture, pickup_location_id, dropoff_location_id )

32
Chapitre III
Implémentation

33
1. Introduction

Dans la réalisation d’un projet de location de voitures, un ensemble d’outils est indispensable
pour concevoir et développer efficacement l’application web. Dans ce chapitre, nous allons
d’abord présenter les outils, les logiciels ainsi que les langages de programmation utilisés pour
la mise en œuvre de notre solution. Ensuite, nous définirons le modèle physique des données
adapté au domaine de la location automobile. Enfin, nous conclurons ce chapitre par une
présentation de quelques interfaces clés de l’application.

2. Les meilleurs langages de programmation pour le Web

Le HTML, soit Hyper Text Markup Language n’est pas un langage de programmation. Il s’agit
d’un langage de balisage, qui sert à structurer des documents numériques, par exemple en
insérant des liens hypertextes ou en donnant au texte sa forme générale. La même chose vaut
pour les CSS (Cascading Style Sheets), qui permettent de gérer l’apparence d’un site internet,
comme la couleur de la police d’écriture ou l’arrière-plan.
Un langage de programmation Web sert à établir des règles et procédures logiques complexes.
Là où les langages de balisage comme HTML ne produisent que des documents, un langage de
programmation permet de créer n’importe quel programme détaillé pour effectuer des tâches
données.
Les langages de programmation Web utilisés par les sites internet les plus connus sont: Java,
JavaScript, PHP, Python, Ruby, C++, C#.

3. Les technologies et langages utilisés dans notre application

Pour la réalisation de notre projet de location de voitures, nous avons utilisé différent que nous
allons détailler et présenter l'utilité et la motivation de nos choix :
• HTML : L'HTML est utilisé pour créer les pages web de notre plateforme de location
de voitures, permettant aux clients de visualiser les véhicules disponibles.
• CSS : Les feuilles de style en cascade forment un langage qui décrit la présentation des
documents HTML, assurant une interface utilisateur intuitive et attrayante pour notre
service de location.
• PHP : (HyperText Preprocessor), plus connu sous son sigle PHP, est un langage de
programmation libre, principalement utilisé pour produire des pages Web dynamiques.

34
Dans notre application, PHP gère les réservations, la disponibilité des véhicules et les
interactions avec la base de données des clients. Il est considéré comme une des bases
de la création de sites web dits dynamiques mais également des applications web.
• XAMPP : est une plateforme de développement Web gratuite et open source qui permet
d’exécuter localement des applications basées sur PHP sans avoir besoin d’un serveur
distant. Dans le cadre de notre système de location de voitures, XAMPP est utilisé
comme environnement de développement local intégrant le serveur Apache, les bases
de données MySQL/MariaDB, l’interpréteur PHP, ainsi que PhpMyAdmin pour la
gestion des bases de données. Cet environnement facilite le développement, les tests et
la maintenance de notre application avant son déploiement en production.
• JavaScript : est un langage de programmation interprété côté client, principalement
utilisé pour rendre les pages Web interactives et dynamiques. Dans notre système de
location de voitures, JavaScript joue un rôle essentiel en améliorant l’expérience
utilisateur grâce à des fonctionnalités telles que la validation des formulaires, la mise à
jour dynamique des contenus sans rechargement de page (via AJAX), et l’interaction
avec les éléments de l’interface (menus déroulants, filtres, aperçus d’images, etc.). Il
permet ainsi de créer une navigation fluide et réactive, indispensable pour un site
moderne et convivial.

4. Le modèle physique des données (MPD) .

Pour la création du modèle physique des données, nous avons utilisé le SGBD MySQL à
l'aide de l’applicatif Xampp Server. La figure suivante nous montre la création de notre
base de données.

35
Figure 10: les tables de Base de données :site

Les figures suivantes nous montrent la création de quelques tables :

Figure 11: table Admin

36
Figure 12: table Cars

Figure 13: table Client

37
Figure 14: table Location

Figure 15: table Réservation

38
5. Interfaces de l’application

Dans la section suivante , nous allons présenter quelques interfaces de notre application
web :

5.1 Page d’Accueil

Figure 16 : page d’Accueil visiteur

39
Figure 17 : Affichage des résultats recherchés via la saisie d’user

5.2 La page d’inscription

Figure 18: la page d’inscription

40
Figure 19: Page de connexion

5.3 Page profil de client

ofile de client

Figure 20 : Page de profil Client

41
Figure 35: Page d’accueil Admis

Figure 35: Panier des réservation

Figure 21: Page d’admin

42
6. Conclusion

Dans ce chapitre nous avons présenté les différents outils de développement qui nous ont permet de
réalisé notre projet ; donc nous avons introduire le maximum des concepts relatifs à l’environnement
de développement tels que PHP, Mysql ....aussi nous avons présenté les tables de notre base, en
terminant avec quelque exemples d’interfaces de l’application que nous avons réalisées.

43
Conclusion générale

Ce projet de fin d’études consiste à étudier, concevoir et développer une application web dédiée à
la gestion de la location de voitures.

Notre application offre un espace :

• Aux propriétaires ou agences de location pour publier des annonces de véhicules disponibles
à la location (marque, modèle, prix, disponibilité, etc.)
• Aux utilisateurs (visiteurs ou membres) pour consulter les véhicules disponibles, effectuer
des réservations en ligne et gérer leurs locations via un espace personnel de gestion complète
du parc automobile, des réservations, des disponibilités et des historiques de location pour
les administrateurs

Ce projet a été une occasion précieuse pour développer et mettre en œuvre mes compétences
personnelles et enrichir mes connaissances, notamment en programmation web, mais également en
analyse, conception et modélisation de systèmes d’information.

Par ailleurs, ce travail m’a permis de m’immerger dans le domaine de la location automobile, où
j’ai découvert différentes catégories de véhicules (citadines, berlines, SUV, utilitaires, voitures de
luxe, etc.), ainsi que les besoins spécifiques des utilisateurs en matière de mobilité et de services
complémentaires comme l’assurance, le GPS ou encore la livraison du véhicule.

Enfin, on peut estimer que l’objectif fixé au départ a été largement atteint. Ce projet ouvre la voie à
plusieurs perspectives d’amélioration, parmi lesquelles :

• Intégrer un système de paiement sécurisé en ligne pour faciliter les transactions


• Développer une version mobile de l’application, optimisée pour les smartphones, afin de
toucher un public plus large et d’assurer davantage de flexibilité et de mobilité aux
utilisateurs

44
Références

1. ISO/IEC 12207 – Systems and software engineering – Software life cycle processes.
Organisation internationale de normalisation, 2008.

2. Winston W. Royce. Managing the Development of Large Software Systems, Proceedings of


IEEE WESCON, 1970.

3. CasaDrive – Plateforme de location de voitures en ligne, consultée pour l’étude de l’existant.

4. Ouedkniss – Site d’annonces algérien, section véhicules, utilisé comme référence pour les
fonctionnalités comparatives.

5. [Link] – Plateforme marocaine analysée pour la gestion de contenus et d’annonces.

6. Oracle. What is UML (Unified Modeling Language)?, disponible sur :


[Link]

7. Microsoft. What is a Web Application?, documentation officielle sur les technologies web :
[Link]

8. Mozilla Developer Network (MDN). HTML, CSS, JavaScript documentation, disponible


sur : [Link]

9. [Link]. PHP Manual, documentation officielle de PHP : [Link]

10. Apache Friends. XAMPP documentation, disponible sur : [Link]

11. MySQL. MySQL Reference Manual, Oracle Corporation : [Link]

45

Vous aimerez peut-être aussi