Académique Documents
Professionnel Documents
Culture Documents
Remerciements
En premier lieu, je voudrais remercier les membres de jury d’avoir accepté de juger
ce travail, tous mes respects et ma sincère reconnaissance.
Dédicaces
Toutes les lettres ne sauraient trouver les mots qu’il faut…
Je dédie ce travail
Aucune dédicace ne saurait exprimer mon respect, Mon amour éternel et ma considération pour les
sacrifices que vous avez consenti pour mon instruction et mon bien être. Je vous remercie pour tout le
soutien et l’amour que vous me portez et j’espère que votre bénédiction m’accompagne toujours.
Que ce modeste travail soit le fruit de vos innombrables sacrifices, Puisse Dieu, le Très Haut, vous
accorder santé, bonheur et longue vie et faire en sorte que jamais je ne vous déçoive.
Vous m’avez remonté le moral lorsque ma détermination flanchait, j’espère que vous appréciez le
fruit de tant d’effort.
Vous m’avez soutenu, réconforté et encouragé. Puissent nos liens fraternels se consolider et se
pérenniser encore plus.
J’aurais tant aimé que vous soyez présents. Que Dieu ait vos âmes dans sa sainte miséricorde
Je ne peux trouver les mots justes et sincères pour vous exprimer mon affection et mes pensées, vous
êtes pour moi des sœurs et des amies sur qui je peux compter. En témoignage de l’amitié qui nous unit et des
souvenirs de tous les moments que nous avons passés ensemble, je vous dédie ce travail et je vous souhaite
une vie pleine de santé et de bonheur.
A toutes les personnes qui ont participé à l’élaboration de ce travail à tous ceux que j’ai omis de citer
Table de matières
Introduction Générale ..................................................................................................1
Chapitre 1 : Contexte général ......................................................................................3
Introduction .............................................................................................................3
1. 2 Présentation de l’entreprise.........................................................................3
Conclusion ............................................................................................................ 13
Conclusion ............................................................................................................ 27
3.1.5 Rétrospective....................................................................................... 38
3.2.5 Rétrospective....................................................................................... 48
Conclusion ............................................................................................................ 48
Conclusion ............................................................................................................ 64
Introduction Générale
De nos jours, savoir gérer de plus en plus les informations, sous contrainte de délai, est
un défi important pour chaque entreprise. Pour relever de tels défis, plusieurs solutions ont été
proposées, la solution la plus intuitive sera de développer des applications autonomes dédiées
à chaque structure de l’entreprise. Cette solution peut être au départ satisfaisante, mais elle
perd vite son efficacité à long terme, ceci est due au besoin de partager l’information entre ces
différents structures. Pour pallier à ce problème, l’usage d’ERP (Entreprise Ressource
Planning), ou PGI (Progiciel de gestion intégré) en français est vite recommandé, car l’ERP
est capable d’intégrer tous les processus de gestion en un système d’information unique et
cohérent.
C’est dans ce contexte que la société Gpro Consulting propose de développer une
solution ERP pour les hôtels. En effet, notre projet consiste à adapter puis intégrer et
personnaliser cette solution pour permettre une gestion efficace des hôtels.
Ce rapport est composé par quatre chapitres délimitant le contour de notre projet dont
le premier présente le contexte général dans lequel nous exposons et analysons les techniques
qui peuvent servir le projet. Ensuite, dans le deuxième chapitre, nous analyserons les besoins
fonctionnels et non fonctionnels de notre application en présentant l’étude préalable du projet.
Le troisième chapitre et le quatrième sont le corps de notre rapport. Ces deux chapitres seront
consacrés pour le développement des deux releases de notre système en respectant les
principes fondamentaux de Scrum. Dans chacun d’eux, nous commençons par la spécification
du sprint, ensuit la phase conceptuelle qui sera matérialisée par l’élaboration des diagrammes
UML, puis nous présentons la phase d’implémentation par des interfaces de l’application et
des rétrospectives. Nous terminerons ce rapport par une conclusion sur l’apport du travail
réalisé et des perspectives futures.
Chapitre 1
Contexte Général
Introduction
Dans ce chapitre, nous allons présenter notre projet de fin d’étude. La première partie est
dédiée à la présentation de l’organisme d’accueil « Gpro Consulting » et leurs spécialités.
Dans la deuxième partie, nous nous focalisons sur le contexte général de notre projet, la
problématique qui nous amène à réaliser notre projet et on finit par une étude et une critique
de l’existant.
1. 2 Présentation de l’entreprise
L’entreprise d’accueil est « Gpro Consulting » est une société multi-facettes créée en
2015, elle permet d’effectuer un ensemble d’études et de consulting dans la mise en place des
systèmes d’informations, des logiciels de gestion industriel et du développement spécifique
adaptés aux besoins de ses clients.
GPRO Consulting est basée à Sousse et comporte une équipe dynamique, des
consultants et un large réseau de partenaires. Elle possède un service informatique de qualité
auprès des PME/PMI, à très forte valeur ajoutée misant sur l’innovation et l’expertise et qui
s’engage à garantir la satisfaction de ses clients.
L’entreprise fournit des solutions dans des domaines diversifier liés aux:
Infogérance,
1. 4 Etude de l’existant
Chaque année, plusieurs propriétaires des hôtels contactent les sociétés de logiciels pour
trouver un logiciel répondant à leurs besoins. L’exploration de ces interactions, nous permet
de dégager les solutions existantes sur le marché et de comprendre leurs fonctionnements. En
effet, nous avons fait une analyse des principales applications existantes qui vont être présenté
dans la partie suivante.
1.4.1 CloudHotelErp
C’est un logiciel complet de gestion hôtelière basé sur le Cloud qui est fiable, sécurisé et
permet aux hôteliers de gérer leurs opérations de n'importe où (voir figure 1). Les services
offerts par cette solution sont :
Un service de payement,
La gestion de stock.
L’IT Monteur Hôtel Management Software est un puissant logiciel de gestion hôtelière
et de réservation en ligne basé sur le Web pour gérer tous les types d'hôtels, appartements de
vacances ou chambres d'hôtes (voir figure 2). Les services présentent dans cette solution
sont :
Un panneau administratif :
o Le service de payement.
o Des statistiques.
1.4.3 HotelFriend
C’est une solution software de gestion des hôtels composé principalement d’un tableau de
bord de l’hôtel, une gestion de département et des employées, gestion des chambres et
réservations et un mobile application de life chat (voir figure 3). Les services présentent dans
cette solution sont :
Figure 3 : HOTELFREIND
Ergonomie
Tableau de bord
intelligent
D’après l’étude comparative faite dans le tableau 2, nous avons constaté que les solutions
existantes portent des insuffisances. Ces lacunes se voient surtout au niveau des services
clients et leurs interventions, vu que la plupart des applications citées ci-dessus se limitent
uniquement au système de gestion de différentes particularités de l’hôtel. Elles négligent la
partie d’intervention du client.
1. 6 Solution proposée
La société « Gpro Consulting » cherche toujours à moderniser la réalisation de ses projets,
en adoptant les dernières technologies afin de bien satisfaire ses clients. C’est dans ce cadre
que se propose notre projet, une solution ERP adaptée au secteur d’hôtellerie pour la gestion
de son système d’information.
Cette solution consiste alors à la mise en place d’une solution ERP destinée au secteur
d’hôtellerie qui permet de gérer les particularités d’un système d’information d’un hôtel et qui
permet de traiter toutes les opérations relatives aux managements hôteliers tels que les
opérations de réservation, d’accueil, d’hébergement et les différents services fournis pendant
le séjour afin d’améliorer la qualité du service client en un temps réel très réduit.
En effet, notre solution va remédier aux défaillances qui existent dans les solutions
présentées dans le tableau 2. Elle contient un module de notification en temps réel, une
extension mobile pour gérer les réclamations des clients au sein de l’hôtel et finalement, un
tableau de bord intelligent pour gérer les statistiques.
La figure 4 montre le pictogramme de notre solution, en fait il existe une application web
qui communique avec un serveur (Api Rest) via des requêtes http. Ce serveur Rest
communique avec le serveur de base de données pour renvoyer de réponse de type JSON. De
l'autre côté, on trouve une application mobile installée qui facilite aux clients la
communication avec l'administration de l'hôtel. En effet, nous trouvons des requêtes de
réclamation de type http qui sont envoyées au serveur qui les transmet vers le web et ceci se
faire en appelant le service FCM de Google pour notifier la partie web qu’une requête est
entrante.
D’après la figure 5, la méthodologie Scrum possédant trois points clés qui pourraient la
caractériser : les sprints (itérations) et leurs évènements, les 3 rôles clés (Product Owner, Equipe
de Développement et Scrum Master), le backlog avec des demandes fonctionnelles.
Elle est composé de :
Le Product Owner :
C’est un membre à part entière de l’équipe Scrum représentant des clients et
utilisateurs dans le cadre du projet. Il est en charge de la tenue du backlog produit.
Equipe de développement :
Transforme un besoin exprimé par le Product Owner en fonctionnalités utilisable.
L’équipe est responsable de délivrer à la fin de chaque sprint les items qui ont été priorisés
pour ce sprint.
Scrum Master (Maître de mêlée) :
C’est une personne qui maîtrise le Scrum et qui s’assure que ce dernier est
correctement appliqué. Il a un rôle de coach à la fois auprès du Product Owner et auprès de
l’équipe de développement.
Sprint :
C’est la durée des itérations appelées. Cette durée devra être la même pour l’ensemble
des sprints afin de maintenir un rythme régulier propice aux automatismes et pouvoir
construire des indicateurs de pilotage fiables. Un projet démarre généralement par ce qu’on
appelle souvent le « sprint 0 » dédié aux travaux préparatoires du projet.
Product Backlog:
Le Product Backlog est utilisé par le Product Owner. C’est une liste ordonnée des
exigences fonctionnelles et non fonctionnelles du produit.
La priorité des éléments est définie suivant quatre caractéristiques : leur valeur métier,
leur effort de réalisation, leur risque et la connaissance technique ou métier apportée par leur
mise en œuvre.
Sprint review (revue de sprint) :
À la fin de chaque sprint, l'équipe Scrum et le client se réunissent pour effectuer la
revue de sprint, ça duré maximal est de quatre heures. L'objectif de la revue de sprint est de
valider l'incrément de produit qui a été réalisé pendant le sprint.
Sprint Retrospective (Rétrospective du sprint) :
C’est une réunion faite par l’équipe Scrum. Elle a pour but l'adaptation aux
changements qui surviennent au cours du projet et l'amélioration continue du processus de
réalisation. L'objectif est d’inspecter l'itération précédente, afin de déterminer quels sont les
éléments du processus de développement qui ont bien fonctionné et ceux qui sont à améliorer.
Conclusion
Dans ce chapitre, nous avons présenté l’organisme d’accueil, par la suite nous avons
présenté le cadre général du projet et la problématique, puis nous avons étudié les
méthodologies de développement afin de dégager la méthodologie adaptée à notre projet.
Chapitre 2
Sprint 0 : Spécification des besoins
Chapitre 2 : Sprint 0
« Spécification des besoins »
Introduction
Dans ce chapitre, nous allons présenter dans la première partie l’existant afin de
dégager l’insuffisance du système actuelle. Dans une deuxième partie, nous allons présenter
les différentes parties de la méthodologie de développement Scrum adaptée dans notre projet
et on finit ce chapitre par les captures des besoins de différents types.
Cette section a pour objet de présenter les acteurs et leurs fonctionnalités à laquelle doit
répondre notre application.
On entend par acteur, un humain, une machine, ou un système qui ne fait pas partie de la
solution à réaliser mais qui participe au fonctionnement général de la solution par une
interaction.
Agent administratif : c’est la personne qui possède le privilège le plus haut degré, il
peut accéder à toutes les rubriques de l’application, il peut également gérer les
différentes particularités de l’hôtel.
Agent de réservation : c’est un acteur principal qui interagit avec notre application.
Cette personne est un agent de l’hôtel. Il peut accéder à l’application à travers son
login et mot de passe et gérer les modules propres à lui tels que la réservation, etc…
Client : c’est un acteur qui interagit avec notre application pour intervenir ou bien
pour réclamer une anomalie de sa chambre.
Les besoins fonctionnels d’une application sont ce que l’utilisateur attend en terme de
fonctionnalités, elles sont directement liés aux tâches à réaliser. Les principales
fonctionnalités de notre projet sont :
Connexion
Chaque hôtel est composé de plusieurs blocs, et chaque bloc est composé des chambres.
Une chambre est caractérisée par son type (individuel, couple, suite), une caractéristique de
vue (vue sur mer, vue normal), son QR code qui va être généré lors de la création de la
chambre et téléchargeable pour des futures utilisations.
Dans notre cas, un agent administratif est censé à gérer la liste des blocs et des chambres.
Gestion de réservation
Il s'agit d'une gestion simplifiée de réservation des chambres d'hôtel qu’elle se diffère
selon les critères. La réservation peut se faire à travers un agent de réservation.
Le module FrontOffice offre les options de sélection de bloc et de chambres ainsi que
le type de client (client, agence de voyage) et des dates. Il permet de créer des réservations,
modifier, chercher, consulter les réservations du jour et activer une réservation ou bien
l’annuler.
Il s’agit d’une saisie, diffusion et traitement des réclamations clients sur l’ensemble des
dispositifs de l’hôtel en temps réel et ceci à l’aide d’une application mobile.
Chaque chambre possède un QR code, le client peut réclamer une alerte ou une anomalie
en scannant le QR code et l’envoie d’une réclamation via son mobile. Un agent administratif
sera notifier de cette réclamation, il la traite et la valide.
Avec le module statistique, nous avons en temps réel le reflet exact de toutes activités :
réservations, réclamation, nombre de clients, etc.
L’application doit offrir un ensemble de fonctionnalités qui répondent à des besoins non
fonctionnels bien définis tels que :
La navigation doit être rapide, claire et pratique. La mise en page de l’application doit
faciliter le maximum de démarche à l’aide d’une représentation claire, il ne faut pas dépasser
3 ou 4 couleurs maximum. Les icones doit être les mêmes pour toute l’application. La page
doit être organisée selon les règles d’interface homme machine.
La convivialité
L’application doit fournir une interface conviviale et simple à utiliser pour tout type
d’utilisateur. Elle doit présenter un enchaînement logique entre les différents modules.
L’efficacité
la sécurité
L’application doit être sécurisée contre les attaques et les accès non autorisés. Elle doit
garantir à l’utilisateur connecté la confidentialité de ses données. La sécurité du système est
assurée par l’authentification avec un login et un mot de passe crypté qui est assuré par le
mécanisme du « Json Web Token ».
L'architecture Microservices est bien plus complexe que les systèmes classiques. En fait,
l'environnement se complexifie car il faut gérer et soutenir une multitude d'éléments en
mouvement [3].
Le backlog contient la liste de toutes les spécificités du projet, classées par importance. Il
faut garder que le backlog n’est jamais complet. Alors que le projet prend forme, de nouveaux
besoins apparaissent sans cesse, ce qui vous oblige à actualiser la liste. Le Product Owner est
le principal responsable de ce processus.
A partir du backlog, on va choisir les tâches qui doivent être complétées lors du premier
sprint. Puisque, les sprints sont limités dans le temps alors on va définir une durée qui soit
compatible avec le projet et l’équipe, mais chaque sprint ne doit pas dépasser un mois. Lors
de la planification du sprint, l’équipe définit les tâches et leur responsable.
Release 1 Release 2
sprint1 sprint 1
authentification scanner qr-code chambre
gestion des Blocs envoyer reclamation
gestion des chambres notifier administration
gérer reclamation
sprint2 sprint 2
gestion des clients et type des clients tableau de bord (BI)
gestion des reservations
service de mailing
Vue Fonctionnelle: défini les cas d’utilisation comme des ensembles des scénarios. Un
scénario représente une interaction entre un utilisateur et le système. Les diagrammes
de cette vue sont le diagramme de cas d’utilisation et le diagramme de package.
Vue Logique : décrit le système de façon statique et dynamique en termes de classe et
d’objets.
Vue de processus : décrit la synchronisation et les interactions entres les taches. Cette
vue présente le diagramme de séquence, le diagramme d’activité et le diagramme de
collaboration
Vue de composants : permet de visualiser l’organisation des composants, elle présente
les diagrammes de composants et diagramme de structure composite
Vue de déploiement : représente le système dans son environnement d'exécution.
Cette vue est fort utile pour l'installation et la maintenance régulière du système. Elle
présente le diagramme de déploiement
Dans notre projet, nous avons travaillé sur deux parties : une partie Back-end invisible
pour l’utilisateur de l’application où on trouve un serveur web et la base de données et une
partie Front-end qui contient des interfaces et des éléments que l’utilisateur peut interagir
avec eux.
En effet, nous allons faire une petite étude des langages de programmation pour bien
choisir notre environnement. Le graphe de la figure 9 représente une classification des
langages de programmation pour l’année 2019 [4].
Spring Boot :
C’est l’un des framework les plus répandus dans le monde Java : sa popularité a grandie
au profit de la complexité de Java EE notamment pour ses versions antérieures à la version 5
mais aussi grâce à la qualité et la richesse des fonctionnalités qu'il propose :
o un conteneur léger implémentant le design pattern IoC pour la gestion des objets et de
leurs dépendances en offrant des fonctionnalités avancées concernant la configuration
et l'injection automatique. Un de ses points forts est d'être non intrusif dans le code de
l'application tout en permettant l'assemblage d'objets faiblement couplés.
o une gestion des transactions par déclaration offrant une abstraction du gestionnaire de
transactions sous-jacent
o faciliter le développement des DAO de la couche de persistance en utilisant JDBC,
JPA, JDO ou une solution open source comme Hibernate, iBatis, ... et une hiérarchie
d'exceptions
o un support pour un usage interne à Spring (notamment dans les transactions) ou
personnalisé de l'AOP qui peut être mis en oeuvre avec Spring AOP pour les objets
gérés par le conteneur et/ou avec AspectJ
o faciliter la testabilité de l'application [5].
Spring Security :
Spring Security est un cadre qui vise à fournir à la fois l'authentification et l'autorisation
aux applications Java. Comme tous les projets Spring, la véritable puissance de Spring
Security réside dans sa facilité d'extension à des exigences personnalisées. Il est caracterisé
par :
Angular :
Angular est un Framework open source écrit en JavaScript qui permet la création
d’applications Web et plus particulièrement de ce qu’on appelle des « Single Page
Applications » : des applications web accessibles via une page web unique qui permet de
fluidifier l’expérience utilisateur et d’éviter les chargements de pages à chaque nouvelle
action. Le Framework est basé sur une architecture du type MVC et permet donc de séparer
les données, le visuel et les actions pour une meilleure gestion des responsabilités. Un type
d’architecture qui a largement fait ses preuves et qui permet une forte maintenabilité et une
amélioration du travail collaboratif.
Ionic :
Ionic Framework est une boîte à outils d'interface utilisateur mobile open source pour la
création d'expériences natives et d'applications Web multiplateformes de haute qualité.
Déplacez-vous plus rapidement avec une seule base de code, en cours d'exécution partout.
Ionic Framework est un mélange d’outils et de technos pour développer des applications
mobiles hybrides rapidement et facilement. Il s’appuie sur AngularJS pour la partie
application web du framework et sur Cordova pour la partie construction des applications
natives. Ce framework open source permet de développer une application déployable sur
plusieurs environnements tel qu’un site web ou une application mobile pour des systèmes tel
que Android ou iOS ou Windows Phone [8].
Bootstrap :
Bootstrap, un framework CSS, fait partie de ces outils qui accélèrent grandement un projet
web. Il étend les possibilités du langage CSS en ajoutant plein de fonctionnalités et de
composants. Je dirais plutôt, on peut avoir le même résultat que du CSS en utilisant seulement
Bootstrap. Même si c’est un framework CSS, il ajoute également un plus au HTML et au
Javascript. [9]
Postgresql :
FireBase :
C’est le nom d’une platforme mobile de Google qui permet de développer rapidement des
applications pour le web et pour le mobile
Firebase est un ensemble de services d'hébergement pour n'importe quel type d'application
(Android, iOS, Javascript, Node.js, Java, Unity, PHP, C++ ...). Il propose d'héberger en
NoSQL et en temps réel des bases de données, du contenu, de l'authentification sociale
(Google, Facebook, Twitter et Github), et des notifications, ou encore des services, tel que par
exemple un serveur de communication temps réel [12].
Swagger :
C’est un logiciel open source soutenu par un large écosystème d'outils qui aide les
développeurs à concevoir, construire, documenter et consommer des services Web RESTful .
Alors que la plupart des utilisateurs identifient Swagger par l'outil Swagger UI.
L'utilisation des outils open-source de Swagger peut être divisée en différents cas
d'utilisation: développement, interaction avec les API et documentation [13].
Nous avons utilisées pour notre projet plusieurs outils et logiciels tels que :
Gliffy diagram :
C’est un logiciel de création de diagrammes via une application cloud HTML5. Il est
utilisé pour créer des diagrammes UML et d’autres types de diagrammes en ligne. Les
diagrammes Gliffy peuvent être partagés et modifiés par les utilisateurs en temps réel.
IntelliJ IDEA :
C’est un éditeur de code source développé par Microsoft pour Windows, Linux et macOS.
Il inclut la prise en charge du débogage, du contrôle Git intégré et de GitHub, de la mise en
évidence de la syntaxe, de l'achèvement intelligent du code, des extraits de code et de la
refactorisation du code.
Conclusion
Dans ce chapitre, nous avons présenté les besoins fonctionnels de notre projet afin
d’avoir une vision et une démarche plus claire des tâches à réaliser.
Chapitre 3
Release 1 : Gestion d’hébergement
Introduction
L’objectif de ce chapitre est de fournir une version livrable de notre premier release
qui sera composée en des sprints, chaque sprint présente un ensemble de fonctionnalités à
traiter pour produire à la fin un incrément livrable.
Suite à une conversation entre le Product Owner et l’équipe Scrum, nous avons décidé
que le but du premier sprint est de réaliser le module d’authentification des utilisateurs et leurs
rôles et le module d’hébergement (gestion des blocs et des chambres). Une fois le but est
définit, il faut donc préciser les tâches du backlog du sprint.
Numéro Tâches
1 S’authentifier
2 Ajouter bloc
3 Ajouter chambre
4 Générer un qrcode chambre
5 Télécharger qrcode
6 Modifier chambre
7 Rechercher chambre
8 Mettre chambre hors service
Dans un sprint, on doit achever les quatre activités principales d’un projet : la
spécification fonctionnelle, la conception, le déploiement et le test.
Cette section présente une description textuelle des scénarios ainsi que le diagramme de
cas d’utilisation général.
Un cas d'utilisation est une unité cohérente représentant une fonctionnalité visible de
l'extérieur. Il réalise un service avec un déclenchement, un déroulement et une fin, pour
l'acteur qui l'initie.
Un cas d'utilisation modélise donc un service rendu par le système, sans imposer le
mode de réalisation de ce service.
Pour que notre diagramme soit plus clair, nous avons proposé une description textuelle
de quelques cas d’utilisation. Le tableau 6 présente une description détaillée du cas
d’utilisation « ajouter chambre ».
Pour ajouter une nouvelle chambre, il faut accéder à la liste des chambres et cliquer sur le
bouton d’ajout, dans ce cas le système affiche le formulaire d’ajout.
L’utilisateur doit remplir les champs de données en choisissant le bloc ou on veut ajouter
cette chambre. Après la saisie des données, l’utilisateur clique sur le bouton qui permet de
générer un QR code, le système se charge de crypter les données pour générer et afficher le
QR code, puis l’utilisateur peut télécharger le code pour des futures utilisations et à la fin il
enregistre les données.
Si les champs sont valides, le serveur envoie une requête à la base de données qui se
charge d’enregistrer les données et renvoie un résultat de succès.
Le but de la revue est de présenter le travail réalisé pendant le sprint 1. A travers cette
section, nous allons présenter des interfaces administratives réalisées dans ce Sprint.
La figure 15 montre la liste des blocs existants, le bouton en haut « ajouter bloc »
permet d’ajouter un nouveau bloc, chaque bloc contient un bouton pour afficher la liste des
chambres propres à lui.
Le tableau des chambres montre deux types de lignes, la ligne en blanc c’est une
chambre vide c’est à dire une chambre non réservée qu’on peut la modifier ou la mettre hors
service. La ligne en gris c’est une chambre réservée qu’on ne peut pas ni la modifier ni la
mettre hors service sauf si quelle rentre à son état non réservé.
Pour ajouter une chambre, on peut accéder à cette interface pour remplir les champs
des données et créer un code et le télécharger.
3.1.5 Rétrospective
Dans cette partie, nous allons citer les différentes rétrospectives dégagées par le Product
Owner.
Authentification
Ajouter Bloque
CRUD chambre
Création de QR Code
Téléchargement du QR Code
Trouver les chambres par Bloc avec un état de réservation
Numéro Tâches
1 Récupérer les chambres non réservées
Récupérer les types des clients
2 Gérer Réservation (réserver, consulter, modifier,
chercher)
3 Envoyer email au client concerné
4 Gérer clients (modifier, chercher)
5 Récupérer les réservation du jour
6 Activer réservation
Dans cette section, nous avons présenté le diagramme de cas d’utilisation du sprint 2
présenté par la figure suivante.
Dans cette section, nous allons présenter quelques descriptions textuelles de quelques
cas d’utilisation.
Afin de réserver une chambre, l’agent administratif doit se connecter tout d’abord puis il
demande d’ajouter une réservation, dans ce cas le système se charge de récupérer les
chambres non réservées ainsi que les types des clients de sa base de données, le formulaire
d’ajout est donc affiché, l’utilisateur remplit les champs et les envoie. Avec l’ajout de la
réservation, un email qui contient un login et un mot de passe, est envoyé au client concerné
pour qu’il puisse accéder à son espace personnel depuis une application mobile tout au long
de sa période d’hébergement. Si la réservation est effectuée, un message de succès est affiche
à l’utilisateur.
Pour modifier les données d’un client, l’utilisateur demande la liste des clients, la liste
sera affichée depuis le système. Dans ce cas, l’utilisateur cherche le client qu’il veut pour le
modifier, le système lui affiche le formulaire de modification, il faire les modifications
désirées et l’enregistre. Une requête d’enregistrement sera traitée et un message de succès est
affiché.
Le but cette section est de montrer le travail réalisé pendant le sprint 2. Les figures ci-
dessous présentes des interfaces administratives produites dans ce sprint.
Pour afficher les réservations du jour, nous pouvons accéder à cette liste en cliquant sur le
bouton « les réservation du jour » ou on peut activer une réservation dans le cas où le client
est présent.
Pour ajouter une nouvelle réservation, on peut accéder au formulaire de la figure suivante,
l’enregistrement de ce formulaire créer à la fois une nouvelle réservation et un nouveau client.
3.2.5 Rétrospective
Dans cette partie, nous allons va citer les différentes rétrospectives dégagées par le
Product Owner,
CRUD Réservation
CRUD client
Service de mailing
Activer Réservation
Trouver les réservations de chaque jour
Ajouter type_client
Conclusion
Chapitre IV
Release 2 : Gestion des Réclamations
Introduction
Une méthodologie Scrum est caractérisée par son rythme régulier, c’est pourquoi nous
pouvons lancer le deuxième release. Durant ce chapitre, nous avons deux sprints à traiter pour
avoir à la fin notre solution complète.
Numéro Tâches
1 Authentification
2 Scanner le qr_code de la
chambre
3 Envoyer une réclamation
4 Lister les réclamations et traiter
les réclamations
5 Recevoir une notification
Nous pouvons traduire les spécifications fonctionnelles de notre sprint à l’aide d’un
diagramme du cas d’utilisation et des descriptions textuelles.
Les fonctionnalités relatives dans ce sprint vont être reparties suivant deux acteurs, un
client et un agent administratif.
Scénario Alternatif
E1 : Erreur de connexion
E2 : Aucune réclamation
Dans cette section, nous allons présenter quelques interfaces réalisées durant ce sprint.
Lors d’une réservation, un client reçoit un login et un mot de passe via son email d’où il
peut accéder à l’application mobile pour intervenir en cas de réclamation.
Après avoir connecté, une interface d’accueil est affichée pour scanner un QR code de la
chambre et envoyer une réclamation.
Pour gérer la notification dans notre application, nous avons utilisé le service de Google
FCM (Firebase Cloud Messenging).
Une notification push est un message envoyé à l’utilisateur, ce message est lié à une
application installée. L’avantage de la notification push c’est que le message est reçu par
l’utilisateur même si l’application est fermée.
Pour bénéficier d’un service FCM, il faut tout d’abord enregistrer les appareils pour
recevoir des messages de FCM. Une instance d'une application cliente s'inscrit pour recevoir
3. Transmission du TOKEN au serveur d’envoi qui va être stocké (ou rafraîchi) dans
une base de données,
Le but de cette revue est de montrer ce qui a été réalisé pendant le sprint 2 du deuxième
release. Cette partie présente un tableau de bord qui montre quelques statistiques de notre
projet. La figure 31 représente un exemple de ce qui a été réalisé, elle est composée en quatre
parties :
Figure 31 : Le rapport BI
Power BI comprend :
Ces trois éléments sont conçus pour permettre de créer, partager et utiliser des
informations de la manière qui sert le mieux.
Un quatrième élément, Power BI Report Server, nous permet de publier des rapports
Power BI sur un serveur de rapports local, après les avoir créés dans Power BI Desktop [14].
Power BI Report Server est une solution qui permet de déployer derrière nos pare-feu,
puis remettre nos rapports aux bons utilisateurs de différentes manières, que ce soit en les
consultant dans un navigateur Web, sur un appareil mobile ou sous forme d’email
Par exemple, on peut utiliser principalement le service Power BI pour voir des rapports et
des tableaux de bord. En revanche, il est préférable d’utiliser Power BI Desktop pour créer
des rapports, avant de les publier sur le service Power BI, où on peut ensuite les consulter. De
l’autre côté, on peut utiliser principalement l’application mobile Power BI pour superviser
l’évolution des ventes et examiner en détail les nouveaux prospects [14].
Power BI se compose de certains composants clés qui peuvent également être appelés ses
blocs de construction. Les cinq composants clés de Power BI sont les visualisations, les jeux
de données, les rapports, les tableaux de bord et les tuiles.
Visualisations : La visualisation est la manière graphique de représenter les
données. Power BI offre une large gamme de visualisations attrayantes. Nous pouvons
créer des rapports et des tableaux de bord à l'aide de visualisations simples ou
complexes selon nos besoins. De cette façon, nous représentons graphiquement notre
ensemble de données avec des graphiques, des tableaux et des cartes. Il existe
La plupart des concepteurs de rapports qui travaillent sur des projets d’informatique
décisionnelle utilisent Power BI Desktop pour créer des rapports, puis le service
Power BI pour les distribuer à d’autres personnes.
L’utilisation du service Power BI se fait de la manière suivante, une fois que les rapports
sont créer et enregistrer dans un espace de travail dans le service Power BI, là où vos
collègues peuvent collaborer. Vous générez des tableaux de bord qui s’appuient sur ces
rapports. Vous partagez ensuite ces tableaux de bord et ces rapports avec des consommateurs
de rapports internes et externes à votre organisation. Les consommateurs de vos rapports les
consultent dans le service Power BI en mode Lecture, et non en mode Édition. Ils n’ont pas
accès à toutes les fonctionnalités disponibles pour les auteurs de rapports. Vous pouvez
également partager vos jeux de données et permettre à d’autres utilisateurs de générer leurs
propres rapports à partir de ceux-ci [15].
Conclusion
Dans ce dernier chapitre, nous avons présenté les deux derniers sprints de notre
application pour arriver à un produit complet et fonctionnel.
Conclusion générale
Pour mettre en œuvre ce projet ERP, nous nous sommes basés sur une étude profonde
sur les différentes solutions existantes dans le domaine d’hôtellerie. Afin de développer notre
solution, qui répond aux exigences des hôtels, nous avons entamé une partie d’analyse afin de
ressortir les besoins des utilisateurs. C’est une étape très importante pour la réussite de tout
projet. C’est pour cela, que nous avons consacré une période importante afin de bien travailler
la spécification et l’analyse des besoins.
Le stage que nous avons effectué au sein de l’entreprise GPRO Consulting est une
occasion pour nous découvrir le monde professionnel, celui de l’entreprise et particulièrement
celui des ERP. En effet, ce projet nous a permis de mettre en pratique les étapes d’un cycle de
vie d’un projet et nous facilite l’intégration dans le domaine professionnel et dans le travail en
groupe.
Enfin, bien que les objectifs fixés au départ aient été atteints et bien que notre travail
offre plusieurs avantages à l'utilisateur, le projet reste extensible et évolutif et les perspectives
d'amélioration et de développement de ce travail restent multiples. En effet, nous envisageons
d’ajouter des nouvelles fonctionnalités avancées telles que l’intégration d’un module de
facturation et le payement en ligne.
Bibliographie
[3] https://cloud.kapostcontent.net/pub/93f35b9e-ca51-4fc9-8958-ad7cc5ccc289/how-to-
build-and-scal e-with-microservices-french.pdf
[4] https://www.developpez.com/actu/227875/Les-tendances-des-developpeurs-pour-2019-
font-du-Machine-Learning-la-competence-cle-et-du-JavaScript-le-langage-le-plus-populaire-
selon-un-rapport/
[5] https://www.jmdoudoux.fr/java/dej/chap-spring.htm
[6] https://spring.io/projects/spring-security
[7] https://monpetitdev.fr
[8] https://ionicframework.com
[9] https://algocool.fr/bootstrap
[10] https://www.oracle.com/fr/database/definition-postgresql.html
[11] https://www.lebigdata.fr/business-intelligence-definition
[12] https://fr.wikipedia.org/wiki/Firebase
[13] https://en.wikipedia.org/wiki/Swagger_(software)
[14] https://docs.microsoft.com/fr-fr/power-bi/fundamentals/power-bi-overview
[15] https://docs.microsoft.com/fr-fr/power-bi/fundamentals/service-service-vs-desktop