Information about http://polyfernal.free.fr/pdf/RantanplanBook/SujetProjetTutore.pdf

Introduction Vous devez réaliser un site de bookmarks coopératifs…

Pages: 2
Language: french
Created: Thu Nov 22 18:16:43 2007
Display cached document
Page 1
image
Page 2
image
Introduction
Vous devez réaliser un site de bookmarks coopératifs comme le sont les sites blogmarks,
delicious ou encore magniolia. Le but de ces sites est de mettre en commun les sites favoris
des internautes. C'est une autre façon que google de faire de la recherche sur internet.
Ce site devra contenir l'ensemble de fonctionnalités suivants :

   ·   login sur le site. Celui-ci n'est pas obligatoire. En n'étant pas inscrit, un utilisateur ne
       peut faire que de la recherche et uniquement sur les sites définis comme public.
   ·   Chaque site peut être taggé par plusieurs tags possibles (php, tutorial, sport...).
   ·   Les sites peuvent être notés par l'utilisateur qui les a enregistrés, on peut également
       noter le nombre de fois où l'utilisateur a cliqué sur un site donné.
   ·   On pourra faire de la recherche de sites par mot clé, tags, note, nombre de clics,
       dernier accès....
   ·   Une partie optionnelle comprend les commentaires postés associés à un bookmark
       d'un utilisateur.

Bien entendu, la mise en forme du site sera faite avec des feuilles de style.

Le modèle conceptuel de données et les tables
Voici le modèle conceptuel de cette application.
De ce modèle on en déduit les tables suivantes, dont les clés primaire sont soulignés et les clés
étrangères sont en italique :

   ·   user(login:varchar(32), mdp : varchar(32), email : varchar(255), date : date). Cette
       table correspond à un utilisateur inscrit le date. Les mots de passe seront encodés dans
       la base de donnée grace à la fonction md5 de php
   ·   url(id : int,url : varchar(255). Les urls sont inscrits une seule fois dans la base.
   ·   link(id : int, desc : text, date : date, nbClic : int, note : int, public :
       bool,userLogin:varchar(32),idUrl:int). Cette table correspond au lien idUrl d'un
       utilisateur userLogin créé à la date. Le champ public sert à savoir si un utilisateur non
       inscrit voit le lien lors d'une recherche.
   ·   tag(id : int,name:varchar(100),date : date)
   ·   isTagged(idLink:int,idTag:int) : table construite à partir d'une relation (0n,0n).
   ·   Optionnel :
       comments(userLogin:varchar(32),idLink:int,title:varchar(100),text:text,date:date,time:
       time) : l'utilisateur userLogin à commenté le lien idLink à une date et heure donnée, en
       écrivant un titre et un texte.

       A récupérer
           o   Voici le script pour créer les tables. Enregistrer le, modifier ces droits pour
               qu'il soit exécutable et exécuter le. Vérifier dans mysql que les tables ont bien
               été créées (show tables;).
           o   Voici une ébauche de la classe s'occupant de la liaison avec la base de donnée.
               Les fonctions d'insertions dans les tables sont écrites. A vous de rajouter les
               autres.
           o   Voici un script PHP mettant quelques données dans les tables. Cela peut vous
               servir au départ pour créer l'application. C'est de plus un exemple de
               l'utilisation de la classe DB.class.php

       Dates et autres choses.
       Le projet est à faire par groupe de 2 ou 3. Les dernières séances de programmation
       web y seront consacrées. Durant la semaine du 14 au 20 mai, 1 créneau par groupe de
       TP sera mis dans l'emploi du temps afin de voir l'avancement de chaque groupe.
       Durant la semaine du 11 au 15 juin, un créneau sera mis en place pour faire les
       soutenances. Celles-ci dureront 10 minutes durant lesquelles vous présenterez votre
       site. Un rapport de 10 pages maxi sera à rendre ce jour là. Il devra contenir
       l'architecture de votre site, les différentes classes utilisées, les problèmes rencontrés....

       Recommandations
       Commencez par faire l'architecture de votre site. Prévoyez également la structuration
       de vos pages pour que la réalisation de la feuille de style soit facile. Ensuite, vous
       n'aurez plus qu'à vous partager le travail.