Rapport Finaal
Rapport Finaal
Rapport Finaal
/23
SalahEddine Kadiri
1
Dédicaces
A nos chers parents,
On dédie ce modeste travail et nos profondes gratitudes à nos chers
parents pour l’éducation qu’ils nous ont prodigué, avec tous les moyens et
au prix de tous les sacrifices qu’ils ont consentis à notre égard, pour le
sens du devoir qu’ils nous ont enseigné depuis notre enfance.
A nos frères et sœurs,
Qu’ils trouvent en ce travail, l’’hommage de notre gratitude, qu’aucun
mot ne saurait l’exprimer, pour leur amour et leur attachement durant
ces longues années.
A nos amis,
Pour tous les moments que nous avons partagés ensemble et tous les
instants inoubliables qui nous ont réunis. Pour votre aide et pour votre
support.
A nos professeurs,
Pour votre encadrement, vos conseils, vos critiques, et vos jugements.
2
Remerciement
3
Table des matières
Dédicace ............................................................................................................. 2
Remerciment ...................................................................................................... 3
Table des matières .............................................................................................. 4
Liste des figures ................................................................................................. 6
Introduction Générale......................................................................................... 7
Chapitre 1 : Contexte général du projet ................................................................ 8
Introduction ........................................................................................... 8
I Présentation et Problématique de projet ................................................ 8
II Gestion de projet .................................................................................... 9
1.1 Equipe de projet ..................................................................................... 9
1.2 Les tâches du projet ............................................................................... 9
1.3 Diagramme de Gantt .............................................................................. 9
1.4 Conclusion ........................................................................................... 10
Chapitre2 : Analyse Fonctionnelle et Conceptuelle ............................................ 11
Introduction............................................................................................. 11
I Cahier des charges .................................................................................. 11
II Spécifications des besoins ...................................................................... 12
2.1 Besoins fonctionnels......................................................................... 12
2.2 Besoins techniques ........................................................................... 14
III Conception de l’application .................................................................... 15
3.1 Le langage de modélisation UML .................................................... 15
3.2 Les Différentes Diagrammes d’UML .............................................. 15
IV Conclusion .............................................................................................. 23
Chapitre 3 : Etude Technique .............................................................................. 24
Introduction............................................................................................. 24
4
I Architecture de l’application .................................................................. 24
1. Définition d’un Framework .............................................................. 24
1.1 Spring boot ....................................................................................... 25
1.2 Flutter ............................................................................................... 25
1.3 Web Services .................................................................................... 25
1.4 API (Application Programming Interface) ....................................... 26
1.5 JSON................................................................................................. 26
1.6 Architecture de développement :...................................................... 27
II Outils de développement ........................................................................ 28
2.1 Système de Gestion de la base de données ...................................... 28
2.2 Postman ............................................................................................. 29
2.3 Visual Code ...................................................................................... 29
2.4 IntteliJ ............................................................................................... 29
2.5 Astah UML ....................................................................................... 30
Conclusion .............................................................................................. 30
Chapitre 4 : Réalisation de l’application ............................................................. 31
Introduction............................................................................................. 31
I Présentation des interfaces ...................................................................... 31
1. Côté Utilisateur................................................................................. 31
2. Côté admin : ..................................................................................... 41
Conclusion : ........................................................................................... 44
Conclusion ........................................................................................................... 45
Références ........................................................................................................... 46
5
Listes des figures
Figure 1:Diagramme de Gantt ...................................................................................... 10
Figure 2:Logo UML ...................................................................................................... 15
Figure 3:Diagramme de cas d'utilisation client ............................................................ 17
Figure 4:Diagramme de cas d’utilisation administrateur ............................................. 18
Figure 5: Diagramme de Classe. ................................................................................... 20
Figure 6: Diagramme de Séquence pour l’inscription et l’authentification. ................ 21
Figure 7: Diagramme de Séquence pour poster une publication. ................................. 22
Figure 8: Logo Spring Boot .......................................................................................... 25
Figure 9: Logo Flutter .................................................................................................. 25
Figure 10: Consommation des API. .............................................................................. 26
Figure 11: Logo JSON. ................................................................................................. 26
Figure 12: Architecture de l'application........................................................................ 28
Figure 13: Logo MySQL. ............................................................................................. 28
Figure 14: Logo Postman. ............................................................................................. 29
Figure 15:Logo Visual Code. ........................................................................................ 29
Figure 16: Logo IntteliJ ................................................................................................ 30
Figure 17: Logo Astah Uml. ......................................................................................... 30
Figure 18:Page d’authentification ................................................................................. 32
Figure 19: Page d’inscription ........................................................................................ 33
Figure 20: Notification d’erreur d’un email qui existe déjâ ......................................... 34
Figure 21: Notification de confirmation d’inscription .................................................. 35
Figure 22:Page d’acceuil .............................................................................................. 36
Figure 23:Page de publication personnelle .................................................................. 37
Figure 24:Formulaire de publication . .......................................................................... 38
Figure 25:Interface des annotations . ............................................................................ 39
Figure 26:Interface du profil utilisateur ....................................................................... 40
Figure 27: Interface pour consulter et noter le profil d’un client ................................ 41
Figure 28:Interface d’acceuil d’administrateur............................................................. 42
Figure 29:Liste des utilisateurs ..................................................................................... 43
Figure 30:Interface des services ................................................................................... 44
6
Introduction Générale
Une application mobile est un logiciel développé pour une installation sur un
périphérique électronique mobile, tel qu'un téléphone mobile « Smartphone »,
ainsi c'est un programme téléchargeable de façon payante ou gratuite, et
exécutable à partir d'un système d’exploitation téléphonique (comme Android,
IOS). Ces applications sont utilisées dans de nombreux domaines de notre vie
quotidienne, et parmi ces domaines la recherche en ligne des services et de la main
œuvre. Notre projet consiste à mettre en place une application mobile dont le but
est d'offrir aux utilisateurs la possibilité d’ajouter et chercher des services et
laisser une annotation sur chaque profil.
Ce présent rapport est divisé en quatre chapitres décrivant les étapes suivies pour
la réalisation de notre application mobile :
7
Chapitre 1 : Contexte général du projet
Introduction
Dans ce premier chapitre, nous allons présenter le contexte général de notre
projet, au préalable nous allons décrire le cadre général du projet et finalement
nous allons préciser la méthodologie de travail suivie durant la réalisation de ce
projet.
8
Mr. Mourad Nachaoui : Notre encadrant et gestionnaire du projet
9
Figure 1:Diagramme de Gantt
Conclusion
Dans ce chapitre nous avons encadré le projet d’une manière générale, présenté la
problématique ainsi que la description des tâches du projet et la chronologie de
leur réalisation.
10
Chapitre2 : Analyse
Fonctionnelle et Conceptuelle
Introduction
Après avoir encadré le sujet d’une manière générale, dans ce chapitre on va
présenter le cahier de charges de notre projet et les besoins spécifiques à réaliser,
ainsi que la partie de conception réalisée en utilisant le langage de modélisation
UML. Nous présenterons les diagrammes des cas d’utilisation, de classes, et de
séquences.
C’est dans un tel contexte qu’il faut situer le rôle significatif rempli par
ces places spontanées d’embauche que sont les moukef, espaces
d’accueil de tous les actifs cherchant à s’intégrer immédiatement et sans
aucune préparation préalable au monde du travail urbain. En tant que
premier et dernier recours, pour un grand nombre d’actifs luttant pour la
survie au sein de la ville, le moukef revêt une grande importance dans le
système informel. Si certaines activités appartenant à ce secteur
économique nécessitent pour leur entrée un minimum de capital et un
certain équipement, le moukef ne demande que la force de travail. Il
suffit d’être prêt à exécuter n’importe quelle occupation, ce qui est à la
11
portée de tout le monde, surtout quand on n’a pas d’autres opportunités
immédiates en vue.
12
membre qui a en plus l'avantage de gérer l'ensemble de fonctionnalités
de l'application.
Les prestataires positionnent en totale liberté leurs annonces de
jobs qui leurs conviennent, en ayant à tout moment la possibilité
de retirer leurs annonces du site.
Pour publier une annonce de job, tout internaute doit s’inscrire
sur notre site pour en devenir Membre.
L’utilisateur :
13
Ses fonctionnalités
S’inscrire (s’il n’a pas un compte).
S’authentifier
Consulter ses propres publications.
Consulter les prestations publiées des autres utilisateurs.
Trier les publications par catégorie (offre, demande).
Poster, modifier et supprimer ses publications que ça soit des
offres ou des demandes.
Modifier son profil
Utilisateur
Ajouter une annotation
Gérer ses publications (Poster, Modifier ,Supprimer).
Déconnexion.
L’administrateur :
L’administrateur est l’utilisateur qui a la main de gérer les publications
indésirables et gérer les autres utilisateurs. Il est nécessairement de s’authentifier
par un email et un mot de passe pour qu’il ait le droit de gérer l’application.
Ses fonctionnalités
S’authentifier.
Administrateur Gestion des publications.
Gestion des utilisateurs.
14
2.2 Besoins techniques
15
Diagramme de Cas d’Utilisation
Diagramme de Classes
Diagramme de Séquences
Définition
S’authentifier.
Gérer l’application.
Opération CRUD sur les publications.
16
Opération CRUD sur les utilisateurs
La figure ci-dessous détermine le diagramme de cas d’utilisation (use case) :
17
Figure 4:Diagramme de cas d’utilisation Administrateur
b. Diagramme de classes
Définition
Le Diagramme de Classes est le plan d’un système, il est utilisé pour afficher les
relations entre les objets et pour décrire ce que ces objets font et les services qu'ils
fournissent.
Une classe représente un groupe d’objets ayant la même structure, c’est à dire les
mêmes attributs et les mêmes opérations. Les différentes classes de notre Projet
sont :
18
utilisateur avec des fonctionnalités d’administration.
La classe Publication représente tout post d’un utilisateur, il peut avoir
des annotations . Elle porte les informations décrivant une publication.
La classe Annotation enregistre les impressions effectuées par un
utilisateur qui peut ajouter, modifier ou supprimer une annotation .
La classe Catégorie a comme but de filtrer les publications par thème
(Offre , Demande )
19
Figure 5:Diagramme des classes
c. Diagramme de Séquences
Définition
20
Le Scenario du cas d’utilisation : publier une publication
L’utilisateur démarre l’application.
L’utilisateur s’inscrit et saisie ses coordonnées personnelles
L’application vérifie les cordonnées saisies par l’utilisateur.
Si les informations sont erronées une alerte de vérification
d’email s’affiche sur la même page.
Sinon les informations sont bien saisies.
L’application affiche une notification de confirmation
d’inscription .
L’application envoie une requête d’enregistrer les coordonnés au
niveau de la base de données (BDD).
L’utilisateur doit s’authentifier .
L’application affiche le formulaire d’authentification.
L’utilisateur saisie son email et son mot de passe .
Si les coordonnées sont incorrectes une notifications
d’erreurs est affichée .
21
Le Scenario du cas d’utilisation : commenter une publication :
22
Conclusion
Nous nous sommes intéressés dans ce chapitre aux principales fonctionnalités de
l'application, et à l’analyse conceptuelle représentée sous forme de trois
diagrammes UML : cas d’utilisation, classes, Séquence. Dans le chapitre suivant
nous allons présenter l’environnement et les outils nécessaires pour la réalisation
de ce projet.
23
Chapitre 3 : Etude Technique
Introduction
I. Architecture de l’application
1. Définition d’un Framework
24
1.1 Spring boot
1.2 Flutter/Dart
25
langages de programmation différents. Parmi les technologies des Web
Services les plus connus on peut citer SOAP, REST.
Une API web d’un site offre aux développeurs le moyen d'exploiter les données
et les services pour leur propre application.
Cette API, relié à Internet serait donc chargé de faire le lien entre la base de
données et l’application, que ce soit en envoi ou en réception des données.
26
Figure 11: Logo JSON..
Identification des ressources par des URI ; par exemple pour accéder aux
10 dernière publications « http://192.168.137.23:8086/api/app/
publications ».
Les réponses http en format JSON (javascript object notation) comme
représentation des ressources.
27
Et ensuite nous avons consommé cette API REST en React native à l’aide d’une
bibliothèque (Axios), destinée à créer des requêtes HTTP à présentation externe
pour récupérer, ajouter, modifier ou supprimer des données.
MySQL Workbench :
28
les plus utilisés au monde et il fonctionne indifféremment sur tous les systèmes
d'exploitation (Windows, Linux…).
Postman
Visual Code
IntelliJ IDEA
29
IntelliJ IDEA également appelé « IntelliJ »,
« IDEA » ou « IDJ » est un environnement de
développement intégré (en anglais Integrated
Development Environment - IDE) destiné au
développement de logiciels informatiques
reposant sur la technologie Java. Il est développé
par JetBrains (anciennement « IntelliJ ») et
disponible en deux versions, l'une
communautaire, open source, sous licence Apache 2 et l'autre propriétaire,
protégée par une licence commerciale. Tous deux supportent les langages de
programmation Java, Kotlin, Groovy et Scala.
Astah UML
Conclusion
Dans ce chapitre nous avons présenté l'environnement et les outils du travail qui
ont été employés pour la réalisation de ce projet.
Dans le prochain chapitre nous allons présenter les imprimés écran décrivant la
réalisation de notre travail.
30
Chapitre 4 : Réalisation de
l’application
Introduction
Après avoir réalisé l’étude de la conception et présenter l’environnement de
développement de notre application. Dans ce chapitre nous allons montrer le
fonctionnement de chaque page de l’application.
L’utilisateur mentionne son mail et son mot de passe, si ces coordonnées sont
bien saisies l'authentification est réalisée avec succès, sinon le message d'erreur
suivant : "votre email ou votre mot de passe est incorrecte" sera affiché sur la
même page.
31
Figure 18:Page d’authentification
b) Page d’inscription
32
Si l'utilisateur appuie sur le bouton "inscrivez-vous" un formulaire d'inscription
s'affiche, l'utilisateur rempli tous les champs du formulaire pour que
l'inscription sera réussie, et appuie sur le bouton "s'inscrire" pour créer son
propre compte.
33
En cas d’erreur une notification s’affiche pour signaler que l’email est déjà utilisé
34
Si tous les coordonnées sont correct une notification de confirmation
d’inscription se déclenche .
c) Page d’accueil
Le système affiche la page d’accueil de l’application systématiquement même
sans authentification autant que visiteur .
35
La page d’accueil contient une dizaine de publications de différents types (Offre
,Demande).
Cette interface permet à l’utilisateur de filtrer les publications selon son choix et
son besoin, ainsi qu’il peut apprécier, et laisser une annotation sur les
publications d’un autre utilisateur .
36
Figure 22: Page d’acceuil
37
Figure 23: Page de publication personnelle
e) Formulaire de publication
Cette interface , permet d’ajouter une offre ou une demande
38
Figure 24: Formulaire de publication
39
Figure 25: Interface des annotations
40
Cette interface permet au client de consulter et modifier son profil et faire une
mise à jour de ses coordonnées (Sauf la CIN et son adresse email )
41
h) Interface pour consulter et noter le profil d’un client
Cette interface permet de consulté un profil à partir de sa publication (Offre
,Demande ) et laisser une annotation ou la mettre à jour .
2. Coté admin
Cette interface s’affiche quand l’admin de l’application s’authentifie avec son
email et son mot de passe.
42
Figure 28: Interface d’acceuil d’administrateur
43
Figure 29: Liste des utilisateurs
44
Figure 30: Interface des services
Conclusion :
45
Conclusion
En termes de ces 2 mois, nous avons réussi à réaliser une application mobile
consistant en « Réalisation d’un application pour mettre en relation clients et
agents de services ». Il s’agit de mettre en place un système permet aux utilisateurs
de publier des offres et des demandes de services d’une manière bien structurée.
46
Références
[1] Spring Boot & web services & Flutter
Craig Walls. Spring in Action 5th Edition covers
spring (November 5, 2018)
Documentation officielle Spring Boot,
https://spring.io/projects/spring-boot
Youssef SAADI, Cours web service,
https://www.youtube.com/c/youssefsaadi99/videos
Documentation officielle Flutter , https://docs.flutter.dev/
[2] IntelliJ
Documentation officielle Expo :
https://www.jetbrains.com/idea/resources/
[3] Langage de Modélisation Unifié (Uml)
Abdellatif HAIR. Cour UML. Faculté des Sciences et
Techniques B.P. 523, Béni-Mellal, MAROC.
[4] Base de donnée
Prof Mourad Nachaoui . Cour Initiation aux bases de données.
Faculté des Sciences et Techniques Département d’informatique
Béni Mellal.
Prof Garmani Hamid . Cour Oracle Faculté des Sciences et
Techniques Département d’Informatique Béni Mellal .
47