TP3

TP3 – H16

Scripting serveur

But

Le but de ce travail est de vous familiariser avec le concept de site transactionnel en gérant un wiki, c’est-à-dire un système qui permet à des usagers qui consultent un site de le modifier.

Le système doit permettre de consulter librement les pages déjà présentes dans le wiki, mais il doit aussi implanter deux autres modes d’accès :

  • un pour le gestionnaire du site qui peut gérer tous les participants
  • un autre pour les participants qui doivent s’inscrire pour modifier  ou détruire des pages

Suivant la tradition pour ce type de système, les usagers n’écrivent pas les informations en HTML, mais dans un balisage simplifié qualifié de markdown. Le markdown que vous devrez implanter doit respecter les consignes suivantes:

  • un texte entre deux ** sera affiché en gras
  • un texte entre deux * sera affiché en italique
  • une série de deux lignes ou plus débutant par un tiret deviendra une liste non numérotée (il n’est pas nécessaire de traiter des listes imbriquées)
  • une ligne débutant par des # donnera un titre (<Hn> en HTML)  de niveau correspondant au nombre de dièses
  • les références de la forme [lien](url) deviendront des liens vers un URL: <a href="url">lien</a>
  • un WikiWord, c’est-à-dire un mot débutant par une majuscule et contenant au moins une autre majuscule fait référence à une page du wiki ayant ce titre; si cette page n’existe pas alors le lien devrait s’afficher en rouge. En cliquant sur le lien, l’usager pourra créer la page (c’est d’ailleurs la seule façon de créer une page)
  • les paragraphes sont délimités par deux fins de ligne

Ce balisage est transformé en HTML avant d’être affiché, mais peut être réédité par la suite.

Pour vous aider dans la structuration de votre application, une version PHP simplifiée de ce wiki vous est fournie.  Cette application présente une interface très rudimentaire, ne gère pas les usagers, ni les permissions et les pages sont conservées comme des fichiers dans un répertoire accessible en écriture par tous.

Contraintes techniques

  • Vous devez développer votre système en PHP en créant une base de données MySQL qui contiendra les informations se rapportant aux usagers et aux pages. La structure et l’organisation de la base de données sont laissées à votre choix.
  • Il faut prévoir un mécanisme de création et authentification d’usagers avec mot de passe avec cryptage. Un de ces usagers devrait être l’administrateur qui a accès à toutes les informations liées aux pages et aux participants.
  • L’affichage des interfaces est laissé à votre choix.

Conseils

  • Développez d’abord la partie serveur en identifiant les messages que le serveur peut recevoir et les réponses qu’il retourne pour chacun.
  • Testez la partie serveur avec des appels (à la GET)  que vous tapez dans la barre d’adresse d’un navigateur
  • Pour le client, adaptez d’abord la partie du code qui vous est fourni avant d’y ajouter de nouvelles possibilités.

Remise

Allez sur le site du cours IFT3225 sur Studium pour remettre un  fichier contenant l’URL (non publique) d’une page web valide XHTML Strict qui

  • présente les choix de représentation que vous avez faits
  • décrit ce que vous avez appris en faisant cet exercice
  • donne accès aux fichiers HTML, CSS, PHP et Javascript
  • est accessible publiquement (sans mot de passe) depuis votre répertoire Web associé à compte au DIRO.

Date limite de remise: 16 avril 2016 à 23h59!

Ce travail est à réaliser en groupes de deux minimum-maximum.

Barème

 Site web
 Programmation  4
SQL (qualité du Schéma et des requêtes) 1
 Résultats et utilisabilité  4
 Rapport  1

Professeur au DIRO – Université de Montréal