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.exampleconfiguré - 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
