react-logo/misc/projects/ticketing_app.md

2.6 KiB

Application de suivi des demandes client

Objectif

Implémenter une application de suivi des demandes client proposant les fonctionnalités suivantes:

  • Authentification par identifiant et mot de passe
  • Autorisation par rôles:
    • "client"
    • "développeur"
  • Interfaces pour le rôle "client":
    • Une interface de visualisation des projets qui lui sont associés
    • Une interface de création d'une nouvelle demande pour un projet donné
    • Une interface de visualisation des demandes en cours/cloturée pour un projet donné
    • Une interface de visualisation de détails d'une demande et des commentaires associés, avec possibilité d'ajouter un commentaire
  • Interfaces pour le rôle "développeur":
    • Une interface de création d'un nouveau projet
    • Une interface de création d'un nouveau compte client
    • Une interface de visualisation des clients (listing)
    • Une interface de visualisation des projets (listing)
    • Une interface de visualisation des dernières demandes ouvertes (multi-projet)
    • Une interface de visualisation de détails d'une demande et des commentaires associés, avec possibilité d'ajouter un commentaire et de changer l'état d'une demande

Modèle de données

User (User)

Attributs

  • id:int (unique) Identifiant (clé primaire) de l'utilisateur
  • username:string (unique) Nom de l'utilisateur
  • password:string Mot de passe de l'utilisateur
  • projects:[]Project Projets associés à l'utilisateur

Projet (Project)

Attributs

  • id:int (unique) Identifiant (clé primaire) du projet
  • name:string Nom du projet
  • users:[]User Utilisateurs attachés au projet

Demande (Request)

Attributs

  • id:int (unique) Identifiant (clé primaire) de la demande
  • title:string Titre associé à la demande
  • author:User Auteur de la demande (clé étrangère)
  • project:Project Identifiant du projet associé (clé étrangère)
  • status:RequestStatus Identifiant du statut courant de la demande
  • comments:[]Comment Commentaire associé à la demande
  • createdAt:Date Date de la création du commentaire

Statut de demande (RequestStatus)

Attributs

  • id:int (unique) Identifiant (clé primaire) du statut de requête
  • label:string Label associé au statut

Commentaire (Comment)

Attributs

  • id:int (unique) Identifiant (clé primaire) du commentaires
  • request:Request Identifiant de la demande associé au commentaire (clé étrangère)
  • text:string Texte du commentaire
  • createdAt:Date Date de la création du commentaire
  • author:User Auteur du commentaire (clé étrangère)