24/25
SCRUM
FLIGHT
AIRELINES
Etude préalable
Réalisé par :
Mohamed OUNISSI
Ranim BEN ARBIA
Ameni LALLAHEM
Siwar BOUMAIZA
Yassine LOGTARI
Emna ZAYANI
Safé SELMI
ETUDE PREALABLE
Description
notre projet consiste à
concevoir et developper une
plateforme en ligne spécialisée
dans la recherche et la
comparaison de prix pour des
voyages. trouver les meilleures
offres sur les vols. agit FLIGHT
AIRELINES facilite la
comparaison des prix et des
options disponibles en un seul
endroit.
SCRUM
Etude préalable
Problèmatique
Les utilisateurs, face à la multitude de sites de voyage et d'agences en ligne,
se retrouvent souvent noyés dans un flot d'informations et de prix
contradictoires pour des vols similaires. Cela rend la recherche des
meilleures offres complexes, d'autant plus que les prix des billets d'avion
fluctuent fréquemment en fonction de divers facteurs (comme la date
d'achat, la saison, les promotions temporaires).
Par ailleurs, la transparence des prix n'est pas toujours claire, ce qui
conduit à des frais cachés non pris en compte dans les comparaisons
initiales.
Solution
La solution proposée consiste à développer une plateforme en ligne
spécialisée dans la recherche et la comparaison de prix de vols,
centralisant les offres de plusieurs compagnies aériennes et agences de
voyage pour simplifier la recherche des meilleures offres.
La plateforme affichera les prix de manière transparente, incluant tous les
frais supplémentaires dès le départ, et permettra aux utilisateurs de
personnaliser leurs recherches avec des filtres avancés. Elle proposera
également des alertes de prix pour suivre les fluctuations et garantir une
expérience utilisateur fluide, avec la possibilité de réserver directement.
SCRUM
Etude préalable
Environnement de travail
1. Environnement matériel
Propriété PC 1 PC 2
Propriétaire dev (frontend) dev (backend)
Marque HP ACER
Processeur i3 intel i5 9400h
RAM 12 gb 16 gb
2. Environnement logiciel
a) Outils de développement
Outil de test :
Postman : Logiciel de test d’API
Environnement de développement intégré :
Visual Studio Code : Éditeur de code léger, extensible et open source développé par
Microsoft supportant un très grand nombre de langages grâce à des extensions.
SCRUM
Etude préalable
b) Gestion de projet
Trello : Outil de gestion de projet basé sur Kanban utilisé pour organiser les tâches,
suivre l’avancement et collaborer avec l’équipe
Jira : Outil de gestion de projet offrant des fonctionnalités avancées pour le suivi des
bugs et des sprints
c) Base de données
MongodDB : Base de données NoSQL pour stocker les données sous forme de
documents JSON, utilisée pour la persistance des données dans l'application.
d) Développement web
Développement Backend
NodeJS : Environnement d'exécution JavaScript côté serveur permettant de créer des
applications backend avec [Link].
ExpressJS : Framework web pour [Link], facilitant la création d’API RESTful et la
gestion des requêtes HTTP.
Développement frontend
ReactJS : Bibliothèque JavaScript pour construire des interfaces utilisateur
dynamiques, facilitant le développement de composants réutilisables.
e) Conception
[Link] : un outil en ligne qui permet de créer facilement des diagrammes variés, tels
que des organigrammes, des diagrammes UML
SCRUM
Etude préalable
Etude de la concurrence
Identification des concurrents directs et indirects
Concurrents directs :
Ce sont des plateformes qui offrent des services similaires, c’est-à-
dire des comparateurs de prix pour des vols.
Exemples :
Kayak : Moteur de recherche de voyages qui compare les prix
des vols, hôtels et voitures.
Google Flights : Outil gratuit pour rechercher et comparer les
vols.
Momondo : Plateforme de comparaison de prix axée sur les vols,
avec des filtres détaillés et des options de voyage flexible pour
aider à trouver des offres économiques.
Concurrents indirects :
Ce sont des plateformes qui proposent des services similaires ou
liés, mais qui ne se concentrent pas exclusivement sur les vols.
Exemples :
[Link] : Bien que principalement axé sur les réservations
d’hôtels, ils offrent aussi des vols.
Expedia : Plateforme qui inclut non seulement des vols mais
aussi des séjours, voitures, et activités.
SCRUM
Etude préalable
La cible
Cible principale : les voyageurs
Voyageurs individuels : Ceux qui recherchent les meilleures offres sur les
vols.
Familles et groupes : Ceux qui recherchent des tarifs avantageux pour
plusieurs personnes.
Voyageurs fréquents : Ceux qui prennent régulièrement l'avion et
cherchent à optimiser leurs frais de voyage.
Cible secondaire : les agences de voyages
Agences en ligne et traditionnelles :Ce sont les agences de voyages qui
aident les gens à réserver des billets d'avion et des hôtels, … elles peuvent
utiliser la plateforme pour comparer les prix des vols et trouver de bonnes
affaires pour leurs clients et pour gagner du temps et avoir plus de choix en
un seul endroit au lieu de chercher partout.
Compagnies aériennes
Les compagnies aériennes peuvent être intéressées à promouvoir leurs
offres directement via la plateforme, en y affichant leurs tarifs les plus
compétitifs.
SCRUM
Spécification des besoins
Besoins fonctionnels
En tant que Voyageur je veux :
M’inscrire
M’authentifier
Me déconnecter
Consulter les offres
Consulter les destinations possibles
Réserver les billets depuis l’agence choisie
En tant que administrateur je veux :
M’authentifier
Me déconnecter
Gérer les utilisateurs
Gérer les billets
Gérer les destinations
SCRUM
Spécification des besoins
Besoins non fonctionnels
1. Performance
Mesure :
Temps de réponse : Utilisez des outils comme Lighthouse, New
Relic, ou Google PageSpeed Insights pour mesurer le temps de
chargement des pages, l'exécution des requêtes et les
performances côté serveur.
Tests de charge : Outils comme JMeter, Locust, ou Gatling pour
simuler plusieurs utilisateurs simultanés et mesurer la capacité de
l'application à répondre sous une charge élevée.
Assurance :
Optimisation du code
Mise en cache
SCRUM
Spécification des besoins
Besoins non fonctionnels
2. Réutilisabilité
Mesure :
Modularité : Analysez la séparation des préoccupations à
travers le code (par ex. via SOLID principles). Vérifiez si les
composants sont conçus indépendamment et facilement
intégrables ailleurs.
Tests unitaires : Un bon niveau de tests unitaires aide à
garantir la réutilisabilité. Un coverage élevé avec des outils
comme Jest, Mocha, ou JUnit est un indicateur de composants
bien isolés et testables.
Assurance :
Design patterns : Utilisez des patrons de conception comme
Factory, Singleton, et Decorator pour faciliter la réutilisation.
Bibliothèques partagées : Créez des bibliothèques ou
modules externes réutilisables qui peuvent être installés et
utilisés dans d'autres projets.
SCRUM
Spécification des besoins
Besoins non fonctionnels
3. Maintenabilité
Mesure :
Qualité du code : Outils comme ESLint, Prettier, ou
SonarQube pour mesurer les erreurs, la lisibilité du code, et les
problèmes de complexité.
Couverture des tests : Plus il y a de tests (unitaires,
d'intégration, end-to-end), plus la maintenance est facilitée et
les régressions sont évitées.
Assurance :
Révision de code : Mettez en place un processus de revue de
code régulier pour identifier les erreurs avant qu'elles ne
deviennent des problèmes majeurs.
SCRUM
Spécification des besoins
Besoins non fonctionnels
4. Sécurité
Mesure :
Tests de pénétration : Effectuez des tests de pénétration
réguliers avec des outils comme Metasploit, ou faites appel à des
experts pour simuler des attaques réelles.
Assurance :
Authentification et autorisation : Implémentez des mécanismes
de sécurité robustes comme JWT
SCRUM
Diagramme de cas
d’utilisation global
SCRUM
Architecture
physique
SCRUM
Architecture
logique
La figure illustre le modèle architectural MVC (Modèle-Vue-Contrôleur) utilisé
dans le développement des systèmes d'information. L'utilisateur commence en
interagissant avec la Vue (interface utilisateur), par exemple en cliquant ou en
remplissant des formulaires. La Vue transmet l'interaction au Contrôleur, qui sert
de médiateur entre l'utilisateur et la logique de l'application. Le Contrôleur traite
la demande, puis interagit avec le Modèle, qui gère les données en
communiquant avec la base de données. Après récupération ou mise à jour des
données, le Modèle renvoie les informations au Contrôleur, qui les transmet à la
Vue. La Vue affiche ensuite le résultat à l'utilisateur, bouclant le cycle. Cette
structure garantit une architecture claire, maintenable et évolutive.
SCRUM
Architecture
logique
SCRUM
Diagramme de
classe