Aller au contenu
PROJET WEB DYNAMIQUE

Système de Gestion pour l'Atelier 404

Système de Gestion pour l'Atelier 404

Contexte

La section des techniciens en informatique a besoin d'un logiciel professionnel pour gérer son Atelier 404, le repair café étudiant ouvert au public. Cet espace permet aux citoyens de faire réparer gratuitement leurs équipements informatiques par nos étudiants, sous supervision.

Face à l'afflux croissant de demandes, un système de gestion des interventions est devenu indispensable pour organiser efficacement le travail des techniciens-étudiants et assurer un suivi de qualité.

Objectif du projet

Développer une application web complète permettant de gérer les interventions de l'Atelier 404, depuis la prise de contact jusqu'à la clôture de la réparation, avec Laravel (Blade + Breeze).

Cahier des charges fonctionnel

Page d'accueil publique

  • Présentation de l'Atelier 404 : texte descriptif, horaires, services proposés
  • Formulaire de contact :
    • Champs : nom, email, téléphone, type d'appareil, description du problème
    • Si validé correctement → création automatique d'un client et d'une intervention
    • Notification à l'admin de la nouvelle demande
  • Informations pratiques : localisation, FAQ basique

Authentification et rôles

  • Système d'authentification via Laravel Breeze
  • Deux types d'utilisateurs : Admin et Technicien
  • Gestion des permissions selon le rôle

Gestion des clients

  • Création automatique via formulaire de contact (si champs valides)
  • Création manuelle par admin uniquement
  • Informations : nom, email, téléphone, adresse (optionnelle)
  • Consultation de l'historique des interventions par client

Gestion des interventions

  • Création : automatique (via formulaire) ou manuelle (admin)
  • Informations : client, description, type d'appareil, priorité, date prévue
  • Statuts : Nouvelle demande → Diagnostic → En réparation → Terminé → Non réparable
  • Images : upload multiple (photos de l'appareil, du problème)
  • Attribution : assignation à un technicien-étudiant
  • Notes internes : commentaires techniques non visibles au public

Tableaux de bord

  • Admin :
    • Vue globale toutes interventions
    • Statistiques (interventions par statut, par technicien, par type d'appareil)
    • Demandes de contact non traitées
  • Technicien :
    • Ses interventions assignées uniquement
    • Possibilité d'ajouter des notes et images

Fonctionnalités additionnelles

  • Recherche d'interventions (client, statut, technicien, type d'appareil)
  • Filtrage par dates et priorités
  • Export CSV de la liste des interventions (admin only)
  • Pagination des listes
  • Messages flash pour les actions utilisateur

Exigences techniques

Stack obligatoire

  • Laravel avec Blade (pas de framework JS séparé)
  • Laravel Breeze pour l'authentification
  • Base de données relationnelle (MySQL/SQLite)
  • PHP 8.2+

Sécurité et autorisations

  • Protection CSRF sur tous les formulaires
  • Validation côté serveur (notamment formulaire public)
  • Gates/Policies Laravel obligatoires :
    • Seuls les admins peuvent modifier/supprimer des clients
    • Les techniciens ne voient que leurs interventions
    • Seul l'admin peut réassigner une intervention
    • Le formulaire public ne nécessite pas d'authentification

Gestion des fichiers

  • Upload d'images dans le storage public
  • Validation des types (images uniquement)
  • Taille maximale : 5MB par fichier
  • Génération de thumbnails pour l'affichage liste

Tests automatisés avec Laravel Dusk

Couverture de tests requise

Les tests Dusk devront couvrir au minimum :

  • Soumission du formulaire de contact public
  • Création automatique client/intervention
  • Processus complet de gestion d'intervention
  • Vérification des permissions par rôle
  • Upload et suppression d'images
  • Changements de statut
  • Recherche et filtrage
  • Cas d'erreur et validation

Organisation des tests

  • Un fichier de test par fonctionnalité majeure
  • Utilisation des factories pour les données
  • Base de test dédiée

Analyse et conception

Diagramme UML

Fournir un diagramme de classes UML complet incluant :

  • Toutes les entités et leurs attributs
  • Les relations et multiplicités
  • Les méthodes principales
  • Les énumérations (statuts, rôles, priorités)

Modalités de remise

Travail en équipe

  • Binômes obligatoires (2 étudiants)
  • Utilisation de Git avec historique significatif
  • Branches séparées par fonctionnalité

Livrables

Repository GitHub contenant :

  • Code source complet
  • Diagramme UML (format PDF ou image)
  • Suite de tests Dusk fonctionnels
  • Fichier .env.example configuré
  • Seeders pour données de démonstration

Échéance

lundi 17 novembre 2025 à 23h59 sur Teams (lien GitHub uniquement)

Exercices supplémentaires

  • Historique des interventions
    • Enregistrez et affichez toutes les modifications apportées à une intervention (changement de status, assignation à un technicien, qui a fait la modification, …)
    • Mettre en ligne l’application
    • Envoyer des notifications par email