# Abstractions principales Un forum est divisé par catégories générales (par exemple: un forum ayant comme intêret les aliments pourrait être divisé en 4 catégories qui seraient analogues aux 4 catégories alimentaires); ces sujets vont ensuite être divisés par fils - ou conversations (comme un fil dans la catégorie "Fruits et légumes" avec comme sujet "Comment aimez-vous manger des carottes?"). L'atôme du forum est la publication; un texte écrit par un utilisateur, soit pour démarrer une conversation, soit en réponse à la publication de départ, ou bien en réponse à une réponse en particulier. Les forums sont modérés par des utilisateurs particuliers (des modérateurs) et des administrateurs responsables du contenu de ceux-ci, ils peuvent ainsi censurer du contenu inapproprié et bannir un utilisateur qui ne suit pas les conditions d'utilisation des forums. ## Modèle du domaine (Diagramme de classes simplifié) ```plantuml hide circles hide methods hide attributes package Rôles { class "Administrateur" as Admin class "Modérateur" as Mod class "Utilisateur" as User class "Invité" as Guest } Guest <|-- User User <|-- Mod Mod <|-- Admin package Forum { class "Catégorie" as Category class "Fil" as Thread class "Publication" as Post class "Compte" as Account } Category "1" --o "*" Thread Thread "1" --o "1" Post : Publication Originale Thread "1" ---* "*" Post Post "1" --* "*" Post : Références Post "*" o-- "1" Account User "1" --o "1" Account ``` ## Glossaire ### Langage Commun #### Invité (Guest) Acteur qui utilise le système sans authentification. #### Utilisateur (User) Acteur authentifié dans un système. #### Modérateur (Moderator) Super-utilisateur avec certains droits sur le système et la responsabilité de garder le système sain d'utilisation. #### Administrateur (Administrator) Super-utilisateur qui gère le système et qui a ainsi tous les droits sur ce dernier. ### Jargon du domaine #### Forum (Forum) Souvent vu au pluriel pour désigner son ensemble, c'est l'environnement où des utilisateurs vont discuter sur des sujets désignés selon le contexte de l'endroit. #### Catégorie (Category) Division des forums par sujets généraux permettant une recherche plus facile des discussions passées. #### Publication (Post) Message écrit par un utilisateur, qui peut être en réponse à une autre publication ou pour démarrer une discussion. #### Fil de discussion (Thread) Ensemble de publications entre des utilisateurs qui composent une discussion. #### Compte (Account) Ensemble des informations reliés à un utilisateur (Nom d'utilisateur, adresse courriel, emplacement, etc.) qui peuvent où ne pas être vues par les autres utilisateurs. #### Archivage (Archiving) Mettre un fil de discussion dans un état où il est impossible d'ajouter à la conversation; effectivement rendre le fil uniquement lisible. ### Langage spécifique Vu l'aspect général du projet, il n'y a pas vraiment de langage spécifique à utiliser.