3. GSB Laravel⚓︎
Compétences exploitées
- A.1.1.1 – Analyse du cahier des charges d’un service à produire
- A.1.2.4 – Détermination des tests nécessaires à la validation d’un service
- A.4.1.1 – Proposition d’une solution applicative
- A.4.1.2 – Conception ou adaptation de l’interface utilisateur d’une solution applicative
- A.4.1.8 – Réalisation des tests nécessaires à la validation d’éléments adaptés ou développés
Le contexte GSB Laravel reprend le cahier des charges défini en première année sur le contexte GSB Compte rendu de visite. L'environnement technologique évolue. La DSI vous demande de faire évoluer votre application vers une architecture MVC, utilisant le framework Laravel.
Environnement technologique :
L’application web est développée en PHP sous le framework Laravel, complétée par les frameworks Bootstrap. La base de donnée est sous MySQL. Vous développerez en local avec WAMP et dans la mesure du possible avec une base de donnée partagée sur un poste distant.
Les cas d'utilisations suivants devront être présent :
- Migration de la base de donnée existante avec reprise des données.
- Ajouter la fonctionnalité d’authentification du visiteur (voir user story 1 ci-dessous)
- Consultation de la liste des praticiens.
- Affichage des détails sur un praticien. A l’exception de son identifiant, toutes les informations sur le praticien sont à afficher, ainsi que son type.
- Recherche de praticiens à partir de leur type.
- Ajouter la possibilité de consulter les comptes-rendus du visiteur connecté.
- Ajouter la possibilité d’ajouter un nouveau rapport de visite, automatiquement affecté à l'utilisateur connecté.
- Recherche avancée de praticiens à partir de leurs nom et ville.
- Edition PDF d’un rapport de visite
2. Evolutions⚓︎
⚠️ Vous veillerez pour chacune des Users Story Suivantes à rédiger un scénario de tests au debut de l'évolution, puis de réaliser ce scénario en le complétant des résultats obtenus.
User Story 1⚓︎
User story : Ajouter la fonctionnalité d’authentification du visiteur. (Bonus) Permettre au visiteur connecté de mettre à jour ses informations personnelles.
Description 🎯 :
En tant que visiteur médical
Je souhaite m’authentifier à l’aide d’un nom d’utilisateur et d’un mot de passe
Afin de accéder de manière sécurisée à l’application et à mes données professionnelles.
L’application actuelle ne comporte aucun mécanisme d’authentification, ce qui permet un accès libre à l’ensemble des fonctionnalités. Il est nécessaire d’ajouter un système d’authentification afin que seules les personnes disposant d’un compte puissent accéder à l’application. La barre de navigation devra afficher l’état de connexion de l’utilisateur.
- Si l’utilisateur n’est pas authentifié, le menu affiche “Non connecté” avec un lien “Se connecter” menant au formulaire d’authentification.
- Si l’utilisateur est authentifié, le menu affiche un message de bienvenue avec son prénom et son nom, ainsi qu’un lien “Se déconnecter” permettant de fermer la session.
Critères d’acceptation 📌
| ID | Critère |
|---|---|
| AC1 | L’accès à l’application est réservé aux utilisateurs authentifiés. |
| AC2 | Une page de connexion permet de saisir nom d’utilisateur et mot de passe. |
| AC3 | Si l’utilisateur n’est pas connecté, la barre de navigation affiche “Non connecté” et un lien Se connecter. |
| AC4 | Après authentification, la barre de navigation affiche Bienvenue [Prénom Nom]. |
| AC5 | Un lien Se déconnecter permet de fermer la session utilisateur. |
| AC6 | Après déconnexion, l’utilisateur revient à l’état Non connecté. |
⭐ Fonctionnalité optionnelle (bonus) – Gestion du profil utilisateur
En tant que visiteur connecté
Je souhaite consulter et modifier mes informations personnelles
Afin de maintenir mes données à jour dans l’application.
Un lien “Profil” est accessible dans la barre de navigation pour les utilisateurs authentifiés.
Les informations affichées et modifiables sont :
- adresse
- code postal
- ville
- mot de passe
Après modification et validation du formulaire, un message de confirmation indique que les informations ont été correctement enregistrées.
User Story 2⚓︎
User story : Ajouter la fonctionnalité de modification d'un compte rendu de visite.
Description 🎯 :
En tant que visiteur médical
Je souhaite pouvoir modifier un compte rendu de visite déjà enregistré
Afin de corriger ou compléter les informations saisies après sa création.
Actuellement, la consultation d’un compte rendu est strictement en lecture seule. Les utilisateurs souhaitent disposer d’un bouton ✏️ “Modifier” permettant de passer un compte rendu en mode édition.
Dans une logique de traçabilité des actions, il est également nécessaire d’enregistrer :
- la date de création du compte rendu
- la date de dernière modification
Ces informations permettront de suivre l’historique des modifications réalisées par les visiteurs médicaux.
Critères d’acceptation 📌
| ID | Critère |
|---|---|
| AC1 | Lors de la consultation d’un compte rendu, un bouton ✏️ Modifier est visible. |
| AC2 | Le clic sur ce bouton ouvre le compte rendu en mode édition. |
| AC3 | Les champs du compte rendu peuvent être modifiés puis enregistrés. |
| AC4 | La date de création du compte rendu est enregistrée lors de sa création. |
| AC5 | La date de dernière modification est mise à jour à chaque modification. |
| AC6 | Les dates doivent être visibles lors de la consultation du compte rendu. |
User story 3⚓︎
User story : Journalisation des connexions utilisateurs
Description 🎯 :
En tant qu’ administrateur de l’application GSB
Je souhaite disposer d’un historique des connexions des utilisateurs
Afin de assurer la traçabilité des accès à l’application et détecter d’éventuels usages anormaux.
Cette fonctionnalité s’inscrit dans une démarche de sécurité et d’audit permettant de conserver un journal des connexions (logs) consultable par les administrateurs.
Critères d’acceptation 📌
| ID | Critère |
|---|---|
| AC1 | À chaque authentification réussie, une entrée est enregistrée dans une table journal_connexions. |
| AC2 | Les informations enregistrées comprennent : l’identifiant utilisateur, la date et l’heure de connexion. |
| AC3 | L’adresse IP du client est également enregistrée. |
| AC4 | Les données doivent être conservées même si l’utilisateur se déconnecte. |
| AC5 | Les administrateurs peuvent consulter la liste des connexions via une interface dédiée. |
| AC6 | L’historique peut être trié par utilisateur et par date. |
Données à stocker
| Champ | Type | Description |
|---|---|---|
| idConnexion | INT (PK) | Identifiant de la connexion |
| idUtilisateur | INT | Identifiant de l’utilisateur |
| dateConnexion | DATETIME | Date et heure de connexion |
| adresseIP | VARCHAR(45) | Adresse IP du client |
| userAgent | VARCHAR(255) | Navigateur ou agent utilisateur |