Vous êtes sur la page 1sur 13

Introduction générale

Depuis son apparition et grâce au progrès de la recherche scientifique et


technologique, l’informatique n’a cessé d'évoluer et de s’adapter aux besoins de
l’homme, sur tout l’internet. Néanmoins, elle est devenue la base de toute fonction
commerciale, éducationnelle, sociale.
. .Il n’a pas de doute ! La manière de faire de la publicité a radicalement changé au
cours des années grâce à l’internet qui offre aux entreprises de nouvelles
possibilités « online » pour atteindre leurs clients.

En effet, une application web et mobile est une nouvelle tendance qui a émergé et se
propagé grâce au développement des technologies Internet et présentent aux
internautes des services qui assurent la continuité entre l’entreprise et son
environnement de manière simple et interactive d’o`u vient le besoin de créer une
application web et mobile qui joue le rôle d'intermédiaire entre la société et les clients
qui peuvent envoyer ses produits.

Le projet de fin d’étude est une occasion pour mettre en œuvre les prés acquis
théoriques dans un cadre pratique qui vise la réalisation d’une application
généralement informatique.

Dans ce cadre, notre projet intitulé se situe « MISE EN PLACE D’UNE


APPLICATION WEB ET MOBILE E-FOOD ». Le présent rapport, qui expose ce
travail, est composé de quatre chapitres structurés comme suit :

• Dans le premier chapitre nous allons mettre le projet dans son cadre général. En effet
nous présenterons les notions de base ainsi nous aborderons quelques projets existants
.

• Le deuxième chapitre sera consacré à la spécification des besoins et l'étude préalable.

• Le troisième chapitre sera entièrement dédié à la conception du projet.

• Le dernier chapitre a pour objectif de présenter l'implémentation de l’application,


en décrivant l’environnement matériel et logiciel, ensuite un aperçu sur les interfaces
réalisées sera exprimé.

Présentation de l’entreprise «UTEEK DIGITAL AGENCY»


Chapitre 1
Notions de base et l'étude de
l’existant
I.1 Introduction
Ce premier chapitre est une introduction au concept du projet, avant de commencer le
développement de l’application, il est indispensable de bien analyser les
environnements existants afin d’identifier les principales novations par rapport au
système actuel.

• Etude de l’existant
L'étude de l'existant est le point de départ de chaque projet, elle nous permet d'avoir
une idée claire et précise sur ce qui existe déjà et de déterminer ses points faibles afin
d’analyser le projet en cours et proposer des solutions .
• Description de l'existant
De nos jours, l'industrie des services alimentaires a radicalement changé avec l’ère
numérique.
Avec la popularité croissante des commandes en ligne, les habitudes changent et
chaque jour, moins de personnes passent leurs commandes par téléphone ou en
personne. En effet, de plus en plus de gens passent leurs commandes en ligne. Les
clients préfèrent commander à leurs conditions et la commande en ligne est un moyen
pratique pour eux d’obtenir rapidement leur plat préféré.
Dans cette partie nous allons aborder quelques projets existant dans ce domaine la plus
recommandé à l'échelle nationale “Jumia Food” et à l’échelle internationale on a choisi
deux autres projets “Menutium” et “Glovo”
.

• Jumia Food

Le premier exemple c’est le projet Jumia Food c’est une société tunisienne spécialisée
Transports Alimentaires, vous pouvez commander les repas en ligne en Tunisie.

La figure suivante représente la page d’accueil de site Jumia Food.

Figure 1.1 – Page d’accueil de Jumia Food


https://food.jumia.com.tn

• Menu-tium

Le projet Menu-Tium est une application de livraison de repas tunisienne qui met
en relation les gens avec les meilleurs de leurs villes.

La Figure 1.3 indique la page d’accueil de Menu-tium


• Glovo

Figure 1.3 – Page d’accueil de MenuTium https://menutium.com/home

La startup espagnole de livraison à domicile Glovo prépare son lancement en


Tunisie. La plate-forme espagnole de livraison à la demande Glovo a annoncé
aujourd'hui son intention de doubler ses investissements en Afrique et d'étendre ses
opérations sur le continent.
La Figure 1.3 indique la page d’accueil de Glovo

I.2 Etude comparative de méthodologie de gestion du projet

Projets existants (+) Points forts (-) Points faibles

+Livraison à domicile
+Une bonne résolution des
images
Jumia Food +Présence de rating -Certains articles restent dans
+ La commande des produits une rupture de stock pendant
est très facile une longue durée. Mal
+Description détaillée et des utilisation partie utilisateurs
spécifications qui
correspondent au bien
recherché.

Menu-Tium +Description détaillé des repas -Annulation de commande


+Les photos sont de bonne non effectuée.
qualité. -Le livreur n’a pas une
+Présence de rating application mobile pour
connaître l’endroit exact.

Glovo +Trouvez tout ce qu'il vous faut: • Pas de notes ou


restaurants , supermarchés, commentaires des autres
magasins, pharmacies, clients
fleuristes... • ne couvre pas tous les
+L’application offre une zones de Tunisie partie
interface claire et efficace commerciale

Tableau 1.1 : Etude comparative

• Présentation du Projet
Notre projet est développé sur deux plateformes différentes « web et mobile
». D’une côté, la partie web qui permet à chaque client de commander sa
propre repas en choisissant un produit à partir d’une liste de produits.
-Possibilité de rajouter / retirer plusieurs éléments et modifier leurs quantités.
-Possibilité d’appliquer des codes promos.
-Plusieurs modes de paiement : espèces, chèque, paiement en ligne, paiement à la
livraison.
-Système de rating (sur échelle de 5 étoiles)
-Menu divisé par spécialité La possibilité de composer son propre plat (pour quelques
restaurants)
-Le délai de livraison est estimé pour chaque restaurant
-Un descriptif et la localisation de chaque restaurant

• Solution proposée
L’idée de ce projet est de réaliser une application web et mobile qui satisfait les
besoins du client et lui fait gagner du temps. L'expérience de commande pourrait être
plus facile pour les clients, et cela pourrait aider à réduire les files d'attente et à
améliorer l'efficacité au restaurant lui-même Les utilisateurs peuvent choisir et payer
leur repas à l'avance, ce qui
leur permet de venir le chercher sans attente au restaurant.
Donc Notre projet est développé sur deux plateformes différentes « web et mobile ». D’une
côté, la partie web qui permet à chaque client de commander sa propre repas en choisissant
un produit à partir d’une liste de produits. -Possibilité de rajouter / retirer plusieurs éléments et
modifier leurs quantités. -Possibilité d’appliquer des codes promos. -Plusieurs modes de
paiement : espèces, paiement en ligne, paiement à la livraison. -Système de rating (sur
échelle de 5 étoiles) -Menu divisé par spécialité La possibilité de composer son propre plat
(pour quelques restaurants) -Le délai de livraison est estimé pour chaque restaurant -Un
descriptif et la localisation de chaque restaurant

Les avantages d'une application mobile pour les restaurants et clients


• Proposer la pré-commande pour de la livraison ou de la vente à emporter
• Fidélisez les clients pour restaurants
• Améliorer les images
• Communiquer directement avec les clients et les restaurants
• Varier les contenus

Les modules Les fonctions Jumia Food Glovo Menu- E-FOOD


tium
Gestion client -Inscription
-Login
-Consulter profil
-Modifier profil
-Supprimer compte
Consulter restaurant -Lister les restaurants à
proximité
-Détails ..
-Recherche par nom
(resto ou produit)
-

Gestion commande -ajouter commande


-supprimer
-consulter mes commandes
conxion register avec email register avec
register fb num
telephone
gestion adresse -ajouter adress
- modifier adress
- supprimer address
- consulter adresse
Gestion des points de Scanner ticket de restaurant
fidelite inviter des amis

consulter les commande


des autre clients

forum -ajouter un commantaire


-modifier un commentaire
-supprimer commantaire
consulter
payment en ligne
rating

Notification Consulter les notification


Supprimer les notification

• Méthodologie adopter :
Le génie logiciel résout les problèmes existants au cours des années 70. Ces Problèmes
proviennent à cause de l’inexistence des méthodologies ou des normes à suivre, ce qui
résultait des systèmes mal structurés et non fiables. Il tente à l’aide des méthodes,
techniques, des outils et des normes de corriger ces problèmes.
De ce fait, il permet de formaliser notre expérience du développement logiciel et offre
la possibilité de suivre une méthodologie de développement logiciel pour assurer une
bonne production et une meilleure qualité de notre logiciel.

Au cours du déroulement de notre projet, nous avons suivi une méthodologie de


gestion de projet Scrum pour la planification de notre projet. Dans cette partie, nous
allons expliquer l’utilité de Scrum et ses caractéristiques.
Pour atteindre l’objectif de ce projet, nous avons besoin d’un langage de
modélisation graphique et textuel afin de bien analyser, décrire et spécifier des
besoins et communiquer des points de vue. Donc nous avons choisi UML comme
langage de modélisation.
• Les bases de Scrum
Scrum est issu des travaux de deux des signataires du Manifeste Agile, Ken
Schwaber et Jeff Sutherland, au début des années 1990.
Le terme Scrum est emprunté au rugby et signifie mêlée.
Ce processus agile s’articule en effet autour d’une équipe soudée, qui cherche à
atteindre un but, comme c’est le cas en rugby pour avancer avec le ballon pendant
une mêlée.
Le principe de base de Scrum est de focaliser l’équipe de façon itérative sur un
ensemble de fonctionnalités à réaliser, dans des itérations de 30 jours maximum,
appelées Sprints.
Chaque Sprint possède un but à atteindre, défini par le directeur de produit
(Product Owner), à partir duquel sont choisies les fonctionnalités à implémenter dans
ce Sprint. Un Sprint aboutit toujours sur la livraison d’un produit partiel fonctionnel.
Pendant ce temps, le Scrum master a la charge de réduire au maximum les
perturbations extérieures et de résoudre les problèmes non techniques de l’équipe.
Un principe fort en Scrum est la participation active du client pour définir les
priorités dans les fonctionnalités du logiciel, et choisir lesquelles seront réalisées
Dans chaque Sprint. Il peut à tout moment ajouter ou modifier la liste des
fonctionnalités a Sprint. Réaliser, mais jamais ce qui est en cours de réalisation
pendant un Sprint.

La figure 1.3 d écrit une vue globale de Scrum, et montre son cycle de vie.

Figure 1.3 – Le déroulement d’un processus Scrum

• Pourquoi Scrum ?
Scrum est une méthode agile dédiée à la « gestion de projet ». Cette méthode de
gestion, ou plutôt ce Framework de management de projet, a pour objectif d’améliorer
la productivité de son équipe. De ce fait, Scrum est le cadre de travail qui convient et
s’adapte aussi au projet Qu’on souhaite le réaliser, nous optons pour ce processus pour
différentes raisons qui sont :
• Une méthode livre généralement un système fonctionnel.
• La meilleure méthode de faire échanger l’information c’est le contact
direct entre collaborateurs.
• Entièrement enveloppée et testée pour de courtes itérations.
• L’implication du Product owner (client) pendant le projet.
• Basée sur les mêlées quotidiennes pour rythmer et coordonner les activités.
• L’esprit d'équipe mis en avant, chaque membre de l´équipe de
réalisation a un aperçu sur la progression.
• Encourager l’orientation, la rigueur et l’énergie dans les équipes.
• Simplicité du processus.

• Les éléments du Scrum :


Pour employer Scrum sur notre projet, il faut implémenter trois rôles, chacun ayant
une fonction bien précise qui sont les suivants :
• Le Product Owner : Personne représentant le client et l’utilisateur, Il
participe à l'élaboration des besoins, priorise les fonctionnalités voulues
et valide les fonctionnalités développées.
• Le Scrum Master : Le garant du processus agile, il n’est pas un chef de
projet mais un leveur d’obstacles. Il guide l’équipe pour travailler dans de
bonnes conditions pendant les sprints.
L’équipe de développement : Multidisciplinaire (architectes, développeurs,
testeurs...). Les membres de cette équipe travaillent dans une seule pièce et
produisent finalement un livrable à la fin de chaque sprint.
Dans le cadre de notre projet, le Scrum Master figuré par Mr Hamza Titey et Anas
Jouini, le Product Owner représenté par Mr Client Uteek et l’équipe formée par Olfa
Habli et Berrichi Rimeh .
La figure 1.4 représente le découpage de ses rôles.

• Formalisme adopté
Après le choix de la méthodologie, nous avons besoins d’un langage de modélisation
unifiée pour la modélisation de notre projet. Pour concevoir notre système, nous avons
choisi UML (Unified Modeling Language) comme un langage de modélisation.
C’est un langage de modélisation graphique orienté. Il couvre l’aspect statique et
dynamique d’un système selon ses différents diagrammes.
Pour notre projet, nous présenterons quelques diagrammes que nous avons jugés
utiles pour comprendre le projet à savoir :

• Le diagramme des cas d’utilisation : il permet de structurer les besoins des


utilisateurs et les objectifs correspondants de notre système en identifiant ses
utilisateurs et leurs interactions.

• Le diagramme de séquence d’objet : il permet une représentation


temporelle des objets et de leurs interactions.

• Le diagramme de classes de conception : il permet de présenter les


classes et les interfaces de notre système ainsi que les différentes relations entre
celles-ci.

• Le diagramme d’activité : il fournit une vue du comportement d'un système en


décrivant la séquence d'actions d'un processus. Les diagrammes d'activité sont
similaires aux organigrammes de traitement de l'information, car ils montrent les flux
entre les actions dans une activité. Les diagrammes d'activité peuvent, cependant,
aussi montrer les flux parallèles simultanés et les flux de remplacement.

Conclusion
Dans ce chapitre, nous avons pu insérer notre projet dans son contexte en présentant la
solution adoptée pour résoudre les problèmes qui répondent à nos besoins et on
conclut par la méthodologie adoptée pour notre projet. Dans le chapitre suivant, nous
allons présenter le Sprint 0 qui va couvrir l’analyse des besoins.

Chapitre 2
Sprint 0 : Spécification des
besoins
• Introduction
L’analyse est une étape très importante au cours du cycle de vie d’un projet
informatique. Dans ce chapitre nous allons tout d'abord commencer par présenter nos
acteurs et puis nous allons détailler les besoins fonctionnels et non fonctionnels liés à
notre application.

• Identification des acteurs


Un acteur est un utilisateur type qui a toujours le même comportement vis-à-vis d’un
cas d’utilisation. Ainsi les utilisateurs d’un système appartiennent à une ou plusieurs
classes d’acteurs selon les rôles qu’ils tiennent par rapport au système. Alors, il est très
important de présenter le comportement des acteurs de l’application afin de bien
préciser les différents scénarios et interactions avec l’application : En fait, les acteurs
en interaction avec notre système sont :

• La société (SuperAdmin): Description : L’administrateur peut se


connecter. Après l’authentification, il aura l’accès à son espace admin où il peut
gérer toutes les fonctionnalités de cette application.
• Admin : Description : L’administrateur peut se connecter. Après
l’authentification, il aura l’accès à son espace admin où il peut gérer toutes les
fonctionnalités de cette application.

• Client : Description : Chaque utilisateur de l'application doit avoir un compte


pour qu’il puisse accéder à l'application. Après l’authentification, il aura l’accès à son
espace client où il peut profiter de tous les services offerts.

• Manager Restaurant : Description : Chaque vendeur doit avoir un compte


pour qu’il puisse accéder à l'application. Après l’authentification, il aura l’accès à son
espace vendeur où il peut profiter de tous les services offerts.

• Livreur : Description : Chaque livreur doit avoir un compte pour qu’il puisse
accéder à l'application. Après l’authentification, il aura l’accès à son espace livreur où
il peut profiter de tous les services offerts.

• Spécification des besoins


• Besoins fonctionnels
Il s'agit des fonctionnalités du système. Ce sont les besoins spécifiques d'un
comportement d'entrée / sortie du Système. Ils définissent le noyau du logiciel Notre
application doit satisfaire les besoins fonctionnels suivant :

Société (SuperAdmin) peut :


Gérer les fournisseurs : ajouter, modifier, gérer les fournisseurs

Gérer les code promotionnels : attribuez les meilleurs offres et codes


promotionnels aux utilisateurs
Gérer les FAQ(frequently asked question) : le super admin peut ajouter,
modifier, supprimer un questionnaire.

Gérer les rapports : gérer les rapports des utilisateur, commandes, fournisseurs et
de livreur il peut aussi gérer le rapport de transaction et dépôt de portefeuille.
Gérer les détails bancaires des fournisseurs : ajouter et gérer les
coordonnées Bancaires

Gérer les commentaires et le support : afficher les commentaires des utilisateurs


Gérer les langues : ajouter, supprimer modifier des langues
Gérer les bannières : ajouter,modifier,supprimer des bannières dans l’application
Gérer les remboursement : gestion des remboursement
Gérer les paramètres : configurez le panneau à jour avec les paramètres généraux

Consulter statistiques : D’après les statistiques le super admin peut consulter les
commandes par leur état , Croissance Et Progrès faite par mois et par année et articles
Les plus vendus qui contient le nom des éléments, nom du fournisseur, et prix d’un
article.

Admin :
Se connecter : pour avoir un accès à l'application, l'administrateur doit passer par
une authentification.
Paramétrer le profil: modifier les informations de son compte
Gérer les utilisateurs : Consulter, ajouter, modifier ou supprimer un utilisateur
Gérer les livreurs: Ajouter, modifier, supprimer et affecter un livreur
Consulter la page de commande : consulter et supprimer une commande
Gérer les financement des fournisseurs: gestion des finances et des règlements.
Gérer les taxes :le super admin peut ajouter,modifier,supprimer une taxe qui est
définie par un nom fiscal basic, regular ou premium.
Gérer les remises fournisseurs : Ajouter et gérer des remises.

Reçoit l'ordre : accepter, refuser

L’manager Restaurant (vendeur) peut:


S’inscrire : pour avoir un compte il doit suivre toutes les étapes d'inscription.
Se connecter : pour avoir un accès à l'application, le livreur doit passer par une
authentification.
Paramétrer le profil: modifier les informations de son compte
Gérer l'état d’un Ordre : En cours, livrée, annulée , complète
Gérer les Plats: Ajouter,modifier,supprimer un menu..
Gérer les rapports : gérer les rapports des utilisateur et commandes .
Gérer les Créneaux Horaires de livraison : Ajouter et modifier des plages
horaires pour la livraison
Gérer les Créneaux Horaires de vente : Ajouter et modifier des Créneaux
horaires de Vente
Reçoit l'ordre : accepter, refuser

Le Client peut :
Se connecter : pour avoir un accès à l'application, le client doit passer par une
authentification.

Paramétrer le profil: modifier les informations de son


compte.

Gérer d’adresse : ajouter, modifier, supprimer les


adresse

Consulter liste : recherche par nom


Gérer les favoris : consulter, ajouter et supprimer les favoris

Consulter les codes promotionnels : appliquer les codes promotionnels


Gérer les paniers : ajouter ou supprimer les commandes
Gérer les commandes : il peut commander ou annuler la commande
Gérer les portefeuilles : consulter les historiques et recherche par date
Gérer les avis : Le client peut consulter les avis des clients à propos d'un
restaurant et ajouter son avis.
Vérifier l’identifiant : il peut vérifier l’identifiant son email par sms et mail
Géolocalisation : identifier l’adresse avec api map .
Notes : donner les avis avec rating.
Consulter page d’accueil : lorsque le client se connecte il sera redirigé vers la
page d'accueil où il peut consulter les restaurants et faire une recherche, trouvez les
restaurants filtrés par ville ainsi qu’il peut accéder à Google Map pour visualiser les
restaurants.
Paiement en ligne : il peut payer ses commandes via son carte bancaire .
Notification : Le client reçoit des notifications des promotions et des nouveautés.

Le livreur peut :
S’inscrire : pour avoir un compte il doit suivre toutes les étapes d'inscription.
Se connecter : pour avoir un accès à l'application, le livreur doit passer par une
authentification.
Status : occupée, disponible, hors ligne.
Gérer le profil : modifier les informations de son compte
Gérer adresse : identifier son adresse par un ajout de son localisation
Gérer Consulter la liste des ordres : identifier le status (accepté ou refusé une
ordre ) d’un ordre justifier le refus
Gérer documents : ajouter son CIN et Permis
Consulter historique : l’ordre doit être complet ou bien refusé
Gérer l'état d’un Ordre : en cours, livrée, annulée, complète
Gérer son solde de trésorerie : consulter son trésorerie.
Consulter les statistiques : consulter les revenus .
Messagerie instantanée : Le livreur peut discuter avec super admin dans une
messagerie instantanée. (plus)

III. Besoins non-fonctionnels


Après avoir déterminé les besoins fonctionnels nous présenterons ci-dessous
l'ensemble les contraintes à respecter fournir un produit performant qui respecte les
exigences implicites de l’utilisateur et qui peut faire face à des risques de panne de
non fonctionnement.
Les exigences de notre application sont les suivantes :

L’ergonomie : l’application doit être cohérente de point de vue de l’ergonomie.


La qualité de l’ergonomie sera un facteur essentiel, étant donné l’utilisation intensive
qui sera faite de l’application. L’interface graphique de l’application doit être facile à
manipuler afin de garantir une navigation aisée et intuitive.

• Compatibilité : Notre application doit couvrir la plus large gamme possible de


systèmes d'exploitation Android, ce qui élargit le nombre d'utilisateurs en fonction
de la version Android.

• Maintenabilité : afin de permettre la maintenance et l’évolution de


l’application, il faut prendre en considération la généricité et la documentation du
code source.

• Evolutivité : Ce point est également lié au code car il doit permettre la


réutilisation et l’évolution en rendant cette application extensible pour lui offrir
d’autres fonctionnalités.

Diagramme du cas d’utilisation globale :

A-Raffinement du cas d’utilisation ‘’Gérer mes Commandes ’’ :

• Diagramme du cas d’utilisation :


Description textuelle : Passser Une Commande

Sommaire de passer une Commande


Titre Passer Une Commande
Objectif l'objectif principal de cas dèutilisation est de passer une commande
Acteurs Client
Description des enchainements
Précondition • Application installé et connecté a l internet
• client inscrit et connecté
• plat disponible dans l application
Post-condition l 'utilisateur sera rédigé vers l interface panier pour terminer l procces ou
bien ajouter autre plat
Scénario nominal
1-L'application atterrit sur l'interface des plats
2-le client choisir les plats avec ses ingrédients
3-verifier le nombre de plat
4-saisir un code promo valide
5-verifier le prix
6-le client clique sur "passer Commande"
7-le system verifier l'existance des données
8-le client choisir le mode de payment
9-le client clique sur "confirmer"
Scénario alternatif
1-L’utilisateur n’as pas choisie au minimum un ingrédient

2-. Le système renvoie un message d’erreur pour un code promo non valide
3-choix le mode de payment

• Diagramme de classe

Vous aimerez peut-être aussi