Aller au contenu

Cahier des Charges : Plateforme d'Événement (MVP)

Projet réalisé dans le cadre de l'UE 6 : Développement Web

1. Introduction & Concept Général

Ce projet consiste à développer une plateforme web (Minimum Viable Product) pour la gestion d'un événement culturel se déroulant sur une seule journée. Cette plateforme a un double objectif :

  1. Pour les artistes : Servir de vitrine promotionnelle. En s'inscrivant, les artistes peuvent présenter leur profil et leur catalogue de "prestations" (concerts, spectacles, ateliers, etc.), gagnant ainsi en visibilité auprès du public et des organisateurs.
  2. Pour l'organisateur : Agir comme un outil de planification central. L'organisateur peut consulter tous les talents inscrits et leurs propositions pour construire et présenter le programme officiel de la journée.

Le concept est donc de créer un écosystème où les artistes se font connaître, où l'organisateur puise dans ce vivier de talents pour créer un événement, et où le public peut découvrir à la fois les artistes et le programme final.

Note : Votre Mission Créative

Le thème de "Festival des Talents Locaux" est une base. Vous devez imaginer votre propre événement. Cela peut être une convention de jeux de société, une journée portes ouvertes d'une école d'art, un festival de musique électronique, une foire médiévale... Soyez créatifs ! Le but est d'adapter le design et le contenu du site à l'univers que vous aurez choisi.

Description globale du site web

Le site sera divisé en deux zones distinctes : une partie accessible à tous (publique) et une partie sécurisée réservée aux utilisateurs connectés (privée).

La partie publique

Cette section est la vitrine de l'événement et de ses participants. Elle contiendra les pages suivantes :

  • Page d'accueil : Le point central du site. Elle présentera brièvement l'événement et affichera surtout le programme complet de la journée, une fois celui-ci établi par l'organisateur.
  • Page "Artistes" : Un annuaire public de tous les artistes inscrits sur la plateforme. Chaque artiste y aura une vignette cliquable menant vers sa page de profil détaillée. Cette page offrira une option de filtre pour n'afficher que les artistes qui sont effectivement programmés pour la journée.
  • Page "Prestations" : Un catalogue complet de toutes les prestations proposées par les artistes inscrits, qu'elles soient programmées ou non. La page proposera des options de recherche et de filtre (par catégorie, par artiste, et surtout un filtre pour ne voir que les prestations faisant partie du programme officiel).
  • Page de contact : Un formulaire permettant aux visiteurs d'envoyer un message à l'organisateur.
  • Pages d'inscription, de connexion et de réinitialisation de mot de passe : Les portails d'entrée et de gestion de compte pour les artistes et l'organisateur.

La partie privée

Accessible uniquement après authentification, cette section offre les outils de gestion aux utilisateurs. Chaque espace est conçu pour être un poste de travail fonctionnel et direct, centré sur les actions principales de chaque rôle.

  • Pour les Artistes (Espace Artiste) : Le tableau de bord est une page de synthèse personnelle axée sur la participation de l'artiste à l'événement. Il se concentre sur l'information la plus cruciale : le planning. Cette page présente :

    • Un résumé du profil : Affiche le nom d'artiste, la photo de profil et un message de bienvenue.
    • La programmation personnelle intégrée : C'est l'élément central du tableau de bord.
      • Si l'artiste a des prestations programmées, cette section affiche la liste complète et claire de son planning (ex: "14h00 - Scène Principale : Titre de la prestation").
      • Si l'artiste n'est pas encore programmé, un message clair l'en informe (ex: "Vous n'êtes pas encore dans le programme officiel. L'organisateur met le planning à jour régulièrement !").
    • Des raccourcis d'action : Des boutons ou des liens clairement visibles pour accéder aux autres fonctionnalités :
      • "Éditer mon profil" (mène vers UC-B.1)
      • "Gérer mon catalogue de prestations" (mène vers la page pour UC-C.1, C.2, C.3)
  • Pour l'Organisateur (Espace Organisateur) : L'Espace Organisateur est un espace de travail direct. La page d'accueil de l'organisateur est l'interface de gestion du programme. En se connectant, il accède immédiatement à :

    • La grille du programme interactive :
      • Il voit la grille horaire complète de l'événement, similaire à celle de la page d'accueil publique.
      • Cette version est cependant interactive et inclut les outils de gestion :
        • Un bouton bien visible "Planifier une prestation" pour lancer l'assistant (UC-D.1).
        • Pour chaque prestation déjà planifiée dans la grille, une option cliquable pour la "Déprogrammer" (UC-D.2).
    • Accès aux autres fonctions de gestion : Les autres tâches administratives sont accessibles via un menu de navigation principal dans l'espace privé :
      • "Gérer les Artistes" (mène à la liste des artistes où il peut en supprimer un, voir UC-D.3).
      • "Éditer mon profil" (mène vers UC-B.1).
    • Il conserve bien sûr ses droits d'administration complets lui permettant de :
      • Gérer le profil et le catalogue de prestations de n'importe quel artiste.
      • Supprimer des comptes d'artistes si nécessaire.

Note importante sur les rôles

Bien que l'organisateur puisse effectuer des actions similaires à celles d'un artiste (par exemple, éditer un profil), son rôle est fondamentalement différent. Il agit en tant qu'administrateur sur les données des autres, tandis qu'un artiste ne peut gérer que ses propres données. C'est pourquoi, dans notre système, un organisateur n'est pas un "super-artiste", mais bien un rôle distinct avec des privilèges de gestion globaux.

2. Le Contexte Technique et les Contraintes

Minimum Viable Product (MVP)

Il s'agit de construire une version initiale et fonctionnelle du site, contenant uniquement les fonctionnalités essentielles décrites dans ce document. Cela permet de valider le concept avant d'envisager des développements plus complexes.

Contraintes Techniques

  • Base de Données : Certaines données de base (la liste des scènes, les catégories de prestations) ne seront pas gérées via une interface. Vous devrez les encoder directement dans la base de données.
  • Données de Démonstration : Le site doit être livré avec un jeu de données représentatif (quelques artistes, prestations, et un programme partiel) pour permettre de tester immédiatement les fonctionnalités.
  • Responsive Design : Le site doit être parfaitement consultable et utilisable sur des appareils mobiles (smartphones) et des ordinateurs de bureau. En version "desktop", évitez les longues pages qui défilent ; privilégiez une présentation des informations côte à côte.
  • Gestion des Dépendances avec Composer : Pour vous initier aux pratiques modernes de PHP, vous utiliserez l'outil Composer pour gérer les librairies externes.
    • Envoi d'e-mails : L'envoi de tous les courriels (contact, réinitialisation de mot de passe) devra obligatoirement être implémenté en utilisant la librairie phpmailer/phpmailer.
    • Un autre sera ajouté prochainement

ATTENTION : Agilité du Projet

Comme dans un projet réel, les besoins peuvent légèrement évoluer. Assurez-vous de toujours vous référer à la dernière version de ce cahier des charges. La flexibilité et la capacité d'adaptation sont des compétences clés pour un développeur.

3. Acteurs et Fonctionnalités (Cas d'Utilisation)

Diagramme des Cas d'Utilisation

alt text

Spécifications Détaillées

(L'authentification est un prérequis pour toutes les actions des Artistes et Organisateurs)

ATTENTION

Pour les formulaires, les champs précédé par une * sont obligatoires. Tous les champs devront-être vérifiés au niveau du client (navigateur) et au niveau du serveur.

Groupe A : Fonctionnalités Publiques (Acteur : Visiteur)

UC-A.1 : Se connecter

  • Acteur(s) principal(aux) : Visiteur
  • Objectif(s) : Permettre à un visiteur disposant d'un compte d'accéder à son espace privé.
  • Précondition(s) : L'utilisateur n'est pas déjà authentifié.
  • Postcondition(s) (en cas de succès) : L'utilisateur est authentifié, une session est créée, et il est redirigé vers son espace personnel (Artiste ou Organisateur).
  • Scénario nominal :
    1. Utilisateur : Clique sur le lien/bouton "Se connecter".
    2. Système : Affiche la page de connexion avec un formulaire contenant les champs "*E-mail" et "*Mot de passe".
    3. Utilisateur : Saisit son e-mail et son mot de passe, puis clique sur le bouton "Valider".
    4. Système : Vérifie que les champs ne sont pas vides.
    5. Système : Valide que l'e-mail existe dans la base de données et que le mot de passe correspond.
    6. Système : Crée une session pour l'utilisateur, stocke ses informations d'identification, et le redirige vers son tableau de bord personnel.
  • Scénarios alternatifs et d'erreur :
    • 4a : Un ou plusieurs champs sont vides.
      • Déroulement : Le système affiche un message d'erreur (ex: "Veuillez remplir tous les champs.").
      • Résolution : Le scénario nominal reprend à l'étape 2 (le formulaire est ré-affiché).
    • 5a : L'e-mail n'existe pas ou le mot de passe est incorrect.
      • Déroulement : Le système affiche un message d'erreur générique (ex: "L'adresse e-mail ou le mot de passe est incorrect.").
      • Résolution : Le scénario nominal reprend à l'étape 2 (le formulaire est ré-affiché, en conservant l'e-mail saisi par l'utilisateur).

UC-A.2 : S'inscrire sur la plateforme

  • Acteur(s) principal(aux) : Visiteur
  • Objectif(s) : Créer un nouveau compte Artiste pour pouvoir proposer des prestations.
  • Précondition(s) : L'utilisateur n'est pas déjà authentifié.
  • Postcondition(s) (en cas de succès) : Un nouveau compte Artiste est créé dans la base de données. L'utilisateur est automatiquement authentifié et redirigé vers son Espace Artiste.
  • Scénario nominal :
    1. Utilisateur : Clique sur le lien "S'inscrire".
    2. Système : Affiche le formulaire d'inscription (*Nom, *Prénom, *Nom d'artiste, *Photo, Description\Biographie, *E-mail, *Mot de passe, *Confirmation du mot de passe).
    3. Utilisateur : Remplit tous les champs obligatoires et valide.
    4. Système : Vérifie la validité des données (format e-mail, champs obligatoires non vides, mots de passe identiques).
    5. Système : Vérifie que l'adresse e-mail n'est pas déjà utilisée dans la base de données.
    6. Système : Crée le nouvel utilisateur Artiste dans la base de données, le mot de passe est hashé.
    7. Système : Authentifie automatiquement l'utilisateur (crée une session) et le redirige vers son Espace Artiste avec un message de bienvenue.
  • Scénarios alternatifs et d'erreur :
    • 4a : Données invalides (champ vide, e-mail mal formaté, mots de passe différents).
      • Déroulement : Le système affiche un ou plusieurs messages d'erreur spécifiques.
      • Résolution : Le scénario nominal reprend à l'étape 2. Le formulaire est ré-affiché avec les données précédemment saisies (sauf les mots de passe).
    • 5a : L'adresse e-mail est déjà utilisée.
      • Déroulement : Le système affiche un message d'erreur (ex: "Cette adresse e-mail est déjà associée à un compte."). Le formulaire est ré-affiché avec les données précédemment saisies (sauf les mots de passe).
      • Résolution : Le scénario nominal reprend à l'étape 2.

UC-A.3 : Réinitialiser son mot de passe

  • Acteur(s) principal(aux) : Visiteur
  • Objectif(s) : Permettre à un utilisateur ayant oublié son mot de passe d'en recevoir un nouveau.
  • Précondition(s) : L'utilisateur n'est pas déjà authentifié.
  • Postcondition(s) (en cas de succès) : Le mot de passe de l'utilisateur est mis à jour dans la base de données et le nouveau mot de passe lui est envoyé par e-mail.
  • Scénario nominal :
    1. Utilisateur : Clique sur le lien "Mot de passe oublié ?" depuis la page de connexion.
    2. Système : Affiche un formulaire demandant l'adresse e-mail associée au compte.
    3. Utilisateur : Saisit son adresse e-mail et valide.
    4. Système : Vérifie que l'adresse e-mail existe dans la base de données.
    5. Système : Génère un nouveau mot de passe temporaire et sécurisé.
    6. Système : Met à jour le mot de passe de l'utilisateur dans la base de données.
    7. Système : Envoie un e-mail (via PHPMailer) à l'utilisateur contenant son nouveau mot de passe.
    8. Système : Affiche un message de confirmation (ex: "Si votre adresse e-mail est dans notre système, un nouveau mot de passe vous a été envoyé.").
  • Scénarios alternatifs et d'erreur :
    • 4a : L'adresse e-mail n'est pas trouvée dans la base de données.
      • Déroulement : Pour des raisons de sécurité, le système ne fait rien de différent.
      • Résolution : Le scénario nominal reprend à l'étape 8 (les étapes 5, 6 et 7 ne sont pas exécutées). L'utilisateur ne reçoit simplement pas d'e-mail.

UC-A.4 : Consulter le programme de la journée

  • Acteur(s) principal(aux) : Visiteur
  • Objectif(s) : Découvrir le déroulement de l'événement, voir quelles prestations ont lieu, où et quand.
  • Précondition(s) : N/A
  • Postcondition(s) (en cas de succès) : N/A (simple consultation).
  • Scénario nominal :
    1. Utilisateur : Navigue vers la page d'accueil du site.
    2. Système : Récupère de la base de données toutes les informations de la table Programmation ainsi que les données associées (nom de la prestation, nom de l'artiste, nom de la scène).
    3. Système : Affiche une grille horaire (tableau) où les colonnes représentent les scènes et les lignes les créneaux horaires.
    4. Système : Pour chaque créneau programmé, affiche une case cliquable contenant le titre de la prestation et le nom de l'artiste. Le lien pointe vers la page de détail de la prestation.
  • Scénarios alternatifs et d'erreur :
    • 3a : Aucune prestation n'est encore programmée.
      • Déroulement : Le système récupère une liste vide de la base de données.
      • Résolution : Le système affiche la grille horaire avec les scènes et les heures, mais toutes les cases sont vides. Un message informatif est affiché (ex: "Le programme est en cours d'élaboration. Revenez bientôt !").

UC-A.5 : Consulter la liste des artistes

  • Acteur(s) principal(aux) : Visiteur
  • Objectif(s) : Découvrir les artistes, consulter leur profil détaillé et voir immédiatement où et quand ils se produisent.
  • Précondition(s) : N/A
  • Postcondition(s) (en cas de succès) : N/A (simple consultation).
  • Scénario nominal :
    1. Utilisateur : Navigue vers la page "Artistes".
    2. Système : Affiche un formulaire de filtre simple en haut de la page, avec une case à cocher "Afficher uniquement les artistes programmés".
    3. Système : Par défaut (filtre non activé), récupère tous les artistes de la base de données.
    4. Système : Affiche une galerie de vignettes d'artistes. Chaque vignette contient :
      • La photo et le nom de l'artiste.
      • Si l'artiste est programmé, une liste de ses créneaux (ex: "14h - Scène Principale - Spectacle de marionettes", "17h - Scène Découverte - Danse contemporaine").
      • La vignette entière est un lien cliquable.
    5. Utilisateur : Clique sur la vignette d'un artiste.
    6. Système : Affiche la page de profil détaillée de l'artiste sélectionné. Cette page contient :
      • Ses informations complètes (nom, prénom, nom d'artiste, photo en grand format, description/biographie).
      • Une section listant les vignettes de toutes les prestations que cet artiste propose. Chaque vignette de prestation affiche son image, son titre, et si elle est programmée, l'heure et la scène correspondantes.
    7. Utilisateur : Clique sur la vignette d'une prestation (depuis la page de profil de l'artiste).
    8. Système : Affiche la page de détail de la prestation sélectionnée (titre, description complète, image en grand format, catégorie, etc.). Voir UC suivant.
  • Scénarios alternatifs et d'erreur :
    • 3a : L'utilisateur active le filtre "Afficher uniquement les artistes programmés".
      • Déroulement : L'utilisateur coche la case et valide. Le système exécute une nouvelle requête pour ne sélectionner que les artistes ayant au moins une prestation dans la table Programmation.
      • Résolution : Le scénario nominal reprend à l'étape 4, avec la liste filtrée des artistes.
    • 4a : Aucun artiste ne correspond au filtre.
      • Déroulement : Le système ne trouve aucun artiste.
      • Résolution : Le système affiche un message informatif (ex: "Aucun artiste ne correspond à votre recherche.").

UC-A.6 : Consulter le catalogue des prestations

  • Acteur(s) principal(aux) : Visiteur
  • Objectif(s) : Rechercher une prestation et voir immédiatement si, où et quand elle a lieu.
  • Précondition(s) : N/A
  • Postcondition(s) (en cas de succès) : N/A (simple consultation).
  • Scénario nominal :
    1. Utilisateur : Navigue vers la page "Prestations".
    2. Système : Affiche un formulaire de recherche/filtre complet contenant :
      • Un champ de texte pour rechercher par mot-clé (recherche sur la description et le nom de la prestation).
      • Une liste déroulante pour filtrer par artiste.
      • Une liste déroulante pour filtrer par catégorie.
      • Une case à cocher pour "Afficher uniquement les prestations programmées".
    3. Système : Par défaut, récupère toutes les prestations de tous les artistes.
    4. Système : Affiche une galerie de vignettes de prestations. Chaque vignette contient :
      • L'image, le titre de la prestation et le nom de l'artiste.
      • Si la prestation est programmée, son heure et sa scène (ex: "16h - Espace Zen").
      • La vignette entière est un lien cliquable.
    5. Utilisateur : Clique sur la vignette d'une prestation.
    6. Système : Affiche la page de détail de la prestation sélectionnée. Cette page contient :
      • Les informations complètes de la prestation (titre, description, image, catégorie).
      • Si la prestation est programmée, la page affiche également clairement l'heure et la scène.
      • Le nom de l'artiste qui la propose, sous forme de lien cliquable vers la page de profil de cet artiste.
  • Scénarios alternatifs et d'erreur :
    • 3a : L'utilisateur utilise un ou plusieurs filtres.
      • Déroulement : L'utilisateur remplit un ou plusieurs champs du formulaire de filtre et valide. Le système récupère runiquement les prestations qui correspondent à tous les critères spécifiés.
      • Résolution : Le scénario nominal reprend à l'étape 4 avec la liste filtrée des prestations.
    • 4a : Aucune prestation ne correspond aux critères de recherche.
      • Déroulement : Le système ne trouve aucune prestation.
      • Résolution : Le système affiche un message informatif (ex: "Aucune prestation ne correspond à votre recherche.").

UC-A.7 : Contacter l'organisateur

  • Acteur(s) principal(aux) : Visiteur
  • Objectif(s) : Envoyer un message à l'organisateur de l'événement et en recevoir une copie pour ses archives.
  • Précondition(s) : N/A
  • Postcondition(s) (en cas de succès) : Un e-mail est envoyé à l'adresse de l'organisateur, avec l'adresse e-mail de l'expéditeur en copie (CC).
  • Scénario nominal :
    1. Utilisateur : Navigue vers la page "Contact".
    2. Système : Affiche un formulaire de contact avec les champs : *Votre nom, *Votre adresse e-mail, *Sujet, *Message.
    3. Utilisateur : Remplit tous les champs obligatoires et valide.
    4. Système : Vérifie que les champs obligatoires ne sont pas vides et que le format de l'e-mail est valide.
    5. Système : Utilise PHPMailer pour envoyer un e-mail à l'adresse de l'organisateur (configurée dans le système). L'e-mail contient les informations saisies par l'utilisateur. Le système ajoute l'adresse e-mail fournie par l'utilisateur dans le champ "Copie Carbone" (CC).
    6. Système : Affiche un message de confirmation (ex: "Votre message a bien été envoyé. Une copie vous a été adressée.").
  • Scénarios alternatifs et d'erreur :
    • 2a : L'utilisateur est déjà authentifié.
      • Déroulement : Le système pré-remplit automatiquement les champs *Votre nom et *Votre adresse e-mail avec les informations du profil de l'utilisateur.
      • Résolution : Le scénario nominal se poursuit.
    • 4a : Données invalides (champ obligatoire vide, e-mail mal formaté).
      • Déroulement : Le système affiche un ou plusieurs messages d'erreur.
      • Résolution : Le scénario nominal reprend à l'étape 2. Le formulaire est ré-affiché avec les données précédemment saisies.

Groupe B : Fonctionnalités de l'Utilisateur Connecté (Artistes et Organisateurs)

Cette section décrit les actions de base accessibles à tout utilisateur une fois qu'il est authentifié sur la plateforme.

UC-B.1 : Éditer son profil personnel

  • Acteur(s) principal(aux) : Artiste, Organisateur
  • Objectif(s) : Mettre à jour ses propres informations de compte et de présentation.
  • Précondition(s) : L'utilisateur est authentifié.
  • Postcondition(s) (en cas de succès) : Les informations de l'utilisateur sont mises à jour dans la base de données.
  • Scénario nominal :
    1. Utilisateur : Navigue vers son espace personnel et clique sur un lien ou bouton "Modifier mon profil".
    2. Système : Récupère les informations actuelles de l'utilisateur (nom, prénom, nom d'artiste si applicable un organisateur n'a pas de nom d'artiste, description, e-mail) depuis la base de données.
    3. Système : Affiche un formulaire prérempli avec ces informations. Les champs du mot de passe sont laissés vides pour des raisons de sécurité.
    4. Utilisateur : Modifie les informations souhaitées dans les champs (*Nom, *Prénom, *Nom d'artiste (pour les Artistes), *Photo, Description, *E-mail). Il peut également choisir de définir un nouveau mot de passe en remplissant les champs Nouveau mot de passe et Confirmation du nouveau mot de passe.
    5. Utilisateur : Valide le formulaire.
    6. Système : Effectue les vérifications suivantes :
      • Tous les champs obligatoires sont remplis.
      • Le format de l'adresse e-mail est valide.
      • Si l'e-mail a été modifié, il vérifie que la nouvelle adresse n'est pas déjà utilisée par un autre compte.
      • Si un nouveau mot de passe a été saisi, il vérifie que les deux champs de mot de passe sont identiques.
    7. Système : Met à jour les informations dans la base de données. Si un nouveau mot de passe a été fourni et validé, il hache le nouveau mot de passe et l'enregistre.
    8. Système : Affiche un message de confirmation (ex: "Votre profil a été mis à jour avec succès.") et rafraîchit la page ou redirige vers l'espace personnel.
  • Scénarios alternatifs et d'erreur :
    • 6a : Données invalides (champ obligatoire vide, e-mail mal formaté, mots de passe différents, e-mail déjà utilisé).
      • Déroulement : Le système bloque la mise à jour et affiche un ou plusieurs messages d'erreur spécifiques pour guider l'utilisateur.
      • Résolution : Le scénario nominal reprend à l'étape 3. Le formulaire est ré-affiché avec les dernières modifications tentées par l'utilisateur (sauf les mots de passe).
    • 4a : L'utilisateur ne souhaite pas changer de mot de passe.
      • Déroulement : L'utilisateur laisse les champs de mot de passe vides.
      • Résolution : Le système ignore les champs de mot de passe lors de la validation et de la mise à jour, conservant l'ancien mot de passe intact. Le scénario nominal se poursuit normalement à partir de l'étape 7.

UC-B.2 : Se déconnecter

  • Acteur(s) principal(aux) : Artiste, Organisateur
  • Objectif(s) : Mettre fin à la session authentifiée de manière sécurisée.
  • Précondition(s) : L'utilisateur est authentifié.
  • Postcondition(s) (en cas de succès) : La session de l'utilisateur est détruite. L'utilisateur est redirigé vers la page d'accueil en tant que simple visiteur.
  • Scénario nominal :
    1. Utilisateur : Clique sur le lien ou bouton "Se déconnecter", situé dans l'en-tête du site ou dans un menu de profil.
    2. Système : Détruit la session PHP en cours.
    3. Système : Redirige l'utilisateur vers la page d'accueil du site.
  • Scénarios alternatifs et d'erreur : N/A (Cette action est simple et ne devrait pas échouer dans des conditions normales).

Groupe C : Fonctionnalités Spécifiques à l'Artiste

Cette section décrit les actions que seul un artiste peut effectuer sur ses propres données, une fois authentifié.

UC-C.1 : Ajouter une prestation à son catalogue

  • Acteur(s) principal(aux) : Artiste
  • Objectif(s) : Enrichir son catalogue de prestations pour les rendre visibles sur la plateforme et disponibles pour l'organisateur.
  • Précondition(s) : L'artiste est authentifié.
  • Postcondition(s) (en cas de succès) : Une nouvelle prestation est enregistrée dans la base de données et associée au profil de l'artiste.
  • Scénario nominal :
    1. Artiste : Dans son "Espace Artiste", clique sur le bouton "Ajouter une prestation".
    2. Système : Affiche un formulaire vierge pour la création d'une prestation, contenant les champs : *Titre, *Description, *Image, *Catégorie (liste déroulante).
    3. Artiste : Remplit les champs obligatoires, télécharge une image, et valide le formulaire.
    4. Système : Vérifie que tous les champs obligatoires sont remplis.
    5. Système : Enregistre la nouvelle prestation dans la base de données, en l'associant à l'ID de l'artiste actuellement connecté.
    6. Système : Affiche un message de confirmation (ex: "La prestation a été ajoutée avec succès.") et redirige l'artiste vers la liste de son catalogue.
  • Scénarios alternatifs et d'erreur :
    • 4a : Un ou plusieurs champs obligatoires sont vides.
      • Déroulement : Le système affiche un message d'erreur.
      • Résolution : Le scénario nominal reprend à l'étape 2. Le formulaire est ré-affiché avec les données précédemment saisies pour éviter à l'artiste de tout retaper.

UC-C.2 : Modifier une prestation de son catalogue

  • Acteur(s) principal(aux) : Artiste
  • Objectif(s) : Mettre à jour les informations d'une de ses prestations existantes.
  • Précondition(s) : L'artiste est authentifié et possède au moins une prestation.
  • Postcondition(s) (en cas de succès) : Les informations de la prestation sélectionnée sont mises à jour dans la base de données.
  • Scénario nominal :
    1. Artiste : Depuis la liste de ses prestations dans son "Espace Artiste", clique sur le bouton "Modifier" à côté de la prestation souhaitée.
    2. Système : Récupère les données de la prestation sélectionnée dans la base de données.
    3. Système : Affiche le même formulaire que pour l'ajout, mais pré-rempli avec les informations actuelles de la prestation.
    4. Artiste : Modifie les champs souhaités et valide le formulaire.
    5. Système : Vérifie que les champs obligatoires sont toujours remplis.
    6. Système : Met à jour l'enregistrement de la prestation dans la base de données.
    7. Système : Affiche un message de confirmation et redirige l'artiste vers la liste de son catalogue.
  • Scénarios alternatifs et d'erreur :
    • 5a : Un champ obligatoire est vidé.
      • Déroulement : Le système affiche un message d'erreur.
      • Résolution : Le scénario nominal reprend à l'étape 3. Le formulaire est ré-affiché avec les dernières modifications tentées par l'artiste.

UC-C.3 : Supprimer une prestation de son catalogue

  • Acteur(s) principal(aux) : Artiste
  • Objectif(s) : Retirer une prestation de son catalogue.
  • Précondition(s) : L'artiste est authentifié et possède au moins une prestation.
  • Postcondition(s) (en cas de succès) : La prestation est supprimée de la base de données.
  • Scénario nominal :
    1. Artiste : Depuis la liste de ses prestations, clique sur le bouton "Supprimer" à côté de la prestation souhaitée.
    2. Système : Vérifie si la prestation est actuellement inscrite dans le programme (table Programmation).
    3. Système : Si la prestation n'est pas programmée, affiche une boîte de dialogue de confirmation (ex: "Êtes-vous sûr de vouloir supprimer cette prestation ? Cette action est irréversible.").
    4. Artiste : Confirme la suppression.
    5. Système : Supprime l'enregistrement de la prestation de la base de données.
    6. Système : Affiche un message de confirmation et rafraîchit la liste des prestations.
  • Scénarios alternatifs et d'erreur :
    • 2a : La prestation est déjà programmée.
      • Déroulement : Le système détecte que la prestation est liée à une entrée dans la table Programmation.
      • Résolution : Le système bloque la suppression et affiche un message d'erreur clair et informatif (ex: "Impossible de supprimer cette prestation car elle fait partie du programme officiel. Veuillez contacter l'organisateur si vous souhaitez l'annuler."). Le cas d'utilisation se termine.
    • 4a : L'artiste annule la suppression.
      • Déroulement : L'artiste clique sur "Annuler" dans la boîte de dialogue de confirmation.
      • Résolution : Le système ferme la boîte de dialogue. Le cas d'utilisation se termine.

UC-C.4 : Consulter son tableau de bord

  • Acteur(s) principal(aux) : Artiste
  • Objectif(s) : Obtenir une vue d'ensemble claire de son profil et de sa programmation, et accéder rapidement aux principales fonctionnalités de gestion.
  • Précondition(s) : L'artiste est authentifié. C'est la première page vue après la connexion.
  • Postcondition(s) (en cas de succès) : N/A (simple consultation).
  • Scénario nominal :
    1. Artiste : Se connecte ou navigue vers son "Espace Artiste".
    2. Système : Affiche la page du tableau de bord.
    3. Système : Récupère et affiche les informations suivantes :
      • Un résumé du profil avec son nom d'artiste et sa photo.
      • La liste complète de ses prestations programmées, incluant le titre de la prestation, l'heure et la scène.
      • Des liens d'action clairs : "Éditer mon profil" et "Gérer mon catalogue de prestations".
  • Scénarios alternatifs et d'erreur :
    • 3a : Aucune prestation n'est encore programmée pour cet artiste.
      • Déroulement : La requête à la base de données pour la programmation ne retourne aucun résultat.
      • Résolution : À la place de la liste, le système affiche un message informatif....

Groupe D : Fonctionnalités Spécifiques à l'Organisateur

L'Espace Organisateur est conçu comme un espace de travail direct. La page d'accueil de cette section est l'interface de gestion du programme elle-même. En se connectant, l'organisateur accède immédiatement à une vue interactive de la grille horaire de l'événement. C'est depuis cette interface centrale qu'il peut initier toutes les actions de planification décrites ci-dessous.

UC-D.1 : Planifier une prestation dans le programme (Assistant par étapes)

  • Acteur(s) principal(aux) : Organisateur
  • Objectif(s) : Ajouter un nouvel événement au programme de manière guidée et sécurisée via un formulaire dynamique qui évolue en plusieurs étapes sur la même page.
  • Précondition(s) :
    1. L'organisateur est authentifié.
    2. Il se trouve sur la page de gestion du programme.
  • Postcondition(s) (en cas de succès) :
    1. Une nouvelle entrée est créée dans la table Programmation.
    2. L'organisateur est redirigé vers la page de gestion du programme mise à jour.
  • Scénario nominal :

    1. Organisateur : Sur la page de gestion du programme, clique sur le bouton "Ajouter une prestation au programme".
    2. Système : Vérifie s'il existe des créneaux disponibles et affiche la page de l'assistant de planification (ex: planning.php).

    3. --- ÉTAPE 1 : CHOIX DE L'HEURE ---
      Système : La page affiche initialement le formulaire pour la première étape :

      • Un titre : "Étape 1/ 3 : Choisissez un créneau horaire".
      • Une liste déroulante *Heure avec les créneaux disponibles.
      • Un bouton de soumission : "Étape suivante".
      • Un lien/bouton "Annuler" qui redirige vers la page de gestion du programme.
    4. Organisateur : Sélectionne une heure et clique sur "Étape suivante".

    5. --- ÉTAPE 2 : CHOIX DE L'ARTISTE ET DE LA SCÈNE ---
      Système : Recharge la même page. Le formulaire s'est adapté et affiche maintenant :

      • Un titre : "Étape 2/ 3 : Choisissez un artiste et une scène".
      • Un rappel de la sélection précédente : "Heure choisie : 15h00".
      • Les listes déroulantes *Artiste et *Scène peuplées avec les options disponibles (artistes et scènes libres à cette heure-là).
      • Un bouton de soumission : "Étape suivante".
      • Un lien/bouton "Retour à l'étape 1" qui redirige vers l'étape précédente et affiche l'heure présélectionnée par l'utilisateur.
      • Un lien/bouton "Annuler" qui redirige vers la page de gestion du programme.
    6. Organisateur : Sélectionne un artiste et une scène, puis valide.

    7. --- ÉTAPE 3 : CHOIX DE LA PRESTATION ET RÉSUMÉ FINAL ---
      Système : Recharge une nouvelle fois la même page. Le formulaire affiche désormais :

      • Un titre : "Étape 3/ 3 : Choisissez une prestation et confirmez".
      • Un résumé complet des sélections précédentes (heure, artiste, scène).
      • Une liste déroulante *Prestation peuplée avec le catalogue de l'artiste sélectionné.
      • Un bouton de soumission final : "Confirmer et ajouter au programme".
      • Un lien/bouton "Retour à l'étape 2" qui redirige vers l'étape précédente, en conservant les sélections précédentes pour faciliter la modification.
      • Un lien/bouton "Annuler" qui redirige vers la page de gestion du programme.
    8. Organisateur : Sélectionne la prestation finale et clique sur "Confirmer".

    9. --- FINALISATION DE L'ENREGISTREMENT ---
      Système : Effectue l'ultime validation de concurrence. Il vérifie une dernière fois que l'artiste ainsi que la scène sont bien disponibles à cette heure-là.

    10. Système : Si la validation est réussie, il crée la nouvelle entrée dans la table Programmation.
    11. Système : Redirige l'organisateur vers la page principale de gestion du programme avec un message de succès.
    12. Scénarios alternatifs et d'erreur :
    13. 2a : Tous les créneaux horaires sont complets.
      • Déroulement : Le système ne trouve aucun créneau horaire avec au moins une scène de libre.
      • Résolution : L'organisateur n'est pas redirigé vers l'assistant. Le système affiche un message indiquant qu'il n'y a plus de créneaux disponibles sur la page de gestion.
    14. Navigation arrière :
      • Déroulement : À n'importe quelle étape (2 ou 3), l'organisateur clique sur le bouton "Retour".
      • Résolution : Le système recharge la page pour afficher l'étape précédente. Les sélections faites avant cette étape (par exemple, l'heure à l'étape 2) doivent être conservées et présélectionnées pour faciliter la modification.
    15. Annulation du processus :
      • Déroulement : À n'importe quelle étape, l'organisateur clique sur le bouton "Annuler".
      • Résolution : Le système abandonne le processus de planification et redirige immédiatement l'organisateur vers la page principale de gestion du programme. Aucune donnée n'est sauvegardée.
    16. Validation de concurrence échouée :
      • Déroulement : Le système détecte un conflit lors de la validation finale.
      • Résolution : Le système arrête le processus, redirige l'organisateur vers la page principale de gestion du programme et affiche un message d'erreur clair.

UC-D.2 : Déprogrammer une prestation

  • Acteur(s) principal(aux) : Organisateur
  • Objectif(s) : Retirer un événement du programme officiel de la journée pour libérer un créneau, une scène et un artiste.
  • Précondition(s) :
    1. L'organisateur est authentifié.
    2. Il se trouve sur la page de gestion du programme.
    3. Au moins une prestation est déjà programmée.
  • Postcondition(s) (en cas de succès) :
    1. L'entrée correspondante est supprimée de la table Programmation.
    2. La page de gestion du programme est rafraîchie pour refléter ce changement.
  • Scénario nominal :
    1. Organisateur : Navigue vers la page "Gérer le programme".
    2. Système : Affiche la grille du programme de la journée. Pour chaque événement programmé, une icône ou un bouton "Déprogrammer" (ou "Supprimer") est visible.
    3. Organisateur : Clique sur le bouton "Déprogrammer" de l'événement qu'il souhaite annuler (par exemple, le concert de "Les Répétiteurs" à 15h00 sur la Scène Principale).
    4. Système : Affiche un formulaire de confirmation pour éviter les actions accidentelles. Le message est clair et précis : "Êtes-vous sûr de vouloir retirer la prestation '[Titre de la prestation]' du programme ?". Deux boutons sont présents : "Confirmer la suppression" et "Annuler".
    5. Organisateur : Clique sur "Confirmer la suppression".
    6. Système : Exécute la requête pour supprimer l'entrée correspondante de la table Programmation.
    7. Système : Rafraîchit la page de gestion du programme. La case de la grille correspondant à l'événement supprimé est maintenant vide.
    8. Système : Affiche un message de succès en haut de la page (ex: "La prestation '[Titre de la prestation]' a été retirée du programme avec succès.").
  • Scénarios alternatifs et d'erreur :
    • 5a : L'organisateur annule la suppression.
      • Déroulement : L'organisateur clique sur le bouton "Annuler" dans la boîte de dialogue de confirmation.
      • Résolution : Le système ferme la boîte de dialogue sans effectuer aucune action en base de données. L'état du programme reste inchangé. Le cas d'utilisation se termine.

UC-D.3 : Supprimer un artiste

  • Acteur(s) principal(aux) : Organisateur
  • Objectif(s) : Retirer définitivement un artiste et toutes ses données associées de la plateforme.
  • Précondition(s) : L'organisateur est authentifié.
  • Postcondition(s) (en cas de succès) : Le compte de l'artiste, ses prestations et ses programmations sont supprimés de la base de données.
  • Scénario nominal :
    1. Organisateur : Depuis la liste des artistes, clique sur une option "Supprimer" à côté du nom d'un artiste.
    2. Système : Affiche un message de confirmation très clair, avertissant que l'action est irréversible et qu'elle entraînera la déprogrammation de toutes les prestations de cet artiste.
    3. Organisateur : Confirme la suppression (par exemple, en cochant une case "Je comprends les conséquences" et en cliquant sur un bouton "Supprimer définitivement").
    4. Système : Exécute une transaction en base de données pour effectuer les suppressions dans l'ordre suivant pour garantir l'intégrité des données :
      • a. Supprime toutes les entrées de la table Programmation liées aux prestations de cet artiste.
      • b. Supprime toutes les prestations de cet artiste de la table Prestation.
      • c. Supprime l'artiste de la table Utilisateur.
    5. Système : Si la transaction réussit, affiche un message de confirmation de la suppression et redirige vers la liste des artistes mise à jour.
  • Scénarios alternatifs et d'erreur :
    • 3a : L'organisateur annule la suppression.
      • Déroulement : L'organisateur clique sur "Annuler".
      • Résolution : Le système ferme la page de confirmation et le cas d'utilisation se termine.

UC-D.4 : Gérer le profil ou le catalogue d'un artiste

  • Acteur(s) principal(aux) : Organisateur
  • Objectif(s) : Modifier les informations d'un artiste ou les détails d'une de ses prestations pour des raisons administratives (correction d'une faute, mise à jour de dernière minute, etc.).
  • Précondition(s) : L'organisateur est authentifié.
  • Postcondition(s) (en cas de succès) : Les données de l'artiste ou de sa prestation sont mises à jour dans la base de données.
  • Scénario nominal :
    1. Organisateur : Navigue vers la page "Gérer les Artistes".
    2. Système : Affiche la liste de tous les artistes inscrits. À côté de chaque artiste, des boutons d'action sont visibles ("Gérer", "Supprimer").
    3. Organisateur : Clique sur le bouton "Gérer" de l'artiste qu'il souhaite modifier.
    4. Système : Affiche une page d'administration pour cet artiste, qui donne accès à deux sections distinctes :
      • Le formulaire d'édition de profil de l'artiste (similaire à celui de l'UC-B.1, pré-rempli avec les données de l'artiste).
      • L'interface de gestion de son catalogue de prestations (similaire à celle de l'artiste, permettant de modifier ou supprimer une prestation via UC-C.2 et UC-C.3).
    5. Organisateur : Effectue les modifications souhaitées (sur le profil ou sur une prestation) et valide.
    6. Système : Applique les mêmes règles de validation que pour l'artiste lui-même.
    7. Système : Met à jour les informations en base de données, affiche un message de succès et redirige l'organisateur vers la page de gestion de l'artiste ou la liste principale.

4. Spécification de l'Affichage du Programme

La présentation visuelle du programme de la journée est un élément central de la plateforme. Elle doit être claire, informative et facile à consulter, que ce soit sur la page d'accueil (pour les visiteurs) ou sur la page de gestion (pour l'organisateur).

L'affichage retenu est une grille horaire sous forme de tableau HTML.

Structure Générale

  • Créneaux horaires : Toutes les prestations durent une heure pleine. Les créneaux horaires doivent donc être affichés en conséquence (ex: 10h00, 11h00, 14h00, etc.).
  • Tableau :
    • Les colonnes du tableau représenteront les différentes scènes de l'événement.
    • Les lignes du tableau représenteront les crénaux horaires.

Contenu Affiché

  • Affichage dynamique des heures : Pour rendre la grille plus lisible, le système doit uniquement afficher les lignes correspondant aux heures où au moins une prestation est programmée. Si aucun événement n'est prévu entre 12h00 et 14h00, ces lignes ne doivent pas apparaître dans le tableau. Les heures doivent être triées par ordre chronologique.
  • Contenu d'une cellule :
    • Cellule occupée : Si une prestation est prévue pour une heure et une scène données, la cellule correspondante doit contenir :
      • Le titre de la prestation.
      • Le nom de l'artiste qui la réalise. L'ensemble de la cellule doit être un lien cliquable pointant vers la page de détail de la prestation.
    • Cellule vide : Si une scène est libre à une heure affichée (parce qu'une autre scène est occupée au même moment), la cellule correspondante restera vide.

Exemple de Rendu HTML Attendu

Voici un exemple de code HTML illustrant la structure finale, en supposant que des événements sont programmés à 14h et 15h, mais pas avant ou entre.

Programme de la Journée

Heure Scène Principale Scène "Découverte" Espace Zen
14:00 Concert Rock Alternatif Les Répétiteurs Lecture de Contes Elara la Conteuse
15:00 Spectacle de Magie Le Grand Mysterio

5. Modèle Conceptuel de Données (MCD)

Le Modèle Conceptuel de Données ci-dessous représente la structure de la base de données nécessaire pour faire fonctionner la plateforme. Il illustre les entités principales et les relations qui les unissent.

erDiagram
    Utilisateur {
        int uid PK "ID"
        string nom
        string prenom
        string nom_artiste "Nom d'artiste (si applicable)"
        string email UK "E-mail (unique)"
        string mot_passe_hashe "Mot de passe hashé"
        string photo
        string description "Biographie"
        bool est_organisateur
    }

    Prestation {
        int pid PK "ID"
        string intitule
        string description
        string image
        int categorie_id FK "ID Catégorie"
        int artiste_id FK "ID Artiste"
    }

    Programmation {
        int prog_id PK "ID"
        TIME heure_debut "Créneau horaire"
        int prestation_id FK "ID Prestation"
        int scene_id FK "ID Scène"
    }

    Scene {
        int sid PK "ID"
        string nom_scene
    }

    Categorie {
        int cid PK "ID"
        string intitule
    }

    Utilisateur ||--o{ Prestation : "propose"
    Prestation }o..|| Programmation : "est planifiée dans"
    Scene ||--o{ Programmation : "accueille"
    Prestation }o--|| Categorie : "appartient à"

Remarques sur l'implémentation de la base de données

  • Passage du MCD aux tables : Pour passer de ce MCD à un ensemble de tables SQL, vous utiliserez la méthode et les règles de transformation vues dans votre cours de bases de données.

  • Relation Utilisateur et Prestation : La relation "propose" entre Utilisateur et Prestation est implémentée en ajoutant une clé étrangère artiste_id dans la table Prestation. Cette clé fera référence à l'ID de l'utilisateur qui a créé la prestation. Il faudra s'assurer via le code PHP que seuls les utilisateurs non-organisateurs (les artistes) puissent créer des prestations.

  • Relation Programmation : La table Programmation est une table d'association qui concrétise le programme de la journée. Chaque ligne de cette table représente un événement unique, liant une Prestation (et donc indirectement son artiste) à une Scene pour un heure_debut donné.

  • Données non gérées par l'interface : Certaines données de base ne seront pas gérées via l'interface du site. Elles devront être encodées et modifiées directement dans la base de données. Il s'agit de :

    • La liste des scènes disponibles pour l'événement.
    • La liste des catégories de prestations.

6. Diagramme d'états de navigation

Le diagramme ci-dessous représente les principales pages (ou "états") du site web ainsi que les liens de navigation qui permettent de passer de l'une à l'autre. Il n'est pas exhaustif mais illustre les flux de navigation les plus importants.

alt text

Remarques sur la navigation

  • Pages colorées (bleu et rouge) : Ces pages ne sont visibles et accessibles qu'aux utilisateurs authentifiés.
    • Les pages bleues sont réservées aux Artistes.
    • Les pages rouges sont réservées à l'Organisateur.
  • Logique des tableaux de bord :
    • Le "Tableau de Bord Artiste" est la page d'accueil de l'artiste. Elle contient directement sa programmation personnelle et sert de point de départ vers la gestion de son profil ou de ses prestations.
    • La page "Gestion du Programme" est la page d'accueil de l'organisateur, faisant office de tableau de bord fonctionnel. C'est depuis cette grille interactive qu'il lance l'assistant de planification.
  • Pages de gestion de compte (Connexion, Inscription, Réinitialiser Mot de Passe) : Ces pages sont accessibles uniquement aux visiteurs non authentifiés. Une fois connecté, un utilisateur ne devrait plus pouvoir y accéder sans se déconnecter au préalable.
  • Assistant de Planification : Il s'agit d'un flux d'étapes géré sur une page unique, qui est initié depuis la page de gestion du programme et qui y retourne une fois terminé ou annulé.

7. Échéances et Livrables

Le projet est découpé en plusieurs phases d'évaluation, chacune avec des objectifs et des livrables spécifiques. Ce découpage progressif vous permettra de construire votre application étape par étape, en validant chaque couche (design, structure, fonctionnalités) avant de passer à la suivante.

Dans l'espace de cours en ligne, vous trouverez des "checklists" pour chaque évaluation. Celles-ci vous permettront de contrôler si vous avez bien réalisé tous les éléments attendus. Les critères présents dans ces checklists correspondent aux critères d'évaluation qui seront utilisés par les responsables de laboratoire.

EVAL_V1 (Échéance : 27 octobre 2025 23h55)

Objectif : Conception de l'interface et structure de base. Cette première étape est cruciale : elle consiste à penser l'ergonomie et l'architecture de votre site avant d'écrire la moindre ligne de code complexe. Ces maquettes sont incontournables dans tout développement d'application graphique avant d'entamer la conception du code source.

En termes de code HTML, seule la page d'accueil, nommée index.html, doit être conçue. L'aspect visuel de cette première page n'est pas important ; seul compte la structuration sémantique du code HTML.

  • Livrables :

    1. Maquettes fil de fer (Wireframes) :

      • Vous devez concevoir des schémas basse-fidélité pour les écrans principaux du site. Ces maquettes doivent montrer l'agencement des éléments (menus, titres, formulaires, grilles) et le parcours de l'utilisateur. Vous devez déposer ce fichier sur le Learn à cette adresse https://learn-technique.helmo.be/mod/assign/view.php?id=291242. Ce fichier devra-être un fichier "PDF" qui regroupe toutes les maquettes du projet.
      • Important : Pour cette étape, concentrez-vous sur le "scénario nominal" de chaque cas d'utilisation (le cas de base où tout se passe bien). Il n'est pas nécessaire de maquetter les messages d'erreur ou les scénarios alternatifs.
      • Pages à modéliser :
        • Page d'accueil (avec la grille du programme) : Représente la vue principale du UC-A.4 : Consulter le programme de la journée.
        • Page de la liste des Artistes (avec la galerie de vignettes) : Concerne le UC-A.5 : Consulter la liste des artistes.
        • Page de profil d'un Artiste (avec ses détails et la liste de ses prestations) : Également liée au UC-A.5.
        • Page de la liste des Prestations (avec les filtres) : Correspond au UC-A.6 : Consulter le catalogue des prestations.
        • Espace Artiste (tableau de bord) : Illustre le UC-C.4 : Consulter son tableau de bord.
        • Espace Organisateur (avec la grille de gestion interactive du programme) : C'est la page d'accueil de l'organisateur, point d'entrée pour les UC-D.1 et UC-D.2.
        • Première page de l'assistant de planification ("Étape 1 : Choix de l'heure") : Modélise la première étape du UC-D.1 : Planifier une prestation dans le programme.
    2. Dans la vue 'bureau' (ordinateur), les pages ne doivent pas être linéaires. Présentez les informations côte à côte lorsque cela est approprié. Par exemple, pour la liste des artistes. Les tableaux ne sont tolérés que dans l'interface d'administration.

    3. Fichier HTML initial :

      • Un unique fichier index.html représentant la structure sémantique de votre page d'accueil (correspondant au wireframe du UC-A.4). Ce fichier doit-être déposé sur Panoramix dans le dossier \public_html\EVAL_V1. Ce fichier est la seule page codée attendue pour cette évaluation et doit être structuré de manière complète avec :
        • Un en-tête (header) contenant :
          • Un logo (une image temporaire est suffisante).
          • Un menu de navigation principal. Ce menu est destiné à être présent sur toutes les pages du site. Il doit contenir les liens vers les pages principales accessibles au public. Pour définir les liens de ce menu (ex: "Accueil", "Artistes", "Prestations", "Contact", "Se connecter"), référez-vous au diagramme d'états de navigation.
        • Le contenu principal de la page, qui doit refléter les spécifications du UC-A.4 :
          • Une brève présentation de votre événement (quelques lignes pour introduire le concept que vous avez imaginé).
          • La grille du programme de la journée. Cette grille doit être structurée en tableau HTML, comme décrit dans la section "Spécification de l'Affichage du Programme". Elle doit contenir quelques événements fictifs pour démontrer la structure (par exemple, 2 ou 3 prestations réparties sur différentes scènes et créneaux horaires).
        • Un pied de page (footer) contenant des informations de base (ex: nom de l'événement, mentions légales fictives, etc.).
        • Note sur les liens : Bien entendu, à ce stade, seul le fichier index.html existe. Les liens du menu pointeront donc vers des fichiers qui n'ont pas encore été créés (comme artistes.html ou connexion.html). L'important est que la structure de navigation soit présente et sémantiquement correcte dans votre code.
    4. Auto-évaluation :

      La grille d’auto-évaluation est disponible en téléchargement dans l’activité "Dépôt EVAL_V1" sur Learn. Cette grille devra aussi être déposé. - Complétez-la honnêtement en cochant les critères que vous estimez avoir respectés. - Cette auto-évaluation vous permet de vous situer par rapport aux attentes et de mieux comprendre vos points forts et vos axes d’amélioration. - Complétez les commentaires quand c'est demmandé. - Une auto-évaluation erronée ou non complétée entraînera la non-recevabilité de votre projet. - Attention : Pour valider la section 2 de la grille, vous devez réussir au moins 75 % des fonctionnalités demandées. - Toutes les sections de la grille doivent être validées pour obtenir au minimum 10/20.

EVAL_V2 (Échéance : 22 décembre 2025 à 23h55)

Objectif : Intégration Visuelle et Maquettage HTML/CSS. À cette étape, votre site doit avoir son apparence finale, même si les données sont encore statiques. L'objectif est de produire une maquette de haute fidélité qui servira de base pour la dynamisation future.

  • Livrables :
    1. Site Statique en HTML+CSS :
      • L'ensemble des pages de la zone publique décrites dans le diagramme de navigation doivent être créées en utilisant des fichiers .html. Cela inclut notamment : index.html, artistes.html, prestations.html, contact.html, connexion.html, et inscription.html.
      • Important : Pour les pages de détail, il est impératif de ne créer qu'un seul fichier modèle pour tous les artistes (par exemple, fiche-artiste.html) et un seul fichier modèle pour toutes les prestations (par exemple, fiche-prestation.html). L'objectif est de concevoir un template qui sera réutilisé dynamiquement en PHP lors de la phase suivante. Il est donc inutile et incorrect de créer un fichier HTML par artiste ou par prestation.
      • Le design (CSS) doit être complet et responsive, assurant une consultation optimale sur mobile et sur ordinateur de bureau.
      • Toutes les données affichées (artistes, programme, prestations) sont "en dur" (statiques) directement dans le code HTML. Vous devez y inclure suffisamment de contenu fictif pour que le rendu soit réaliste.
      • Tous les formulaires sont présents visuellement mais ne sont pas encore fonctionnels (aucune soumission ne doit fonctionner). Cependant, leur structure HTML doit être prête pour l'intégration future : les balises <form> doivent être présentes. Chaque champ (<input>, <select>, <textarea>) doit posséder les attributs name et type appropriés, et être associé sémantiquement à un <label> fonctionnel.

EVAL_V3 (Échéance indicative : fin mars 2026 à 23h55)

Objectif : Transition vers PHP et dynamisation du site. Le site prend vie. L'architecture statique est transformée en une application PHP dynamique où les données proviennent d'une base de données et les premières interactions utilisateur sont implémentées.

  • Livrables :
    1. Base de Données fonctionnelle :
      • Le script de création de vos tables SQL.
      • Un jeu de données de test (quelques artistes, prestations, scènes, catégories...).
    2. Architecture PHP :
      • Les fichiers .html sont convertis en fichiers .php.
      • Le code commun (en-tête, pied de page, menu) est extrait dans des fichiers séparés et intégré sur chaque page à l'aide de include ou require.
      • Une connexion fonctionnelle à la base de données est établie.
    3. Fonctionnalités implémentées :
      • Affichage dynamique : Toutes les pages publiques (accueil, artistes, prestations) lisent et affichent les informations depuis la base de données, remplaçant le contenu statique.
      • Inscription et gestion par l'artiste : Le formulaire d'inscription est fonctionnel. Un artiste peut se connecter, modifier son profil et gérer entièrement son catalogue de prestations (Ajouter / Modifier / Supprimer).
      • Formulaire de contact : Le formulaire de contact est fonctionnel et envoie des e-mails en utilisant la librairie PHPMailer (gérée via Composer).
      • Accès simulé pour l'organisateur : Pour cette évaluation, le système de connexion n'est requis que pour les Artistes. Pour permettre le test des fonctionnalités de l'organisateur, son authentification sera simulée. Concrètement, cela signifie que les pages de l'Espace Organisateur doivent être accessibles directement, en considérant qu'un utilisateur avec le rôle "Organisateur" est systématiquement connecté (par exemple, en initialisant manuellement ses informations dans la session au début des scripts concernés).

EVAL_V4 (Échéance indicative : début mai 2026 à 23h55)

Objectif : Finalisation de toutes les fonctionnalités du MVP. Le projet est complet. Toutes les fonctionnalités décrites dans ce cahier des charges sont implémentées, fonctionnelles et testées.

  • Livrables :
    1. Authentification complète : La connexion/déconnexion fonctionne pour les Artistes et les Organisateurs, avec des sessions sécurisées.
    2. Fonctionnalités de l'Organisateur complètes :
      • L'assistant de planification est entièrement fonctionnel, avec ses étapes, ses validations et la gestion des conflits de concurrence.
      • La déprogrammation d'une prestation est fonctionnelle.
      • La suppression d'un artiste (et de toutes ses données liées) est fonctionnelle.
    3. Site complet et cohérent : L'ensemble du site est testé et ne comporte pas de bugs majeurs. Le parcours utilisateur est fluide pour tous les acteurs.
    4. Le site inclut un ensemble de données cohérent : Lorem Ipsum interdit

EVAL_V5 (Échéance indicative : fin août 2026 à 23h55)

Objectif : Ajout de fonctionnalités avancées. Cette dernière étape permet de démontrer votre capacité à étendre une application existante.

  • Livrables :
    • Le projet sera enrichi avec des fonctionnalités additionnelles. La liste précise de ces fonctionnalités vous sera communiquée par votre responsable de laboratoire en fin de deuxième quadrimestre.