Aller au contenu principal

Schemas

Chargement...

Le dossier schemas/ contient les modèles de données utilisés dans le backend de l'application AlgoForge. Ces modèles définissent la structure des entités de la base de données et leurs relations. Ils sont implémentés à l'aide de TypeORM, un ORM (Object-Relational Mapping) pour TypeScript et JavaScript.


1. Algorithme.schema.ts​

Description​

Ce fichier définit le modèle de données pour les algorithmes. Un algorithme représente une unité de travail dans l'application, pouvant être associée à un dossier et à des permissions.

Attributs​

  • id : Identifiant unique de l'algorithme (clé primaire).
  • nom : Nom de l'algorithme (par défaut : "Nouvel algorithme").
  • dateCreation : Date de création de l'algorithme (timestamp).
  • dateModification : Date de dernière modification de l'algorithme (timestamp).
  • dossier : Référence au dossier contenant l'algorithme (relation ManyToOne).
  • permAlgorithmes : Liste des permissions associées à l'algorithme (relation OneToMany).

Relations​

  • Dossier : Un algorithme peut être contenu dans un dossier.
  • PermAlgorithme : Un algorithme peut avoir plusieurs permissions associées.

2. Utilisateur.schema.ts​

Description​

Ce fichier définit le modèle de données pour les utilisateurs. Un utilisateur représente une personne utilisant l'application.

Attributs​

  • id : Identifiant unique de l'utilisateur (clé primaire).
  • adresseMail : Adresse email de l'utilisateur.
  • pseudo : Pseudo de l'utilisateur.
  • mdpHash : Mot de passe hashé de l'utilisateur.
  • dateInscription : Date d'inscription de l'utilisateur (timestamp).
  • theme : Identifiant du thème de l'utilisateur (par défaut : 0).
  • urlPfp : URL de la photo de profil de l'utilisateur.
  • isVerified : Indique si l'utilisateur a vérifié son email.

Relations​

  • Token : Un utilisateur peut avoir plusieurs tokens d'authentification.
  • PermDossier : Un utilisateur peut avoir des permissions sur plusieurs dossiers.
  • PermAlgorithme : Un utilisateur peut avoir des permissions sur plusieurs algorithmes.

3. Token.schema.ts​

Description​

Ce fichier définit le modèle de données pour les tokens d'authentification. Un token est utilisé pour authentifier un utilisateur dans l'application.

Attributs​

  • token : Valeur unique du token (clé primaire).
  • dateCreation : Date de création du token (timestamp).
  • dateExpiration : Date d'expiration du token (timestamp).

Relations​

  • Utilisateur : Un token est associé à un utilisateur.

4. PermDossier.schema.ts​

Description​

Ce fichier définit le modèle de données pour les permissions sur les dossiers. Une permission permet à un utilisateur d'effectuer des actions spécifiques sur un dossier.

Attributs​

  • idUtilisateur : Identifiant de l'utilisateur ayant la permission (clé primaire).
  • idDossier : Identifiant du dossier sur lequel la permission s'applique (clé primaire).
  • droits : Droits accordés à l'utilisateur (par exemple : lecture, écriture).

Relations​

  • Utilisateur : Une permission est associée à un utilisateur.
  • Dossier : Une permission est associée à un dossier.

5. PermAlgorithme.schema.ts​

Description​

Ce fichier définit le modèle de données pour les permissions sur les algorithmes. Une permission permet à un utilisateur d'effectuer des actions spécifiques sur un algorithme.

Attributs​

  • idUtilisateur : Identifiant de l'utilisateur ayant la permission (clé primaire).
  • idAlgorithme : Identifiant de l'algorithme sur lequel la permission s'applique (clé primaire).
  • droits : Droits accordés à l'utilisateur (par exemple : lecture, écriture).

Relations​

  • Utilisateur : Une permission est associée à un utilisateur.
  • Algorithme : Une permission est associée à un algorithme.

6. Dossier.schema.ts​

Description​

Ce fichier définit le modèle de données pour les dossiers. Un dossier est une structure hiérarchique qui peut contenir des algorithmes et être associé à des permissions.

Attributs​

  • id : Identifiant unique du dossier (clé primaire).
  • nom : Nom du dossier (par défaut : "Nouveau dossier").
  • idParent : Identifiant du dossier parent (si null, le dossier est à la racine).
  • dateCreation : Date de création du dossier (timestamp).
  • dateModification : Date de dernière modification du dossier (timestamp).

Relations​

  • Dossier : Un dossier peut avoir un dossier parent.
  • Algorithme : Un dossier peut contenir plusieurs algorithmes.
  • PermDossier : Un dossier peut avoir plusieurs permissions associées.