@startuml Usecase ' Diagramme de cas d'utilisation — Application web Flashcards (SPA/PWA) ' Le CRUD et le jeu sont volontairement isolés : le jeu ne dépend d'aucun cas du catalogue. left to right direction skinparam actorStyle awesome skinparam packageStyle rectangle actor "Utilisateur" as User rectangle "Jeu — révision" { usecase "Afficher une carte au hasard" as UC_Jouer usecase "Tirer des cartes d'un thème" as UC_Theme usecase "Révéler la réponse" as UC_Revele } rectangle "Gestion des cartes (CRUD)" { usecase "Lister les cartes" as UC_Liste usecase "Consulter une carte" as UC_Detail usecase "Créer une carte" as UC_Create usecase "Modifier une carte" as UC_Update usecase "Supprimer une carte" as UC_Delete } ' --- Jeu --- User --> UC_Jouer UC_Jouer ..> UC_Theme : <> UC_Jouer --> UC_Revele : <> ' --- CRUD : la liste est l'entrée unique, le détail est le point d'ancrage des actions --- User --> UC_Liste UC_Liste ..> UC_Detail : <> UC_Liste ..> UC_Create : <> UC_Detail ..> UC_Update : <> UC_Detail ..> UC_Delete : <> note bottom of UC_Delete Suppression avec confirmation end note note bottom of UC_Revele La réponse est cachée tant que l'utilisateur ne la déroule pas end note @enduml