Alexis Roméro N INE IDF076400 Conservatoire des Arts et métiers Centre FOD IDF Année universitaire 2010-2011 Certificat professionnel Webmestre UA 3323 Mémoire Réservez votre place! Au Théâtre Grenette Le Théatre Grenette produit 40 spectacles par an. Il dispose d'une salle de 80 places où se produisent des humoristes. Interface de gestion des réservations Maîtrise d'ouvrage : ABF Factory Commanditaire du projet : Théatre Grenette : 1, rue de Lausanne à Vevey, en Suisse. Direction : Stéphanie Furrer. stephanie@theatregrenette.ch
Dossier de réalisation pour les réservations
Le contexte Le site internet www.theatregrenette.ch fournit un programme de spectacles. Les internautes ont la possibilité de réserver leur place en ligne et de payer sur place. Le formulaire de réservation permet à l'internaute de saisir sa réservation, ainsi que des informations le concernant (nom, prenom, etc) Actuellement, les réservations sont envoyées en temps réel, par e-mail, vers le théâtre : 1. Fonctionnalités attendues E nregistrement des réservations et des coordonnées des clients. Le nombre croissant des réservations passées par le site internet justifie d'automatiser l'enregistrement des réservations. Les réservations et les clients seront enregistrées dans une base de données. U ne interface d'administration Les réservations et les clients seront visibles dans une interface d'administration. Ces pages seront protégées par login et mot de passe. Un design sobre, sans nécessairement reprendre la charte graphique du site. Cette interfaçe proposera aussi un icône de déconnexion.
A perçu du nombre des réservations. Un premier tableau fournira une vue d'ensemble des réservations passées, spectacle par spectacle. Pour chaque spectacle, on aura le nombre cumulé des réservations passées. Pour chaque spectacle on aura la possibilité d'avoir une liste détaillée. Le tableau sera exportable sous excel. Le tableau est imprimable. Il sera possible de filtrer par nom de spectacle. l iste des réservations pour chaque spectacle Pour chaque spectacle, on disposera d'un tableau mentionnant, pour chaque réservation : la date de la réservation, le nom et l'email du client le nombre de places réservées. Affichage du cumul des réservations, en fin de tableau. Le tableau est imprimable et exportable sous excel. L iste des clients Tous les clients ayant passé une réservation sont affichés dans une liste. Cette liste mentionne l'adresse email, le nom, le prénom et l'adresse de chaque client. Cette liste donne accès à la fiche de chaque client. Avec la possibilité de la modifier ou de la supprimer. La liste est exportable sous forme excel et est imprimable. Il sera possible d'ajouter une fiche-client à cette liste.
l iste des anomalies Si, du fait d'une défaillance du système, des clients ne sont associés à aucune réservation, il sont détectés et afficher dans une liste. Il appartient à l'administrateur du théâtre de contacter les clients et leur affecter une réservation. A fficher une fiche-client Toutes les informations d'un client sont présentées dans une fiche-client. D'une part ses informations personnelles : nom, prénom, adresse email, etc ; d'autre part la liste des réservations faites par ce client. A jouter une fiche-client Un formulaire permettra l'ajouter une fiche-client. Il comprendra les champs suivants : nom, prénom, adresse email, tél., adresse complète. Deux clients ne pourront pas avoir la même adresse e-mail. La touche «entrée» sera neutralisée, afin d'éviter l'envoi du formulaire avant la fin de la saisie. M odifier une fiche-client Toutes les informations de la fiche du client sont modifiables : nom, prénom, adresse, tel ainsi que l'adresse email. La modification sera faite via un formulaire. La touche «entrée» sera neutralisée, afin d'éviter l'envoi du formulaire avant la fin de la saisie. S upprimer une fiche-client Une fiche client peut être supprimée. En cas de suppression, il faudra toujours confirmer. 2. Les différentes technologies utilisées L'application sera développée en html, css, javascipt, php et SQL. Conformément aux recommandations du w3c, le langage html des pages web de l'application ne prendra en charge que l'architecture sémantique. Le design sera entièrement bâti sur des feuilles de styles css. L'application utilisera ponctuellement Javascript pour la gestion d'évènements sur le DOM. Les évènements seront détectés par des fichiers javscripts, distincts du code html. Utilisation de Jquery. Le template des pages sera créé en php. La récupération et le traitement des varibles superglobales $_post, $_get et $_session sera pris en charge par des scripts PHP. L'application utilisera une base données et un langage MySQL.
3. Liste des fichiers sources 1. Accès admin/login.php formulaire login/mdp. test. Si positif : accès à admin.php (page d'accueil de l'admin) et enregistrement du login/mdp en session.htaccess &.htpassword configurations de sécurité 2. Page d'accueil lien vers : admin/listing_clients.php lien vers : admin/liste_soirees.php 3. Consulter la liste des clients admin/listing_clients.php requête sur la table t_client encodage des données en utf-8 affichage dans un tableau (nom, ville, téléphone, lien paramétré vers admin/info_client.php, lien paramétré vers admin/edit_client.php, lien paramétré vers admin/delete_client.php ) lien vers : admin/export_list_clients.php lien vers : admin/ajoute_client.php 4. Exporter la liste des clients sous excel admin/export_list_clients.php utilisation d'un script open source 5. Consulter le nombre de réservations admin/liste_soirees.php requête SELECT sur la table t_spectacle affichage de la liste déroulante des spectacles affichage de toutes les soirées dans un tableau (date, nom du spectacle, nombre de réservations). A chaque ligne : lien paramétré vers admin/liste_reservation.php lien vers : admin/export_list_soirees.php inclu : clients_sans_resa.php (liste d'anomalies)
admin/script/liste_soiree.js gestion de l'évènement «onchange» de la liste déroulante (JQuery) Déclenche le script filtrer-par-spectacle.php (Ajax) Récupère le résultat dans un tableau admin/script/filtrer-par-spectacle.php récupération du nom du spectacle passé en paramètre requête SELECT paramétrée sur la table t_soirée retourne les soirées filtrée (date, nom du spectacle, nombre de réservations). 6. Consulter la liste des réservations d'une soirée admin/listing_reservations.php récupération et neutralisation de l'identifiant de la soirée passé en paramètre requêtes SELECT sur la table t_reservation affichage des réservations sous forme d'un tableau (date, le nom du client, son adresse email, le nombre de place réservées) et du cumul lien vers : admin/export_list_reservations.php 7. Enregistrement des réservations et des clients admin/reservation.php récupération et neutralisation des données de formulaire test de conformité (validation des données saisies) test : recherche de l'existence du client dans la table t_client. si oui, récupération de l'identifiant du client, sinon, création de la fiche du client dans la table t_client insertion de la réservation dans la table t_reservation affichage d'un remerciement et retour à billeterie.php 8. Ajouter un client admin/ajoute_client_form.php affichage d'un formulaire de saisie Au clic sur le bouton «Ajouter»: récupération des données, neutralisation des données test de conformité test : client existant dans la table t_client? Si oui message d'erreur Si non : INSERT dans la table table t_client et redirection vers
admin/ajoute_client_confirm.php admin/ajoute_client_confirm.php message de confirmation et retour à admin/listing_clients.php 9. Consulter la fiche d'un client admin/info_client.php récupération et neutralisation de l'identifiant du client passé en paramètre requête SELECT paramétrée sur la table t_client affichage de la fiche du client requête SELECT paramétrée sur la table t_reservation affichage des réservations du client liens vers : admin/listing_clients.php 10. Modifier la fiche d'un client admin/modif_client_form.php récupération et neutralisation de l'identifiant du client passé en paramètre requête SELECT paramétrée sur la table t_client affichage de la fiche du client sous la forme d'une formulaire pré-rempli et modifiable. Au clic sur le bouton «modifier» : rechargement de la page récupération des données de formulaire neutralisation des données test de conformité UPDATE de la table t_client redirection vers modif_client_confirm.php admin/modif_client_confirm.php : message de confirmation et retour à admin/listing_clients.php 11. Supprimer la fiche d'un client admin/efface_client_form.php récupération et neutralisation de l'identifiant du client passé en paramètre
requête SELECT sur la sur la table t_client encodage des données en utf-8 affichage de la fiche du client sur un fond de couleur vif (rouge brique). Au clic sur le bouton «supprimer» : demande de confirmation (javascript) récupération et neutralisation de l'identifiant du client DELETE sur la table table t_client message de confirmation et retour à la liste admin/efface_client_confirm.php message de confirmation et retour à admin/listing_clients.php 12. Feuilles de styles admin/design/design.css Feuille de style pour toutes les pages. admin/design/print.css Feuille de style dédiée aux impressions. Cacher ce qui doit l'être, attributs classiques des impressions (police serif, tailles en pt, veuves,...), renouvellement des entêtes des tableaux si plusieurs pages, insertion d'un logo en haut de la première page, préparation @landscape pour plus tard...(quand les navigateurs l'interprèteront) 13. Detection des erreurs admin/inclu/clients_sans_resa.php jointure sql sur les tables t_client et t_reservation affichage dans une liste (liste d'anomalies) 14. Fichiers inclus admin/inclu/securite.php teste si le client est bien autorisé à naviguer sur l'admin admin/inclu/param.php connexion à la base de données admin/script/functions.php fonction de conversion des dates «aaaa-mm-jj» en «jour mois année» fonction de conversion des dates «jj/mm/aaaa» en «aaaa-mm-jj» fonction de neutralisation des données de formulaire (à faire) fonction de neutralisation des données passées en paramètres (à faire) Test de conformité des données saisies
4. Architecture des données M odèle logique des données t_spectacle : nomartiste t_soiree : datesoiree, #nomartiste, complet t_reservation : #idclient + #datesoiree, nombreplaces, titulairepass, commentaires, dateemission, email t_client : idclient, email, nom, prenom, tel, rue, codepostal, ville, pays. C ommentaires : Le théâtre présente chaque saison une vingtaine de spectacles. Ces spectacles sont enregistrés dans la table t_spectacles. Chaque spectacle est joué une ou plusieurs fois. Chaque représentation est enregistrée dans la table t_soiree. Il ne peut y avoir qu'une seule représentation par jour. La date est donc choisie comme clef primaire. Lors d'une réservation, chaque nouveau client est enregistré dans la table t_client (nom, adresse email, tel, adresse complète). La clef primaire de cette table est un identifiant auto incrémenté. La réservation est enregistrée dans la table t_reservation. La clef primaire de cette table associe l'identifiant du client et la date de la soirée. NB : Par commodité, l'adresse email du client figure aussi dans la table. C'est une information redondante, puisque l'email figure en fait dans la table client. Mais, cela permet d'associer d'un coup d'oeil, un email à une soirée... 5. Sauvegarde des données La base de donnée est sauvegardée chaque jour par l'hébergeur. Les sauvegardes sont enregistrées sur le serveur et disponible à tout moment. Pour restaurer une sauvegarde, il faut exporter le fichier sql dans la base de donnée. En cas de difficultés pour restaurer une sauvegarde, contacter l'hébergeur.