Académique Documents
Professionnel Documents
Culture Documents
INGÉNIEUR D'ÉTAT
Filière : Génie Informatique
Option : génie logiciel
Sujet
Année Universitaire
2020 - 2021
Dédicace
“
Je dédie ce travail :
Que dieu, tout puissant, vous garde, vous procure santé, bonheur et longue vie
pour que vous demeuriez le flambeau illuminant mon chemin.
”
- Marouane
Remerciements
Je tiens tout d'abord à remercier Dieu le tout puissant et miséricordieux, qui m'a donné la
force et la patience d'accomplir ce travail.
Avec beaucoup d'égard, nous ne manquerons pas d'exprimer notre grande reconnaissance
à l’ensemble du corps administratif et enseignant de l’ENSA Khouribga, pour avoir porté un
vif intérêt à notre formation, et pour avoir accordé de l’attention et de l’énergie, et ce, dans un
cadre agréable de respect. J'espère que ce travail sera à la hauteur de vos attentes.
Que les membres de jury trouvent, ici, l’expression de mes remerciements pour l’honneur
qu’ils me font en prenant le temps de lire et d’évaluer ce travail.
Résumé
Le présent rapport constitue une synthèse de mon projet de fin d’études effectué au sein de
la société WINGS Technologies à Casablanca et ayant comme objectif l’étude, la conception,
le déploiement et la réalisation d’une application web & mobile en deux versions Fr-Ar qui
permet l’intermédiation entre les professionnels de santé (notamment Infirmiers,
kinésithérapeutes, urgentistes, etc.) et les demandeurs de soins à domicile, en proposant une
expérience utilisateur facile et pertinente avec un système de recommandations et de recherche
intelligente, et ce en vue de l’obtention du diplôme d’ingénieur d’état en informatique.
Le projet est divisé en trois parties : l’Espace Prestataire pour les professionnels de santé
ou les Hôpitaux qui proposent des services aux personnes qui cherchent et demandent des soins
à domicile, l’Espace Patient destiné aux utilisateurs qui recherchent les meilleurs profils pour
les services dont ils ont besoin, et l'Espace d'administrateur qui gère la totalité des systèmes de
notre application.
Pour pouvoir réaliser ce travail, nous avons utilisé un ensemble d'outils et technologies :
MongoDB, ExpressJS, ReactJS, NodeJS, NextJS, Redux, GraphQL, Apollo server, React
Native, Jest, Google APIs, GitLab CI/CD, Figma, Amazon AWS.
This report is a synthesis of my final year project carried out within the company WINGS
Technologies in Casablanca and having as objective the study, the design, the deployment and
the realization of a web & mobile application in two versions Fr-Ar which allows the
intermediation between the professionals of health (in particular Nurses, physiotherapists,
urgentists, etc) and homecare seekers, by offering an easy and relevant user experience with a
recommendation and intelligent search system, and this in order to obtain the state engineering
degree in computer science.
The project is divided into three parts: The Provider Area for health professionals or
Hospitals that offer services to people seeking and requesting home care, the Patient Area for
users who are looking for the best profiles for the services they need, and the Administrator
Area that manages the entire systems of our application.
To be able to realize this work, we used a set of tools and technologies: MongoDB,
ExpressJS, ReactJS, NodeJS, NextJS, Redux, GraphQL, Apollo server, React Native, Jest,
Google APIs, GitLab CI/CD, Figma, Amazon AWS.
The technical study and the implementation of the application architecture was done jointly
between WINGS technologies and experts in the tools used. During this internship, we opted
for the SCRUM methodology for the management and conduct of the project.
Dédicace .......................................................................................................................................
Remerciements .............................................................................................................................
Résumé .........................................................................................................................................
Abstract .........................................................................................................................................
Webographie............................................................................................................................. 77
Table des figures
IT Information Technology
UX User experience
CI Continuous integration
CD Continuous Deployment
DB Database
Introduction générale
La digitalisation des entreprises est un défi commun pour tous les secteurs, y inclut le
secteur de « santé et soins à domicile ». En fait, ce secteur va bénéficier au maximum après la
digitalisation de ces pratiques dans les différents processus qu’il suit. Ce bénéfice sera garanti
grâce aux diverses opportunités présentes dans la centralisation des processus et données et sa
manipulation.
En effet, la tendance des solutions de santé s'est beaucoup plus élargie. Ces dernières
années L'intelligence artificielle, Machine Learning, le big data et l'analyse des données sont
au cœur des innovations dans le secteur IT (information technologie), offrant de nombreuses
possibilités aux administrateurs d'applications de soins et de soins à domicile pour
recommander et proposer les bons profils et améliorer l'interaction de la solution avec les
utilisateurs. , qu'il s'agisse de patients ou de prestataires, ou encore vérifier la validation des
éléments constitutifs d’un prestataire.
A cet égard, Wings technologies a décidé d’intégrer ce nouveau monde digital qui ouvre,
sans doute, plusieurs opportunités pour l’entreprise. L’objectif de mon stage est le
développement d’une application web & mobile permettant de mettre en relation, d'une part,
des professionnels de santé et des infirmières qualifiées et, d'autre part, des personnes qui ont
besoin (ou leurs proches) de soins à domicile, qu'elles soient âgées, handicapées ou souffrant
de maladies chroniques. Avec la solution proposée, le patient peut rechercher un ou plusieurs
infirmiers qui peuvent se rendre à son domicile avec une proximité et un service de qualité.
Le présent rapport abordera en détail mon projet de fin d’études, il comporte quatre
chapitres :
1
Introduction générale
A la fin du rapport nous présentons une conclusion générale, ainsi que les perspectives
attendues du projet.
2
Chapitre 1
contextuel. Il présente dans sa première partie l’organisme d’accueil, tandis que sa deuxième
partie décrit les objectifs du projet et ses fonctionnalités, La dernière partie est réservée à la
3
Chapitre 1 : Contexte général du projet
Wings Technologies dont le logo est présenté dans la figure 1.1 est une société marocaine
créée en 2020 dispose un local à Technopark Casablanca, et emploie 20 collaborateurs dans
différents domaines. Elle offre à ses clients une solide expertise sur la conception et la
réalisation des plateformes, les enjeux numériques, l’UX (User Experience), et l’aspect
marketing et marketing digital, elle aide aussi les entreprises à mener à bien leur transformation
digitale en s’appuyant sur une équipe talentueuse qui possède les connaissances récentes en
matière de pointe, ce qui permet aussi de conquérir la révolution industrielle 4.0 et de franchir
une étape solide dans l’évolution des marchés d’aujourd’hui.
4
Chapitre 1 : Contexte général du projet
Wings technologies fédère toutes les compétences indispensables au bon déroulement des
projets de ses clients, du conseil à la réalisation en passant par l’ergonomie, le design,
l’interface utilisateur.
5
Chapitre 1 : Contexte général du projet
Notre projet intitulé « Etude, conception et la réalisation d’une application web &
mobile en deux versions FR-AR qui permet l’intermédiation entre les professionnels de santé
et patients à domicile » a été proposé dans le cadre de l’élaboration d’un stage de fin d’études
au sein de la société Wings Technologies.
6
Chapitre 1 : Contexte général du projet
WeKareYou est un projet innovant qui vise à simplifier la mise en relation entre les patients
qui ne nécessitent pas d'hospitalisation et les professionnels de santé, en permettant aux patients
de trouver rapidement un professionnel dans leur quartier via une plateforme unique, et aux
infirmiers de connaître les demandes de soins dans leur zone géographique en temps réel. Il
s'agit de la première plateforme numérique qui permet l'intermédiation entre des infirmiers
qualifiés et les personnes qui ont besoin (ou leurs proches) de soins à domicile qu'elles soient
âgées, handicapées ou souffrant de maladies chroniques, cette population a besoin d'une prise
en charge quotidienne ou hebdomadaire selon les cas et pour cela nous souhaitons leur offrir
un service de proximité et de qualité.
Donc comme il est déjà mentionné le projet vise le développement d'une application web
et mobile, qui contient trois parties :
Espace patient :
Cette partie du projet concerne principalement les patients (ou demandeurs de soins), c'est
un espace qui doit faciliter la mission de l'utilisateur qui recherche un service de soins à
domicile, ceci sera assuré en mettant à la disposition des utilisateurs/patients toutes les offres
des prestataires disponibles sur la plateforme, après avoir sélectionné le service dont ils ont
besoin. Cet espace sera caractérisé par la possibilité d'effectuer un filtrage multi-conditionnel,
par exemple nous pourrons filtrer les prestataires par prix, secteurs d'intervention, meilleur
prestataire (selon les commentaires des utilisateurs), disponibilité, années d'expérience et par
les différents services offerts sur la plateforme. La plateforme se chargera de recommander des
prestataires au patient en répondant au maximum des exigences possibles. Après avoir
sélectionné un profil le patient peut commencer la procédure de création d'une demande de
soins ou il a la possibilité d'effectuer un paiement en ligne ou un paiement cash à la fin de la
prestation, le patient bénéficie également d'un système de suivi de ses demandes en temps réel.
7
Chapitre 1 : Contexte général du projet
Cette partie est dédié aux professionnels de santé ou aux hôpitaux qui offrent des services
aux personnes qui cherchent et demandent des soins à domicile, chaque Prestataire doit remplir
les informations nécessaires au moment de l'inscription en spécifiant les services qu'il peut
offrir, la disponibilité et les secteurs où il veut travailler. Avec l'existence d'un espace où le
prestataire peut consulter et accepter ou refuser les demandes en temps réel.
Espace d’administration :
Cette partie est destiné à l’administrateur qui gère l'ensemble des systèmes de notre
application : gestion des utilisateurs, gestion des services et des options, gestion des demandes,
gestion de la facturation, gestion de la messagerie, gestion des tickets, etc.
Pour le patient et le prestataire, ils ont aussi la possibilité de suivre les demandes et de
communiquer avec l'administrateur via un système de messagerie et créer des tickets
(réclamation/ litige) en cas de blocage rencontré.
L'objectif est de créer une plateforme plus simple, plus ergonomique, plus moderne qui
rassemble nos professionnels de santé dans un réseau mobilisable en cas de besoin ! Dédiée à
leur activité de professionnels de santé à domicile, elle leur permet de gérer leurs patients, leurs
agendas et toutes leurs activités en quelques clics sur une même plateforme. Et il permet aux
demandeurs de soins de trouver rapidement un professionnel dans leur quartier.
8
Chapitre 1 : Contexte général du projet
Création d'un système de paiement en ligne afin que nos patients puissent payer leurs
demandes et que nos prestataires puissent payer leurs factures.
Création d’un système de gestion des tickets qui traitera toutes les réclamations et litiges
qu'ils soient liés aux applications ou à des blocages dans l'utilisation de la plateforme.
Création d'un système de recommandation intelligent basé sur différentes contraintes
telles que les zones géographiques et la disponibilité des professionnels.
Création d'un système d'archivage des demandes réalisées à l'aide d'une base de données
NoSQL.
Création d’un système de messagerie et de notification.
Pour notre projet WeKareYou, nous avons adopté la méthode agile Scrum qui est une
méthode de gestion et de développement de projets ou programmes informatiques. Le principe
de la méthodologie SCRUM est de développer un logiciel de manière incrémentale en
maintenant une liste totalement transparente des demandes d’évolutions ou de corrections à
implémenter (backlog).[2]
Avec des livraisons très fréquentes, toutes les 4 semaines en général, le client reçoit un
logiciel à chaque itération. Plus nous avançons dans le projet, plus le logiciel est complet
et possède de plus en plus de fonctionnalités.
9
Chapitre 1 : Contexte général du projet
Pour cela, la méthode s’appuie sur des développements itératifs à un rythme constant, de 2
à 4 semaines (2 semaines pour notre cas) comme le montre la figure 6 :
Cette méthodologie représente plusieurs points forts, surtout pour les projets complexes et
instables et même les projets innovants.
En réalité, plusieurs raisons ont obligé l’adoption d’une telle méthodologie agile :
Product Owner : Dans la majorité des projets, le responsable produit (product owner)
est le responsable de l’équipe projet client. C’est lui qui va définir et prioriser la liste
des fonctionnalités du produit et choisir la date et le contenu de chaque sprint sur la
base des valeurs (charges) qui lui sont communiquées par l’équipe.
ScrumMaster : Véritable facilitateur sur le projet, il veille à ce que chacun puisse
travailler au maximum de ses capacités en éliminant les obstacles et en protégeant
l’équipe des perturbations extérieures.
Équipe de développement : elle regroupe l’ensemble des rôles habituellement
nécessaires à un projet, à savoir le concepteur, ledéveloppeur, le testeur, etc. L’équipe
s’organise elle-même et elle reste inchangée pendant toute la durée d’un sprint
10
Chapitre 1 : Contexte général du projet
d’items du backlog de produit ou de fonctionnalités à réaliser. Ces items sont décomposés par
l’équipe en tâches élémentaires de quelques heures. Comme nous pouvons le remarquer dans
cette figure, pour mettre en place la méthode SCRUM, nous devons d'abord définir les
différentes fonctionnalités de notre application qui constituent le backlog de produit. Vient
ensuite l'étape de planification du sprint pour définir le plan détaillé d'une itération.
Dans notre cas et comme déjà mentionné, la plateforme web et mobile contient trois
espaces : l'espace infirmière, l'espace patient et l'espace administration qui feront l'objet de notre
backlog produit.
Ce tableau illustre les Users stories ou les items qui décrivent les fonctionnalités à développer
par l’équipe Scrum l’espace prestataire.
11
Chapitre 1 : Contexte général du projet
Les User stories du Backlog-Product sont présentées et priorisé dans le sprint-backlog qui
représente un carnet sous forme de tâches à réaliser au cours de l’itération.
Nous avons travaillé par une plateforme web qui est le logiciel JIRA qui représente un
système de gestion des projets, et qui va nous permettre de mieux planifier et organiser nos
tâches.
Durant un sprint, il y a toujours des réunions quotidiennes entre les différents collaborateurs
du projet afin de présenter l’état d’avancement des différentes tâches en cours, les difficultés
rencontrées ainsi que les tâches restantes à réaliser. Une fois que le produit partiel est prêt, nous
vérifions la conformité de ce qui a été fait durant le sprint et nous pouvons alors l’améliorer en
procédant à l’étape de rétrospective.
Pour chaque projet que nous gérons, nous utilisons un Task Board ou le tableau de tâches,
également appelé tableau Kanban. C’est un outil basique, mais essentiel pour l’équipe il permet
de visualiser rapidement l'état d’avancement du projet. C'est également la base sur laquelle nous
pouvons discuter lors du Daily scrum.
12
Chapitre 1 : Contexte général du projet
Normalement, en Scrum, il est très difficile de donner un planning exact pour le projet, car le
Planning détaillé est déterminé pour chaque Sprint, mais cela n’empêche pas de donner une
vision globale sur le Planning globale.
La figure suivante (figure 9) présente le diagramme de Gantt qui illustre le Planning globale
du projet :
13
Chapitre 1 : Contexte général du projet
1.4 Conclusion
Dans ce chapitre, nous avons d'abord présenté en premier lieu l’organisme d’accueil. Dans
un second lieu, nous avons déterminé le cadre du projet. Puis nous avons spécifié la
problématique et le contexte général du projet. Et en dernier lieu, nous avons présenté la
méthode de travail à adopter et illustré le déroulement du travail avec le planning suivi tout au
long du projet. Dans le chapitre qui suit, nous allons présenter l’analyse fonctionnelle et non
fonctionnelle de notre projet ainsi que la conception détaillée, dans laquelle, nous allons défini
les spécifications dans le but d’élaborer l’architecture globale du projet.
14
Chapitre 2
“ Dans ce chapitre, nous aborderons les phases d’analyse et de spécification des besoins
du projet, afin d’avoir une vision globale claire du comportement du projet ainsi que des
attentes des utilisateurs. Nous allons présenter d'abord une introduction du cahier de charge.
Puis, nous passons à la spécification et aux cas d’utilisation. La dernière partie est consacrée
15
Chapitre 2 : Analyse et spécification des besoins
Gestion de profils :
Le projet doit comprendre plusieurs profils qui seront gérés différemment selon leur rôle, leur
fonctionnement, leurs actions et leur importance pour garantir la sécurité des données et des
personnes.
La plateforme doit permettre une gestion avancée des informations relatives aux demandes
grâce à des vues intuitives et ergonomiques, avec des fonctions de recherche et de filtrage
puissantes.
Système de suivi :
La plateforme doit permettre un suivi avancé des demandes de prestations en temps réel avec
des Google Maps et des changements de statut actualisés.
La plateforme doit permettre la gestion des services offerts par la plateforme afin de garantir
une flexibilité maximale aux demandeurs de soins.
La plateforme doit permettre aux utilisateurs de payer et de consulter les factures des demandes
traitées afin de faciliter les transactions entre la plateforme et les professionnels de santé.
16
Chapitre 2 : Analyse et spécification des besoins
17
Chapitre 2 : Analyse et spécification des besoins
Le tableau 5 résume les acteurs en interaction avec le système, en précisant le rôle de chacun
d'eux avant de définir plus précisément leurs interactions avec le système à l'aide de
diagrammes de cas d'utilisation.
Acteur Fonction
18
Chapitre 2 : Analyse et spécification des besoins
19
Chapitre 2 : Analyse et spécification des besoins
Le patient doit avoir la possibilité d’ajouter une revue après chaque prestation.
Le patient doit avoir la possibilité de modifier sa revue.
Le patient doit avoir la possibilité d’ajouter une raison avant d'annuler une demande.
Le patient doit avoir la possibilité de consulter ses demandes de prestations dans son
profil.
Le patient doit avoir la possibilité de mettre à jour le statut d’un litige.
L'administrateur doit avoir la possibilité de vérifier et d’approuver les paiements.
L’administrateur doit avoir la possibilité d’examiner les demandes d'inscription des
prestataires et les approuver ou les rejeter.
L’administrateur doit avoir le droit d'ajouter, de modifier et de supprimer les services et
leurs options s'ils existent.
L’administrateur doit avoir la possibilité d’approuver ou de refuser un prestataire.
L’administrateur doit avoir la possibilité d’ajouter, de modifier, de supprimer, de
désactiver ou d’activer un prestataire.
L’administrateur doit avoir la possibilité de gérer les factures et d’approuver les
paiements.
L’administrateur doit avoir la possibilité de gérer les tickets.
L’administrateur doit avoir la possibilité de mettre à jour le statut de ticket.
L’administrateur doit avoir la possibilité de configurer et paramétrer l’application.
L’administrateur doit avoir la possibilité de gérer les demandes.
L’administrateur doit avoir la possibilité de créer des utilisateurs privilégiés et d’ajouter
et modifier leurs permissions.
L’administrateur doit avoir la possibilité de consulter les statistiques de l’application.
L’utilisateurs doit avoir la possibilité de communiquer avec l’administration de
l’application.
L'application doit automatiser les processus autant que possible et minimiser les entrées
pour assurer la simplicité.
20
Chapitre 2 : Analyse et spécification des besoins
C'est pour ces raisons que l'établissement du diagramme de cas d'utilisation est très
important pour un bon démarrage du projet.
Dans la partie qui suit, nous allons présenter l’ensemble des cas d’utilisation de la
plateforme WeKareYou en se basant sur les diagrammes des cas d’utilisation du système et les
descriptions contextuelles des cas d’utilisation. Les cas d'utilisation sont présentés ci-après en
fonction des acteurs du système.
Les présents cas d’utilisation concernent l’acteur administrateur. Une fois authentifié,
l’administrateur peut gérer les utilisateurs et leurs droits, gérer les services et les options, gérer
les factures, les demandes, les tickets, les litiges, les notifications et consulter le Dashboard de
l’application, et il peut également accéder à l’espace de configuration pour paramétrer la
plateforme. Tous les cas d’utilisation passent obligatoirement par une authentification (voir la
figure 9) :
21
Chapitre 2 : Analyse et spécification des besoins
Les présents cas d’utilisation concernent l’acteur patient (demandeur de soins). Une fois
authentifié, le demandeur de soins à la possibilité de gérer son compte, de consulter les services
et options de la plateforme, de créer une demande des soins, de consulter les profils des
prestataires, de consulter les notifications et la listes des prestataires, et bien sûr la possibilité
de déconnecter de son espace. Tous les cas d’utilisation nécessitent une authentification (voir
la figure 10) :
22
Chapitre 2 : Analyse et spécification des besoins
Les présents cas d’utilisation concernent l’acteur prestataire. Après avoir authentifié le
prestataire peut gérer son profil, les demandes ainsi que les factures (voir la figure 11)
23
Chapitre 2 : Analyse et spécification des besoins
Sommaire d'identification :
Scénario nominal :
1. L’acteur saisit son login et son mot de passe.
2. Le système vérifie les informations saisies.
3. Le système constate que les informations saisies sont valides.
4. Le système vérifie le rôle de l’acteur.
5. Le système connecte l’acteur à son espace.
Scénario d’erreur : données non valides
1. L’acteur saisit son login et son mot de passe.
2. Le système vérifie les informations saisies.
3. Le système constate que les informations saisies ne sont pas valides.
4. Le système demande à l’acteur de vérifier les informations saisies.
Tab 6 : Description contextuelle du cas d'utilisation admin "s’authentifier "
Sommaire d'identification :
Scénarios nominaux :
1. Gérer les utilisateurs privilégiés
1.1 Ajouter utilisateur avec des privilèges
L’acteur saisit les informations de l’utilisateur.
L’acteur assigner des privilèges et des permissions à cet utilisateur.
Le système confirme l’enregistrement de l’utilisateur à l’administrateur.
24
Chapitre 2 : Analyse et spécification des besoins
25
Chapitre 2 : Analyse et spécification des besoins
Sommaire d'identification :
Scénarios nominaux :
1. Ajouter service
26
Chapitre 2 : Analyse et spécification des besoins
Sommaire d'identification :
Scénarios nominaux :
1. Générer facture
Sommaire d'identification :
Objectif : Cette fonctionnalité permet à l’administrateur de gérer la liste des tickets crées
par les utilisateurs de la plateforme.
Acteur : l’administrateur
Précondition : L’acteur se connecte à son espace.
Description des scénarios :
Scénarios nominaux :
27
Chapitre 2 : Analyse et spécification des besoins
Sommaire d'identification :
Scénario nominal :
1. L’acteur choisit une méthode d’authentification (par téléphone / par Facebook).
2. L’acteur saisit son numéro de téléphone.
3. Le système vérifie la validation de numéro saisi.
4. Le système constate que le numéro saisi est valide.
5. Le système envoie un code de vérification au numéro saisi.
6. L’acteur saisie le code de vérification
7. Le système vérifie le code saisi par l’acteur.
8. Le système constate que le code saisi est valide.
9. Le système connecte l’acteur à son espace.
Scénario d’erreur : données non valides
3.a. Si le numéro saisi par l’acteur n’est pas valide, le système affiche un message
d’erreur.
3.b. Le système demande à l’acteur de vérifier leur numéro saisi.
7. a. Si le code saisi par l’acteur est incorrect le message affiche un message
d’erreur.
28
Chapitre 2 : Analyse et spécification des besoins
Cas d’utilisation s’inscrire : Cette fonctionnalité est la même décrite dans le cas d’utilisation
précèdent « s’authentifier patient ».
Sommaire d'identification :
Scénarios nominaux :
1. Consulter profil
29
Chapitre 2 : Analyse et spécification des besoins
Sommaire d'identification :
Scénarios nominaux :
1. Chercher service :
L’acteur affiche la liste des services.
L’acteur sélectionne les critères de recherche.
L’acteur lance la recherche.
Le système affiche les résultats de recherche.
2. Consulter et partager profil du prestataire
30
Chapitre 2 : Analyse et spécification des besoins
Sommaire d'identification :
Scénarios nominaux :
1. Ajouter ticket
Sommaire d'identification :
Objectif : Cette fonctionnalité permet au patient de gérer ses demandes et les suivis avec
la possibilité de créer un litige.
Acteur : le patient
Précondition : L’acteur se connecte à son espace.
Scénarios nominaux :
1. Consulter les demandes en cours :
1.1 Suivre demande
31
Chapitre 2 : Analyse et spécification des besoins
32
Chapitre 2 : Analyse et spécification des besoins
Cas d’utilisation s’authentifier : Cette fonctionnalité est la même décrite pour le patient.
Sommaire d'identification :
Scénarios nominaux :
Le système affiche les étapes d'inscription.
L’acteur ajoute les services et les options qu’il offre avec leur prix et valide.
L’acteur ajoute les disponibilités de la semaine et valide.
L’acteur sélectionne une ville d’intervention.
L’acteur ajoute les régions d’interventions et valide.
Le système affiche un formulaire à remplir.
L’acteur ajoute des informations personnelles et valide.
L’acteur ajoute les fichiers de validation de compte : le diplôme, le CIN, etc.
Le système affiche les termes et les conditions de l’application
L’acteur accepte les conditions de l’application et valide.
Le système confirme à l’acteur la création du compte.
Tab 16 : Description contextuelle du cas d'utilisation prestataire "s’inscrire"
Sommaire d'identification :
Scénarios nominaux :
1. Consulter profil
L’acteur accède à son profil.
Le system affiche les informations personnelles de l’acteur.
L’acteur clique sur programme pour consulter sa disponibilité.
33
Chapitre 2 : Analyse et spécification des besoins
L’acteur clique sur les demandes pour consulter la liste des demandes selon leur
état.
L’acteur clique sur facture pour consulter la liste des factures selon leur état.
2. Modifier profil
2.1 Modifier les informations personnelles
L’acteur accède à son profil.
Le système affiche les informations personnelles de l’acteur.
L’acteur modifie les champs concernés.
L’acteur valide ses modifications.
Le système confirme à l’acteur que les informations ont été mises à jour.
2.2 Modifier les services et les prix et les régions d’interventions
L’acteur accède à son profil.
L’acteur clique sur les services et options pour consulter et modifier les
services.
Le système affiche la liste des services et options, et leur prix.
L’acteur modifie les champs concernés.
L’acteur valide ses modifications.
Le système confirme à l’acteur que les informations ont été mises à jour.
2.3 Modifier les régions d’interventions
Cette fonctionnalité est la même que celle décrite pour le profil du patient.
Tab 17 : Description contextuelle du cas d'utilisation prestataire "Gérer profil"
Sommaire d'identification :
Acteur : le prestataire
Précondition : L’acteur se connecte à son espace
Scénarios nominaux :
1. Accepter/ rejeter demande
Cette fonctionnalité est la même que celle décrite dans le cas d’utilisation ajouter
ticket (Patient).
3. Rechercher demande
Cette fonctionnalité est la même que celle décrite dans le cas d’utilisation
rechercher demande (Patient).
4. Changer statut demande
L’acteur affiche la liste des demandes de soins en cours.
L’acteur sélectionne une demande.
Le système affiche les informations de la demande et le Traking Map.
L’acteur modifier le statut.
Le système alerte l’acteur sur son action.
L’acteur confirme son action.
Le système met à jour le statut de la demande.
Le système envoie un message informatif au demandeur de soins.
5. Consulter le profil du patient
35
Chapitre 2 : Analyse et spécification des besoins
Sommaire d'identification :
Scénarios nominaux :
1. Payer une facture
L’acteur affiche la liste des factures.
L’acteur sélectionne une facture à consulter.
Le système affiche les informations de la facture sélectionnée
L’acteur ajoute un scan de versement si le paiement est par virement.
L’acteur paie la facture sélectionnée.
Le système vérifie les informations de paiement.
Le système met à jour le statut de la facture.
Le système met à jour la liste des factures.
Scénario d’erreur : données non valides
6.a. Si les informations de paiement saisi par l’acteur n’est pas valide, le système affiche
un message d’erreur.
Tab 19 : Description contextuelle du cas d'utilisation prestataire "Consulter factures"
Le but principal de BPMN est de fournir une notation qui soit facilement compréhensible
par tous les utilisateurs de l'entreprise, depuis les analystes métier qui créent les ébauches
initiales des processus, jusqu'aux développeurs responsables de mettre en place la technologie
qui va exécuter les processus applicatifs correspondants, et finalement, jusqu'aux utilisateurs de
l'entreprise qui vont mettre en œuvre ces processus. [5]
36
Chapitre 2 : Analyse et spécification des besoins
BPMN et UML sont complémentaires, en fait BPMN est ressemblé aux diagrammes de
flux et d'activité en UML. Et ci-dessous les diagrammes de processus que nous avons réalisé
dans notre projet
Le présent diagramme (figure 12) décrit les détails du processus de demande de service en
montrant le flux d'informations et les différentes étapes par lesquelles passe une demande de sa
création à son achèvement et les acteurs qui interagissent et participent à ce processus.
37
Chapitre 2 : Analyse et spécification des besoins
Le présent diagramme (figure 13) décrit les détails du processus d’inscription d’un
prestataire sur la plateforme en montrant le flux d'informations et les différentes étapes par
lesquelles passe une demande d’inscription depuis sa création jusqu’à la validation de
l’administrateur et les acteurs qui interagissent et participent à ce processus.
38
Chapitre 2 : Analyse et spécification des besoins
Le présent diagramme (figure 15) décrit les détails du processus de facturation des
demandes en montrant le flux d'informations et les différentes étapes par lesquelles passe une
facture de sa création à sa génération ainsi que les acteurs qui interagissent et participent à ce
processus.
Le présent diagramme (figure 16) décrit les détails du processus de traitement d’un litige
en montrant le flux d'informations et les différentes étapes par lesquelles passe un litige de son
ouverture à sa fermeture ainsi que les principaux acteurs qui interagissent et participent à ce
processus.
39
Chapitre 2 : Analyse et spécification des besoins
2.4 Conclusion
Le but de ce chapitre était de définir et d’analyser l’ensemble des besoins fonctionnels de
notre solution. Cette étape est primordiale dans le développement d’un projet informatique
puisqu’elle nous permet de définir le périmètre fonctionnel du projet, et de garantir la
couverture de l’ensemble des fonctionnalités recensées.
40
Chapitre 3
“ Dans ce chapitre nous allons nous concentrer sur l’aspect conceptuel et architectural
de la solution à mettre en place. Cette étude conceptuelle est basée sur l’élaboration et
41
Chapitre 3 : Étude Conceptuelle et architecturale
Cela commence par la saisie du numéro de téléphone par l'acteur, puis le système vérifie si le
numéro est valide, si ce n'est pas le cas le système lui demande de ressaisir son numéro de
téléphone, s'il est valide un code par message lui est envoyé. Si le code est correct, l'acteur se
connecte, sinon il doit attendre 1 minute pour pouvoir entrer à nouveau le code ou il peut
demander au système de lui en envoyer un nouveau, mais si le temps dépasse 5min en général,
le système efface le code et demande d'entrer à nouveau le numéro pour envoyer un nouveau
code.
42
Chapitre 3 : Étude Conceptuelle et architecturale
Tout d'abord, le patient accède à la page d'accueil de l'application puis clique sur service,
ce qui l'amène à la zone des offres de service.
Il affiche la liste des offres et choisit celle qui lui convient le mieux, ensuite il consulte les
détails de l'offre et de son prestataire, puis il clique sur demander, s'il n'est pas authentifié, il est
dirigé vers l'espace d'authentification, s'il l'est, il est invité à remplir un formulaire, puis à ajouter
son adresse. Ensuite, il choisit son mode de paiement préféré : si c'est en ligne, il saisit ses
informations, puis le système vérifie si elles sont correctes, sa demande est créée, sinon un
message d'erreur est délivré, si c'est en espèces, un message de succès est délivré.
Ensuite, la liste des offres est envoyée aux prestataires pour être contrôlée et vérifiée, puis
le prestataire envoie sa réponse.
43
Chapitre 3 : Étude Conceptuelle et architecturale
44
Chapitre 3 : Étude Conceptuelle et architecturale
C’est dans ce contexte que la présente tentative de modélisation en classes prend place. En
fait, nous avons deux classes de deux acteurs (prestataire et patient) qui hérite d’une classe mère
(utilisateur). Le patient peut demander un ou plusieurs demandes de soins alors qu’un service
de soins ne peut être effectuer que par un et un seul prestataire, mais cette dernière peut bien
créer plusieurs offres de soins à travers son inscription et son profil.
Chaque facture concerne un ou plusieurs demandes et peut être payer par un seul
prestataire.
45
Chapitre 3 : Étude Conceptuelle et architecturale
46
Chapitre 3 : Étude Conceptuelle et architecturale
Grâce aux causes citées auparavant, nous avons choisi l’architecture globale suivante
(figure 20) qui est capable de répondre aux besoins expliqués dans le cahier de charges :
47
Chapitre 3 : Étude Conceptuelle et architecturale
La couche Serveur : c’est une couche qui s’occupe de la communication avec la base de
données, après avoir réalisé les opérations nécessaires au niveau du résolveur. Non
seulement ça, mais cette couche est responsable aussi de la transmission des données
nécessaire au web service et de stocker les fichiers dans le serveur de stockage.
La couche Données : c’est la couche au niveau de laquelle on stocke nos données.
Après avoir présenté l’architecture globale du projet, on vient à la spécification des détails
de l’architecture et la logique suivie pour choisir les technologies du système.
En fait, nous allons utiliser dans la couche Client web (Front) Next JS caractérisé par son
architecture détaillé et compréhensible. Et dans la partie mobile nous allons utiliser
ReactNative. La figure suivante (figure 22 - 23) illustre la structure du projet dans la couche
Client :
48
Chapitre 3 : Étude Conceptuelle et architecturale
Figure 23 : Structure du projet (côté Front - web) Figure 22 : Structure du projet (côté Front - mobile)
Or, pour la couche Serveur, on a utilisé NodeJS (Express) et le module Mongoose qui
garantit la communication avec la base de données. La figure suivante (figure 24) illustre la
structure du projet dans la couche Serveur :
49
Chapitre 3 : Étude Conceptuelle et architecturale
Finalement, pour la base de données nous avons choisi une base de données NoSQL qui
est MongoDB qui communique avec la couche serveur à travers des objets JSON. La figure
suivante (figure 25) illustre les différents modules du projet.
50
Chapitre 3 : Étude Conceptuelle et architecturale
Le développement dans notre projet se fait par plusieurs étapes consécutives. Nous allons
commencer d'abord par la préparation des maquettes graphiques qui donnent une idée assez
exacte sur le résultat attendu. Nous allons passer après à la phase de division des tâches qui se
fait durant la réunion du Scrum Planning dans le début de chaque Sprint. L’étape prochaine
c’est l’intégration des maquettes graphiques sous le serveur Client. Après validation de
l’intégration, nous commencerons le développement des fonctionnalités et on les tests après en
utilisant le Cross Testing dans lequel chaque membre de l’équipe de développement teste les
fonctionnalités développées par un autre membre de l’équipe.
Finalement, et après traitement de retour des BUGS de l’ancienne étape, et après validation,
Nous allons passer au déploiement en ligne du projet.
Concernant la branche “dev”, c’est la branche dans laquelle sont faits tous les
développements. Alors que la branche “Main” correspond au code dans sa version prête à
déployer. Aucun commit ne doit être fait sur cette branche. Un fusionnement (Merge) de la
branche “ dev” est fait dans cette branche au moment des releases. La figure suivante (figure
28) illustre les branches créer par l’équipe WeKareYou dans Gitlab :
51
Chapitre 3 : Étude Conceptuelle et architecturale
Pour une bonne gestion du versioning du projet, Il arrive qu’on remonte des problèmes
dans l’environnement de production ! Une branche “Hotfix” est alors utilisée pour corriger ce
qui peut l’être facilement. C’est une branche utilisée uniquement pour de petites interventions
simples sur le code de production. C’est la seule branche qui part directement de la branche de
production “Main”. Dès que la correction est faite, elle est fusionnée à la fois avec la branche
de développement (dev) et avec la branche de production (Main) et celle-ci est taguée avec un
nouveau numéro de version.
Avoir une telle branche de développement dédiée aux corrections de bug permet de les
corriger sans gêner le reste du processus de développement.
52
Chapitre 3 : Étude Conceptuelle et architecturale
Next js
Next JS, ce framework React orienté Server Side Rendering, s'est imposé parmi les
frameworks JavaScript les plus populaires. Il est livré par défaut avec des fonctionnalités
pratiques qui ne sont pas disponibles dans une application "vanilla" React. Next JS propose des
fonctionnalités hybrides de SSG (Static Generation) & SSR, c’est un outil puissant pour les
gens qui ont un fort besoin pour la performance des utilisateurs et le SEO.
Graphql
GraphQL (pour Graph Query Language) est un langage de requête développé et maintenu
par Facebook. Celui-ci permet notamment aux consommateurs de l’API de demander
seulement les champs nécessaires à l’inverse d’une API REST qui expose un schéma prédéfini.
Il est par exemple possible avec cette technologie d’effectuer une seule requête HTTP avec
différentes entités là où il est généralement nécessaire de faire plusieurs appels lorsqu’il s’agit
d’une API REST.
Apollo Server
Appollo server est un serveur GraphQL open source et conforme aux spécifications,
compatible avec n'importe quel client GraphQL, y compris Apollo Client. C'est le meilleur
moyen de créer une API GraphQL auto-documentée, prête pour la production, qui peut utiliser
des données de n'importe quelle source.
React native
React Native est un framework d'applications mobiles open source créée par Facebook. Il
est utilisé pour développer des applications pour Android, iOS en permettant aux développeurs
d’utiliser React avec les fonctionnalités natives de ces plateformes. Les principes de
fonctionnement de React Native sont pratiquement identiques à ceux de React, à la différence
que React Native ne manipule pas le DOM via le DOM virtuel. Il s'exécute dans un processus
en arrière-plan (qui interprète le code JavaScript écrit par les développeurs) directement sur le
terminal et communique avec la plate-forme native via une passerelle de sérialisation,
asynchrone et par lots.
53
Chapitre 3 : Étude Conceptuelle et architecturale
Expo
Expo c'est à la fois un framework et une plateforme qui simplifient la création et le déploiement
d'applications mobiles avec React Native. Expo embarque de nombreux outils utiles et des
librairies natives pour React Native. Il gère aussi la mise à jour de ces librairies.
Type script :
TypeScript est un langage de programmation libre et open source développée par Microsoft
qui a pour but d'améliorer et de sécuriser la production de code JavaScript. Il s'agit d'un sur
ensemble syntaxique strict de JavaScript (c'est-à- dire que tout code JavaScript correct peut être
utilisé avec TypeScript). Le code TypeScript est transcompilé en JavaScript, et peut ainsi être
interprété par n'importe quel navigateur web ou moteur JavaScript.
TypeScript permet un typage statique optionnel des variables et des fonctions, la création
de classes et d'interfaces, l'import de modules, tout en conservant l'approche non contraignante
de JavaScript. Il supporte la spécification ECMAScript 6.
MongoDB
Nous allons utiliser un SGDB NoSQL à savoir MongoDB vu le nombre qui peut être
énorme des données dans la base de données, est un système de gestion de base de données
orienté documents, répartissable sur un nombre quelconque d'ordinateurs et ne nécessitant pas
de schéma prédéfini des données. Il fait partie de la mouvance NoSQL.
CSS
Les feuilles de styles (en anglais "Cascading Style Sheets", abrégé CSS) sont un langage
qui permet de gérer la présentation d'une page Web. Les styles permettent de définir des règles
appliquées à un ou plusieurs documents HTML. Ces règles portent sur le positionnement des
éléments, l'alignement, les polices de caractères, les couleurs, les marges et espacements, les
bordures, les images de fond, etc.
ReactJS
C’est une bibliothèque JavaScript libre développée par Facebook depuis 2013. Le but
principal de cette bibliothèque est de faciliter la création d'application 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.
54
Chapitre 3 : Étude Conceptuelle et architecturale
Node.JS
Express
Express.js est un Framework pour construire des applications web basées sur Node.js. C'est
de fait le Framework standard pour le développement de serveur en Node.js.
Jest
Créée et maintenu par Facebook en 2014, Jest, rendu open-source, est une librairie de test
JavaScript ayant énormément gagné en popularité depuis sa mise en libre circulation. Conçu
pour fonctionner aussi bien sur du JavaScript côté navigateur (frontend) que côté serveur
(backend), Jest a su convaincre par sa rapidité d’exécution des tests, son API complète et sa
facilité d’installation. Sa documentation complète et bien maintenue en fait la librairie la plus
populaire pour tous les différents tests js.
Vs code
Visual Studio Code est un éditeur de code extensible développé par Microsoft pour
Windows, Linux et macOS2. Les fonctionnalités incluent la prise en charge du débogage, la
mise en évidence de la syntaxe, la complétion intelligente du code, les snippets, la
refactorisation du code et Git intégrer. Les utilisateurs peuvent modifier le thème, les raccourcis
clavier, les préférences et installer des extensions qui ajoutent des fonctionnalités
supplémentaires.
55
Chapitre 3 : Étude Conceptuelle et architecturale
C’est un logiciel libre de gestion de versions décentralisé, créé par Linus Torvalds (le
créateur du noyau Linux), c’est un outil bas niveau, qui se veut simple et très performant, dont
la principale tâche est de gérer l’évolution du contenu d’une arborescence. Il fonctionne en
mode distribué avec un serveur distant.
JIRA
JIRA est un outil de gestion des projets en mode Agile, il est doté de fonctionnalités qui
visent à soutenir chacune des étapes des processus de développement de logiciels pour aider les
équipes de développement à planifier leurs projets.
56
Chapitre 3 : Étude Conceptuelle et architecturale
JSON Web Token (JWT) est un standard (RFC 7519) qui définit une solution compacte et
autonome pour transmettre de manière sécurisée des informations entre les applications en tant
qu’objet structuré au format JSON (JavaScript Object Notation). En raison de leur petite taille,
les JWT peuvent être envoyés via une URL, un paramètre POST ou dans un en-tête HTTP. De
plus, la plus petite taille signifie que la transmission est rapide. Le JWT contient toutes les
informations requises sur l’utilisateur, ce qui évite d’avoir à interroger la base de données plus
d’une fois pour connaitre le détail de l’identité d’un client authentifié. JWT est constitué de
trois parties séparées par un point «. » :
• Header (XXX)
• Payload (YYY)
• Signature (ZZZ)
Comme déjà mentionné, nous avons utilisé « JEST » pour établir les tests unitaires au
niveau de quelques API du Backend. Ces tests se focalisent sur les fonctions CRUD. Après
démarrage du test sur un API, donne un récapitulatif des résultats obtenus. Les figures suivantes
illustrent les tests unitaires faites dans ce stade.
57
Chapitre 3 : Étude Conceptuelle et architecturale
3.3 Conclusion
Ce chapitre présente une vue conceptuelle et technique de la solution à mettre en place. Il
expose les différents diagrammes UML pour mieux comprendre les fonctionnalités offertes et
pour mieux représenter la communication entre les différents objets du projet, Il expose aussi
l’environnement de développement, les outils et technologies utilisés dans le projet. Le chapitre
suivant, présente la partie mise en œuvre de l’application.
58
Chapitre 4
“ Ce chapitre est le fruit de tout le travail et toutes les étapes menées pour l’obtention
d’une application web et mobile qui aide les patients à trouver des Professional de sante dans
leur quartier. Afin de mettre en évidence le résultat de notre travail, nous présenterons un
59
Chapitre 4 : Mise en œuvre de la solution
L’une des étapes de la vie d’un projet, aussi importante que la conception, est
l’implémentation. Cette étape constitue la phase d’achèvement et d’aboutissement du projet.
L’objectif de cette partie est de donner un aperçu sur les différentes interfaces (IHMs) du
système développé, ainsi que les fonctionnalités offertes à l’utilisateur
60
Chapitre 4 : Mise en œuvre de la solution
Si le code de confirmation n'est pas envoyé ou que l'utilisateur a du mal à retrouver son
code, il peut renvoyer le code sur son téléphone après 1 min.
Si le code de validation est erroné, le système affiche une erreur et l'utilisateur ne peut pas
se connecter. Le patient a le droit de 5 essais et le code de vérification envoyé par le système
valable 5min sinon le système va demander de ressaisir le numéro de téléphone.
61
Chapitre 4 : Mise en œuvre de la solution
Si l'utilisateur clique sur un service, le système affiche la page des offres où l'utilisateur
peut consulter les offres de service avant d'en demander une.
62
Chapitre 4 : Mise en œuvre de la solution
Lorsque l'utilisateur clique sur le profil du fournisseur, une Pop-up s'affiche afin qu’il
puisse visualiser le profil du prestataire, sa disponibilité et les avis d'autres patients.
En fait, la page d’accueil est responsive aux différentes versions d’affichage (Mobile,
Tablet, …). La figure suivante est une illustration d’un mode d’affichage :
63
Chapitre 4 : Mise en œuvre de la solution
La page ci-dessous présente le profil de patient et les champs à remplir. Les champs
contiennent des informations obligatoires que l’utilisateur doit remplir pour que son profil soit
validé.
Le compte est considéré comme valide si le CIN est rempli et validé, et le compte est
considéré comme complet si tous les champs sont valides.
64
Chapitre 4 : Mise en œuvre de la solution
Si le compte est vérifié (100%), la barre de l’état de validation de compte ne s'affichera pas
pour ne pas déranger l'utilisateur.
Voici la partie où le patient peut ajouter des adresses pour l'utiliser lors d’une demande.
65
Chapitre 4 : Mise en œuvre de la solution
Voici le formulaire d’ajout d’une adresse. Chaque adresse doit contient la ville, le secteur
et l’adresse exacte.
En mode responsive :
66
Chapitre 4 : Mise en œuvre de la solution
La section « des demandes » de patient où le patient peut consulter les listes des demandes
terminées ou en cours de traitement. Chaque service s’affiche avec son prix, sa date et son mode
de paiement.
67
Chapitre 4 : Mise en œuvre de la solution
L’utilisateur peut ajouter des prestataires en favoris dans la Section « prestataires favoris ».
Après cette étape, l’utilisateur doit ajouter ou autoriser l’application à localiser son adresse.
68
Chapitre 4 : Mise en œuvre de la solution
Sur cette page, l'utilisateur peut contacter l'équipe WeKareYou pour toute question.
69
Chapitre 4 : Mise en œuvre de la solution
4.2.1 L’authentification
La figure ci-dessous représente la page d’accueil et la page de connexion de l’utilisateur à
travers son numéro de téléphone.
70
Chapitre 4 : Mise en œuvre de la solution
71
Chapitre 4 : Mise en œuvre de la solution
72
Chapitre 4 : Mise en œuvre de la solution
73
Chapitre 4 : Mise en œuvre de la solution
Contactez-nous :
4.3 Conclusion
Dans ce chapitre, nous avons présenté les interfaces graphiques de l'application et les
fonctionnalités de base de l'application à travers un ensemble de captures d'écran.
74
Conclusion générale & perspectives
Tout au long de la préparation de notre projet de fin d’études, nous avons essayé de mettre
en pratique les connaissances acquises durant nos études universitaires, pour répondre aux
objectifs de l’organisme d’accueil Wings Technologies qui sont la conception, l’intégration, le
déploiement et la réalisation d’une application web & mobile en deux versions Fr-Ar qui permet
l’intermédiation entre les professionnels de santé et les demandeurs de soins à domicile.
Dans ce cadre s’inscrit le présent travail où nous avons utilisé la méthodologie SCRUM pour
répondre aux objectifs.
En termes de perspectives, le projet dans sa version actuelle n’est pas encore achevé, nous
sommes actuellement en cours de finaliser les parties qui restent dans les deux espaces ; l’espace
prestataire sur la version mobile, et l’espace patient sur la version web du projet. Les prochaines
itérations porteront toujours sur le sujet d’amélioration de l’expérience utilisateur et de la mise
en œuvre de l’espace d’administrateur. En plus de cela, l'amélioration du processus de demande
de service afin qu'il soit beaucoup plus rapide, plus facile et personnalisable par l'utilisateur.
75
Conclusion générale
La base de tout ce projet est l’amélioration continue, la recherche constante et les corrections
de tous les processus de développement.
76
Webographie
[6] Tutoriel sur les diagrammes de séquences [En Ligne] Disponible sur :
@ https://www.lucidchart.com/pages/fr/tutoriel-sur-les-diagrammes-de-s%C3%A9quence ,
consulté en Avril 2021.
77