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 cartes bancaires 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 Carte Bancaire | 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 Carte | 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 une ou plusieurs cartes bancaires
- 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
Budget Insight / OpenBankingDescription : Système externe permettant la liaison des cartes bancaires et la détection automatique des transactions partenaires.
Interactions avec l'application :
- Fournir le widget/SDK de liaison carte
- 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,10€ |
Valeur unitaire d'un point |
| Cashback bancaire | Points × 0,095€ |
Ratio -5% pour virement bancaire |
| Cashback commerçant | Points × 0,105€ |
Ratio +5% pour utilisation QR |
| Seuil virement minimum | 100 points |
Équivalent à 9,50€ après conversion |
| Délai virement | 2-3 semaines |
Délai maximum de traitement |
| Validité QR code | 60 secondes |
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 à 1,05€ |
Paliers de Fidélité
| Palier | Icône | Couleur | Bonus |
|---|---|---|---|
| Bronze | 🥉 | #CD7F32 | +0% |
| Silver | 🥈 | #C0C0C0 | +5% |
| Gold | 🥇 | #FFD700 | +10% |
| Platine | 💎 | #4169E1 | +15% |
| Diamant | 💠 | #9400D3 | +20% |
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
@startuml
skinparam backgroundColor #FFFFFF
left to right direction
skinparam packageStyle rectangle
skinparam actorStyle awesome
skinparam roundcorner 10
actor "Client" as client #LightBlue
actor "Systeme Bancaire" as bank #Pink
actor "Notifications" as notif #Coral
actor "Backend REWAPP" as backend #LightGray
rectangle "Application Mobile REWAPP" #LightCyan {
package "Authentification" #LightGreen {
usecase "Sinscrire" as UC01 #Aqua
usecase "Se connecter" as UC02 #Aqua
usecase "Reset MDP" as UC03 #Aqua
usecase "Biometrie" as UC04 #Aqua
}
package "Carte Bancaire" #Orange {
usecase "Lier carte" as UC05 #Gold
usecase "Consulter cartes" as UC06 #Gold
usecase "Supprimer carte" as UC07 #Gold
}
package "Tableau de Bord" #Yellow {
usecase "Solde points" as UC08 #LightYellow
usecase "Palier fidelite" as UC09 #LightYellow
usecase "Progression" as UC10 #LightYellow
}
package "Utilisation Points" #Pink {
usecase "Generer QR" as UC11 #Plum
usecase "Annuler QR" as UC12 #Plum
usecase "Virement" as UC13 #Plum
usecase "Suivre virement" as UC14 #Plum
}
package "Partenaires" #Lavender {
usecase "Rechercher" as UC15 #Thistle
usecase "Historique" as UC16 #Thistle
usecase "Favoris" as UC17 #Thistle
}
package "Profil" #Wheat {
usecase "Modifier profil" as UC18 #Bisque
usecase "Notifications" as UC19 #Bisque
usecase "Supprimer compte" as UC20 #Bisque
}
}
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
@enduml
3.2 Synthèse des Cas d'Usage
Liste Complète des Cas d'Usage
| ID | Cas d'Usage | Priorité | Complexité |
|---|---|---|---|
UC-M01 |
S'inscrire | Critique | Haute |
UC-M02 |
Se connecter | Critique | Moyenne |
UC-M03 |
Réinitialiser mot de passe | Haute | Moyenne |
UC-M04 |
Activer biométrie | Moyenne | Faible |
UC-M05 |
Lier carte bancaire | Critique | Haute |
UC-M06 |
Consulter cartes liées | Moyenne | Faible |
UC-M07 |
Supprimer carte | Moyenne | Faible |
UC-M08 |
Consulter solde points | Critique | Faible |
UC-M09 |
Voir palier fidélité | Haute | Faible |
UC-M10 |
Voir progression palier | Moyenne | Faible |
UC-M11 |
Générer QR Code | Critique | Haute |
UC-M12 |
Annuler QR Code | Haute | Moyenne |
UC-M13 |
Demander virement | Critique | Haute |
UC-M14 |
Suivre demande virement | Haute | Moyenne |
UC-M15 |
Rechercher partenaires | Haute | Moyenne |
UC-M16 |
Consulter historique | Haute | Moyenne |
UC-M17 |
Ajouter aux favoris | Moyenne | Faible |
UC-M18 |
Modifier profil | Haute | Moyenne |
UC-M19 |
Gérer notifications | Moyenne | Faible |
UC-M20 |
Supprimer compte | Moyenne | Haute |
DÉTAIL DES CAS D'USAGE - AUTHENTIFICATION
4.1 UC-M01 : S'inscrire
| ID | UC-M01 |
| 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-M02 : Se connecter
| ID | UC-M02 |
| 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, biométrie ou OAuth.
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
Si biométrie disponible → Proposition d'activation
- 6
Redirection vers le dashboard
Flux Alternatif A (Connexion Biométrique)
Pré-condition
Biométrie activée dans l'application
- 1
L'application affiche le prompt biométrique natif au lancement
- 2
L'utilisateur s'authentifie via Face ID / Touch ID / Empreinte
- 3
Le système échange le refresh token contre un access token
- 4
Redirection vers le dashboard
4.3 UC-M03 : 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
4.4 UC-M04 : Activer biométrie
Description : Permet à l'utilisateur d'activer la connexion biométrique (Face ID, Touch ID, Empreinte digitale).
Flux Principal
- 1
L'utilisateur accède à Profil > Paramètres > Sécurité
- 2
L'utilisateur active le toggle "Connexion biométrique"
- 3
Le système affiche le prompt biométrique natif
- 4
Le refresh token est stocké avec protection biométrique
- 5
Message : "Connexion biométrique activée"
DÉTAIL DES CAS D'USAGE - GESTION CARTE BANCAIRE
5.1 UC-M05 : Lier carte bancaire
RÈGLE CRITIQUE
Sans carte liée, l'utilisateur ne peut PAS gagner de points automatiquement.
Description : Permet à l'utilisateur de lier une carte bancaire via le SDK OpenBanking pour activer la détection automatique des transactions.
Flux Principal
- 1
L'utilisateur accède à l'écran de liaison carte
- 2
Avantages affichés :
✅ Détection automatique • 🔒 Sécurité bancaire (ACPR) • ❌ Aucun paiement depuis l'app • 💳 Toutes banques françaises
- 3
L'utilisateur clique sur "Lier ma carte"
- 4
L'application lance le SDK Budget Insight
- 5
L'utilisateur sélectionne sa banque et s'authentifie
- 6
L'utilisateur valide le 2FA bancaire si requis
- 7
L'utilisateur accepte le consentement (90 jours renouvelable)
- 8
Message : "Carte liée avec succès !" → Redirection dashboard
5.2 UC-M06 : Consulter cartes liées
Description : Permet à l'utilisateur de visualiser la liste de ses cartes bancaires liées et leur statut.
Informations affichées par carte
- Logo de la banque
- Nom de la banque
- 4 derniers chiffres (•••• 1234)
- Badge "Principale" si applicable
- Date de liaison
- Statut : 🟢 Active / 🟠 Reconnexion requise
5.3 UC-M07 : Supprimer carte
Description : Permet à l'utilisateur de délier une carte bancaire de son compte.
AVERTISSEMENT
Si c'est la dernière/unique carte liée, message spécial : "Sans carte liée, vous ne pourrez plus gagner de points chez nos partenaires."
DÉTAIL DES CAS D'USAGE - TABLEAU DE BORD
6.1 UC-M08 : Consulter solde points
RÈGLE FONDAMENTALE
1 point = 0,10€
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,10€ | ≈ 125,00€ |
| Points bloqués | Points en attente de virement | 100 pts 🔒 |
| Points expirant | Points expirant dans < 30 jours | 50 pts ⚠️ |
6.2 UC-M09 : 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-M11 : Générer QR Code
RÈGLES CRITIQUES
- Validité : 60 secondes exactement
- Usage : UNIQUE (toute réutilisation rejetée)
- Montant minimum : 10 points
- Ratio : Points × 0,105€ (+5% bonus commerçant)
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 60s (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-M13 : Demander virement
RÈGLES CRITIQUES
- Seuil minimum : 100 points (= 9,50€)
- Ratio : Points × 0,095€ (-5% vs commerçant)
- 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-M15 : 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-M16 : 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-M18 : 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-M19 : 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-M20 : 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-M01 S'inscrire | Section 2.2 | 5.2.1 | TC-M01 |
UC-M02 Se connecter | Section 2.3 | - | TC-M02 |
UC-M05 Lier carte | Section 3 | 5.2.2 | TC-M05 |
UC-M08 Consulter solde | Section 4.1.2 | - | TC-M08 |
UC-M11 Générer QR | Section 5 | 5.2.4 | TC-M11 |
UC-M13 Demander virement | Section 6 | - | TC-M13 |
UC-M15 Rechercher partenaires | Section 8 | - | TC-M15 |
UC-M16 Consulter historique | Section 7 | - | TC-M16 |
10.3 Rappel des Règles Métier Critiques
À RESPECTER IMPÉRATIVEMENT
- 1 point = 0,10€ (ratio de base)
- Cashback bancaire : -5% (points × 0,095€)
- Cashback commerçant : +5% (points × 0,105€)
- QR Code : 60 secondes, usage UNIQUE
- Seuil virement : 100 points minimum
- Validité points : 12 mois (FIFO)
- Paliers : Bronze / Silver / Gold / Platine / 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