Ajouts oubliés

This commit is contained in:
MarcEricMartel
2023-06-03 18:07:33 -04:00
parent ab5a0205b4
commit 2159d58ddb
2996 changed files with 19234 additions and 0 deletions

View File

@@ -0,0 +1,31 @@
# UC01 - [Afficher les Catégories]
Quelqu'un veut faire afficher les catégories du forum.
## Acteur(s) primaires et secondaires
* Invité ou mieux. (Primaire)
## Préconditions/déclencheur
* Il y a au moins une catégorie de préalablement créée dans le forum.
## Postconditions
L'invité voit les catégories créées dans le forum.
## Scénario de base
1. L'invite fait afficher la liste des catégories du forum.
2. La liste s'affiche.
## Exceptions
* Aucune exception.
## Besoins non-fonctionnels spécifique
* L'affichage doit se faire un moins d'une seconde.
* Le système doit pouvoir traiter au moins 100 requêtes par minute sans
ralentissement.

View File

@@ -0,0 +1,29 @@
# UC02 - [Créer une Catégorie]
Un Administrateur veut créer une catégorie dans le forum.
## Acteur(s) primaires et secondaires
* Administrateur (Primaire)
## Préconditions/déclencheur
* Aucune précondition.
## Postconditions
* Une catégorie a été créée dans le forum.
## Scénario de base
1. Un Administrateur ajoute une nouvelle catégorie.
2. Il choisit un nom pour cette catégorie.
3. La catégorie est créée dans le Forum.
## Exceptions
* La transaction a échoué parce que la catégorie existe déjà dans le forum.
## Besoins non-fonctionnels spécifique
* Aucun.

View File

@@ -0,0 +1,30 @@
# UC03 - [Modifier le nom d'une Catégorie]
Un Administrateur veut modifier le nom d'une catégorie existante dans le forum.
## Acteur(s) primaires et secondaires
* Administrateur (Primaire)
## Préconditions/déclencheur
* Le forum doit préalablement contenir au moins une catégorie.
## Postconditions
* Le nom d'une catégorie a changé dans le forum.
## Scénario de base
1. Un Administrateur choisit une catégorie existante.
2. Il modifie le nom de cette catégorie.
3. Le nom est modifié pour cette catégorie.
## Exceptions
* La transaction a échoué parce qu'une autre catégorie a déjà le même nom dans
le forum.
## Besoins non-fonctionnels spécifique
* L'affichage du nouveau nom doit se faire en moins de 10 secondes.

View File

@@ -0,0 +1,41 @@
# UC04 - [Supprimer une Catégorie]
Un Administrateur veut supprimer une catégorie du Forum.
## Acteur(s) primaires et secondaires
* Administrateur (Primaire)
## Préconditions/déclencheur
* Il doit préalablement y avoir au moins une catégorie existante dans le Forum.
## Postconditions
* Une catégorie a été supprimée du Forum.
* Les fils dans cette catégorie ont été supprimés ou déplacés vers une autre
catégorie.
## Scénario de base
```plantuml
start
:Supprimer une catégorie;
switch(Quoi faire avec les fils?)
case(\r\r\rLes supprimer)
:Les fils sont supprimés;
case(\r\r\rLes déplacer)
:Choisir la catégorie destination;
:Les fils sont déplacés vers la catégorie destination;
endswitch
stop
```
## Exceptions
* Aucune.
## Besoins non-fonctionnels spécifiques
* Il doit être impossible d'afficher la catégorie supprimée au plus tard 10
secondes après sa suppression.

View File

@@ -0,0 +1,28 @@
# UC05 - [Lister les Fils]
Quelqu'un veut voir la liste des fils présents dans une catégorie.
## Acteur(s) primaires et secondaires
* Invité ou mieux. (Primaire)
## Préconditions/déclencheur
* Il y a au moins une catégorie avec au moins un fil dans le Forum.
## Postconditions
* Aucun changement.
## Scénario de base
1. Quelqu'un choisit une catégorie pour faire afficher ses fils.
2. Les fils sont affichés.
## Exceptions
* Aucune.
## Besoins non-fonctionnels spécifique
* La liste doit se rafraîchir automatiquement à chaque minute.

View File

@@ -0,0 +1,28 @@
# UC06 - [Afficher un Fil]
Une personne veut faire afficher les publications d'un fil en particulier.
## Acteur(s) primaires et secondaires
* Invité ou mieux. (Primaire)
## Préconditions/déclencheur
* Au moins un fil existe dans une catégorie.
## Postconditions
* Aucun changement.
## Scénario de base
1. Une personne choisit un fil à afficher.
2. Les publications composant ce fil s'affichent.
## Exceptions
* Aucune.
## Besoins non-fonctionnels spécifique
* Le délai d'affichage devrait être de moins de 1 seconde.

View File

@@ -0,0 +1,29 @@
# UC07 - [Créer un Fil]
Un utilisateur veut créer un fil de discussion.
## Acteur(s) primaires et secondaires
* Utilisateur ou mieux. (Primaire)
## Préconditions/déclencheur
* Il doit au moins y avoir une catégorie dans le forum.
## Postconditions
* Un fil a été ajouté à une catégorie.
## Scénario de base
1. Un utilisateur choisit un titre pour le fil.
2. Il créé la publication originale de ce fil ([UC11](UC11.md)).
3. Le fil est ajouté au forum.
## Exceptions
* L'échec de l'UC11 doit entraîner l'échec de cette transaction.
## Besoins non-fonctionnels spécifique
* Le fil doit être créé en moins d'une seconde.

View File

@@ -0,0 +1,41 @@
# UC08 - [Répondre au Fil]
Un utilisateur veut répondre à une publication dans un fil.
## Acteur(s) primaires et secondaires
* Utilisateur ou mieux. (Primaire)
## Préconditions/déclencheur
* Au moins un fil non-archivé existe dans le forum.
## Postconditions
* Une publication de réponse est ajoutée à un fil.
## Scénario de base
```plantuml
start
:L'utilisateur visionne un fil;
switch(Il répond)
case(Au fil en tant que tel)
case(À une publication en particulier dans le fil)
:La publication à répondre est ajoutée à la publication en cours;
endswitch
:Il créé la publication de réponse (UC11);
:La publication est ajoutée au fil;
stop
```
([UC11](UC11.md))
## Exceptions
* L'échec de l'UC11 doit entraîner l'échec de cette transaction.
* La transaction doit échouer si le fil est archivé.
## Besoins non-fonctionnels spécifique
* Mise à jour de l'affichage du fil en moins de 1 seconde.

View File

@@ -0,0 +1,30 @@
# UC09 - [Épingler un Fil]
Un modérateur veut épingler un fil au haut d'une catégorie.
## Acteur(s) primaires et secondaires
* Modérateur ou mieux. (Primaire)
## Préconditions/déclencheur
* Au moins un fil existe dans le forum (Il peut être archivé et épinglé en même
temps).
## Postconditions
* Un fil a été épinglé au haut de sa catégorie.
## Scénario de base
1. Un modérateur sélectionne un fil dans une catégorie.
2. Il l'épingle.
3. Le fil est épinglé.
## Exceptions
* Aucune.
## Besoins non-fonctionnels spécifique
* Aucun.

View File

@@ -0,0 +1,30 @@
# UC10 - [Archiver un Fil]
Un modérateur veut archiver un fil.
## Acteur(s) primaires et secondaires
* Modérateur ou mieux. (Primaire)
* Utilisateurs (Secondaire)
## Préconditions/déclencheur
* Au moins un fil non-archivé existe dans le forum.
## Postconditions
* Un fil a été archivé et devient immuable.
## Scénario de base
1. Un modérateur sélectionne un fil dans une catégorie.
2. Il l'archive.
3. Le fil est archivé.
## Exceptions
* Aucune.
## Besoins non-fonctionnels spécifique
* Le fil doit être archivé en moins de 1 seconde pour tous les utilisateurs.

View File

@@ -0,0 +1,31 @@
# UC11 - [Créer une Publication]
Un utilisateur veut créer une publication dans le cadre d'une création de fil
([UC07 - Créer un fil](UC07.md)) ou pour répondre à une autre publication dans
un fil existant ([UC08 - Répondre au fil](UC08.md)).
## Acteur(s) primaires et secondaires
* Utilisateur ou mieux. (Primaire)
## Préconditions/déclencheur
* Le déclenchement de [UC07 - Créer un fil](UC07.md) ou de [UC08 - Répondre au
fil](UC08.md).
## Postconditions
* Une publication est ajoutée dans un fil.
## Scénario de base
1. L'utilisateur écrit le contenu de sa publication.
## Exceptions
* La transaction va échouer si l'utilisateur est banni.
## Besoins non-fonctionnels spécifique
* Doit être appliquée avant la fin de son UC déclencheur.

View File

@@ -0,0 +1,36 @@
# UC12 - [Modifier une Publication]
Un utilisateur veut modifier une de ses publications.
## Acteur(s) primaires et secondaires
* Utilisateur ou mieux. (Primaire)
## Préconditions/déclencheur
* L'utilisateur doit avoir préalablement publié au moins une publication dans le
forum.
## Postconditions
* Une publication a été modifiée dans le forum.
* Une date de modification a été ajoutée à la publication.
## Scénario de base
1. Un utilisateur sélectionne une de ses propre publications.
2. Il modifie le contenu de la publication.
3. La publication est modifiée.
## Exceptions
* La transaction va échouer si l'utilisateur est banni.
* La transaction va échouer si l'utilisateur tente de modifier la publication
d'un autre utilisateur.
* La transaction va échouer si la publication est cachée.
* La transaction va échouer si le fil est archivé.
## Besoins non-fonctionnels spécifique
* La propagation de cette modification doit être faite en moins de 1 seconde.

View File

@@ -0,0 +1,30 @@
# UC13 - [Cacher une Publication]
Un modérateur veut cacher une publication pour des raisons de modération.
## Acteur(s) primaires et secondaires
* Modérateur ou mieux. (Primaire)
## Préconditions/déclencheur
* Au moins une publication existe dans le forum.
## Postconditions
* Une publication est cachée.
## Scénario de base
1. Un modérateur choisit une publication à cacher.
2. La publication est cachée.
## Exceptions
* Aucune (Note: l'archivage d'un fil ne doit pas empêcher la censure d'une
publication).
## Besoins non-fonctionnels spécifique
* La propagation de cette modification doit être la plus rapide possible.

View File

@@ -0,0 +1,30 @@
# UC14 - [Afficher un Compte]
Quelqu'un veut faire afficher les informations d'un compte utilisateur du forum.
## Acteur(s) primaires et secondaires
* Invité ou mieux. (Primaire)
* Utilisateur (Secondaire)
## Préconditions/déclencheur
* Au moins un compte utilisateur existe dans le forum.
## Postconditions
* Aucune.
## Scénario de base
1. Quelqu'un choisit un compte à faire afficher.
2. Un compte est affiché.
## Exceptions
* Aucune.
## Besoins non-fonctionnels spécifique
* Aucun.

View File

@@ -0,0 +1,31 @@
# UC15 - [Créer un Compte]
Un invité veut se créer un compte.
## Acteur(s) primaires et secondaires
* Invité (Primaire)
## Préconditions/déclencheur
* Aucun.
## Postconditions
* Un compte a été créé dans le forum.
## Scénario de base
1. Un invité entre son nom d'utilisateur, son adresse courriel, et un mot de
passe.
2. (Optionnel) Il entre une description et/ou une signature.
3. Le compte est créé.
## Exceptions
* La transaction va échouer si le nom d'utilisateur ou le courriel existe déjà
dans le forum.
## Besoins non-fonctionnels spécifique
* Aucun.

View File

@@ -0,0 +1,32 @@
# UC16 - [Modifier une description de Compte]
Un utilisateur veut modifier sa description dans son compte ou un administrateur
veut modifier la description d'un compte utilisateur.
## Acteur(s) primaires et secondaires
* Utilisateur ou mieux. (Primaire)
## Préconditions/déclencheur
* Aucune.
## Postconditions
* La description de l'utilisateur a été modifiée.
## Scénario de base
1. Un administrateur choisit un compte à modifier. (S'il n'est pas admin,
l'utilisateur affiche son compte).
2. Il modifie le contenu de la description.
3. La description est modifiée.
## Exceptions
* La transaction va échouer si l'utilisateur tente de modifier la description
d'une autre utilisateur s'il n'est pas un administrateur.
## Besoins non-fonctionnels spécifique
* Aucun.

View File

@@ -0,0 +1,32 @@
# UC17 - [Modifier une signature de Compte]
Un utilisateur veut modifier sa signature dans son compte ou un administrateur
veut modifier la signature d'un compte utilisateur.
## Acteur(s) primaires et secondaires
* Utilisateur ou mieux. (Primaire)
## Préconditions/déclencheur
* Aucune.
## Postconditions
* La signature de l'utilisateur a été modifiée.
## Scénario de base
1. Un administrateur choisit un compte à modifier. (S'il n'est pas admin,
l'utilisateur affiche son compte).
2. Il modifie le contenu de la signature.
3. La signature est modifiée.
## Exceptions
* La transaction va échouer si l'utilisateur tente de modifier la signature
d'une autre utilisateur s'il n'est pas un administrateur.
## Besoins non-fonctionnels spécifique
* Aucun.

View File

@@ -0,0 +1,31 @@
# UC18 - [Modifier un rôle de Compte]
Un administrateur veut modifier le rôle d'un compte utilisateur.
## Acteur(s) primaires et secondaires
* Administrateur (Primaire)
* Utilisateur ou Modérateur (secondaire)
## Préconditions/déclencheur
* Au moins un compte admin et un compte utilisateur ou modérateur existe dans le
forum.
## Postconditions
* Le rôle d'un utilisateur a changé.
## Scénario de base
1. Un administrateur choisit un compte.
2. Il choisit le rôle à donner au compte (Utilisateur ou Modérateur).
3. Le rôle du compte est changé.
## Exceptions
* Aucune.
## Besoins non-fonctionnels spécifique
* Aucun.

View File

@@ -0,0 +1,30 @@
# UC19 - [Bannir un Compte]
Un modérateur veut bannir un compte utilisateur.
## Acteur(s) primaires et secondaires
* Modérateur ou mieux. (Primaire)
* Utilisateur ou modérateur. (Secondaire)
## Préconditions/déclencheur
* Au moins un compte Modérateur et un compte Utilisateur existe dans le forum.
## Postconditions
* Un compte a été banni du forum.
## Scénario de base
1. Un modérateur choisit le compte à bannir.
2. Le compte est banni.
## Exceptions
* La transaction va échouer si le compte à bannir a le même rôle ou un rôle
supérieur à celui qui fait le bannissement.
## Besoins non-fonctionnels spécifique
* La propagation doit se faire le plus rapidement possible.

View File

@@ -0,0 +1,76 @@
# Cas d'utilisations
* [UC01 Afficher les Catégories](UC01.md)
* [UC02 Créer une Catégorie](UC02.md)
* [UC03 Modifier le nom d'une Catégorie](UC03.md)
* [UC04 Supprimer une Catégorie](UC04.md)
* [UC05 Lister les Fils](UC05.md)
* [UC06 Afficher un Fil](UC06.md)
* [UC07 Créer un Fil](UC07.md)
* [UC08 Répondre au Fil](UC08.md)
* [UC09 Épingler un Fil](UC09.md)
* [UC10 Archiver un Fil](UC10.md)
* [UC11 Créer une Publication](UC11.md)
* [UC12 Modifier une Publication](UC12.md)
* [UC13 Cacher une Publication](UC13.md)
* [UC14 Afficher un Compte](UC14.md)
* [UC15 Créer un Compte](UC15.md)
* [UC16 Modifier une description de Compte](UC16.md)
* [UC17 Modifier une signature de Compte](UC17.md)
* [UC18 Modifier un rôle de Compte](UC18.md)
* [UC19 Bannir un Compte](UC19.md)
```plantuml
left to right direction
:Administrateur: as Admin
:Modérateur: as Mod
:Utilisateur: as User
:Invité: as Guest
Mod <|- Admin
User <|- Mod
Guest <|- User
package Forum {
usecase "UC01 - Afficher les Catégories" as UC01
usecase "UC02/UC03/UC04 - Gérer une Catégorie" as UC02
usecase "UC05 - Lister les Fils" as UC05
usecase "UC06 - Afficher un Fil" as UC06
usecase "UC07 - Créer un Fil" as UC07
usecase "UC08 - Répondre au Fil" as UC08
usecase "UC09/UC10 - Épingler/Archiver un Fil" as UC09
usecase "UC11 - Créer une Publication" as UC11
usecase "UC12 - Modifier une Publication" as UC12
usecase "UC13 - Cacher une Publication" as UC13
usecase "UC14 - Afficher un Compte" as UC14
usecase "UC15 - Créer un Compte" as UC15
usecase "UC16/UC17 - Modifier un Compte" as UC16
usecase "UC18 - Modifier un Rôle de Compte" as UC18
usecase "UC19 - Bannir un Compte" as UC19
}
Guest --> UC01
Guest --> UC05
Guest --> UC06
Guest --> UC14
Guest --> UC15
User --> UC07
User --> UC08
User --> UC12
User --> UC16
Mod --> UC09
Mod --> UC13
Mod --> UC19
Admin --> UC02
Admin --> UC18
UC07 ..> UC11 : <<include>>
UC08 ..> UC11 : <<include>>
```