Diagrammes de Cas d'Usage
Application Mobile Client
La solution de cashback nouvelle génération
INTRODUCTION
1.1 Objet du Document
Ce document détaille l'ensemble des cas d'usage UML de l'application mobile REWAPP destinée aux clients finaux. Chaque cas d'usage est décrit avec ses acteurs, pré-conditions, flux principal, flux alternatifs, exceptions et post-conditions.
L'application mobile est le point de contact principal entre REWAPP et ses utilisateurs. Elle permet :
- L'inscription et l'authentification des clients
- La liaison des comptes OpenBanking pour la détection automatique des transactions
- La consultation du solde de points et du palier de fidélité
- La génération de QR codes pour l'utilisation des points chez les partenaires
- La demande de virements bancaires (cashback bancaire)
- La recherche et localisation des partenaires
- La consultation de l'historique des transactions
1.2 Périmètre Fonctionnel
Synthèse des Modules
| Module | Cas d'Usage | Priorité |
|---|---|---|
| Authentification | 4 | Critique/Haute |
| Gestion Compte OpenBanking | 3 | Critique/Moyenne |
| Tableau de Bord | 3 | Critique/Haute |
| Utilisation Points | 4 | Critique/Haute |
| Partenaires et Historique | 3 | Haute/Moyenne |
| Profil et Paramètres | 3 | Haute/Moyenne |
| TOTAL | 20 | - |
1.3 Documents de Référence
Références Documentaires
| Référence | Document | Relation |
|---|---|---|
1.1 |
Document Vision Produit | Source de vérité - Proposition de valeur |
1.2 |
Cahier des Charges Fonctionnel | Source de vérité - Fonctionnalités |
1.4 |
Règles Métier de Fidélité | Source de vérité - Points et paliers |
2.1 |
Spécifications App Mobile | Détail des écrans et comportements |
5.1 |
Diagrammes Cas d'Usage (UML) | Vue d'ensemble multi-plateformes |
5.2.1 |
Diagramme Séquence Inscription | Flux détaillé inscription |
5.2.2 |
Diagramme Séquence Liaison Compte OpenBanking | Flux détaillé OpenBanking |
5.2.4 |
Diagramme Séquence QR Code | Flux détaillé génération QR |
1.4 Conventions UML
Notation adoptée : PlantUML
Symboles utilisés :
- Actor : Représenté par un bonhomme stylisé (
:NomActeur:) - Use Case : Représenté par une ellipse (
usecase "Nom du cas") - System Boundary : Représenté par un rectangle (
rectangle "Nom") - Association : Ligne simple reliant acteur et cas d'usage
- Include : Flèche pointillée avec stéréotype
<<include>> - Extend : Flèche pointillée avec stéréotype
<<extend>> - Generalization : Flèche avec pointe triangulaire vide
Niveaux de priorité :
- Critique : Fonctionnalité indispensable au lancement (MVP)
- Haute : Fonctionnalité importante pour l'expérience utilisateur
- Moyenne : Fonctionnalité secondaire, amélioration du service
ACTEURS ET CONTEXTE
2.1 Acteur Principal : Client
Client
Utilisateur final de l'application mobile REWAPPDéfinition : Utilisateur final de l'application mobile REWAPP, inscrit et authentifié, qui accumule et utilise des points de cashback.
- Âge : 18 ans et plus avec pouvoir d'achat
- Équipement : Smartphone iOS 14+ ou Android 10+
- Objectif : Économiser sur ses achats quotidiens via le cashback
- S'inscrire et gérer son compte utilisateur
- Lier un ou plusieurs comptes OpenBanking
- Consulter son solde de points et son palier de fidélité
- Générer des QR codes pour utiliser ses points
- Demander des virements bancaires
- Rechercher des partenaires et consulter l'historique
2.2 Acteurs Secondaires
Système Bancaire
Plaid / OpenBankingDescription : Système externe permettant la liaison des comptes OpenBanking et la détection automatique des transactions partenaires.
Interactions avec l'application :
- Fournir le widget/SDK de liaison compte OpenBanking
- Transmettre les notifications de transactions
- Fournir les données de transaction (montant, date, commerçant)
Système de Notifications
Firebase Cloud MessagingDescription : Service de notifications push pour informer le client en temps réel.
Interactions avec l'application :
- Notifier les crédits de points
- Alerter sur l'expiration imminente de points
- Confirmer les transactions QR et virements
Système Backend REWAPP
API backend de l'applicationDescription : API backend gérant la logique métier, les données et les transactions.
Interactions avec l'application :
- Authentification et gestion des sessions
- Calcul et crédit des points
- Génération et validation des QR codes
- Traitement des demandes de virement
2.3 Règles Métier Applicables
RÈGLES FONDAMENTALES À RESPECTER
Règles Métier Critiques
| Règle | Valeur | Description |
|---|---|---|
| Ratio de base | 1 point = 0,20€ |
Valeur unitaire d'un point |
| Cashback bancaire | Points × 0,200€ |
Ratio virement bancaire |
| Cashback commerçant | Points × 0,200€ |
Ratio pour QR code |
| Seuil virement minimum | 100 points |
Équivalent à 10,00€ après conversion |
| Délai virement | 2-3 semaines |
Délai maximum de traitement |
| Validité QR code | 15 minutes |
Expiration automatique |
| Usage QR code | UNIQUE |
Rejet si déjà scanné |
| Validité points | 12 mois |
Depuis la date de crédit |
| Méthode utilisation | FIFO |
Points les plus anciens en premier |
| Montant minimum QR | 10 points |
Équivalent à 2,00€ |
Paliers de Fidélité
| Palier | Icône | Couleur | Bonus |
|---|---|---|---|
| Bronze | 🥉 | #CD7F32 | 1% bancaire |
| Silver | 🥈 | #C0C0C0 | 2% bancaire |
| Gold | 🥇 | #FFD700 | 3% bancaire |
| Diamant | 💎 | #4169E1 | 5% bancaire |
| Diamant | 💠 | #9400D3 | 5% bancaire (défaut) |
Note : Le palier est calculé sur les 12 derniers mois glissants, par commerçant. Recalcul quotidien automatique à 2h00.
DIAGRAMME DE CAS D'USAGE GLOBAL
3.1 Vue d'Ensemble - Application Mobile Client
actor client as "Client"
actor bank as "Systeme Bancaire"
actor notif as "Notifications"
actor backend as "Backend REWAPP"
rectangle "Application Mobile REWAPP" {
package "Authentification" {
usecase "Sinscrire" as UC01
usecase "Se connecter" as UC02
usecase "Reset MDP" as UC03
}
package "OpenBanking" {
usecase "Lier compte OpenBanking" as UC05
usecase "Consulter comptes" as UC06
usecase "Supprimer compte" as UC07
}
package "Tableau de Bord" {
usecase "Solde points" as UC08
usecase "Palier fidelite" as UC09
usecase "Progression" as UC10
}
package "Utilisation Points" {
usecase "Generer QR" as UC11
usecase "Annuler QR" as UC12
usecase "Virement" as UC13
usecase "Suivre virement" as UC14
}
package "Partenaires" {
usecase "Rechercher" as UC15
usecase "Historique" as UC16
usecase "Favoris" as UC17
}
package "Profil" {
usecase "Modifier profil" as UC18
usecase "Notifications" as UC19
usecase "Supprimer compte" as UC20
}
}
client --> UC01
client --> UC02
client --> UC05
client --> UC08
client --> UC11
client --> UC13
client --> UC15
client --> UC16
client --> UC18
UC02 <.. UC03 : extend
UC02 <.. UC04 : extend
UC11 <.. UC12 : extend
UC11 ..> backend : validation
UC13 ..> backend : validation IBAN
UC05 ..> bank
UC11 ..> notif
UC13 ..> notif
3.2 Synthèse des Cas d'Usage
Liste Complète des Cas d'Usage
| ID | Cas d'Usage | Priorité | Complexité |
|---|---|---|---|
UC-M1 |
S'inscrire | Critique | Haute |
UC-M2 |
Se connecter | Critique | Moyenne |
UC-M3 |
Réinitialiser mot de passe | Haute | Moyenne |
UC-M4 |
Lier compte OpenBanking | Critique | Haute |
UC-M5 |
Consulter comptes OpenBanking | Moyenne | Faible |
UC-M6 |
Supprimer compte OpenBanking | Moyenne | Faible |
UC-M7 |
Consulter solde points | Critique | Faible |
UC-M8 |
Voir palier fidélité | Haute | Faible |
UC-M9 |
Voir progression palier | Moyenne | Faible |
UC-M10 |
Générer QR Code | Critique | Haute |
UC-M11 |
Annuler QR Code | Haute | Moyenne |
UC-M12 |
Demander virement | Critique | Haute |
UC-M13 |
Suivre demande virement | Haute | Moyenne |
UC-M14 |
Rechercher partenaires | Haute | Moyenne |
UC-M15 |
Consulter historique | Haute | Moyenne |
UC-M16 |
Ajouter aux favoris | Moyenne | Faible |
UC-M17 |
Modifier profil | Haute | Moyenne |
UC-M18 |
Gérer notifications | Moyenne | Faible |
UC-M19 |
Supprimer compte | Moyenne | Haute |
DÉTAIL DES CAS D'USAGE - AUTHENTIFICATION
4.1 UC-M1 : S'inscrire
| ID | UC-M1 |
| Nom | S'inscrire |
| Acteur principal | Client (non inscrit) |
| Priorité | Critique |
| Complexité | Haute |
Description : Permet à un nouveau visiteur de créer un compte REWAPP via email/mot de passe ou via authentification sociale (Google, Apple).
Pré-conditions
- L'utilisateur n'a pas de compte REWAPP existant
- L'utilisateur dispose d'une adresse email valide
- L'application est installée sur le smartphone
Post-conditions (succès)
- Un compte utilisateur est créé (statut : non vérifié si email, vérifié si OAuth)
- Un email de validation est envoyé (inscription email uniquement)
- L'utilisateur est redirigé vers l'onboarding de liaison carte
Flux Principal (Inscription Email)
- 1
L'utilisateur accède à l'écran d'inscription
- 2
L'utilisateur saisit ses informations :
Prénom (2-50 caractères), Nom (2-50 caractères), Email (format RFC 5322), Mot de passe (8+ caractères, majuscule, minuscule, chiffre), Confirmation mot de passe
- 3
L'utilisateur coche la case d'acceptation des CGU
- 4
L'utilisateur clique sur "Créer mon compte"
- 5
Le système valide les champs côté client
- 6
Le système envoie les données au backend (POST /api/auth/register)
- 7
Le backend vérifie l'unicité de l'email
- 8
Le backend crée le compte (statut : non vérifié)
- 9
Le backend envoie un email de validation (lien valable 24h)
- 10
L'application affiche l'écran "Vérifiez votre email"
- 11
L'utilisateur clique sur le lien dans l'email
- 12
Le compte passe au statut "vérifié"
- 13
L'application redirige vers l'onboarding liaison carte
Flux Alternatif A (Inscription Google)
- 1
L'utilisateur clique sur "Continuer avec Google"
- 2
Le système ouvre le popup OAuth2 Google
- 3
L'utilisateur s'authentifie sur Google
- 4
Google retourne les données (email, prénom, nom, photo)
- 5
Si compte existe → Connexion automatique. Sinon → Création du compte
- 6
Le système affiche un popup d'acceptation des CGU
- 7
Le compte est créé (statut : vérifié) et redirection vers l'onboarding
Exceptions
Codes d'Erreur
| Code | Condition | Message | Action |
|---|---|---|---|
E01 | Email déjà utilisé | "Cette adresse email est déjà utilisée" | Proposer connexion |
E02 | Format email invalide | "Format d'adresse email invalide" | Afficher erreur champ |
E03 | Mot de passe trop faible | "Mot de passe trop faible..." | Afficher indicateur force |
E04 | Mots de passe différents | "Les mots de passe ne correspondent pas" | Afficher erreur champ |
E05 | CGU non acceptées | "Vous devez accepter les CGU" | Highlight checkbox |
E06 | Erreur serveur | "Une erreur est survenue" | Bouton réessayer |
E07 | OAuth échoué | "Authentification échouée" | Retour écran inscription |
4.2 UC-M2 : Se connecter
| ID | UC-M2 |
| Nom | Se connecter |
| Acteur principal | Client (inscrit) |
| Priorité | Critique |
| Complexité | Moyenne |
Description : Permet à un utilisateur inscrit de s'authentifier sur l'application via email/mot de passe ou OAuth (Google/Apple).
Flux Principal (Email/Mot de passe)
- 1
L'utilisateur saisit son email et mot de passe
- 2
Le système valide et envoie au backend (POST /api/auth/login)
- 3
Le backend génère Access token JWT (15 min) + Refresh token (30 jours)
- 4
L'application stocke les tokens (Keychain iOS / Keystore Android)
- 5
Redirection vers le dashboard
4.3 UC-M3 : Réinitialiser mot de passe
Description : Permet à un utilisateur ayant oublié son mot de passe de le réinitialiser via un lien envoyé par email.
Flux Principal
- 1
L'utilisateur clique sur "Mot de passe oublié ?"
- 2
L'utilisateur saisit son adresse email
- 3
Le backend envoie un email avec lien de réinitialisation (validité 1h, usage unique)
- 4
Message neutre : "Si un compte existe, vous recevrez un lien"
- 5
L'utilisateur clique sur le lien et saisit le nouveau mot de passe
- 6
Le backend invalide toutes les sessions actives
- 7
Redirection vers l'écran de connexion
DÉTAIL DES CAS D'USAGE - TABLEAU DE BORD
6.1 UC-M7 : Consulter solde points
RÈGLE FONDAMENTALE
1 point = 0,20€
Description : Permet à l'utilisateur de consulter son solde de points disponibles et son équivalent en euros.
Informations affichées
| Élément | Calcul | Exemple |
|---|---|---|
| Solde disponible | Somme des points non bloqués | 1 250 pts |
| Équivalence € | Solde × 0,20€ | ≈ 125,00€ |
| Points bloqués | Points en attente de virement | 100 pts 🔒 |
| Points expirant | Points expirant dans < 30 jours | 50 pts ⚠️ |
6.2 UC-M8 : Voir palier fidélité
Description : Permet à l'utilisateur de visualiser son palier de fidélité global et les bonus associés.
DÉTAIL DES CAS D'USAGE - UTILISATION POINTS
7.1 UC-M10 : Générer QR Code
RÈGLES CRITIQUES
- Validité : 15 minutes exactement
- Usage : UNIQUE (toute réutilisation rejetée)
- Montant minimum : 10 points
- Ratio : Points × 0,200€
Description : Permet à l'utilisateur de générer un QR code pour utiliser ses points chez un partenaire.
Flux Principal
- 1
L'utilisateur accède à l'écran de génération QR
- 2
Saisie du montant (suggestions : 50, 100, 200, 500, Max)
- 3
Clic sur "Générer le QR Code"
- 4
Le backend bloque immédiatement les points
- 5
Affichage plein écran :
QR centré (70% largeur), luminosité max, fond blanc, compteur 15 minutes (vert→orange→rouge)
Sécurité du QR Code
{
"userId": "hash_utilisateur",
"amount": 100,
"timestamp": "2025-11-24T14:30:00Z",
"nonce": "unique_nonce_xyz",
"signature": "hmac_sha256_signature"
}
7.3 UC-M12 : Demander virement
RÈGLES CRITIQUES
- Seuil minimum : 100 points (= 20,00€)
- Ratio bancaire : Points × 0,200€
- Ratio commerçant : Points × 0,200€
- Délai : 2-3 semaines maximum
- Frais : 0€ (100% gratuit)
Description : Permet à l'utilisateur de convertir ses points en euros via virement bancaire.
Statuts de demande
| Statut | Couleur | Description | Actions |
|---|---|---|---|
| En attente | 🟡 Orange | Demande reçue | Annuler |
| En cours | 🔵 Bleu | Traitement en cours | Aucune |
| Effectué | 🟢 Vert | Virement réalisé | Voir détails |
| Annulé | ⚫ Gris | Demande annulée | Voir détails |
DÉTAIL DES CAS D'USAGE - PARTENAIRES ET HISTORIQUE
8.1 UC-M14 : Rechercher partenaires
Description : Permet à l'utilisateur de rechercher et localiser les partenaires REWAPP.
Catégories de partenaires
| Catégorie | Icône | Exemples |
|---|---|---|
| Restauration | 🍽️ | Restaurants, cafés, boulangeries |
| Alimentation | 🛒 | Supermarchés, épiceries, primeurs |
| Mode et Beauté | 👗 | Prêt-à-porter, coiffeurs, instituts |
| Services | 🔧 | Garages, pressing, salles de sport |
| Loisirs et Culture | 🎭 | Librairies, cinémas, boutiques sport |
| Santé et Bien-être | 💊 | Pharmacies, parapharmacies, opticiens |
8.2 UC-M15 : Consulter historique transactions
Description : Permet à l'utilisateur de consulter l'ensemble de ses transactions.
Types de transactions
| Type | Icône | Couleur | Informations |
|---|---|---|---|
| Achat partenaire | Logo | +XXX pts (vert) | Nom, date, montant achat |
| Paiement QR | 📱 | -XXX pts (rouge) | Nom partenaire, date |
| Virement | 💳 | -XXX pts (rouge) | IBAN masqué, statut |
| Expiration | ⏰ | -XXX pts (gris) | Date d'expiration |
| Bonus | 🎁 | +XXX pts (violet) | Type de bonus |
DÉTAIL DES CAS D'USAGE - PROFIL ET PARAMÈTRES
9.1 UC-M17 : Modifier profil
Description : Permet à l'utilisateur de modifier ses informations personnelles.
Champs modifiables
- Photo de profil (caméra ou galerie)
- Prénom
- Nom
- Téléphone (optionnel)
- Date de naissance (optionnel)
- Email (non modifiable directement - processus sécurisé)
9.2 UC-M18 : Gérer notifications
Description : Permet à l'utilisateur de configurer ses préférences de notifications push.
- Points et transactions (recommandé : ON)
- Virements (recommandé : ON)
- Promotions et offres (défaut : ON)
- Nouveaux partenaires (défaut : ON)
- Alertes sécurité (toujours ON, non modifiable)
9.3 UC-M19 : Supprimer compte
ACTION IRRÉVERSIBLE
Le compte est marqué pour suppression avec un délai de rétractation de 30 jours. Les données sont anonymisées conformément au RGPD.
Avertissements affichés
- "Cette action est définitive"
- "Toutes vos données seront supprimées"
- "Vos XXX points seront perdus"
- "Les demandes de virement en cours seront annulées"
SYNTHÈSE ET MATRICE DE TRAÇABILITÉ
10.1 Répartition par Priorité
10.2 Matrice de Traçabilité
Traçabilité vers les autres documents
| Cas d'Usage | Spécification (2.1) | Séquence (5.2.x) | Test (8.2) |
|---|---|---|---|
UC-M1 S'inscrire | Section 2.2 | 5.2.1 | TC-M01 |
UC-M2 Se connecter | Section 2.3 | - | TC-M02 |
UC-M4 Lier carte | Section 3 | 5.2.2 | TC-M05 |
UC-M7 Consulter solde | Section 4.1.2 | - | TC-M08 |
UC-M10 Générer QR | Section 5 | 5.2.4 | TC-M11 |
UC-M12 Demander virement | Section 6 | - | TC-M13 |
UC-M14 Rechercher partenaires | Section 8 | - | TC-M15 |
UC-M15 Consulter historique | Section 7 | - | TC-M16 |
10.3 Rappel des Règles Métier Critiques
À RESPECTER IMPÉRATIVEMENT
- 1 point = 0,20€ (ratio de base)
- Cashback bancaire : points × 0,200€
- Cashback commerçant : points × 0,200€
- QR Code : 15 minutes, usage UNIQUE
- Seuil virement : 100 points minimum
- Validité points : 12 mois (FIFO)
- Paliers : Bronze / Silver / Gold / Diamant
- Délai virement : 2-3 semaines maximum
— Fin du Document 5.1.1 Diagrammes de Cas d'Usage - Application Mobile Client —
Document rédigé conformément au Guide de Rédaction REWAPP v1.0
Source de vérité : Section 1 - Documents de Cadrage