Problématique :
Aymen, étudiant en 2emé année à l’Institut Supérieur de l’Informatique de Mahdia, habite à
Monastir. Chaque semaine, il doit faire l’aller-retour entre Monastir et Mahdia pour assister à
ses cours.
Difficultés rencontrées :
Transport public insuffisant : Bus rares, souvent pleins, et trajets compliqués.
Taxis collectifs irréguliers : Difficiles à trouver, surtout le dimanche soir.
Covoiturage difficile à trouver : Recherche manuelle dans plusieurs groupes Facebook et
WhatsApp.
Pas de plateforme centralisée : Aucune application dédiée pour organiser ou réserver un trajet
facilement.
Manque de fiabilité : Annulations de dernière minute sans solution de rechange.
Besoins Fonctionnels
Les besoins fonctionnels décrivent les actions que l'application doit pouvoir réaliser pour
répondre aux besoins des utilisateurs (conducteurs, passagers et administrateurs).
1. Gestion des utilisateurs
• Création de compte utilisateur : L'utilisateur (conducteur ou passager) doit pouvoir
créer un compte via email, Google, ou Facebook.
• Authentification et connexion : L'utilisateur doit pouvoir se connecter avec un
identifiant et un mot de passe.
• Gestion du profil utilisateur : L'utilisateur doit pouvoir modifier ses informations
personnelles et ajouter une photo de profil.
• Validation des comptes conducteurs : L'administrateur doit valider les comptes
conducteurs après vérification des documents (CNI, permis, etc.).
2. Gestion des trajets (pour les conducteurs)
• Création de trajets : Le conducteur doit pouvoir publier un trajet avec les
informations suivantes : départ, arrivée, horaire, prix, et nombre de places disponibles.
• Modification et suppression des trajets : Le conducteur doit pouvoir modifier ou
supprimer un trajet existant.
• Consultation des trajets : Les passagers doivent pouvoir consulter les trajets
disponibles en fonction de leur destination, de l’heure et des places disponibles.
• Gestion des réservations : Le conducteur doit pouvoir accepter, refuser ou annuler les
réservations de passagers.
• Notifications de réservation : Le conducteur doit recevoir des notifications en temps
réel pour chaque nouvelle réservation ou demande de trajet.
3. Gestion des réservations (pour les passagers)
• Recherche de trajets : Le passager doit pouvoir rechercher des trajets en fonction de
sa destination et de la date.
• Réservation de place : Le passager doit pouvoir réserver une place pour un trajet.
• Annulation et modification de réservation : Le passager doit pouvoir annuler ou
modifier une réservation avant le départ du trajet.
• Consultation des profils et avis des conducteurs : Le passager doit pouvoir voir les
profils et les évaluations des conducteurs avant de réserver un trajet.
• Paiement en ligne : Le passager doit pouvoir effectuer un paiement pour réserver sa
place via l’application.
• Communication avec le conducteur : Le passager doit pouvoir contacter le
conducteur pour organiser les détails du trajet (via l’application, sans passer par des
moyens externes).
4. Gestion des avis et évaluations
• Notation des trajets : Le passager doit pouvoir évaluer le conducteur après chaque
trajet, et vice versa.
• Consultation des avis : Les passagers doivent pouvoir consulter les avis des
conducteurs avant de réserver un trajet, et les conducteurs doivent pouvoir voir les
avis des passagers.
5. Administration de la plateforme
• Gestion des utilisateurs : L’administrateur doit pouvoir valider ou suspendre les
comptes utilisateurs (conducteurs et passagers).
• Gestion des réclamations et litiges : L’administrateur doit pouvoir gérer les
réclamations entre les utilisateurs et prendre des décisions appropriées.
• Tableau de bord pour les statistiques : L’administrateur doit pouvoir consulter des
rapports sur le nombre d’utilisateurs, les trajets, les réservations, les paiements, etc.
6. Notifications et messagerie
• Notifications push : Les utilisateurs (conducteurs et passagers) doivent recevoir des
notifications en temps réel sur les actions importantes (réservation, modification de
trajet, demande de contact, etc.).
• Messagerie interne : Les passagers et conducteurs doivent pouvoir échanger des
messages au sein de l'application pour organiser les trajets.
Besoins Non Fonctionnels
Les besoins non fonctionnels concernent les aspects liés à la performance, la sécurité,
l'ergonomie, et la fiabilité de l'application.
1. Performance
• Temps de réponse rapide : L’application doit répondre aux actions de l’utilisateur en
moins de 2 secondes (consultation des trajets, recherche de réservation, etc.).
• Haute disponibilité : L’application doit être disponible 24h/24 et 7j/7 avec un taux de
disponibilité d’au moins 99,9%.
• Scalabilité : L’application doit être capable de gérer une grande quantité de trafic
simultané, notamment lors de pics d’activité (ex. vacances, weekends).
2. Sécurité
• Cryptage des données : Toutes les données sensibles (mots de passe, informations
bancaires, documents personnels) doivent être cryptées lors de leur transmission et
stockage (ex. via HTTPS et AES).
• Authentification sécurisée : Implémenter l'authentification à deux facteurs (2FA)
pour renforcer la sécurité des comptes utilisateurs.
• Conformité RGPD : L’application doit respecter le Règlement Général sur la
Protection des Données (RGPD), permettant aux utilisateurs de gérer et supprimer
leurs données personnelles.
• Protection contre les attaques : L'application doit être protégée contre les attaques
courantes (SQL Injection, Cross-Site Scripting (XSS), Cross-Site Request Forgery
(CSRF), etc.).
3. Usabilité
• Interface intuitive : L'interface de l’application doit être simple, claire, et facile à
utiliser, avec une navigation fluide et des informations bien structurées.
• Compatibilité multiplateforme : L’application doit être disponible sur les
plateformes suivantes : web, Android, et iOS.
• Responsive design : L'application doit être entièrement responsive, c'est-à-dire qu'elle
doit s'adapter à toutes les tailles d'écrans (smartphone, tablette, ordinateur de bureau).
4. Fiabilité
• Disponibilité continue : L’application doit être capable de fonctionner sans
interruption, avec des sauvegardes régulières de données et des tests de reprise après
sinistre.
• Surveillance des erreurs : L'application doit inclure des mécanismes de surveillance
et de gestion des erreurs pour détecter et corriger rapidement les bugs.
5. Support et Maintenance
• Support technique : L’application doit fournir un support en ligne (chat en direct, e-
mail) pour résoudre les problèmes des utilisateurs.
• Mise à jour régulière : L’application doit être régulièrement mise à jour avec de
nouvelles fonctionnalités, des corrections de bugs et des améliorations de sécurité.
• Gestion des incidents : En cas d’incident (panne, bug), l’application doit fournir un
processus de gestion d'incidents pour garantir une reprise rapide.
6. Accessibilité
• Accessibilité pour tous les utilisateurs : L’application doit être accessible aux
personnes en situation de handicap (ex. respect des normes WCAG, utilisation de la
voix, etc.).
Les parties prenantes sont :
1. Conducteur
Description :
Le conducteur est la personne qui propose un trajet et accepte des passagers. Il gère ses
trajets, ses réservations, et est responsable de l'optimisation de son trajet.
Actions :
• Publier des trajets avec l’heure, le nombre de places disponibles, et les informations du
trajet.
• Gérer les réservations des passagers.
• Recevoir des notifications de réservation.
• Consulter les profils et avis des passagers.
• Gérer les informations du trajet (modification, suppression).
2. Passager
Description :
Le passager est l'utilisateur qui recherche des trajets disponibles, réserve des places, et
effectue un paiement. Il peut également communiquer avec le conducteur et évaluer le service
après le trajet.
Actions :
• Rechercher des trajets disponibles.
• Réserver une place sur un trajet.
• Annuler ou modifier une réservation.
• Contacter le conducteur pour organiser les détails du trajet.
• Payer via l'application.
• Laisser des avis et des évaluations sur le conducteur.
3. Administrateur
Description :
L'administrateur est responsable de la gestion de la plateforme. Il vérifie les comptes
utilisateurs, modère les actions entre les conducteurs et les passagers, et s'assure de la sécurité
et du bon fonctionnement de l'application.
Actions :
• Valider les comptes des conducteurs (vérification des documents).
• Gérer les réclamations et litiges entre utilisateurs.
• Surveiller les activités sur la plateforme (transactions, avis, etc.).
• Fournir un support technique aux utilisateurs.
• Analyser les données de la plateforme pour optimiser l'expérience utilisateur.