Aller au contenu
Retour au portfolio

Projet fil rouge — Titre professionnel DWWM, Metz Numeric School

LOC MNS

Une application web pour gérer le prêt de matériel informatique de l'école. Les emprunteurs réservent un appareil sur une période, l'administration valide ou refuse la demande, puis suit le retour du matériel.

La méthode

  1. Analyser le besoin

    Cahier des charges, rôles (emprunteur, administrateur) et parcours complet d'un emprunt.

  2. Maquetter les écrans

    Wireframes puis maquettes, pensés d'abord pour le mobile.

  3. Modéliser les données

    MCD, MLD puis MPD sous Looping : 7 tables. Chaque appareil a sa propre ligne (numéro de série, état) pour être tracé individuellement.

  4. Poser l'architecture MVC

    Routeur, contrôleurs, managers PDO et vues, écrits en PHP orienté objet, sans framework.

  5. Développer fonctionnalité par fonctionnalité

    Environnement Docker avec MySQL, versionnage Git avec branches et Conventional Commits.

  6. Mettre en ligne

    Déploiement chez o2switch, sur un sous-domaine de banudgr.fr.

Le parcours d'un emprunt

Flux général

Qui fait quoi, de la connexion au retour du matériel. Cliquez sur un numéro pour voir le détail de l'étape.

Flux général d'un emprunt dans LOC MNSTrois couloirs : emprunteur, application, service technique. L'emprunteur se connecte, choisit une catégorie, choisit les dates puis l'appareil, vérifie le récapitulatif et envoie la demande. L'application vérifie les identifiants, compte le matériel disponible, écarte le matériel déjà réservé et enregistre la demande en attente. Le service technique examine la demande et décide : refuser, la demande passe en refusé ; valider, elle passe en validé, puis en terminé quand il marque le matériel comme rendu. L'emprunteur suit le statut depuis Mes emprunts.EmprunteurApplication (PHP / MySQL)Service technique (admin)Se connecter1Vérifier les identifiantset ouvrir la sessionChoisir une catégorie2Compter le matérieldisponible par catégorieChoisir les datespuis l'appareil3Écarter le matériel déjàréservé sur la périodeVérifier le récapitulatifet envoyer4Enregistrer la demandestatut : En attenteExaminer la demande5transmiseDécisionStatut : Refusé (+ motif)refuserStatut : ValidévaliderMarquer comme rendu6au retour du matérielStatut : TerminéSuivre la demandepage « Mes emprunts »6le statut est luen base à chaque visiteEmprunteurTraitement serveurService techniqueDécisionLecture / écriture MySQL
Faites glisser le schéma pour le voir en entier.

Le détail de chaque étape

Étape 1 : Connexion Les identifiants sont vérifiés en base, puis chaque rôle arrive sur son propre tableau de bord.
Étape 1 : connexionLe formulaire envoie les identifiants au contrôleur, qui les vérifie en base. S'ils sont faux, un message d'erreur ramène au formulaire. S'ils sont bons, la session est ouverte avec l'identifiant et le rôle, puis l'utilisateur est dirigé vers le tableau de bord emprunteur ou administrateur.Formulaire de connexionVérifier les identifiantsMembresIdentifiantsvalides ?non : message d'erreurOuvrir la session(identifiant et rôle)ouiRôle ?Tableau de bordemprunteurTableau de bordadministrateuremprunteuradmin
Étape 2 : Choix de la catégorie Chaque catégorie affiche le nombre d'appareils disponibles.
Étape 2 : choix de la catégorieDepuis son tableau de bord, l'emprunteur demande la liste des catégories. Le manager compte en base les appareils disponibles par catégorie, et la vue affiche une tuile par catégorie avec ce nombre. Un clic sur une tuile mène à l'étape 3.Tableau de bordemprunteurContrôleur :liste des catégoriesManager : compter lesappareils disponiblesMatérielComptage par catégorieavec COUNT(CASE WHEN …)Vue : une tuile parcatégorie + nombre dispoClic sur une catégorieÉtape 3 : dates et appareil
Étape 3 : Choix des dates et de l'appareil Seuls les appareils libres sur toute la période sont proposés.
Étape 3 : choix des dates et de l'appareilL'emprunteur saisit la période puis demande les disponibilités. Le manager récupère le matériel de la catégorie et écarte, avec une sous-requête NOT IN, les appareils déjà réservés sur des dates qui se chevauchent. La liste des appareils disponibles s'affiche avec leur nombre ; l'emprunteur en choisit un et passe à l'étape 4.Saisir la périodeDu … Au …Clic sur« Voir les disponibilités »Manager : matériel de lacatégorie, sauf réservé(sous-requête NOT IN)MatérielEmpruntsUne réservation dont lesdates recoupent la périoderend l'appareil indisponibleListe des appareilsdisponibles + leur nombreClic sur « Choisir »Étape 4 : récapitulatif
Étape 4 : Récapitulatif et envoi La demande est enregistrée en attente, au nom de l'utilisateur connecté.
Étape 4 : récapitulatif et envoi de la demandeLe récapitulatif affiche le matériel, les dates, la durée et le demandeur. Annuler ramène en arrière sans rien enregistrer. Envoyer appelle EmpruntController::enregistrer(), qui lit l'identifiant de l'utilisateur dans la session, jamais dans le formulaire, puis enregistre l'emprunt en base avec le statut En attente et affiche un message de confirmation.Récapitulatif : matériel,dates, durée, demandeurAction ?Retour sansenregistrerannulerEmpruntController::enregistrer()envoyerIdentifiant ludans $_SESSIONJamais lu depuis leformulaire : impossible dedemander au nom d'un autreEnregistrer l'empruntstatut : En attenteEmpruntsMessage de confirmation(message flash)
Étape 5 : Traitement par le service technique L'administrateur valide la demande ou la refuse avec un motif.
Étape 5 : traitement de la demande par le service techniqueL'administrateur ouvre la gestion des emprunts ; EmpruntManager::getDemandes() lit les demandes en base et la liste s'affiche avec leur statut. Pour une demande, il décide : valider appelle validerEmprunt() et la demande passe en validé ; refuser demande un motif, appelle refuserEmprunt() et la demande passe en refusé. Les mises à jour sur deux tables passent par une transaction PDO.Ouvrir la gestiondes empruntsEmpruntManager::getDemandes()EmpruntsListe des demandesavec leur statutDécisionSaisir le motif du refusrefuservaliderEmprunt()validerrefuserEmprunt()Statut : ValidéStatut : RefuséEmpruntsMises à joursur deux tables :transactionPDO
Étape 6 : Retour du matériel et suivi L'emprunt passe en terminé ; l'emprunteur suit chaque statut dans « Mes emprunts ».
Étape 6 : retour du matériel et suivi par l'emprunteurCôté service technique : pour un emprunt validé, au retour du matériel, l'administrateur clique sur Marquer comme rendu ; EmpruntManager::marquerRendu() passe l'emprunt en terminé. Côté emprunteur : la page Mes emprunts lit en base les emprunts de l'utilisateur en session et affiche leur statut : en attente, validé, refusé ou terminé.Service techniqueEmprunteurStatut : ValidéMatériel rendu : clic sur« Marquer comme rendu »EmpruntManager::marquerRendu()Statut : TerminéEmpruntsOuvrir« Mes emprunts »Lire les emprunts del'utilisateur en sessionStatut affiché :en attente, validé,refusé ou terminé

L'application en images

Côté emprunteur

Côté administration

Choix techniques