<

webmaster

Creation d un site web

Etude Conception

Dans cette section, est réservée à la présentation des outils logiciels nécessaires à la mise en place e l'application. Ensuite, il sera nécessaire de détailler les différents diagrammes utiliser pour modéliser notre application.

  1. Méthodes et outils de modélisation

1.1. Langage de modélisation (UML)
Pour la conception de notre système nous avons adopté une méthode orientée objet. En effet cette dernière est une approche incontournable dans le cadre du développement des applications. 
Pour mieux présenter l’architecture de notre système, on va choisir le langage de modélisation le plus adopté UML:
C'est un langage de modélisation, défini comme une norme de modélisation objet qui sert à décrire et à documenter un système d'information.
En utilisant ce langage, les objectifs de la modélisation objet suivant sont assurés :

  • Formaliser la conception d’application.
  • Faciliter la communication entre les différents intervenants au sein d’un projet informatique.
  • Coordonner les activités entre les différents intervenants.
  • Gérer l’évolution d’un projet informatique.
  • Proposer des outils standardisés prenant en compte de nombreux aspects de la conception.

1.2.  L’outil de modélisation
StarUML est un logiciel de modélisation UML, cédé comme open source par son éditeur, à la fin de son exploitation commerciale, sous une licence modifiée de GNU GPL.
StarUML gère la plupart des diagrammes spécifiés dans la norme UML 2.0, il est écrit en Delphi, et dépend de composants Delphi propriétaires.

1.3. Identification des acteurs et des cas d’utilisation 
Les acteurs sont les entités externes qui interagissent directement avec le système et communiquent avec ce dernier par émission et réception de messages
Les acteurs et les cas d’utilisation sont résumés dans le tableau suivant :

cas d'utilisation

acteur

Gérer les rendez-vous

Médecin

Consulter les statistiques

Gérer l’horaire de travail

Gérer les dossiers patients

Uploader CIN

Chercher médecin

Patient 

Consulter l’historique des rendez-vous

Prendre un rendez-vous

Consulter l’état des RDV

Gérer les spécialités

Administrateur 

Vérifier les médecins

Gérer le profil

Médecin, Patient

Tableau 2:Identification des acteurs et des cas d'utilisations

  1. Diagrammes de cas d’utilisation

Un diagramme de cas d’utilisation est un graphe d’acteurs, un ensemble de cas d’utilisation englobés par la limite du système, des relations de communication entre les acteurs et les cas d’utilisation, et des généralisations de ces cas d’utilisation.
2.1. Diagramme de cas d’utilisation de l'administrateur
L’administrateur du système peut gérer les spécialités, en ajoutant une nouvelle spécialité ou/et en modifiant une qui existe déjà.
De plus l’administrateur est le seul qui a le droit d’accepter ou rejeter un médecin. 
En effet, après la vérification de la carte d’identité envoyée par le médecin, l’administrateur a la possibilité de valider ou bien de refuser l’inscription de ce dernier. 
img1
Figure : Diagramme de cas d'utilisation de l’administrateur

2.2.1. Description du cas d’utilisation gestion des spécialités


Cas d’utilisation

Gestion des spécialités 

Résumé

L’administrateur peut gérer les spécialités qui existent dans le système :
il peut ajouter ou modifier une spécialité. 

Acteurs

Administrateur 

Scénario nominale

1.1.       L’administrateur saisie le nom de spécialité 
1.2.       Le système vérifie l’information saisie
1.3.        Le système enregistre la spécialité 
1.4.       L’administrateur reçoit un message de succès
2.1          L’administrateur choisie une spécialité
2.2         L’administrateur change le nom de la spécialité 
2.3         Le système enregistre le nouveau nom
2.4         L’administrateur reçoit un message de succès

Scénario d’erreur

1.1.1. L’administrateur saisie un nom d’une spécialité existante 
1.1.2. L’administrateur ne saisit rien 
2.1.      L’administrateur ne choisit aucune spécialité
2.2.       L’administrateur saisie un nom d’une spécialité existante 

Précondition 

Administrateur authentifié 

Post condition 

  • Spécialité ajoutée 
  • Spécialité mis à jour

Tableau : Description du cas d’utilisation Gestion des spécialités

2.2. Diagramme de cas d'utilisation du patient
img2 
Figure : Diagramme de cas d'utilisation du patient
Pour pouvoir accéder aux différentes fonctionnalités de l’application, le patient doit se connecter s’il possède déjà un compte, sinon il doit créer un compte.
Un patient peut chercher un médecin directement à partir de la carte où chaque médecin enregistré dans le système a un marqueur, de plus il peut chercher un médecin par son nom ou par sa spécialité.
Une fois le médecin a été sélectionné, le patient peut prendre un rendez-vous selon la disponibilité du médecin.
Après avoir pris un rendez-vous, le patient peut consulter la liste de ses rendez-vous (acceptés, refusés et en attente). Tant que le rendez-vous est encore en attente, le patient a la possibilité de l’annuler.
Le patient peut aussi changer les informations de son compte.
Si un rendez-vous a été accepté par le médecin et le patient rate la consultation plusieurs fois son compte sera supprimé.  

2.3.1. Description du cas d’utilisation de prise de rendez-vous


Cas d’utilisation

prendre rendez-vous

Résumé

Ce cas permet au patient de prendre un rendez-vous avec un médecin 

Acteurs

Patient

Scénario nominale

  • Le patient sélectionne la date du rendez-vous 
  • Le patient sélectionne l’heure du rendez-vous
  • Le système vérifie la disponibilité du médecin
  • Le rendez-vous est enregistré dans la base de données

Scénario d’erreur

  • Le patient décide de quitter l’interface de sélection de la date
  • Le patient décide de quitter l’interface de sélection de l’heure
  • La date ne correspond pas à la disponibilité du médecin

Précondition 

Choisir un médecin
Être authentifié

Post condition 

Le rendez-vous enregistré 

 Tableau 4: description du cas d’utilisation de prise de rendez-vous

2.3.2. Description du cas d’utilisation de recherche de médecin


Cas d’utilisations

Chercher un médecin

Résumé

Ce cas permet au patient de chercher un médecin

Acteurs

Patient 

Scénario nominale

1.1.1 Le patient choisit un médecin sur la carte
1.1.2. Le système affiche le profil du médecin
1.2.1. Le patient choisit une spécialité
1.2.2. Le système cherche tous les médecins avec la spécialité choisie 

 

1.2.3. Le patient choisit un médecin de la liste
1.2.4. Le système affiche le profil du médecin sélectionné 
1.3.1. Le patient saisit le nom du médecin
1.3.2. Le système cherche tous les médecins avec ce nom
1.3.3. Le patient choisit un médecin de la liste
1.4.4. Le système affiche le profil du médecin

Scénario d’erreur

1.2.1. Le patient ne choisit aucune spécialité
1.2.3. Le patient ne choisit aucun médecin
1.3.1.1. Le patient saisie un nom erroné
1.3.1.2. Le patient ne saisit aucun nom 
1.3.3. Le patient ne choisit aucun médecin

Précondition 

Patient authentifié 

Post condition 

Profil de médecin affiché

Tableau 5: description du cas d’utilisation de recherche de médecin

2.3.3. Description du cas d’utilisation de création du compte patient


Cas d’utilisation

Création du compte patient (application android)

Résumé

Ce cas permet au patient de créer un compte 

Acteurs

Patient 

Scénario nominale

  • Le patient saisie les données
  • Le système reçoit les données saisies
  • Si les données sont valides un jeton de sécurité sera créé
  • Le système enregistre les informations dans la base de données
  • Le système envoie le jeton de sécurité au patient
  • Le patient sera redirigé à l’interface d’accueil   

Scénario d’erreur

2. Le patient saisit des données erronées

  • Le système envoie un message d’erreur au patient
  • Le patient sera redirigé à l’interface de création du compte   

Précondition 

-

Post condition 

Compte crée 

Tableau 6: description de cas de création du compte patient

2.3. Diagramme de cas d'utilisation du médecin
img3 
Figure 7: Diagramme de cas d'utilisation du médecin
Le médecin dans le système peut gérer ses disponibilités, il peut ajouter ou modifier ses jours et heure de travail.
De plus, le médecin peut accepter ou refuser un rendez-vous.
Si un rendez-vous est accepté, le médecin peut gérer le dossier du patient: il peut ajouter une ordonnance, ajouter une observation ou télécharger une fiche médicale.
Le médecin peut aussi consulter les statistiques des rendez-vous. 
  

3.  Etude de quelques diagrammes des séquences 

3.1. Diagramme de séquence de prise de rendez-vous 
img4 
Figure 8: Diagramme de séquence prendre rendez-vous
Pour prendre un rendez-vous, le patient sélectionne la date et l’heure du rendez-vous souhaité. Après la vérification de la disponibilité du médecin, le rendez-vous est enregistré dans la base de données et un message de confirmation s’affiche au patient. Si la date et/ou l’heure sélectionnée ne correspondent pas à la disponibilité du médecin, le système envoie un message d’erreur au patient pour lui informer que son rendez-vous n’a pas été enregistré et lui demande de choisir une autre date. 

3.2. Diagramme de séquence de recherche du médecin
img5 
Figure 9: Diagramme de séquence de recherche du médecin
Le patient peut chercher un médecin par son nom, sa spécialité ou par sa localisation sur la carte. La localisation des médecins sur la carte est disponible en deux modes : terrain et satellite.  
Le patient peut choisir celui qui lui convient le mieux, c’est une fonctionnalité gérée par l’API de Google adaptée pour un usage facile et rapide. 
Le patient peut choisir un médecin directement en cliquant sur son marqueur sur la carte. Pour chercher un médecin par spécialité, il suffit de choisir une des spécialités existantes dans la base de données et le système affiche la liste des médecins de cette spécialité.
En plus, le patient a la possibilité de chercher un médecin par son nom. Pour cela,  il suffit de saisir un nom et le système affiche la liste des médecins avec ce nom.

3.3 Diagramme de séquence de création du compte patient
img6 
Figure 10: Diagramme de séquence de création du compte patient
Pour accéder à l’application, le patient doit avoir un compte.
 Pour crée un compte, le patient doit saisir les informations demandées correctement puis le système vérifie ces informations et si n’a pas des erreurs le compte sera créé et les informations seront enregistrées dans la base de données.

 

 

3.4 Diagramme de séquence de l’administrateur
img7 
Figure 11: diagramme de séquence de l'administrateur
Une fois authentifié, l’administrateur a le droit de gérer les spécialités :

  • Il peut consulter la liste de toutes les spécialités existantes dans la base de données
  • Il peut ajouter une nouvelle spécialité 
  • Il peut modifier une spécialité qui existe déjà. 

De plus, l’administrateur peut consulter la liste des médecins. Si le compte du médecin est inactif, il vérifie la copie de la carte d’identité nationale envoyée par ce dernier. Suite à cette vérification, il peut soit activer le compte du médecin soit annuler son inscription.
L’administrateur de système peut changer son mot de passe. 

4. Diagramme de classes
Le diagramme de classes est un schéma utilisé en génie logiciel pour présenter les classes et les interfaces des systèmes ainsi que les différentes relations entre celles-ci. Ce diagramme fait partie de la partie statique d'UML car il fait abstraction des aspects temporels et dynamiques.
Dans notre diagramme de classes on a trois classes (administrateur, médecin et patient) qui hérite d’une classe mère nommé utilisateur.
Un patient peut prendre un rendez-vous avec un médecin, et ce dernier peut accepter ou refuser le rendez-vous selon son horaire de travail, si le rendez-vous est accepté il faut avoir un dossier patient qui contient les observations et les ordonnances de rendez-vous.
Un médecin admet une spécialité gérée par l’administrateur du système.
L’administrateur valide le compte d’un médecin après la vérification de sa carte d’identité nationale.    
 
img8 
Figure 12: Diagramme de classes

5.  Schéma de la base de données
Nous avons utilisé le système de gestion de base de données relationnel MySQL pour enregistrer les tables de notre système.
 Nous avons choisi ce SGBD vu qu’il est très léger et simple à utiliser et configurer, de plus il est open source et tous les hébergeurs web le fournie avec leurs packs d’hébergement. 
La figure ci-dessous montre les relations entre les différentes tables de notre système.
 
img9 
Figure 14: Schéma relationnel de la base de données
 

6. Conception architecturale
Le pattern modèle-vue-contrôleur(en abrégé MVC, de l'anglais model-view-controller), est un modèle destiné à répondre aux besoins des applications interactives en séparant les problématiques liées aux différents composants au sein de leur architecture respective.
Ses avantages :

  • Séparation des compétences (design, base de données, application)
  • Simplicité de mise à jour
  • Vitesse de création de pages.

Ce paradigme regroupe les fonctions nécessaires en trois catégories :

  • Un modèle (Modèle de données) ;
  • Une vue (présentation, interface utilisateur) ;
  • Un contrôleur (logique de contrôle, gestion des événements, synchronisation).

Nous expliquons ces trois parties l'une après l'autre :

  • Le modèle (ou Model) :

Le modèle représente les structures de données. Typiquement, les classes modèles contiennent des fonctions qui aident à récupérer, à insérer et à mettre à jour des informations de la base de données.
Par exemple, lorsque nous disons« le contrôleur récupère les données d’un outil», il va en fait, faire appel au modèle Outil (« Tool »). C'est le modèle qui peut récupérer les données de cet outil, généralement via une requête au serveur SQL. Au final, il permet au contrôleur de manipuler les outils mais sans savoir comment ils sont stockés, gérés, etc. C'est une couche d'abstraction.

  • La vue (ou View) :

La vue correspond à l'interface avec laquelle l'utilisateur interagit. Elle se présente sous la forme d'une Template représentant l'interface.
Reprenons l'exemple de l’outil. Ce n'est pas le contrôleur qui affiche le formulaire, il ne fait qu'appeler la bonne vue. Si nous avons une vue formulaire, les balises HTML du formulaire d'édition de l’outil y seront et finalement le contrôleur ne fera qu'afficher cette vue sans savoir vraiment ce qu'il y a dedans.
Donc en pratique, c'est le « designer » d'un projet qui travaille sur les vues. La séparation de vues et contrôleurs permet aux designers et aux développeurs PHP de travailler ensemble sans besoin de contact direct.

  • Le contrôleur (ou Controller) :

Il gère l'interface entre le modèle et le client. Il va interpréter la requête de ce dernier pour lui envoyer la vue correspondante. Il effectue la synchronisation entre le modèle et les vues.
Il est la couche qui se charge d'analyser et de traiter la requête de l'utilisateur. Le contrôleur contient la logique de notre application et va se contenter « d'utiliser » les autres composants : les modèles et les vues. Concrètement, un contrôleur va récupérer, par exemple, les informations sur l'utilisateur courant, vérifier qu'il a le droit de modifier un tel outil, récupérer les données de cet outil et demander la page du formulaire d'édition de l’outil.
img10
Figure 15: Pattern MVC

7. Charte graphique 
7.1.  Le logotype 
7.1.1. Les données colo-métriques :

  • Le logotype apparaît toujours avec le texte, qui se compose du nom « Allo Doc» (référence typo :Rakoon Medium ).
  • Le logotype se compose de 3 couleurs et une valeur, il se compose de trois nuances de colure bleu. 

img11
figure : les 3 nuance de bleu dans le logo

Le bleu symbolise la relaxation, la confiance, la fiabilité,  la satisfaction, le calme, la passivité, la propreté c’est pour quoi on a utilisé ce colleur pour notre logo.

8. Prototypes d’interface
Dans cette section nous listons quelques prototypes d’interfaces de notre système.
img12 
Figure 17: Prototype d’interface d'accueil
La figure ci-dessus montre le prototype d’interface d’accueil de l’application du médecin.
Dans cette interface nous trouvons un calendrier qui contient les rendez-vous acceptés et des liens vers la page de statistiques et la page de gestion des rendez-vous.
La figure ci-dessous montre le prototype du page d’inscription dans l’application web, cette interface est très importante car elle est la première interaction du médecin avec notre système, alors nous choisissons une interface très simple qui contient quelques champs de texte à remplir par des informations du médecin comme son nom, son prénom, son email, son mot de passe, son prix de visite …
Cette interface doit être anti-spam alors nous aurons mis un système de vérification de type ReCAPTCHA pour éliminer les inscriptions des rebout.
Pour compléter l’inscription, le médecin doit accepter les termes d’utilisation du système. 
img13 
Figure : prototype d'interface d'inscription

par David Matjaba