Présentation

Ce projet est une application web développée avec le framework Python Flask. Elle permet la gestion de tickets de support informatique. Les utilisateurs peuvent créer, modifier et suivre leurs tickets, tandis que les administrateurs disposent de fonctionnalités avancées de gestion, de suivi et d’archivage.


Fonctionnalités principales

  • Authentification : Inscription, connexion et déconnexion sécurisées.
  • Gestion des tickets : Création, modification, suppression et changement de statut des tickets.
  • Priorisation automatique : Détection automatique de la priorité selon la description du ticket grâce à un système de mots-clés.
  • Historique : Archivage automatique des tickets résolus pour consultation ultérieure.
  • Calendrier : Vue calendrier des tickets pour les administrateurs.
  • Notifications par email : Envoi automatique d’un email lors de la résolution d’un ticket.
  • Gestion des rôles : Distinction entre utilisateur standard et administrateur.

Installation et configuration

Prérequis

  • Python 3.x
  • MySQL
  • Un serveur SMTP (Gmail recommandé)
  • Les modules Python listés dans le fichier requirements.txt

Étapes d’installation

  1. Cloner le dépôt du projet sur votre machine.
  2. Installer les dépendances Python
    Ouvrez un terminal et exécutez :
    pip install -r requirements.txt
  3. Créer la base de données MySQL
    Créez une base nommée ticket et configurez l’accès dans le fichier app.py ou via une variable d’environnement.
  4. Configurer les variables d’environnement
    Créez un fichier .env à la racine du projet avec le contenu suivant :
   MAIL_USERNAME=ton_email@gmail.com
   MAIL_PASSWORD=ton_mot_de_passe_app
   MAIL_DEFAULT_SENDER=ton_email@gmail.com
  1. Lancer l’application
    Exécutez :
    python app.py
    Puis accédez à l’adresse http://localhost:5000 dans votre navigateur.

Structure du projet

  • app.py : Application principale Flask
  • connection.py : Configuration de la connexion mail
  • templates/ : Fichiers HTML pour l’interface utilisateur
  • static/ : Fichiers statiques (CSS, JavaScript)
  • .env : Variables d’environnement (non versionné)
  • .gitignore : Liste des fichiers/dossiers à ignorer par Git

Sécurité

  • Les mots de passe sont hashés avec la bibliothèque Werkzeug.
  • Les informations sensibles (mots de passe, clés, etc.) doivent être stockées dans le fichier .env et ne jamais être versionnées.
  • Les routes sont protégées selon le rôle de l’utilisateur (utilisateur ou administrateur).

Premier lancement

Lors du premier lancement, l’application redirige automatiquement vers la page /setup pour créer le compte administrateur.

  1. Puis vous accéder à l’interface de connexion : 

2. Connectez-vous en admin ou bien créez un nouveau compte :