Conception de sites web dynamiques

Projet

Ce projet est à réaliser au cours des 4 dernières séances de TP, à partir du 24 mars. Le 22 avril, votre site devra être opérationnel à l'URL www.ens.math-info.univ-paris5.fr/~login/ProjetCSW et déposé sous forme de zip sur moodle. Les chargés de TD testeront votre site et vérifieront votre code, qui doit impérativement être commenté. Enfin, le lundi 12 mai au matin, sur une machine de salle de TP, vous présenterez votre site et répondrez aux questions de votre chargé de TD. L'évaluation du projet tiendra compte du travail en séance, du travail rendu (qualité de la programmation, fonctionnement et esthétique du site) et des réponses aux questions

Spécifications fonctionnelles

Le site à construire est une collection de chats. L'utilisateur doit d'abord se connecter, puis il accède à une page listant l'ensemble des chats en cours. Il peut soit participer à l'un d'entre eux, soit en créer un nouveau. Dans les deux cas, une fenêtre secondaire s'ouvre avec la discussion.

Dans la page listant les chats, pour chaque chat apparaissent son sujet, son créateur, sa date de création et la liste des participants, ainsi que deux boutons : un pour masquer ce chat, l'autre pour l'ouvrir dans une fenêtre secondaire (on peut ouvrir plusieurs chats en parallèle). L'administrateur du site a en plus la possibilité de supprimer un chat. En haut de cette page figurent un lien pour créer un chat et un pour se déconnecter.

La fenêtre secondaire permettant de participer à un chat affiche les mêmes informations que le résumé de la page principale, ainsi que la succession de répliques des participants, avec, pour chacune, l'heure, l'auteur, sa photo et son propos. Lorsqu'on est le créateur d'un chat, à côté de chaque participant apparaît une petite croix permettant d'exclure ce partipant de la discussion. Le créateur du chat a aussi un bouton pour clore le chat. En bas de cette page, un champ textuel suivi d'un bouton d'envoi permet de participer à la discussion.

Spécifications techniques

Il vous est demandé

Première étape

Définissez les classes nécessaires dans un fichier "classes.php". Chaque classe aura au moins un attribut ID une méthode affiche().

Dans une phase ultérieure, la connexion de l'utilisateur et l'affichage des discussions sera fait à partir d'une base de données. Dans un premier temps, nous allons charger des utilisateurs, deux discussions et leurs répliques à partir de fichiers d'initialisation temporaires qui définissent les objets nécessaires de manière arbitraire. Les utilisateurs seront rangés dans un tableau indicé par leurs ID, idem pour les discussions et les répliques.

Ecrivez la page principale (liste des discussions) et la page secondaire (une discussion) en faisant appel aux fichiers décrits ci-dessus (commande include).

Deuxième étape

Nous allons maintenant connecter ce site à une base de données. Il y aura une table pour chaque classe, avec des champs de même nom que les attributs de la classe, ce qui permettra de lire chaque ligne d'une table comme un objet de la classe correspondante.

Faites une page de création de la base, qui sera appelée une seule fois, lors de l'installation du site. Elle créera un utilisateur ayant pour nom admin, qui sera l'administrateur du site.

Faites la page d'enregistrement d'un utilisateur, utilisable uniquement par l'administrateur.

Faites la page de connexion d'un utilisateur et sa page de traitement

Adaptez la page principale et la page secondaire à l'utilisation de la BD. Ces deux pages seront rafraîchies toutes les 5s. Dans la page secondaire, si l'utilisateur envoie un message, la BD et l'affichage sont rafraîchis sans délai.

A cette étape vous utiliserez la même photo pour tous les utilisateurs (une icône anonyme). On gèrera l'upload de la photo à l'étape 3.

L'utilisateur connecté devra être partagé comme variable de session entre les différentes pages. Attention à la sécurité ! On ne doit pas pouvoir accéder à la page des discussions ou à celle d'une discussion si l'on ne s'est pas identifié au préalable.

Troisième étape

Lorsqu'un uilisateur se connecte, tant qu'il n'a pas remplacé l'icône standard par sa photo, une page lui laisse le choix entre uploader sa photo et accéder aux chats en repoussant cette opération à plus tard.

Quatrième étape

Préparez votre site pour qu'il puisse être testé. La base devra contenir quelques discussions et utilisateurs, dont trois ayant pour pseudos respectifs robert, ginette et jacky (sans majuscules) et pour mot de passe 123.