Académique Documents
Professionnel Documents
Culture Documents
Thème
La présentation de ce modeste travail nous offre l’occasion d’exprimer notre profonde grati-
tude à Monsieur le professeur Lacheheub Mohammed Nassim d’avoir bien voulu diriger ce travail,
pour le temps qu’il a consacré pour nous orienter.Ses nombreux conseils ne nous ont jamais fait
défaut.
A tous les enseignants qui ont contribué à notre formation, pour toutes les connaissances
qu’ils nous ont prodiguées
Nous sommes également redevables à nos parents, frères, sœurs et amis, dont le soutien,
l’optimisme et la confiance qu’ils témoignent nous ont portée tout au long de nos études
A tous ceux qui nous ont soutenus durant tout notre cursus universitaire, et nous sou-
tiennent encore
Table des matières
Introduction Générale 1
I Inception et Elaboration 2
1 Analyse des besoins 3
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Le processus Unifié (UP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Expression des besoins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3.1 Cahier de charge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.4 Expression des besoins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.4.1 Cahier de charge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.4.2 Identification des acteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4.3 Identification des besoins . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.5 Spécification des besoins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.5.1 Les besoins fonctionnels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.5.2 Les Besoins non fonctionnels . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.5.3 Diagramme de cas d’utilisation . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.6 Maquettes IHM, fiches descriptives et diagramme de séquence système . . . . . . . 16
1.6.1 Maquettes IHM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.6.2 Les fiches descriptives et les diagrammes de séquence système . . . . . . . . 21
1.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2 Conception 47
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.2 Modèle de domaine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.2.1 Identification des entités du système et les relations entre elles . . . . . . . 47
2.2.2 Description des éléments de diagramme de classe . . . . . . . . . . . . . . . 48
2.2.3 Diagramme de classe domaine . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.3 Diagramme de classe conception . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.3.1 Identification des classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.3.2 Diagramme de classe conception . . . . . . . . . . . . . . . . . . . . . . . . 50
2.4 Schéma de la base de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
2.4.1 Passage du modèle du domaine au modèle relationnel . . . . . . . . . . . . 53
2.4.2 La normalisation de la base de données . . . . . . . . . . . . . . . . . . . . 54
2.4.3 Schéma de la base de données sous forme diagramme . . . . . . . . . . . . . 54
2.5 Daigramme d’activité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
II Construction et Transition 58
3 Implimentation 59
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.2 Patrons de conception (Design Pattern) . . . . . . . . . . . . . . . . . . . . . . . . 59
3.3 Présentation de l’environnement de travail . . . . . . . . . . . . . . . . . . . . . . . 60
3.3.1 Langages Utilisée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
i
3.3.2 Plateformes Logicielle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.3.3 Plateformes Matérielle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
3.3.4 Services Web utilisée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
3.4 Développement d’application sécurisée . . . . . . . . . . . . . . . . . . . . . . . . . 64
3.4.1 Authentification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
3.4.2 Two Factors authentification . . . . . . . . . . . . . . . . . . . . . . . . . . 65
3.4.3 permission classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
3.4.4 Cryptage base de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
3.5 Développement de l’intelligence artificielle . . . . . . . . . . . . . . . . . . . . . . . 65
3.5.1 Pourquoi utiliser l’intelligence Artificielle : . . . . . . . . . . . . . . . . . . . 65
3.5.2 Fonctionnalités développée . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
3.5.3 Domaines de développementt . . . . . . . . . . . . . . . . . . . . . . . . . . 66
3.5.4 Bibliothèques utilisée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.6 Présentation des interfaces graphique . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.6.1 Interface d’authentification . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.6.2 Interface d’accueil - Home Page - . . . . . . . . . . . . . . . . . . . . . . . . 68
3.6.3 Interface de recherche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
3.6.4 Interface fiche technique du véhicule . . . . . . . . . . . . . . . . . . . . . . 70
3.6.5 Interface payement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
3.6.6 Interface de signature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
3.6.7 Interface de validation de la réservation . . . . . . . . . . . . . . . . . . . . 73
3.6.8 Interface d’affichage du Contrat et Facture de la location . . . . . . . . . . 74
3.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Conclusion Générale 75
III Annexe 77
Annexe 78
ii
Table des figures
iii
3.9 interface de validation de la location . . . . . . . . . . . . . . . . . . . . . . . . . . 73
3.10 Interface de Contrat et facture relatif à la location . . . . . . . . . . . . . . . . . . 74
3.11 fractions de l’implémentation de la reconnaissance faciale . . . . . . . . . . . . . . 78
3.12 fractions de l’implémentation de la reconnaissance faciale . . . . . . . . . . . . . . 79
3.13 fractions de l’implémentation de la reconnaissance faciale . . . . . . . . . . . . . . 80
3.14 implémentation du modèle de DL de reconnaissance des signaux routiers . . . . . 81
3.15 fractions de l’implémentation de la prédiction des signaux routiers . . . . . . . . . 82
3.16 fractions de l’implémentation des fonctions tiers de la reconnaissance des signaux
routiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
3.17 fractions de l’implémentation reconnaissance de textes . . . . . . . . . . . . . . . . 84
iv
Liste des tableaux
v
Introduction Générale
La location de voitures est un commerce en pleine croissance, car elle permet au locataire de
vivre l’expérience de la conduite du véhicule sans pour autant s’engager à long terme, mais aussi elle
permet de répondre à des situations exceptionnelle ou le déplacement est crucial. Certains sondages
indiquent même le décroı̂t du marché de l’achat avec au contraire une augmentation exponentielle
de celui de la locations, ce qui nous indique l’existence d’un réel intérêt et une demande réel pour
ce secteur.
Cependant ce modèle économique prometteur est victime de son propre succès, la compétitivité
des différentes agences augmente jour après jour ; mais la gestion traditionnelle de ce secteur l’affecte
énormément et parfois l’emmène jusqu’à un point de stagnation ou il est impossible de continuer
à développer l’activité tout en conservant les critères de qualité existant.
En effet, en suivant le schéma de gestion traditionnelle il faut utiliser des formulaires en
papier pour les clients, les contrats, les archives et pour le stockage de tout anciennes opérations
ou transactions, ce qui rend le travail désagréable et très lent.
Pour pouvoir se développer une agence de location doit répondre à des critères de qualité.
En effet elle doit être à la fois sur, accueillante et disponible, mais également offrir un temps de
réponse excellent tout en conservant l’exactitude des traitements.
Malheureusement L’humain ayant ses limites et ne pouvant être parfait surtout dans des
condition ou la charge est importante ces critères sont parfois surréaliste et impossible à réaliser, il
est nécessaire donc d’informatiser cette gestion, en utilisant les concepts moderne de l’informatique.
Toute réflexion logique nous mènera tout naturellement à nous poser la question suivante :
comment peut-on informatiser le système existant de gestion des agences de location pour faciliter
ce processus ?
Entrant dans l’ère de l’intelligence artificielle, cette dernière peut s’avérer très utile dans
la gestion de ce marché et son développement. En effet l’automatisation des différentes tâches
secondaires, le traitement et la gestion des données récupérée, l’utilisation des différent techniques
de reconnaissances...etc nous permettra d’attendre plus facilement les critères de qualité et les
objectifs de développement de l’agence, sans pour autant augmenter la charge de travail sur l’effectif
humaine existante.
Notre projet consiste à concevoir une application intelligente de location de véhicules. Nous
souhaitons proposer une solution de gestion des clients, des véhicules et des contrats d’une agence
de location. Cette application offre les fonctions standards de fonctionnement d’une agence de
location, tout en intégrant quelques principes de l’intelligence artificielle.
Chapitre 01 : Analyse des besoins
L’objet de ce chapitre est d’identifier les exigences du projet et faire le point sur les éléments
attendus à partir des besoins exprimé par le client.
Chapitre 02 : Conception
Ce chapitre vise à représenter l’ensemble d’activités qui permettent de comprendre le problème
posée théoriquement et envisager toutes les choix possibles afin d’appliquer la solution la plus
optimale qui répondra a tous les besoins identifié.
Chapitre 03 : implémentation
Dans ce chapitre on s’intéressera au déroulement des actions logiques qui suivent la réflexion
menée durant les premières de développement et qui permettent la réalisation et exécution du
projet. Au bout de ce dernier nous obtiendrons le produit souhaité
1
Première partie
Inception et Elaboration
CHAPITRE 1. ANALYSE DES BESOINS
Chapitre 1
1.1 Introduction
Dans ce chapitre, nous allons fair un analyse de domaine d’application de notre système, puis
nous définissons la problématique et le cadre de projet. En suite, nous commancons la spécification
des besoins puis la description textuelles et graphiques des cas d’utilisation.
Selon UP, Nous faisons une planification de cycle de développement de notre projet comme
montre la table et le diagramme de GANTT qui suive :
3
CHAPITRE 1. ANALYSE DES BESOINS
4
CHAPITRE 1. ANALYSE DES BESOINS
5
CHAPITRE 1. ANALYSE DES BESOINS
6
CHAPITRE 1. ANALYSE DES BESOINS
Objectif :
- Satisfaire les locataire
- Augmenter le nombre de locataire
- Faciliter le travail de l’agence
- Garantir une bonne utilisation des véhicules
Les acteurs :
Les acteurs modélisent les rôles du les entités externes au systéme qu’ils interagent avec le
système. Notre application contient neuf (9) acteurs, sont :
7
CHAPITRE 1. ANALYSE DES BESOINS
Système existants :
- GPS : (Global Positioning System) est un système utilisé pour la position géographique
- Google Maps : est un service gratuit de carte géographique et de plan en ligne. Le service
a été créé par Google.[?]
- Rentcars : Outil de comparaison des différentes offres de location de véhicules, disponible
pour 160 pays
- Bookingcar :
Booking : Entreprise néerlandaise qui propose des hébergements dans différents types
de propriétés (Leader Mondiale)
Booking Car : (comparateur de prix) service additionnelle a l’outil Booking, propose
différente offres de location de véhicules ( par différentes agence Sixth, Hertz ...)
- Sixth : entreprise allemande de location de voitures, fondée en 1912 opère sur plus de 110
pays majoritairement en Amérique et Europe
- Hertz : société Américaine de location de voitures, exploite prés de 12000 succursales et
franchises au niveau national et international ( Amériques, Europe , Asie)
Point négatifs de ces systèmes existants :
• Entreprises focalisé sur la location de voitures majoritairement avec des catalogues réduit
pour les autres types et catégories de véhicules, et options facultatifs
• Activité inexistante sur le plan nationale (Algérie)
• Application développée pour faciliter le processus de location pour l’utilisateur seulement,
et ne s’intéressent pas sur la gestion administrative des agences/ franchises
• Application ne traitant pas le coté suivi après location ( une fois la location réservée, l’agence
s’occupe du reste/ méthode de travail traditionnelle)
• Suivi durant période de location inexistant ( une fois le locataire a pris possession du
véhicule, il n’y a aucun moyen de suive l’état de ce dernier et on doit se fier au propos
du locataire après restitution )
• Utilisation des système de gestion intelligent inexistante ( certain outils utilisent quelques
principes de intelligence artificielle que pour la recommandation )
8
CHAPITRE 1. ANALYSE DES BESOINS
- L’administration et la secrétaire peuvent ajouter et supprimer des véhicules dans les par-
kings.
- Le propriétaire établissent la liste des chauffeur bloqués.
- La secrétaire peut valider réservations.
- Le système établit les factures.
- L’administrateur peut gérer les utilisateurs du système.
- Locataire loue un véhicule et identifier le chauffeur.
- Locataire renouvele contrat de location.
- Locataire et le chauffeur signé des contrats de location.
- La secrétaire peut ajouter et supprimer les locataires.
- Locataire paye une location.
- Locataire consulter facture.
- Les utilisateurs faire une réclamation au propriétaire.
- Le chauffeur peut signaler les problèmes avec le véhicule.
- Le garagiste établit l’état des véhicules.
- Le garagiste gère le parking.
- L’administrateur gère les utilisateurs du système.
- L’administrateur gère les états de système.
- Tous les internautes peuvent consulter la liste de véhicules disponible.
- Les internautes peuvent s’inscrire dans le système comme des locataires ou chauffeurs.
9
CHAPITRE 1. ANALYSE DES BESOINS
10
CHAPITRE 1. ANALYSE DES BESOINS
Consulter Liste Véhicule disponible : action permise pour tous les utilisateurs du système
sans distinction , permet de consulter le catalogue de véhicule qu’offre l’agence.
Gérer son Profil : permet à un locataire authentifié de gérer les information associé a son
compte.
Signaler les problèmes du véhicule : permet au chauffeur de signaler des potentiel défaillances
dans le véhicules louée, ces dernières seront ensuite vérifiée par le garagiste.
Payer : action de payement du montant de la facture, peut se faire par différente méthodes
(carte, chèque, liquide) .
Consulter les réservations : Permet au locataire de consulter les location à venir qu’il a fait.
Gérer parking : action de gestion des véhicules dans une location définie, exercée par le ga-
ragiste.
Gérer les locataire et les chauffeurs : Gestion des locataires dans le système effectuée par
la secrétaire.
Établir liste des exclus : permet de bloquer des comptes de locataires bannis du site , suite
à des comportement inadmissible.
Gérer les véhicules : action partagé entre le propriétaire et la secrétaire, permet la gestion
des différent véhicules dont l’agence dispose.
Consulter les statistiques : Le propriétaire peut consulter les différents statistiques relatif
à l’activité de son agence.
Modifier prix : permet au propriétaire de modifier le prix d’un véhicule , ce prix sera appli-
cable qu’après la fin de la location en cours.
11
CHAPITRE 1. ANALYSE DES BESOINS
Gérer réclamations : La gestion par le propriétaire des réclamations faites par les locataires.
Gérer Q & A : permet à l’administrateur la gestion des questions posée par les internautes.
Gérer les utilisateurs : permet a l’administrateur de gérer les différents utilisateurs du système
(Propriétaire, Secrétaire, Garagiste ...etc)
12
CHAPITRE 1. ANALYSE DES BESOINS
13
CHAPITRE 1. ANALYSE DES BESOINS
14
CHAPITRE 1. ANALYSE DES BESOINS
15
CHAPITRE 1. ANALYSE DES BESOINS
16
CHAPITRE 1. ANALYSE DES BESOINS
17
CHAPITRE 1. ANALYSE DES BESOINS
Les maquettes suivante présentent le processus de loaction d’une vehicule le cas de l’exemple
est une voiture
Figure 1.14 – Les maquettes des pages de processus de loaction d’un vehicule
18
CHAPITRE 1. ANALYSE DES BESOINS
La maquette suivante répresente les pages de gestion des utilisateurs de système pour l’admi-
nistrateur
19
CHAPITRE 1. ANALYSE DES BESOINS
20
CHAPITRE 1. ANALYSE DES BESOINS
21
CHAPITRE 1. ANALYSE DES BESOINS
22
CHAPITRE 1. ANALYSE DES BESOINS
23
CHAPITRE 1. ANALYSE DES BESOINS
Figure 1.20 – Diagramme de séquence système de cas d’utilisation Gérer les utilisateurs≫
≪
24
CHAPITRE 1. ANALYSE DES BESOINS
Scénarios /
alternatifs
Scénarios E1 : Secrétaire ne valide pas. L’enchaı̂nement démarre après le point 6 de
d’excep- la séquence nominal.
tions 6.3.1. Le système affiche que l’opération est annulée.
6.3.2. Le système annule l’opération.
25
CHAPITRE 1. ANALYSE DES BESOINS
réservation≫
26
CHAPITRE 1. ANALYSE DES BESOINS
Scénarios /
alternatifs
Scénarios E1 :Propriétaire ne confirme pas. L’enchaı̂nement démarre après le point
d’excep- 7 de la séquence nominale.
tions 7.1. Le système affiche que l’opération est annulée.
7.2. Le système annule l’opération.
E2 : Le Propriétaire décide de supprimer de la liste d’exclus et la liste
est vide L’enchaı̂nement démarre après le point 4 de la séquence nominale.
4.1. Le système affiche que l’opération est annulée.
4.2. Le système annule l’opération.
27
CHAPITRE 1. ANALYSE DES BESOINS
Figure 1.22 – Diagramme de séquence système de cas d’utilisation Etablire liste des exclus≫
≪
28
CHAPITRE 1. ANALYSE DES BESOINS
29
CHAPITRE 1. ANALYSE DES BESOINS
30
CHAPITRE 1. ANALYSE DES BESOINS
31
CHAPITRE 1. ANALYSE DES BESOINS
32
CHAPITRE 1. ANALYSE DES BESOINS
33
CHAPITRE 1. ANALYSE DES BESOINS
Figure 1.25 – Diagramme de séquence système de cas d’utilisation Signaler les problèmes avec
≪
le véhicule≫
34
CHAPITRE 1. ANALYSE DES BESOINS
35
CHAPITRE 1. ANALYSE DES BESOINS
36
CHAPITRE 1. ANALYSE DES BESOINS
Scénarios /
d’excep-
tions
37
CHAPITRE 1. ANALYSE DES BESOINS
Figure 1.27 – Diagramme de séquence système de cas d’utilisation Consulter liste véhicules
≪
disponible≫
38
CHAPITRE 1. ANALYSE DES BESOINS
39
CHAPITRE 1. ANALYSE DES BESOINS
Figure 1.28 – Diagramme de séquence système de cas d’utilisation ≪ Gérer les reclamations≫
40
CHAPITRE 1. ANALYSE DES BESOINS
41
CHAPITRE 1. ANALYSE DES BESOINS
42
CHAPITRE 1. ANALYSE DES BESOINS
43
CHAPITRE 1. ANALYSE DES BESOINS
Scénarios /
alternatifs
Scénarios E1 : Système ne trouve pas des contrats en cours et son délai de
d’excep- renouvellement n’est pas écoulé, débute au point 2 de la séquence nominale
tions 2.1. Le système affiche que il n’y a pas des contrats en cours et son
délai de renouvellement n’est pas écoulé
2.2. Le système annule l’opération
E2 : Locataire ne valide pas le renouvellement. débute au point 9 de la
séquence nominale
9.1. Le système affiche que l’opération est annulée
9.2. L système annule l’opération
44
CHAPITRE 1. ANALYSE DES BESOINS
45
CHAPITRE 1. ANALYSE DES BESOINS
1.7 Conclusion
Durant ce chapitre, nous ayons fait un etude préliminaire et une spécification des besoins
d’utilisateurs et nous obtenous un modèle de cas d’utilisation qu’il nous aide à faire une déscription
détaillée des besoins d’utilisateurs dans le chapitre suivant.
46
CHAPITRE 2. CONCEPTION
Chapitre 2
Conception
2.1 Introduction
Dans ce chapitre nous suivons avec l’étape de la conception qui constitue une étape fonda-
mentale dans la processus de développement puisqu’elle fait correspondre la vision applicative (le
modèle d’analyse) à la vision technique (l’environnement de développement et d’exécution) nous
commençons avec le modéle de domaine qui contient les identifications des entités du système et
les relations entre ces entiés ,modélisé par diagramme de classe ,ensuite nous identifions les classes
du systéme et diagramme de classe ,ainsi nous montrons le passage de ce dernier en modéle logique
données et la normalisations et le soutenir avec une schéma de la base de donneés.
47
CHAPITRE 2. CONCEPTION
Agency : les informations sur les agences géré par notre systéme.
Payement : les informations sur le payement des locations
Secretary : les informations sur les secrétaires de notre système.
Salaries : les informations sur les salaires des employée de notre système
Garage Manager : les informations sur les garagistes de notre système.
Les relation entre les différentes entités sont démontrées dans la figure de modele de domaine
Figure 2.1.
48
CHAPITRE 2. CONCEPTION
Attributs :
int entreprise name : le nom de l’entreprise
int commercial register num : le numéro de registre commerce de l’entreprise
status : état de la notification (lu, non lu ...etc)
type :
boolean is deleted : montrer que l’utilisateur supprime son compte ou non
char UserType : distingue les types de locataires (compte entreprise E, comptes person-
nelles P)
String justification : description de la réclamation, ou le probléme de véhicule, ou bien le
raison d’ajout d’un locataire au liste de locataires exclus
String answer : le contenu de la réponse sur une réclamation ou une question
promotion : montant diminuée du total de la facture aprés insertion d’un code promotion-
nelle
PDFBill : fichier PDF de la facture générée
String img id : photo d’identité pour identifier le chauffeur
RenterType : definit les différents type de locataire possible (entreprise, employee, propriai-
raire...)
49
CHAPITRE 2. CONCEPTION
boolean is active : Indique si l’utilisateur travaille toujours en tant qu’un employé dans
tells poste
Time start of working timel : définir l’heure de début temps travail l’employé
Time end of work time : définir l’heure de fin temps travail l’employé
EmployeeTypes : définit quelle position peut occuper l’employée ( administrateur, secrétaire,
garagiste )
method paiment : définit la méthode de payement que le locataire a selectionée ( par carte,
ou sur place)
Recipt : reçu du payement sur place
cardNum : numéro de carte bancaire avec laquelle le locataire a efectué le payement
nbHour : nombre d’heures de location facturée
nbDay : nombre de jours de location facturée
PDFFile : définit le fichier pdf qui représente le contrat de location
type : définit quelle type de contrat ( nouveaux contrat ou renouvellement )
RentingState : définit si le véhicul est disponible pour la location ou non
String state in accessoire : pour dire que l’accessoire est disponible ou non
String name : le nom du véhicule (marque)
String model : le modèle du véhicule
String type : dans quelle catégorie se trouve le véhicule (Sport , familial, ... )
String gearbox type : définit le type de boite vitesse (Manuelle , automatique)
int number Seat : le nombre de place
String state : pour dire que le véhicule est loué ou disponible ou réparer
boolean reduced mobility : définit si le véhicules réponds aux critères d’accommodations
pour les personnes à mobilité réduite
String type of engine : définir les caractéristique de moteur
int spot number : représente le numéro de la place de paking attribuée a ce véhicule
int spot Letter : représente la lettre de la zone d’emplacement de ce véhicules dans le
parking
int qr code : représente le code qr unique associé a ce vehicule
Méthodes :
QRgenerator () : méthode permettant de générer des codes QR uniques et spécifique à
chaque véhicule .
Billgenerator() : méthode permettant de générer les factures de chaque réservation sous
format PDF.
ContartGenerator () : méthode permettant de générer les contrat relatif à chaque réservation
sous format PDF.
Pay() : méthode permettant le payement en ligne.
50
CHAPITRE 2. CONCEPTION
51
CHAPITRE 2. CONCEPTION
52
CHAPITRE 2. CONCEPTION
53
CHAPITRE 2. CONCEPTION
54
CHAPITRE 2. CONCEPTION
55
Figure 2.4 – Diagramme de schéma de base de données
CHAPITRE 2. CONCEPTION
56
CHAPITRE 2. CONCEPTION
2.6 Conclusion
Dans cet chapitre nous montrassions le modéle de domaine avec identification des entités du
systéme et le diagramme de classe, aprés nous avons le transformé au modèle relationnel avec
l’applications les régles de passage ,ce dernier on applique la normalisation pour obtenir une base
de données moins redondante. suivis par le patrons de conception pour faire un lien avec le chapitre
suivant.
57
Deuxième partie
Construction et Transition
CHAPITRE 3. IMPLIMENTATION
Chapitre 3
Implimentation
3.1 Introduction
Étant arrivé à une des dernières étapes du processus de développement on discutera des
choix techniques relatifs à la mise en œuvre de notre projet. Nous aborderons l’environnement
de développement, les outils et langages de programmation utilisée ainsi que le développement de
nouvelles technologies (intelligence artificielle) et on conclura avec la présentation des réalisations
effectuée.
59
CHAPITRE 3. IMPLIMENTATION
SQL
Structured Query Language est un langage informatique normalisé utilisé pour exploiter des
bases de données relationnelles.. Il permet de façon générale la définition, la manipulation et le
contrôle de sécurité de données. [?]
Pourquoi utiliser SQL :
- Évolutivité
- Structure, Les bases de données SQL sont mieux adaptées aux transactions multilingues.
- Documentation et Grande Communauté
HTML
≪ HyperText Markup Language ≫ qu’on peut traduire par ≪ langage de balises pour l’hyper-
texte . Il est utilisé afin de créer et de représenter le contenu d’une page web et sa structure.
≫
[?]
CSS
Cascading Style Sheets en anglais, ou ≪ feuilles de style en cascade ≫ sont le code utilisé pour
mettre en forme une page web. [?]
60
CHAPITRE 3. IMPLIMENTATION
Bootstrap
Collection d’outils utiles à la création du design (graphisme, animation et interactions avec la
page dans le navigateur, etc.) de sites et d’applications web. C’est un ensemble qui contient des
codes HTML et CSS et JS [?]
Pourquoi utiliser bootstrap ?
- Fonctionnalités prédéfinies
- Personnalisation facile, il propose des propriétés par défaut facilement personnalisables selon
les besoins.
- Open-source, il y a une immense communauté pour continuer à améliorer ses fonctionnalités.
- Idéal pour la conception réactive
JavaScript
Langage de script léger, orienté objet, principalement connu comme le langage de script des
pages web. C’est un langage à objets utilisant le concept de prototype, disposant d’un typage
faible et dynamique qui permet de programmer suivant plusieurs paradigmes de programmation
(fonctionnelle, impérative et orientée objet. . .)[?]
React js une bibliothèque JavaScript libre, son but principal est de faciliter la création d’ap-
plication web monopage, via la création de composants dépendant d’un état et générant
une page (ou portion) HTML à chaque changement d’état.[?]
Signature pad une bibliothèque JavaScript pour dessiner des signatures fluides, basée sur un
canvas HTML5 et utilise une interpolation de courbe de Bézier à largeur variable basée sur
la publication de Smoother Signatures par Square, ne dépend d’aucune bibliothèque externe.
React QR reader application de code QR de haute qualité. Le lecteur de QR code est conçu
pour décoder (scanner le code) et permet donc à l’utilisateur d’avoir accès aux informations
stockées.
61
CHAPITRE 3. IMPLIMENTATION
LaTex
LaTeX est un système de composition de haute qualité ; il comprend des fonctionnalités conçues
pour la production de documentation technique et scientifique. LaTeX est le standard de facto pour
la communication et la publication de documents scientifiques. LaTeX est disponible en tant que
logiciel libre. [?]
Tensorflow
TensorFlow est un framework open source développé par des chercheurs de Google pour
exécuter l’apprentissage automatique, l’apprentissage en profondeur et d’autres charges de travail
d’analyse statistique et prédictive. Comme des plates-formes similaires, il est conçu pour ratio-
naliser le processus de développement et d’exécution d’applications d’analyse avancées pour les
utilisateurs tels que les scientifiques des données, les statisticiens et les modélisateurs prédictifs. [?]
Keras une API basé sur Tensorflow2 conçue pour les humains, non pas pour les machines.
Keras suit les meilleures pratiques pour réduire la charge cognitive : il propose des API
cohérentes et simples, il minimise le nombre d’actions de l’utilisateur requises pour les cas
d’utilisation courants et il fournit des messages d’erreur clairs et exploitables. [?]
MySQL Workbench :
système de gestion de bases de données relationnelles SQL open source développé et supporté
par Oracle.Il fait partie des logiciels de gestion de base de données les plus utilisés au monde (ap-
plications web principalement).[?]
Pourquoi choisir MySQL ?
- MySQL est mondialement reconnu pour être le SGBD le plus sécurisé et le plus fiable utilisé
dans les applications Web populaires.
- Haut niveau de performances.
- Facilité d’adaptation et Évolutivité à la demande.
VSCode
Visual Studio Code est un éditeur de code source léger mais puissant. Il est livré avec un sup-
port intégré pour JavaScript, TypeScript et Node.js et dispose d’un riche écosystème d’extensions
pour d’autres langages (tels que C++, Java, Python, PHP, Go) et des runtimes (tels que .NET et
Unity) .[?]
Pycharm
un environnement de développement intégré utilisé pour programmer en Python. Il permet
l’analyse de code et contient un débogueur graphique. Il permet également la gestion des tests
unitaires, l’intégration de logiciel de gestion de versions, et supporte le développement web avec
Django. [?]
Postman :
Postman est une plate-forme API pour créer et utiliser des API. Elle simplifie chaque étape du
cycle de vie des API et rationalise la collaboration pour créer de meilleures API plus rapidement.[?]
62
CHAPITRE 3. IMPLIMENTATION
Google chrome :
Chrome est un navigateur web propriétaire développé par la société Google depuis 2008, basé
sur Chromium fonctionnant sous Windows, Mac, Linux, Android et iOS. [?]
Microsoft Edge :
Microsoft Edge est un navigateur web propriétaire développé par la société Microsoft depuis
2015, et basé sur Chromium depuis 2020. Il est conçu pour remplacer Internet Explorer. installé
par défaut avec Windows 10 et 11, et il est disponible également sur d’autre plateformes [?]
Github :
Github est un service web d’hébergement et de gestion de développement de logiciels, utilisant
le logiciel de gestion de versions Git. Le site assure également un contrôle d’accès et des fonction-
nalités destinées à la collaboration comme le suivi des bugs, les demandes de fonctionnalités et la
gestion de tâches. [?]
Google drive :
Service de stockage et de partage de fichiers dans le cloud lancé par la société Google. C’est
une suite bureautique permettant de modifier des documents, feuilles de calcul, présentations,des
formulaires ... etc [?]
Google Keep :
Google Keep est une application de prise de notes développée par Google ; disponible à la fois
sur le Google Play , l’App Store et en tant qu’application web liée à Google Drive. Elle offre une
variété d’outils pour optimiser la prise de notes en équipe [?]
TexStudio
TeXstudio est un éditeur LaTeX open source multiplateforme. Ses fonctionnalités incluent un
vérificateur d’orthographe interactif, le pliage de code et la coloration syntaxique. Il ne fournit
pas LaTeX lui-même - l’utilisateur doit choisir une distribution TeX et l’installer en premier.(dans
notre cas on a choisi MikTex) [?]
PlantUML
PlantUML est un outil open source permettant aux utilisateurs de créer des diagrammes à
partir d’un langage de texte brut. Outre divers diagrammes UML, PlantUML prend en charge di-
vers autres formats liés au développement de logiciels, ainsi que la visualisation des fichiers JSON.
[?]
Figma
Figma est une application Web d’édition graphique et de conception d’interface utilisateur.
Peut être utilisée pour effectuer toutes sortes de travaux de conception graphique à partir de sites
Web filaires, concevoir des interfaces d’applications mobiles, concevoir des prototypes, créer des
publications sur les réseaux sociaux et tout le reste. [?]
63
CHAPITRE 3. IMPLIMENTATION
N otre développement d’une application plus sécurisé se fait ressentir notamment lors de la
conception des fonctionnalités suivantes :
3.4.1 Authentification
L’authentification est le mécanisme d’association d’une demande entrante à un ensemble d’in-
formations d’identification. Les politiques d’autorisation et de limitation peuvent ensuite utiliser
ces informations d’identification pour déterminer si la demande doit être autorisée. [?]
token authentification (authentification par jeton) Les mots de passe nécessitent également
une authentification du serveur. Chaque fois que la personne se connecte, l’ordinateur crée
un enregistrement de la transaction. La charge mémoire augmente en conséquence.
Avec l’authentification par jeton, un service secondaire vérifie une requête du serveur.
Lorsque la vérification est terminée, le serveur émet un jeton et répond à la demande.
L’utilisateur peut toujours avoir un mot de passe à retenir, mais le jeton offre une autre
forme d’accès qui est beaucoup plus difficile à voler ou à surmonter.[?]
session authentification Une session est un petit fichier (souvent sous format JSON), qui
stocke des informations sur l’utilisateur (ID, heure de connexion. . .). Il est généré et stocké
sur le serveur afin que le serveur puisse suivre les demandes des utilisateurs.
L’utilisateur reçoit certaines de ces informations, en particulier l’identifiant, sous forme de
cookies qui seront envoyés à chaque nouvelle demande, afin que le serveur puisse reconnaı̂tre
l’identifiant et autoriser les demandes de l’utilisateur.[?]
64
CHAPITRE 3. IMPLIMENTATION
C’est le moyen le plus simple et le plus efficace de s’assurer que les informations du système
informatique ne peuvent être ni volées ni lues par autrui
Mais aussi la sécurité de notre application s’est faite par la prise de décisions stratégiques, en
ce qui concerne les différents langages et frameworks utilisés. Nous avons veillé à prendre les choix
les plus fiables parmi ceux disponibles ( utilisation de framework Django , MySQL Workbench . . .
etc ) [?]
65
CHAPITRE 3. IMPLIMENTATION
qui convertit les caractères dans un fichier texte (word, pdf ...) afin de pouvoir travailler sur
ce texte. C’est un outil simple à manipuler, et permet une conversion rapide des documents.
66
CHAPITRE 3. IMPLIMENTATION
Modèles de développement
Le développement de logiciel selon le DL, se fait suivant des modèles pré-définis en fonction
du résultat attendu et de la fonctionnalités voulue. Ici on va discuter de certain de ces modèle
Dans le développement de logiciel intelligent nous avons notamment fait recours au modèles
du DL , les 2 principaux types d’algorithmes sont les suivant :
réseaux de neurones conventionnels (CNN) constitués d’une multitude de couches chargées
de traiter et d’extraire les caractéristiques des données. De manière spécifique, les réseaux
neuronaux convolutifs sont utilisés pour l’analyse et la détection d’objets.(images ...).on a
notamment utilisée cet algorithme durant le développement de logiciel de reconnaissance de
signaux routier [?]
réseaux de neurones récursifs(RNN) possèdent des connexions qui constituent des cycles
dirigés.Elle peut mémoriser les entrées précédentes à l’aide de sa mémoire interne et les
exploiter comme entrées au niveau de la phase actuelle [?]
Tesseract JS moteur de reconnaissance optique de texte (OCR) open source. Il peut être uti-
lisé directement ou à l’aide d’une API pour extraire le texte imprimé des images. Il prend
en charge une grande variété de langues. [?]
NumPy est le package fondamental pour le calcul scientifique en Python. Il s’agit d’une bi-
bliothèque Python qui fournit un objet tableau multidimensionnel, divers objets dérivés (tels
que des tableaux masqués et des matrices) et un assortiment de routines pour des opérations
rapides sur des tableaux, y compris mathématiques, logiques, manipulation de forme, tri,
sélection, E/S , transformées de Fourier discrètes, algèbre linéaire de base, opérations sta-
tistiques de base, simulation aléatoire et bien plus encore.[?]
Pandas est un package Python open source qui est le plus largement utilisé pour la science
des données/l’analyse des données et les tâches d’apprentissage automatique. Il est construit
au-dessus d’un autre package ”Numpy 3.5.4”. En tant que l’un des packages de gestion de
données les plus populaires, Pandas fonctionne bien avec de nombreux autres modules de
science des données au sein de l’écosystème Python. [?]
67
CHAPITRE 3. IMPLIMENTATION
68
CHAPITRE 3. IMPLIMENTATION
Figure 3.5 – interface de la page de recher d’un véhicule selon les critères d’entrée
69
CHAPITRE 3. IMPLIMENTATION
(a) inteface affichage caractéristiques rela- (b) interface caractériqtiques relatif a la lo-
tif au véhicule selectionée cation du véhicule selectionée
70
CHAPITRE 3. IMPLIMENTATION
71
CHAPITRE 3. IMPLIMENTATION
72
CHAPITRE 3. IMPLIMENTATION
73
CHAPITRE 3. IMPLIMENTATION
3.7 Conclusion
Dans ce chapitre, nous avons présenté la structure du site, des rappels sur l’architecture MVT
suivie , les langages que nous avons utilisés, ainsi que les autres outils techniques et matériels. Nous
avons aussi mentionné le processus du développement de l’intelligence artificielle, en terminant par
quelques aperçus qui montrent les différentes parties de ce travail.
74
CHAPITRE 3. IMPLIMENTATION
Conclusion Générale
L’objectif de notre projet était de créer une application web pour une agence de location de
véhicules, cette application offre un ensemble de services de gestion de base ainsi que des nouvelles
fonctionnalités que nous avons juger nécessaire (gestion des comptes, modification d’état de la
réservation, établissement de liste d’exclus, signalement d’anomalies dans le véhicule, reconnais-
sance faciale, reconnaissance de signaux routier ..... )
Plusieurs technologies ont été utilisée pour la réalisation de ce projet, parmi lesquels on cite
le langages Python qui été l’outil le plus important durant le développement du Back-end de
l’application Web et notamment l’utilisation de ses framework ( Django, Rest API ...).Durant le
développement du Front-End on a notamment utilisée les technologies populaires (HTML, CSS,
JavaScript, React JS),Finalement pour l’élaboration de la base de données nous avons opté pour
l’utilisation du langage SQL.
Durant ce travail, nous avons essayé d’étudier et de comprendre le fonctionnement des agences
de location sur le plan national mais aussi les systèmes de location de véhicules existant à l’in-
ternational (Booking, Sixth ...).Après avoir synthétise les résultat de nos recherches, nous avons
tenter d’apporter les améliorations que nous trouvions nécessaire notamment celle suivantes :
— le client a la possibilité de louer un véhicule sans pour autant être le chauffeur de ce véhicule
— la location poura se faire entièrement en ligne sans besoins de se déplacer à l’agence ce qui
permettra un gain de temps considérable pour les clients
— le client a la possibilité de signaler un probléme avec le véhicule, qui sera pris en charge par
le garagiste une fois la location terminée
75
CHAPITRE 3. IMPLIMENTATION
rendre compte de la complexité de développement d’un projet réel, ainsi que l’importance du
travail d’équipe.
— Développement d’un système de livraison de véhicules jusqu’à l’adresse demandé par le client
76
Troisième partie
Annexe
Annexe
Reconnaissance faciale
Ces capteurs représnte l’implémentation de fonctionnalité de réconnaissance faciale.
78
Figure 3.12 – fractions de l’implémentation de la reconnaissance faciale
79
Figure 3.13 – fractions de l’implémentation de la reconnaissance faciale
80
Réconnaissance de signaux routier
Ces capteurs représnte l’implémentation de fonctionnalité de réconnaissance de signaux rou-
tier.
81
Figure 3.15 – fractions de l’implémentation de la prédiction des signaux routiers
82
Figure 3.16 – fractions de l’implémentation des fonctions tiers de la reconnaissance des signaux
routiers
83
Réconnaissance de textes
Ces capteurs représnte l’implémentation de fonctionnalité de réconnaissance de textes.
84