Pfa Reprt Final
Pfa Reprt Final
Introduction générale 1
i
Dédicaces
3 Étude Conceptuelle 27
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.1 Diagrammes de Séquence . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.1.1 Séquence d’Authentification . . . . . . . . . . . . . . . . . . . . . . 27
3.1.2 Opérations de l’Administrateur . . . . . . . . . . . . . . . . . . . . 28
3.1.3 Opérations de l’Agence . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.1.4 Processus de Réservation du Client . . . . . . . . . . . . . . . . . . 32
3.2 Diagramme des Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.2.1 Hiérarchie des Utilisateurs . . . . . . . . . . . . . . . . . . . . . . . 36
3.2.2 Entités Principales . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.2.3 Entités de Support . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.2.4 Relations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.3 Architecture Technique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
ii
Dédicaces
4 Réalisation 43
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.1 Environnement de développement . . . . . . . . . . . . . . . . . . . . . . . 43
4.1.1 Environnement logiciel . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.1.1.1 Visual Studio Code . . . . . . . . . . . . . . . . . . . . . . 44
4.1.1.2 React.js . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.1.1.3 Express.js . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.1.1.4 PostgreSQL . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.1.1.5 GitHub . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.1.1.6 Node.js . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.1.1.7 Postman . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.2 Architecture de l’application . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.2.1 Frontend (React.js) . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.2.2 Backend (Express.js/Node.js) . . . . . . . . . . . . . . . . . . . . . 47
4.2.3 Base de données (PostgreSQL) . . . . . . . . . . . . . . . . . . . . 47
4.2.4 Avantages de cette architecture . . . . . . . . . . . . . . . . . . . . 47
4.3 Organisation du code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.3.1 Structure du Backend . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.3.2 Structure du Frontend . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.4 Présentation des interfaces de la solution . . . . . . . . . . . . . . . . . . . 50
4.4.1 Interface administrateur . . . . . . . . . . . . . . . . . . . . . . . . 50
4.4.1.1 Interface de connexion . . . . . . . . . . . . . . . . . . . . 50
4.4.1.2 Tableau de bord administratif . . . . . . . . . . . . . . . . 51
iii
Dédicaces
iv
Table des figures
v
Dédicaces
vi
Liste des tableaux
vii
Introduction générale
Introduction générale
Avec l’essor du numérique et la généralisation des usages en ligne, les entreprises sont de
plus en plus amenées à repenser leurs stratégies commerciales afin d’améliorer leur visibilité,
fidéliser leur clientèle et accroître leurs revenus. Le secteur du transport n’échappe pas à
cette transformation, en particulier le domaine de la location de voitures, qui connaît une
forte digitalisation.
Dans cette optique, les agences de location souhaitent désormais bénéficier d’outils
numériques performants qui leur permettent de gérer efficacement leur parc automobile,
suivre les réservations, interagir avec leurs clients et optimiser leur activité. De leur côté,
les utilisateurs recherchent des solutions simples, rapides et accessibles à distance pour
réserver un véhicule selon leurs besoins, tout en ayant accès à des informations claires sur
la disponibilité, les prix et les conditions.
C’est dans ce contexte que s’inscrit notre projet de fin d’année. Nous proposons la mise
en place d’une plateforme de location de voitures en ligne qui met en relation trois
types d’utilisateurs : les agences de location, les clients et l’administrateur de la plateforme.
Chaque acteur disposera d’un espace personnalisé répondant à ses besoins spécifiques. Les
agences pourront gérer leurs abonnements, voitures et réservations ; les clients auront la
possibilité de réserver un véhicule, de payer en ligne et d’évaluer les services reçus ; tandis
que l’administrateur assurera la supervision générale du système.
Afin de décrire la plateforme sur laquelle nous avons travaillé tout au long de ces mois
dans le cadre de notre projet de fin d’études, nous présentons le rapport actuel. Il est
constitué de quatre chapitres structurés comme suit :
• Le premier chapitre est dédié à la présentation de l’organisme d’accueil, suivi d’une
étude de l’existant. À la fin, nous définissons l’objectif de notre projet en précisant
notre apport.
1
Introduction générale
raffinement des cas d’utilisation, sans oublier les besoins non fonctionnels de notre
application.
Enfin, nous clôturons ce rapport par une synthèse du projet ainsi que quelques pers-
pectives d’évolution envisagées pour cette solution.
2
Chapitre
Introduction
L’objectif principal de ce chapitre est de situer notre projet dans son contexte. Tout
d’abord, nous présentons l’entreprise d’accueil. Ensuite, nous décrivons l’étude de l’existant,
en analysant les solutions similaires. Nous exposons également les objectifs fixés pour ce
projet. Enfin, nous présentons la méthode de développement adoptée ainsi que le langage
de modélisation utilisé.
3
Chapter 1. Étude préliminaire et présentation du projet
4
Chapter 1. Étude préliminaire et présentation du projet
Rentalcars
Sixt
Europcar
1.6.1.1 Rentalcars.com
5
Chapter 1. Étude préliminaire et présentation du projet
Limitations :
1.6.1.2 Europcar
Europcar est l’un des leaders mondiaux de la location de véhicules avec une présence
importante en Tunisie et en Afrique du Nord. L’entreprise propose une gamme complète
de services de mobilité.
Points forts :
6
Chapter 1. Étude préliminaire et présentation du projet
Limitations :
1.6.1.3 Sixt
Sixt est une entreprise internationale de location de voitures présente en Tunisie, re-
connue pour sa flotte premium et son positionnement haut de gamme.
Points forts :
Limitations :
7
Chapter 1. Étude préliminaire et présentation du projet
• Architecture flexible : Une application web intuitive avec une architecture micro-
services permettant une évolutivité optimale.
8
Chapter 1. Étude préliminaire et présentation du projet
9
Chapter 1. Étude préliminaire et présentation du projet
Le langage de modélisation utilisé est UML, pour représenter les différents cas d’utili-
sation, classes, et interactions de l’application.
Pour assurer un processus de développement rigoureux, nous avons opté pour la mé-
thode en V. Elle permet de structurer le cycle de vie du projet en deux grandes phases :
la conception descendante (de l’expression des besoins vers le code), puis la vérification
ascendante (des tests unitaires jusqu’à la validation finale).
10
Chapter 1. Étude préliminaire et présentation du projet
Conclusion
Dans ce chapitre, nous avons présenté l’entreprise d’accueil et le cadre du projet. Nous
avons effectué une analyse détaillée des solutions existantes sur le marché, identifiant leurs
forces et leurs limitations tant d’un point de vue fonctionnel que technique. Cette étude
critique nous a permis de définir une proposition de solution innovante et adaptée aux
besoins réels du marché. Le chapitre suivant sera consacré à l’analyse approfondie des
besoins et à la conception de l’application.
11
Chapitre
Introduction
Dans le chapitre précédent, nous avons décidé de concevoir notre système en utilisant
le modèle de processus unifié. L’une des phases essentielles de ce processus est la phase
d’élaboration qui permet d’identifier les rôles des utilisateurs et de spécifier les principales
fonctionnalités. Au cours de ce chapitre, nous commençons par identifier les différents
acteurs qui interagissent directement avec le système. Nous représentons également la
spécification des besoins. Enfin, nous décrivons le diagramme de cas d’utilisation avec le
raffinement et la spécification de certains cas d’utilisation.
2.1 Acteurs
Un acteur est un composant du système qui interagit avec lui. Il s’agit d’une personne,
d’un ordinateur ou d’un logiciel. Dans notre plateforme de location de voitures, il y a trois
acteurs :
• Client : Un utilisateur authentifié qui peut rechercher des voitures, effectuer des
réservations et gérer ses réservations.
• Agence : Un utilisateur authentifié qui peut gérer l’inventaire des voitures, les
réservations et les tarifs.
12
Chapitre 2. Spécification des besoins
13
Chapitre 2. Spécification des besoins
14
Chapitre 2. Spécification des besoins
Consulter le
Ce cas d’utilisation permet aux agences de voir
calendrier des
une vue calendrier de toutes les réservations.
réservations
15
Chapitre 2. Spécification des besoins
Le système doit également répondre à des exigences non fonctionnelles, qui visent à
augmenter sa qualité.
• Disponibilité :
L’application doit être accessible aux utilisateurs de tous âges et de tous horizons.
• Ergonomie :
L’application possède une interface intuitive et facile à utiliser qui comprend toutes
les fonctionnalités accessibles. Les utilisateurs peuvent l’utiliser même sans expérience
informatique préalable.
• Maintenabilité :
Le code doit être compréhensible et bien organisé, afin de faciliter la maintenance
future.
• Performance :
L’application doit être interactive en minimisant le temps de réaction et de commu-
nication avec les serveurs, ainsi que le chargement de la plateforme, l’ouverture et la
mise à jour des affichages.
• Sécurité :
L’application doit protéger les données des utilisateurs et assurer un traitement sé-
curisé des paiements.
16
Chapitre 2. Spécification des besoins
Les diagrammes fournis représentent tous les cas d’utilisation de base pour la plate-
forme de location de voitures. Ces diagrammes sont génériques et ne spécifient pas chaque
exigence individuellement ; au contraire, ils combinent certaines caractéristiques dans un
seul exemple, qui peut être détaillé davantage pour mieux le comprendre.
17
Chapitre 2. Spécification des besoins
18
Chapitre 2. Spécification des besoins
19
Chapitre 2. Spécification des besoins
Titre S’authentifier
20
Chapitre 2. Spécification des besoins
pour l’utilisateur.
21
Chapitre 2. Spécification des besoins
22
Chapitre 2. Spécification des besoins
23
Chapitre 2. Spécification des besoins
Acteur Client
24
Chapitre 2. Spécification des besoins
25
Chapitre 2. Spécification des besoins
Conclusion
En conclusion, nous avons identifié les différents acteurs ainsi que les besoins fonction-
nels et non fonctionnels du système, ce qui constitue une étape essentielle dans la conception
de la solution applicative de plateforme de location de voitures. Dans le prochain chapitre,
nous présenterons la partie conceptuelle du projet et ses architectures logique et technique.
26
Chapitre
3 Étude Conceptuelle
Introduction
Dans le chapitre précédent, nous avons identifié les différents acteurs ainsi que les
besoins fonctionnels et non fonctionnels de notre plateforme de location de voitures. Cette
étape était cruciale pour comprendre ce que notre système doit accomplir.
Ce chapitre se concentre sur la conception conceptuelle du système, présentant l’archi-
tecture logique à travers divers diagrammes UML. Nous commençons par les diagrammes
de séquence qui illustrent les interactions entre les composants du système, suivis du
diagramme de classes qui définit la structure globale du système.
L’authentification est un processus fondamental requis par tous les acteurs avant qu’ils
puissent interagir avec le système. La figure 3.1 montre le diagramme de séquence pour le
27
Chapitre 3. Conception Conceptuelle
processus de connexion.
28
Chapitre 3. Conception Conceptuelle
29
Chapitre 3. Conception Conceptuelle
• Consulter les agences : L’administrateur peut consulter la liste de toutes les agences
enregistrées dans le système.
• Gérer les plans d’abonnement : L’administrateur peut créer, mettre à jour ou sup-
primer les plans d’abonnement disponibles pour les agences.
Les agences doivent gérer leur inventaire de voitures en ajoutant, modifiant et suppri-
mant des voitures. La figure 3.3 montre le diagramme de séquence pour ces opérations.
30
Chapitre 3. Conception Conceptuelle
• Consulter les voitures : L’agence peut voir toutes les voitures dans son inventaire.
• Ajouter une nouvelle voiture : L’agence peut ajouter une nouvelle voiture avec tous
les détails nécessaires.
• Modifier une voiture : L’agence peut mettre à jour les informations d’une voiture
existante.
• Supprimer une voiture : L’agence peut retirer une voiture de son inventaire.
Le diagramme montre le flux complet pour chaque opération, y compris les interactions
entre l’interface utilisateur Frontend, le serveur Backend, la base de données et le service
de gestion des voitures.
32
Chapitre 3. Conception Conceptuelle
• Parcourir les voitures disponibles : Le client peut voir toutes les voitures disponibles.
33
Chapitre 3. Conception Conceptuelle
• Effectuer une réservation : Le client sélectionne une voiture et des dates pour créer
une réservation.
Le diagramme illustre également divers scénarios d’exception tels que les échecs de paie-
ment, les échecs de livraison d’e-mail ou les échecs de réservation, ainsi que leur traitement
approprié.
34
Chapitre 3. Conception Conceptuelle
35
Chapitre 3. Conception Conceptuelle
• User : Classe de base avec des attributs communs comme id, email et mot de passe.
• Admin : Spécialisation de User avec des opérations supplémentaires pour gérer les
agences et les abonnements.
• Customer : Spécialisation de User avec des opérations pour effectuer des réservations
et des paiements.
• Agency : Représente une agence de location de voitures avec des attributs tels que
nom, adresse et statut de vérification. Elle gère les voitures et les abonnements.
• Car : Représente un véhicule dans le système avec des attributs comme modèle,
marque, année et prix.
• Reservation : Représente une réservation avec des attributs incluant date de début,
date de fin et statut.
36
Chapitre 3. Conception Conceptuelle
• Review : Représente les commentaires des clients pour une voiture ou une expérience
de location spécifique.
3.2.4 Relations
Ce diagramme de classes complet fournit une base solide pour la phase d’implémenta-
tion, définissant clairement la structure et les relations des composants du système.
37
Chapitre 3. Conception Conceptuelle
• Contrôleur : Agit comme intermédiaire entre le Modèle et la Vue, traitant les re-
quêtes et les réponses utilisateur
38
Chapitre 3. Conception Conceptuelle
• Frontend React :
39
Chapitre 3. Conception Conceptuelle
– Interface Client : Interface pour parcourir les voitures et effectuer des réserva-
tions
• Backend Express :
– Routes API : Définissent les points de terminaison pour toutes les opérations
• Base de Données PostgreSQL : Stocke toutes les données persistantes selon notre
modèle de données
• Services Externes :
Ces composants interagissent entre eux via des interfaces bien définies, assurant la
modularité et la maintenabilité du système.
• users : Stocke les informations utilisateur avec les rôles (admin, agence, client)
40
Chapitre 3. Conception Conceptuelle
Les clés primaires, les clés étrangères et les index appropriés sont définis pour assurer
l’intégrité des données et les performances des requêtes.
Conclusion
Dans ce chapitre, nous avons présenté la conception conceptuelle de notre plateforme
de location de voitures à travers divers diagrammes UML et descriptions architecturales.
Les diagrammes de séquence illustrent le comportement dynamique du système, montrant
comment les différents composants interagissent pour accomplir des tâches spécifiques. Le
diagramme de classes fournit une vision complète de la structure du système, définissant
les classes, leurs attributs, opérations et relations.
Nous avons également détaillé notre architecture technique, basée sur le modèle MVC et
implémentée avec React.js (Vue), Express.js (Contrôleur) et PostgreSQL (Modèle). Cette
stack technologique moderne fournit une base solide pour construire un système réactif,
évolutif et maintenable.
La stratégie de déploiement utilisant la conteneurisation assure la cohérence entre les
environnements de développement et de production, tandis que la solution d’hébergement
basée sur le cloud fournit l’infrastructure nécessaire pour la fiabilité et l’évolutivité.
41
Chapitre 3. Conception Conceptuelle
42
Chapitre
4 Réalisation
Introduction
Dans le chapitre précédent, nous avons donné une représentation détaillée de la concep-
tion de notre plateforme de location de voitures mise en œuvre pendant la phase de concep-
tion.
Dans ce dernier chapitre, nous passons d’abord en revue l’environnement de développement,
qui comprend à la fois le matériel et le logiciel. Ensuite, nous présentons l’architecture de
l’application et son organisation technique. Pour finir, nous décrivons le travail effectué à
l’aide de captures d’écran des interfaces de notre application.
43
Chapitre 4. Réalisation
4.1.1.2 React.js
React.js est une bibliothèque JavaScript front-end open-source utilisée
pour construire des interfaces utilisateur ou des composants UI. Elle est
maintenue par Facebook et une communauté de développeurs individuels
et d’entreprises. React permet aux développeurs de créer de grandes
applications Web qui peuvent modifier les données sans avoir à recharger
la page. Son objectif principal est d’être rapide, évolutif et simple.
4.1.1.3 Express.js
Express.js est un framework d’application web pour Node.js, conçu pour
construire des applications web et des API. C’est de facto le framework
standard pour Node.js. Express est minimaliste, flexible et fournit un
ensemble robuste de fonctionnalités pour développer des applications web
et mobiles. Il facilite le développement rapide d’applications Node basées
sur le réseau.
4.1.1.4 PostgreSQL
PostgreSQL est un système de gestion de base de données relationnelle
objet (SGBDRO) puissant et open source. Il possède plus de 30 ans
de développement actif et une architecture éprouvée qui lui a valu une
solide réputation de fiabilité, de robustesse des fonctionnalités et de per-
formances. PostgreSQL est compatible avec tous les principaux systèmes
d’exploitation et est conforme à ACID depuis 2001.
44
Chapitre 4. Réalisation
4.1.1.5 GitHub
GitHub est une plateforme d’hébergement de code pour le contrôle de
version et la collaboration. Il permet à vous et à d’autres de travailler
ensemble sur des projets de n’importe où. GitHub utilise Git, un outil de
contrôle de version distribué qui suit les modifications de votre code au
fil du temps. GitHub facilite la collaboration et le partage du code avec
une équipe à travers le monde.
4.1.1.6 Node.js
Node.js est un environnement d’exécution JavaScript open-source et mul-
tiplateforme qui exécute du code JavaScript en dehors d’un navigateur
web. Node.js permet aux développeurs d’utiliser JavaScript pour écrire
des outils de ligne de commande et pour des scripts côté serveur - exécu-
ter des scripts côté serveur pour produire du contenu dynamique de page
web avant que la page ne soit envoyée au navigateur web de l’utilisateur.
4.1.1.7 Postman
Postman est une plateforme de collaboration pour le développement
d’API. Elle permet de construire, tester et documenter des API REST
et GraphQL via une interface graphique conviviale. Avec Postman, les
développeurs peuvent créer des collections de requêtes HTTP, automa-
tiser des tests, gérer des environnements variables et partager facilement
les scénarios de test et la documentation de leurs API avec leur équipe.
45
Chapitre 4. Réalisation
Notre application de location de voitures est basée sur une architecture moderne à trois
niveaux, séparant clairement le frontend du backend et de la base de données :
Le frontend de notre application est développé avec React.js, une bibliothèque JavaS-
cript populaire pour la construction d’interfaces utilisateur. Nous utilisons également Re-
dux pour la gestion de l’état global de l’application, ce qui facilite la communication entre
les différents composants. L’interface utilisateur est conçue pour être intuitive, responsive
et agréable à utiliser sur différents appareils.
46
Chapitre 4. Réalisation
Le backend est construit avec Express.js, un framework web minimaliste pour Node.js.
Il est responsable du traitement des requêtes, de l’authentification des utilisateurs, de la
gestion des données et de la communication avec la base de données. Nous avons organisé
notre backend selon le modèle MVC (Modèle-Vue-Contrôleur) pour une meilleure sépara-
tion des préoccupations et une maintenance plus facile.
Pour le stockage des données, nous avons choisi PostgreSQL, un système de gestion de
base de données relationnelle robuste et fiable. Notre schéma de base de données est conçu
pour gérer efficacement les informations sur les utilisateurs, les agences, les voitures, les
réservations, les paiements et autres entités importantes pour notre application.
47
Chapitre 4. Réalisation
backend/
config/ # Configuration de l’application
migrations/ # Migrations de base de données
models/ # Modèles de données PostgreSQL
node_modules/ # Dépendances Node.js
seeders/ # Scripts pour peupler la base de données
src/ # Code source principal
uploads/ # Fichiers téléchargés par les utilisateurs
.env # Variables d’environnement
package-lock.json # Verrouillage des versions des dépendances
package.json # Configuration du projet Node.js
README.md # Documentation du backend
Le backend est construit avec Express.js et suit une architecture modulaire. Les prin-
cipaux dossiers sont :
• seeders/ : Scripts pour initialiser la base de données avec des données de test
48
Chapitre 4. Réalisation
frontend/
node_modules/ # Dépendances Node.js
src/ # Code source principal de l’application React
.eslintrc.js # Configuration ESLint
.gitignore # Configuration Git
index.html # Point d’entrée HTML
package-lock.json # Verrouillage des versions des dépendances
package.json # Configuration du projet
postcss.config.js # Configuration PostCSS
README.md # Documentation du frontend
tailwind.config.js # Configuration Tailwind CSS
tsconfig.json # Configuration TypeScript
tsconfig.node.json # Configuration TypeScript pour Node
vite.config.ts # Configuration Vite
Dans le dossier src/, nous avons organisé le code selon une architecture orientée com-
posants, avec des dossiers dédiés pour les pages, les composants réutilisables, les hooks
personnalisés, les services d’API, et la gestion d’état avec Redux.
49
Chapitre 4. Réalisation
• Interface administrateur
• Interface agence
• Interface client
Nous allons maintenant montrer les interfaces principales de l’application pour les ad-
ministrateurs.
50
Chapitre 4. Réalisation
À partir de cette interface, l’administrateur peut gérer toutes les agences enregistrées
sur la plateforme.
51
Chapitre 4. Réalisation
À l’aide de cette interface, l’administrateur peut créer et gérer les plans d’abonnement
disponibles pour les agences.
52
Chapitre 4. Réalisation
Nous présentons maintenant les interfaces principales pour les agences de location.
53
Chapitre 4. Réalisation
Enfin, nous mettrons en évidence les interfaces principales pour les clients.
Cette interface est la page d’accueil de notre application où les clients peuvent recher-
cher des voitures disponibles.
54
Chapitre 4. Réalisation
Cette interface permet aux clients de rechercher des voitures disponibles selon différents
critères.
55
Chapitre 4. Réalisation
Cette interface permet au client de réserver une voiture pour une période spécifique.
56
Chapitre 4. Réalisation
Conclusion
Au cours de ce chapitre, nous nous sommes particulièrement intéressés à la mise en
œuvre de notre plateforme de location de voitures. Nous avons d’abord présenté l’en-
vironnement de développement utilisé, incluant le matériel et les technologies logicielles
(React.js, Express.js, Node.js, PostgreSQL, etc.). Ensuite, nous avons détaillé l’architec-
ture de l’application, son organisation technique et son processus de développement. Enfin,
nous avons présenté les principales interfaces de notre plateforme pour les trois types d’uti-
lisateurs : administrateurs, agences et clients.
Cette plateforme de location de voitures offre une solution complète et intuitive pour
tous les acteurs impliqués dans le processus de location. Les administrateurs peuvent gérer
efficacement la plateforme, les agences peuvent gérer leur inventaire de voitures et leurs
réservations, tandis que les clients peuvent facilement rechercher, réserver et gérer leurs
locations de voitures.
57
Chapitre 4. Réalisation
Les technologies modernes que nous avons choisies nous permettent d’offrir une ex-
périence utilisateur fluide et réactive, tout en garantissant la robustesse et la sécurité de
l’application. L’architecture modulaire facilite la maintenance et l’évolution future de la
plateforme pour répondre aux besoins changeants du marché de la location de voitures.
58
CONCLUSION ET PERSPECTIVES
Conclusion générale
Ce projet de fin d’Année a conduit à la réalisation d’une plateforme de location de
voitures innovante permettant à trois types d’acteurs d’interagir efficacement : les clients,
les agences de location et les administrateurs. La plateforme offre aux clients une expérience
intuitive pour rechercher, comparer et réserver des véhicules selon leurs besoins spécifiques.
Les agences de location peuvent gérer leur inventaire de voitures, suivre les réservations
et optimiser leur activité grâce à des outils analytiques performants. Les administrateurs
disposent d’une vision globale de la plateforme et peuvent superviser les agences, gérer les
plans d’abonnement et assurer le bon fonctionnement du système.
L’utilisation de technologies modernes comme React.js, Express.js et PostgreSQL nous
a permis de développer une solution robuste, évolutive et offrant une expérience utilisateur
de qualité. L’architecture modulaire adoptée garantit la maintenabilité du code et facilitera
les évolutions futures de la plateforme.
Accomplissements personnels
Concernant l’aspect humain, ce projet nous a permis de mener un travail de déve-
loppement complet sur plusieurs mois en toute autonomie. Comme tout projet de cette
envergure, nous avons fait face à des difficultés variées qu’il fallait surmonter au fur et
à mesure. C’est un travail sculpteur de la personnalité et de la capacité à gérer les défis
professionnels.
Nous avons approfondi nos compétences techniques en apprenant à maîtriser des tech-
nologies que nous n’avions pas utilisées auparavant, notamment React.js avec TypeScript,
Tailwind CSS, Express.js, et PostgreSQL. Cette expérience nous a également permis de
comprendre l’importance d’une bonne architecture logicielle et d’une méthodologie de
développement structurée pour mener à bien un projet complexe.
59
CONCLUSION ET PERSPECTIVES
Perspectives
Nous avons réussi à réaliser une plateforme de location de voitures opérationnelle certes,
mais nous comptons l’améliorer encore plus. Les idées pour faire cela ne manquent pas,
comme :
• Développer une application mobile native pour améliorer l’expérience sur les appareils
mobiles.
• Mettre en place un système de notation et d’avis plus élaboré pour les voitures et les
agences.
• Utiliser des outils d’analyse big data pour explorer les comportements des utilisateurs
et optimiser l’expérience.
RÉFÉRENCES
[1]https ://www.uml.org [2]https ://www.sciencedirect.com/topics/computer-science/unified-
process [3]https ://developer.mozilla.org/fr/docs/Glossary/SPA [4]https ://reactjs.org/
[5]https ://redux.js.org/ [6]https ://expressjs.com/ [7]https ://www.postgresql.org/
[8]https ://www.typescriptlang.org/ [9]https ://tailwindcss.com/ [10]https ://vitejs.dev/
60