Vous êtes sur la page 1sur 11

Introduction 

:
L'objectif de ce rapport de projet est de présenter notre travail sur le
développement d'une application web pour la gestion d'une agence de
location de voitures. Nous avons utilisé Python et Mongo DB pour
réaliser ce projet, en répondant aux besoins spécifiques de l'agence.
Notre objectif principal était de comprendre les problématiques des
clients en matière de location de voitures et de proposer des solutions
adaptées. Nous nous sommes également concentrés sur la
compréhension des besoins métiers spécifiques de l'agence. Tout au
long du développement de l'application, nous avons veillé à respecter
les contraintes de temps et avons bénéficié d'une collaboration
d'équipe efficace avec une répartition claire des responsabilités, ce qui
a été essentiel pour mener à bien le projet.
L'application que nous avons développée offre les fonctionnalités
suivantes :
• Visualisation des voitures disponibles : les managers peuvent
consulter les voitures disponibles à la location.
• Réservation des voitures : les clients peuvent réserver une
voiture pour une durée déterminée.
• Visualisation des réservations : les managers peuvent voir les
réservations effectuées.
• Gestion des réservations (Accepter/Refuser) : le manager peut
gérer les réservations en les acceptant ou en les refusant.
• Gestion des voitures : le manager peut ajouter, modifier ou
supprimer des voitures.
• Gestion des clients : le manager peut gérer les informations des
clients.
• Gestion des comptes Managers : l'administrateur a le privilège
de gérer les comptes des managers, incluant l'ajout, la modification
ou la suppression.
L'application fonctionne en demandant au manager de s'authentifier
pour accéder à toutes les fonctionnalités. Il peut visualiser les
voitures, effectuer des actions telles que l'ajout, la modification et la
suppression des voitures, et gérer les réservations des clients en les
acceptant ou en les refusant. L'administrateur, une fois authentifié,
dispose du privilège de gérer les comptes des managers et consulter
les voitures disponibles.
Ce rapport fournira une description détaillée des fonctionnalités du
système, en prenant en compte les contraintes rencontrées lors de sa
réalisation. Nous espérons qu'il sera suffisamment clair et détaillé
pour permettre une bonne compréhension du projet.
Chapitre I : Spécifications Fonctionnelles

p.

Diagrammes :
UML est destiné à faciliter la conception des documents nécessaires au
développement d'un logiciel orienté objet, comme standard de modélisation
de l'architecture logicielle

1.Diagramme de cas d’utilisation


Les acteurs principaux :

 Admin
 Manager

Figure 1

Le diagramme de cas d'utilisation montre les différentes actions liées à la gestion


de la location de voitures dans l'application. Les deux acteurs principaux sont
l'administrateur et le manager. L'administrateur a le privilège de gérer les
admins, les managers et les voitures. Cela inclut des actions telles que l'ajout, la
modification et la suppression des informations des clients, ainsi que la gestion
des voitures disponibles. Le manager, quant à lui, peut visualiser les clients
existants et prendre des décisions concernant les réservations en fonction de ces
informations.
2.Diagramme de classe :

Décrit clairement la structure d’un système de location voiture en


modélisant ses classes, ses attributs, ses opérations et les relations entre
ses objets.

Figure 2

Le diagramme de classes représente les différentes classes et leurs relations


pour la gestion de la location de voitures dans l'application. Les classes
principales incluent l'admin, le manager, le client, les réservations et la voiture.
L'administrateur possède les fonctionnalités pour gérer les admins, les
managers, tandis que le manager est responsable de la gestion des clients, des
voitures et de leurs réservations.

La classe "Admin" est liée à la classe "Manager" par une relation d'association,
car l'administrateur peut gérer les admins et les managers. De plus, le Manager
est également associé à la classe "Voiture", car il a le privilège de gérer les
voitures disponibles dans l'agence.

La classe "Manager" est associée à la classe "Client" et "Réservation" par des


relations d'associations, car il gère les informations des clients et leurs
réservations. La classe "Voiture" est également liée à la classe "Manager" via
une relation d'association, car les managers effectuent des réservations pour
des voitures spécifiques d’après les choix des clients.
3.Diagramme de séquence :

Représentation temporelle des interactions entre les objets donc une


chronologie des messages échangés entre les objets et avec les acteurs

La gestion des réservations :

Figure 3

Le processus commence par l'authentification du manager, qui fournit les


informations d'identification nécessaires pour accéder au tableau de bord. Une
fois l'authentification réussie, le manager peut rechercher les voitures en
spécifiant la date de disponibilité.

Le système procède ensuite à la recherche des voitures correspondantes dans la


base de données et affiche les résultats au manager. Ce dernier peut visualiser
les voitures disponibles avec leurs détails, tels que le prix, la disponibilité ou
d'autres informations pertinentes.
Lorsque client décide de réserver une voiture spécifique, le manager soumet une
demande de réservation au système. Le système vérifie la disponibilité de la
voiture et effectue les étapes nécessaires pour enregistrer la réservation. Si le
client est nouveau, le manager peut également ajouter les informations de client
dans le système.

Pour garantir l'exactitude de la réservation, le système effectue une vérification


des informations fournies. Il peut s'agir de vérifier la validité des coordonnées du
client, la disponibilité de la voiture à la période demandée, ou d'autres critères
spécifiques.

Une fois la réservation confirmée, le système affiche les détails de la réservation


au manager, comprenant les informations sur la voiture réservée, le client, les
dates de prise en charge et de restitution, ainsi que d'autres instructions
pertinentes.

Enfin, une fois que toutes les vérifications sont effectuées avec succès, le système
envoie une confirmation au manager, l'informant que sa réservation a été
acceptée et que tous les détails ont été enregistrés correctement.
La gestion des voitures :

Figure 4

Ce diagramme de séquence décrit les interactions entre le manager et notre


système de location de voitures. Le manager peut effectuer différentes actions
telles que l'ajout, la modification et la suppression des voitures. Lorsqu'il souhaite
ajouter une nouvelle voiture, il envoie une demande au système, qui vérifie les
informations fournies. Si les informations sont valides, le système crée une
nouvelle instance de la voiture dans sa base de données et envoie une
confirmation au manager. De même, lorsqu'une modification est demandée, le
système recherche la voiture correspondante et met à jour les informations selon
les spécifications fournies. Enfin, lorsque le manager demande la suppression
d'une voiture, le système la recherche et la supprime de sa base de données, puis
envoie une confirmation au manager.
La gestion des clients :

Figure 5

Le diagramme de séquence ci-dessous illustre le processus d'ajout,


modification et suppression d'un client par un manager dans
l'application de l'agence de location de voitures.
Chapitre II : Présentation du Projet
Technologie utilisée :
Python Java
Syntaxe Python a une syntaxe plus simple Java a une syntaxe plus
et lisible, ce qui facilite son verbeuse, nécessitant
apprentissage et l'écriture du code. davantage de code pour
accomplir certaines tâches.
Vitesse de La syntaxe concise de Python et Java a une structure plus
développement ses bibliothèques étendues rigide, nécessitant une
permettent un développement et configuration et un temps
un prototypage plus rapides. de compilation
supplémentaires
Développement Python offre des frameworks Java propose des
web populaires tels que Django et frameworks tels que
Flask, qui facilitent le Spring, ce qui le rend
développement web. adapté aux applications
web de niveau entreprise.
Communauté et Python dispose d'une communauté Java bénéficie également
bibliothèques active et étendue, avec une vaste d'un fort soutien de la
collection de bibliothèques pour communauté et d'une
diverses utilisations. large gamme de
bibliothèques, notamment
pour le développement
d'entreprise.
Lisibilité Python met l'accent sur la lisibilité, Java impose des règles de
ce qui facilite la compréhension et syntaxe strictes,
la maintenance du code. améliorant ainsi la lisibilité
et la maintenabilité du
code.
Python est un langage interprété, Le code Java est compilé
Performances ce qui peut le rendre plus lent par en bytecode et exécuté par
rapport au code compilé de Java. la machine virtuelle Java
(JVM), ce qui offre de
meilleures performances.
Courbe Python a une courbe Java a une courbe
d'apprentissage d'apprentissage douce, adaptée d'apprentissage plus
aux débutants et au abrupte en raison de sa
développement rapide. syntaxe stricte et de ses
concepts de
programmation orientée
objet.
Intégration Python offre une intégration Java possède de solides
transparente avec d'autres capacités d'intégration,
langages et plates-formes. notamment dans
l'écosystème Java
Sur la base de cette comparaison, Python a été choisi comme langage de programmation
pour le projet de location de voitures en raison de plusieurs avantages clés.
Premièrement, sa simplicité et sa syntaxe lisible facilitent l'apprentissage et l'écriture du
code, ce qui est bénéfique pour les développeurs novices. Deuxièmement, Python offre
une rapidité de développement grâce à sa syntaxe concise et à ses bibliothèques
étendues, ce qui permet de gagner du temps lors de la création des fonctionnalités
nécessaires pour le site. Troisièmement, la communauté active et engagée de Python
offre un soutien technique continu et de nombreuses ressources pédagogiques, ce qui est
précieux pour les développeurs qui souhaitent obtenir de l'aide et partager leurs
connaissances. En outre, Python dispose de frameworks populaires tels que Django et
Flask, qui facilitent le développement web et offrent des fonctionnalités avancées pour la
création d'applications robustes. Enfin, la lisibilité du code Python contribue à sa
maintenabilité et à la réduction des erreurs. Tous ces facteurs combinés font de Python
un choix solide pour le développement du site de location de voitures.

Vous aimerez peut-être aussi