Vous êtes sur la page 1sur 37

UNIVERSITE IBN ZOHR

Ecole Supérieure de Technologie – Guelmim


Projet de fin d’études

POUR L’OBTENTION DE :

Diplôme Universitaire de Technologie en

Informatique

Conception et réalisation d’application


mobile « eTaxi »

Encadré par : Réalisé par :


Mr. : ASIMI YOUNES Fatima zahra AIT LHAJ

Nouhaila El Rhazzaoui

Soutenue le samedi 25 mars 2023 à 09H 00

Devant la commission d'examen composée de :

Mr Oumous, Ecole Supérieure de Technologie – Guelmim


Mr Sabri, Ecole Supérieure de Technologie – Guelmim

1
Remerciement
Nous tenons à exprimer notre gratitude envers toutes les personnes qui ont contribué à
la réalisation de ce projet. Nos sincères remerciements vont tout d’abord à notre encadrant M.
ASIMI Younes pour ses conseils avisés et son soutien tout au long de la réalisation de cette
application.

Nous souhaitons également remercier toutes les personnes qui ont participés à
l’évaluation de l’application et ont fourni des commentaires précieux. Leurs retours ont été
d’une grande aide pour l’amélioration de l’expérience utilisateur.

Enfin, un grand merci à nos proches, qui nous ont soutenu tout au long de cette
aventures et ont été une source de motivation inépuisable.

Cette application mobile est le fruit d’un travail acharné, mais également de
l’implication et de la collaboration de nombreux acteurs. C’est avec fierté que nous dédions ce
projet à tous ceux qui nous ont accompagnés dans cette aventure.

2
Dédicace

Nous avons le plaisir d'offrir ce modeste travail à tous ceux qui


de près ou de loin ont aidé à sa réalisation.

A nos chers parents

Pour leur générosité et leur présence permanentes. Avec tous nos


sentiments de respect, amour, de gratitude et de reconnaissance
pour tous les sacrifices déployés pour nous élever dignement et
assurer notre éducation dans les meilleures conditions.

A notre famille

Pour l'inspiration de notre vivacité, et la motivation de notre


effort.

A nos chers amis


Pour témoigner de la fraternité qui nous a associé.

Table de matières
CHAPITRE 1 : SÉCURITÉ INFORMATIQUE SOUS PYTHON..................8

3
I. SÉCURITÉ INFORMATIQUE.............................................................................................8
I.1. Fonctionnalités de python..................................................................................................8
II. CERTIFICAT SSL........................................................................................................8
II.1. Les avantages du certificat SSL.........................................................................................8
II.2. Création d’un certificat SSL..............................................................................................9
III. SYSTÈME DE CRYPTOGRAPHIE PGP.........................................................................10
III.1. Les fonctionnements principaux de PGP.....................................................................11
III.2. Protocole PGP sous Kileopatra....................................................................................11

CHAPITRE 2 : DÉVELOPPEMENT DES APPLICATIONS SOUS


PYTHON........................................................................................................... 13

I. PYTHON........................................................................................................................13
I.1. Installation de Python......................................................................................................13
I.2. Environnements du travail sur Python.............................................................................13
II. TYPES DES APPLICATIONS........................................................................................13
II.1. Applications Natives........................................................................................................13
II.2. Applications Hydriodiques :............................................................................................14
II.3. Application web...............................................................................................................14
II.4. Différences entre les types applications..........................................................................15

CHAPITRE 3 : ANALYSE ET CONCEPTION............................................16


I. Analyse fonctionnelle..........................................................................................................16
I.1. Etude d’existence.............................................................................................................16
I.2. Critique d’existant...........................................................................................................16
I.3. Solution proposée............................................................................................................16
I.4. Taches réalisées dans l’application..................................................................................17
II. Conception.......................................................................................................................18
II.1. Diagrammes de class.......................................................................................................18
II.2. Diagram de cas d’utilisation............................................................................................19
II.1. Les diagrammes de séquence....................................................................................21
II.2. Conclusion.......................................................................................................................23

4
CHAPITRE 3 : RÉALISATION.....................................................................24

I. LES OUTILS UTILISÉS...................................................................................................24


I.1. Les enivrements de travail...............................................................................................24
I.2. Les langages de programmation......................................................................................24
II. LES INTERFACES RÉALISÉES DANS NOTRE APPLICATION ETAXI.............................25

CONCLUSION................................................................................................ 33

5
Liste de figures

Figure 1:Creation d'un certificat SSL...................................................................................9

Figure 2:Le script pour copier le certificat..........................................................................10

Figure 3:Configuration de server apache............................................................................10

Figure 4:Générer une clé paire de clés PGP.......................................................................11

Figure 5:Générer une clé paire de clés PGP.......................................................................11

Figure 6:Chifrement de text.................................................................................................12

Figure 7:Diagram de class global........................................................................................18

Figure 8:Diagram de Cas d’utilisation cas Administrateur................................................19

Figure 9:Diagram Cas d’utilisation d’acteur utilisateur....................................................20

Figure 10:Digram de Cas d’utilisation d’acteur Conducteur.............................................20

Figure 11:diagramme de sequence de cas d’utilisation d’un admin..................................21

Figure 12:Diagramme de séquence d’un Client..................................................................22

Figure 13:Diagramme de séquence d’un conducteur de taxi.............................................23

Figure14:Interface d’accueil 1.............................................................................................26

Figure15:Interface d’accueil 1.............................................................................................26

Figure 16:Interface d’accueil...............................................................................................26

Figure 17:Interface d’accueil 4............................................................................................27

Figure 18:interface de login.................................................................................................27

Figure 19:choix de profil......................................................................................................28

Figure 20:page de réinitialisation de Mot de passe.............................................................28

Figure 21:Page inscription d'utilisateur..............................................................................29

6
Figure 22:Pageinsertion des informations de taxi..............................................................29

Figure 23:Page d’affichage de google maps.......................................................................30

Figure 24:Page de recherche de localisation.......................................................................30

Figure 25:Page de chat entre les utilisateurs et les conducteur.........................................31

Figure 26:Page d’espace personnelle..................................................................................31

Figure 27:Page de point de vue utilisateur..........................................................................32

Figure 28:Page d'invitation des amis...................................................................................32

7
Introduction général

Depuis plusieurs décennies, les transports ont été un enjeu majeur pour les sociétés
modernes, notamment en termes de mobilité, de développement économique, de qualité de vie,
d'environnement et de sécurité routière. Au fil des années, les technologies ont permis des avancées
considérables dans ce domaine, avec notamment l'avènement de l'Internet et des smartphones.

De nos jours, les applications mobiles ont complètement changé la donne dans le secteur du
transport. En effet, ces applications ont révolutionné la manière dont les utilisateurs se déplacent en
leur offrant la possibilité de commander un taxi en quelques clics depuis leur smartphone. Cette
innovation technologique a permis de simplifier et de fluidifier la réservation de taxis, tout en
améliorant la qualité de service offerte par les entreprises de taxi.

Dans ce contexte, ce rapport de projet de fin d'étude s'attarde sur une application mobile
eTaxi, conçue pour faciliter la réservation des taxis à travers une interface intuitive et conviviale.
L'objectif principal de ce projet est de proposer une solution efficace pour répondre aux besoins
croissants de clients en matière de mobilité et de confort, tout en améliorant la qualité de service
offerte par les entreprises de taxi.

8
Chapitre 1 : Sécurité informatique sous python
I. Sécurité informatique
La sécurité informatique est un ensemble de techniques et pratiques visant à protéger les
systèmes, réseaux, données et utilisateurs contre les menaces. Il est important pour les entreprises et
les organisations de mettre en place des mesures de sécurité pour protéger leurs systèmes et données.
Les utilisateurs doivent également prendre des mesures pour protéger leur propre sécurité
informatique.
I.1. Fonctionnalités de python
Python fournit des outils et des fonctionnalités pour assurer la sécurité informatique des scripts
et des applications écrits en Python. Il est important que les développeurs utilisent ces outils et
respectent les bonnes pratiques de sécurité pour écrire des codes sécurisés et protéger les données
sensibles. Il existe plusieurs façons dont Python assure la sécurité informatique :

Vérification de code : Python fournit des outils pour vérifier les scripts et les
applications pour détecter tout code malveillant ou toute vulnérabilité.
Gestion des dépendances : Les développeurs peuvent utiliser des gestionnaires de
paquets tels que pip ou pipenv pour gérer les dépendances utilisées dans leurs projets.
Cryptage des données : Python fournit des bibliothèques de chiffrement pour protéger
les données sensibles stockées ou traitées par les scripts et les applications.
Environnements virtuels : Les environnements virtuels permettent d'isoler les
dépendances et les bibliothèques utilisées dans un projet Python, ce qui limite les risques
de compromission de l'application ou du système.
Analyse de code statique : Il existe des outils d'analyse de code statique pour Python qui
peuvent aider à détecter les vulnérabilités de sécurité dans les scripts et les applications.

II. Certificat SSL


Un certificat SSL est un certificat numérique qui établit une connexion sécurisée entre un
navigateur et un serveur. Il chiffre les données transmises pour protéger les informations sensibles.
Les certificats SSL sont émis par des autorités de certification qui vérifient l'identité de l'entité qui
demande le certificat. Les certificats SSL peuvent être de différents types selon les besoins de
sécurité.

9
II.1. Les avantages du certificat SSL
Sécurité des données : Le certificat SSL permet de chiffrer les données échangées entre
le serveur et le navigateur, ce qui les rend illisibles pour les personnes mal intentionnées
qui pourraient tenter de les intercepter.
Confidentialité : En chiffrant les données, le certificat SSL protège également la
confidentialité des informations échangées, telles que les noms d'utilisateur et les mots de
passe.
Confiance : Les certificats SSL sont délivrés par des autorités de certification reconnues,
ce qui renforce la confiance des utilisateurs envers le site web.
Amélioration du référencement : Les moteurs de recherche comme Google ont
tendance à favoriser les sites web qui utilisent des certificats SSL, ce qui peut améliorer
leur référencement.
Respect des normes de conformité : Certaines normes de conformité, comme la norme
PCI DSS pour la sécurité des paiements en ligne, exigent l'utilisation de certificats SSL.
II.2. Création d’un certificat SSL 
Pour créer un certificat et une clé privée en Python, nous utilisons le package cryptography et
SSL. Dans l’exemple suivant, nous illustrons les étapes à suivre pour créer ce certificat utilisant la
clef prive et la CSR(certificat singing request) en utilisant la bibliothèque cryptography :

10
Figure 1:Creation d'un certificat SSL

Transférer le certificat SSL et la clé privée vers le serveur.

Figure 2:Le script pour copier le certificat

Configurer votre logiciel de serveur web pour utiliser le certificat SSL. Cela variera également
en fonction du logiciel, mais impliquera généralement la modification d'un fichier de configuration
pour spécifier l'emplacement des fichiers de certificat et de clé privée.

11
Figure 3:Configuration de server apache

Note : Il est nécessaire de mettre à jour le code de l'application pour rediriger le trafic HTTP
vers HTTPS,
III. Système de cryptographie PGP
PGP (Pretty Good Privacy) est un système de cryptographie qui utilise des clés publiques et
privées pour chiffrer et déchiffrer les messages et les fichiers. Il permet de garantir la confidentialité,
l'intégrité et l'authenticité des communications. Il est souvent utilisé pour protéger les
communications électroniques sensibles telles que les courriels, les messages instantanés et les
fichiers et est souvent utilisé par les entreprises et les gouvernements pour protéger les
communications confidentielles. Il permet également de signer numériquement les messages pour
garantir l'authenticité de l'expéditeur.

III.1. Les fonctionnements principaux de PGP 


Le fonctionnement principal de PGP est basé sur une méthode de cryptographie asymétrique à
clé publique et clé privée. Les étapes principales du fonctionnement de PGP :
Génération de clés : Lorsque vous utilisez PGP pour la première fois, vous devez
générer une paire de clés, une clé publique et une clé privée. La clé publique est utilisée
pour chiffrer les données et est partagée publiquement avec vos correspondants, tandis
que la clé privée est utilisée pour déchiffrer les données et est conservée secrètement.
Chiffrement des données : Pour chiffrer les données, un utilisateur utilise la clé publique
d'un destinataire pour chiffrer les données avant de les envoyer. Seul le destinataire

12
possédant la clé privée correspondante pourra déchiffrer les données et les lire.
Signature numérique : PGP permet également de signer numériquement les messages
pour garantir l'authenticité de l'expéditeur. L'expéditeur utilise sa propre clé privée.
III.2. Protocole PGP sous Kileopatra
Kileopatra est un logiciel de chiffrement et de déchiffrement de messages et de fichiers
utilisant le chiffrement à clé publique et le chiffrement à clé privée. Le processus pour chiffre et de
déchiffre d’un message :
1. Ouvrez Kileopatra et créez une nouvelle paire de clés en sélectionnant l'option "Nouvelle
paire de clés" dans le menu "Clés".
2. Enregistrez votre clé publique en sélectionnant l'option "Export" et en choisissant un
emplacement pour enregistrer le fichier.

3. C
o
p
i
e
Figure 4:Générer une clé paire de clés PGP
z
Figure 5:Générer une clé paire de clés PGP
le texte que vous souhaitez chiffrer et collez-le dans un éditeur de texte.
4. Cliquez sur l'icône de chiffrement dans la barre d'outils de Kileopatra, puis sélectionnez
votre clé publique dans la liste déroulante.
5. Cliquez sur "OK" pour chiffrer le texte.

13
Figure 6:Chifrement de text

14
Chapitre 2 : Développement des applications sous python

I. Python
Python est un langage de programmation de haut niveau, facile à apprendre, avec une syntaxe
simple et lisible, utilisé pour un large éventail de projets tels que le développement web, l'analyse de
données, l'IA, avec un grand nombre de bibliothèques et Framework disponibles, soutenu par une
communauté active avec de nombreuses ressources pour l'apprentissage et la résolution des
problèmes.

I.1. Installation de Python

L'installation de paquets Python peut être effectuée en utilisant un gestionnaire de paquets tel
que pip, qui est inclus avec Python. Pour installer un paquet en utilisant pip, vous pouvez utiliser la
commande pip install nom_du_paquet. Par exemple, pour installer le paquet NumPy, vous utiliseriez
la commande pip install numpy. L'une des meilleures façons de sécuriser votre installation de paquet
et d'éviter les paquets malveillants externes consiste à utiliser un gestionnaire de paquet qui vérifie
les signatures de paquets. L'un des gestionnaires de paquet qui peut le faire s'appelle pipenv. Pipenv
est un gestionnaire de paquet qui s'intègre à pip et vous permet de gérer vos paquets dans un
environnement virtuel. Il prend également en charge la vérification des signatures de paquets.

Une autre façon de sécuriser votre installation de paquet est d'utiliser un environnement virtuel.
Les environnements virtuels vous permettent de créer des environnements isolés pour vos projets
Python, où vous pouvez installer des paquets sans affecter le reste de votre système. Virtualenv est
un outil populaire pour créer des environnements virtuels.

I.2. Environnements du travail sur Python

En ce qui concerne l'IDE, vous pouvez utiliser n'importe quel IDE qui prend en charge le
développement Python. Certains des IDEs les plus populaires pour le développement Python
incluent PyCharm, Visual Studio Code et IDLE. Ces IDEs incluent souvent des fonctionnalités telles
que la coloration syntaxique, l'achèvement de code et les outils de débogage pour faciliter le
développement.

15
II. Types des applications
II.1. Applications Natives

Les applications natives sont conçues pour un système d'exploitation spécifique, soit iOS, soit
Android. Les applications hybrides, cependant, sont conçues pour fonctionner sur n'importe quel
système d'exploitation et partagent la même base de code. Les application mobile Native vous
permettent également d'interagir avec l'API et le matériel interne d'un appareil, permettant à
l'application d'accéder à des fonctionnalités telles que :
Appareils photo ;
Listes de contacts d’utilisateurs ;
Le microphone de l'appareil ;
Suivi de l'emplacement de l'appareil.
Avantage :
Performances supérieures ;
Fonctionnalités spécifiques à la plate-forme ; 
Interface utilisateur supérieure ;
Visibilité de l'App Store.
II.2. Applications Hydriodiques :

Les applications mobiles hybrides combinent des éléments d'applications Web et d'applications


natives. Les applications mobiles hybrides peuvent être installées sur l'appareil et exécutées via un
navigateur Web, de sorte qu'elles se situent quelque part entre les applications natives et les
applications Web. Ces applications sont construites en deux parties :
Le code principal.
Le Shell natif (qui lui permet d'être téléchargeable sur les app stores).
Avantage :

Productivité des développeurs


Moins chères mais plus faciles à découvrir :
Accès API interne 
II.3. Application web 

Une application Web est à peu près un site Web qui ressemble plutôt à une application mobile.
À la différence des applications natives, les applications Web peuvent s'exécuter sur différents

16
navigateurs Web, comme Chrome ou Safari, et sont écrites en JavaScript et/ou HTML5. Les
applications Web ont une barrière à l'entrée plus faible que les applications natives en raison de leur
simplicité relative et ont donc tendance à être moins chères et plus faciles à développer. Le
compromis est que les applications Web ont également tendance à être plus lentes et ont des
conceptions moins intuitives pour leur interface utilisateur.

En plus de ces inconvénients, les applications Web ne peuvent pas être présentées dans les
magasins d'applications pour Apple où Android, de sorte que votre application aurait moins de
visibilité et serait plus difficile à découvrir de manière organique. Mais ce que les applications Web
manquent en dé-couvrabilité, elles le compensent en accessibilité.
Avantage :
Maintenance facile :
Accessibilité facile 
Moins chères
Pas d'approbation du marché des applications 

II.4. Différences entre les types applications

Les principales différences entre les applications mobiles et les applications web :
En termes d'exécution des paquets : les applications mobiles nécessiteront
généralement des paquets spécifiques qui sont adaptés à la plate-forme sur laquelle elles
s'exécutent, tandis que les applications web nécessiteront des paquets qui sont
indépendants de la plate-forme
En termes de sécurité : les applications mobiles peuvent profiter des fonctionnalités de
sécurité fournies par l'appareil, telles que l'authentification biométrique et le stockage
sécurisé. Cependant, les applications mobiles peuvent également être vulnérables aux
menaces de sécurité telles que la rétro-ingénierie et les logiciels malveillants. Les
applications web, en revanche, sont généralement plus vulnérables aux attaques basées
sur le réseau, telles que l'injection SQL et la faille d'injection de script. Cependant, les
applications web peuvent également être sécurisées par une utilisation appropriée des
mécanismes d'encryptions et d'authentification.

17
Chapitre 3 : Analyse et Conception
I. Analyse fonctionnelle

Il s'agit d'une étape déterminante dans la réalisation d'une application donnée. La mise en place
d’un nouvel outil logiciel dépend beaucoup de cette phase, elle nous permet d'éviter le
développement d'une application non satisfaisante. Dans ce chapitre, nous allons présenter une étude
de l’existant. Ensuite, nous allons créer la problématique basée sur l’étape précédente et enfin nous
terminons ce chapitre par la solution proposée.
I.1. Etude d’existence

En tant que des étudiants nous avons personnellement connu des difficultés pour trouver un
taxi disponible rapidement dans les petites villes. Cette expérience nous a motivés à créer une
solution innovante qui permettrait à chacun de réserver un taxi en quelques clics. Notre application
mobile vise à aider nos clients à trouver rapidement un taxi pour se déplacer d'un point à un autre.
L'application se destine à tous les utilisateurs qui cherchent une solution de transport simple et
efficace.

I.2. Critique d’existant

Il y a plusieurs difficultés que les gens peuvent rencontrer lorsqu'ils cherchent un taxi, y
compris :
Disponibilité : Dans certaines régions, il ne peut pas y avoir beaucoup de taxis
disponibles, ce qui rend difficile d’en trouver un rapidement.
Emplacement : Dans certaines zones, il peut être difficile de trouver un taxi dans la rue.
Cela peut être particulièrement difficile dans les zones avec un fort trafic ou dans les
zones rurales où il y a moins de taxis.
Temps d’attente : Même si un taxi est disponible, le temps d'attente pour qu'il arrive
peut-être long, surtout pendant les heures de pointe ou dans les zones occupées.
I.3. Solution proposée

Suite aux inconvénients précédemment cités, nous proposons la mise en place d'une application
mobile qui fait référence à une version électronique / numérique d'un service de taxi traditionnel. Les
principales raisons d'utiliser une telle application serait la commodité, l'accessibilité et l'efficacité
économique :

18
Accessibilité : eTaxi permet aux utilisateurs de réserver un trajet et de suivre la
localisation du conducteur sur la carte, offrant un moyen facile de trouver le conducteur
le plus proche disponible.
Sécurité : eTaxi permet aux utilisateurs de voir le nom, la photo et les détails du véhicule
du conducteur avant le début du trajet. Cela peut fournir un sentiment de sécurité pour les
passagers.
Suivi en temps réel : eTaxi permet aux utilisateurs de suivre la localisation de leur
conducteur et l'heure d'arrivée estimée, offrant une meilleure expérience utilisateur.
I.4. Taches réalisées dans l’application
I.4.1. Administrateur
Certaines des choses qu'un administrateur dans une application eTaxi peut faire
comprennent :
Gérer les conducteurs : Un administrateur peut ajouter, éditer ou supprimer des profils
de conducteurs, approuver ou rejeter les demandes de conducteurs ;
Gérer les passagers : Un administrateur peut afficher les profils des passagers, suivre
l'historique des passagers et émettre des remboursements ou des crédits ;
Gestion des notifications : Un administrateur peut visionner les notifications, modifier
ou supprimer des notifications ;
I.4.2. Utilisateurs
Certaines des choses qu’un utilisateur dans une application eTaxi peut faire comprennent :
L’utilisateur peut visionner tous les conducteurs ;
L’utilisateur peut faire une recherche sur un taxi ;
L’utilisateur peut visionner tous ses conversations ;
L’utilisateur peut visionner tous ses historiques de notifications ;
I.4.3. Conducteur
Certaines des choses qu’un Conducteur dans une application eTaxi peut faire comprennent :
Un conducteur de taxi peut gérer les informations relatives aux véhicules et aux
conducteurs ;
Un conducteur de taxi peut Suivi GPS pour localiser les passagers à proximité ;
Un conducteur de taxi peut mettre à jour en temps réel sur les demandes de trajet ;
Un conducteur de taxi peut avoir la possibilité d'accepter ou de refuser les demandes de

19
trajet ;
Un conducteur de taxi peut communiquer avec les passagers ;

II. Conception

UML, c’est l’acronyme anglais pour « Unified Modeling Language ». On le traduit par «
Langage de modélisation unifié ». UML est né de la fusion des trois méthodes qui ont influencé la
modélisation objet au mi- lieu des années 90 : OMT, Booch et OOSE.Il est proposé par : Grady
Booch, James Rumbaugh et Ivar Jacobson.UML c’est un langage de modélisation qui permet de
représenter graphiquement les besoins des utilisateurs. On utilise pour cela des diagrammes.UML est
une démarche qui se base sur une approche objet.

II.1. Diagrammes de class 

Un diagramme de classes UML décrit les structures d'objets et d'informations utilisées, à la fois
en interne et en communication avec ses utilisateurs. Il décrit les informations sans faire référence à
une implémentation particulière. Ses classes et relations peuvent être implémentées nombreuses
manières, comme les tables de bases de données, les nœuds XMLencore les compositions d'objets
logiciels.

20
Figure 7:Diagram de class global

II.2. Diagram de cas d’utilisation

Les rôles des diagrammes de cas d’utilisation sont de recueillir, d’analyser et d’organiser les
besoins, ainsi que de recenser les grandes fonctionnalités d’un système. Il s’agit donc de la première
étape UML pour la conception d’un système. Un diagramme de cas d’utilisation capture le
comportement d’un système, d’un sous-système, d’une classe ou d’un composant tel qu’un
utilisateur extérieur le voit.
Cas d’utilisation d’acteur administrateur

Figure 8:Diagram de Cas d’utilisation cas Administrateur

Cas d’utilisation d’acteur utilisateur :

21
Figure 9:Diagram Cas d’utilisation d’acteur utilisateur
Cas d’utilisation d’acteur Conducteur

Figure 10:Digram de Cas d’utilisation d’acteur Conducteur

22
II.1. Diagrammes de séquence
Les diagrammes de séquence sont une solution populaire de modélisation dynamique en
langage UML, car ils se concentrent plus précisément sur les lignes de vie, les processus et les objets
qui vivent simultanément, et les messages qu'ils échangent entre eux pour exercer une fonction avant
la fin de la ligne de vie.

Figure 11: Diagramme de séquence de cas d’utilisation d’un admin

23
Figure 12:Diagramme de séquence d’un Client

24
Figure 13:Diagramme de séquence d’un conducteur de taxi

II.2. Conclusion

A travers ce chapitre, on a présenté la conception proposée pour l’application. On a fourni,


dans un premier lieu, la conception globale. Par la suite, on a détaillé la conception à travers les
diagrammes UML qui nous ont permis de dégager la vue statique ainsi que la vue dynamique de
l’application. Afin de mieux concrétiser cette conception, on va présenter dans le chapitre suivant la
description et les différentes interfaces réalisées par notre application.

25
Chapitre 3 : Réalisation
Ce chapitre contient le dernier volet de ce rapport. Elle a pour objectif d’exposer le travail
achevé. Dans un premier temps, nous présentons les différents outils de développement utilisés.
Dans un second temps, nous illustrons la réalisation de notre travail par des imprimes d’écran des
interfaces les plus importantes de notre application
I. Les outils utilisés
I.1. Les enivrements de travail

 Android Studio est un environnement de développement intégré (IDE)


pour le développement d'applications Android développé par Google. Il
fournit des outils pour la conception, le développement, le débogage et la
publication d'applications Android en utilisant le langage de
programmation Java ou Kotlin.

 Visual Studio Code (VS Code) est un éditeur de code source et un


environnement de développement intégré (IDE) développé par
Microsoft. Il est open-source, multiplateforme et permet de développer
des applications en utilisant plusieurs langages de programmation, avec
des fonctionnalités telles que la coloration syntaxique, l'auto-complétions
et le débogage intégré.

I.2. Les langages de programmation

Python est un langage de programmation populaire, open-source, multi-


plateforme et orienté objet. Il est souvent utilisé pour le développement
web, l'analyse de données, l'apprentissage automatique et l'IA. Il est connu
pour sa syntaxe claire et simple, sa facilité d'utilisation et sa grande
communauté de développeurs. Il est utilisé dans de nombreux domaines,
notamment la finance, la recherche scientifique, la cybersécurité et les jeux
vidéo.

26
Dart est un langage de programmation développé par Google pour créer des applica web,
mobiles et côté serveur. I Il est utilisé pour développer des applications Flutter pour les
plateformes mobiles.

 Firebase est une plateforme de développement mobile et web


développée par Google. Il fournit un ensemble d'outils pour les
développeurs pour créer des applications mobiles et web, stocker et
synchroniser les données en temps réel, authentifier les utilisateurs, et
analyser les données d'utilisation.
           

 Flutter est un framework de développement d'application mobile


open-source crée par Google, qui utilise le langage Dart et repose sur la
programmation réactive. Il permet de créer des applications pour
mobile, web et desktop à partir d'un seul code source, avec des widgets
personnalisables et des outils pour construire des interfaces utilisateur
belles et réactives. Il offre également une fonction de rechargement
rapide pour visualiser les changements en temps réel. Il est facile à
apprendre et efficace pour les petits et les grands projets.
                                                                               

 Django est un framework de développement web open-source qui


peut être  utilisé comme backend pour les applications mobiles en
utilisant des API pour communiquer avec l'application mobile. Il
permet de gérer les données, les utilisateurs et les autorisations pour
l'application mobile

SQLite est un système de base de données ou une bibliothèque


proposant un moteur de base de donnes relationnelles

Google Maps API est une interface de programmation fournie par


Google. Elle permet aux développeurs d'intégrer les fonctionnalités de
Google Maps dans leurs applications web ou mobiles. Cela offre des
fonctionnalités de géolocalisation avancées et de localisation de points
d'intérêt pour les entreprises ou les utilisateurs grand public.SQLite est
un système de base de données ou une bibliothèque proposant un
moteur de base de données relationnelles.

27
II.   Les interfaces réalisées dans notre application eTaxi   
Notre application mobile eTaxi utilise une combinaison de couleurs bleues et blanches pour
créer un design propre et élégant qui est facile à utiliser et agréable à regarder. Les couleurs bleues
sont souvent associées à la confiance, la sécurité et la fiabilité, ce qui peut aider à renforcer la
confiance des utilisateurs dans l'application et à améliorer leur expérience de réservation de taxi.

Les pages d’accueil


Les interfaces d'accueil sont optimisées pour offrir une expérience simple et intuitive aux
utilisateurs, grâce à des icônes et des images claires qui permettent une compréhension rapide des
fonctionnalités de l'application. Les boutons et les menus sont conçus pour être facilement
accessibles et pratiques pour les utilisateurs, afin de faciliter leur utilisation.

Figure14:Interface d’accueil 1

28
Figure16:Interface d’accueil 1 Figure 15:Interface d’accueil

29
Cette interface permet de connecter à
l’application
Signup : accéder à l’interface
d’inscription
Login : accéder au compte

Figure 17:Interface d’accueil 4

Cette interface pour se connecter


directement à notre application

Figure 18:interface de login

30
Cette interface permet à l’utilisateur
de restaurer son mot de passe

Figure 19:page de réinitialisation de Mot de passe

Cet écran permet d’utilisateur de


choisir son profil soit client ou
Conducteur de taxi

Figure 20:choix de profil

31
Cette page pour l’inscription d’un utilisateur
donné ;

Figure 21:Page inscription d'utilisateur

Cette page pour l’insertion des informations de véhicule


dans le cas où l’utilisateur a choisi le profil d’un
conducteur ;

Figure 22:Pageinsertion des informations de taxi

32
Cette interface permet d’afficher l’emplacement
actuel de l’utilisateur ;

Figure 23:Page d’affichage de Google maps

Cette interface permet de chercher ou


trouver une place en utilisant des options de
cartographie ;

Figure 24:Page de recherche de localisation

33
Cet espace interactif permet à nos clients et à nos
chauffeurs de communiquer entre eux

Figure 25:Page de chat entre les utilisateurs et les conducteur

Ce tiroir proposant plusieurs options pour


nos utilisateurs

Cette interface permet de partager


Figure 26:Page d’espace personnelle
notre application avec d’autres futurs
utilisateurs
34
Conclusion

En conclusion, le projet de fin d'études pour l'application eTaxi a été un travail


exigeant et stimulant, mais également très enrichissant. Nous avons réussi à concevoir
une application fonctionnelle et conviviale pour les utilisateurs ainsi que pour les
chauffeurs de taxi.

Grâce à ce projet, nous avons acquis des compétences en développement


d'applications mobiles, en programmation, en conception d'interface utilisateur et en
gestion de projet. Nous avons également appris à travailler en équipe et à relever des
défis techniques.

Notre application eTaxi offre une solution innovante pour les utilisateurs
cherchant à se déplacer facilement et rapidement, tout en offrant aux chauffeurs de
taxi une plateforme leur permettant de trouver des courses plus facilement. Nous
espérons que cette application pourra être utile pour de nombreux utilisateurs et
contribuera à améliorer l'efficacité et la commodité des services de transport.

En somme, nous sommes fiers du travail accompli et nous espérons que notre
application contribuera à répondre aux besoins des utilisateurs et à améliorer
l'expérience de transport en ville.

35
36

Vous aimerez peut-être aussi