shield-checkContexte projet fil rouge – Outil de ticketing

Présentation TechSupport360 est une entreprise de services informatiques qui gère le support technique pour plusieurs PME. Actuellement, les clients envoient leurs demandes par email, ce qui crée beaucoup de désorganisation :

  • tickets oubliés,

  • suivi compliqué,

  • pas de traçabilité.


🚩 Besoin exprimé par TechSupport360

“Nous avons besoin d’un outil centralisé de gestion des tickets accessible via une API, afin de permettre à nos clients de soumettre leurs demandes facilement, et à nos agents de les traiter efficacement.”

L’outil devra être pensé API-first, afin de pouvoir être utilisé aussi bien par un futur site web que par une application mobile.


🎯 Objectifs de l’outil de ticketing

  • Permettre aux clients de créer et suivre leurs tickets.

  • Permettre aux agents de support de traiter les tickets qui leur sont assignés.

  • Permettre aux administrateurs de gérer les catégories, utilisateurs, et d’avoir une vue globale.


📖 Cahier des charges (version simplifiée)

Utilisateurs & rôles

  • Client : crée un ticket, commente ses tickets, suit leur avancement.

  • Agent : voit les tickets assignés, peut changer leur statut, commenter.

  • Admin : gère les utilisateurs, catégories, tickets.

Tickets

  • Un ticket contient :

    • titre, description, date de création

    • priorité (faible, normale, haute)

    • statut (ouvert, en cours, résolu, fermé)

    • assignation à un agent

  • Chaque ticket appartient à un client.

  • Chaque ticket peut recevoir plusieurs commentaires (client ↔ agent).

Catégories

  • Chaque ticket est associé à une catégorie (ex : Facturation, Technique, Bug logiciel).

Règles métier

  • Un client ne peut voir que ses tickets.

  • Un agent ne peut voir que les tickets qui lui sont assignés.

  • Un admin peut tout voir.


🔧 Exigences techniques

  • API REST construite avec Symfony + API Platform.

  • Authentification par TOKEN.

  • Documentation automatique avec Swagger/OpenAPI.

  • Tests unitaires et fonctionnels.

  • Pagination, tri et filtres API Platform.

En plus de ces besoins globaux, l'entreprise à soumis quelque conditions spécifiques pour garder une cohérence avec l'ensemble de ses projets:

  • Elle souhaite utiliser des UUID pour identifier ses différentes entités et pas des id auto-incrémenter

  • Elle souhaite tracker la date de création et de modification de chacune données sauvegardées

  • Elle souhaite que le projet soit livré avec un README.md propre et contenant un lien vers la documentation de l'API

Last updated