INFO-H-303 : Bases de données Projet : Agrégateur/créateur de ux d'informations



Documents pareils
Raja Bases de données distribuées A Lire - Tutoriel

INFO 364 : Bases de Données Projet Professeur : Esteban Zimányi Assistants : Pierre Stadnik et Mohammed Minout Année Académique :

contact@nqicorp.com - Web :

Bases de données cours 1

inviu routes Installation et création d'un ENAiKOON ID

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/ Présentation. 1.2 Ressources

2. Gérer son profil : Stage mensuel Février 2013 Page 1 / 9 Partagez vos photos sur le web

Tutoriel Inscription et utilisation basique d'un blog hébergé chez Blogger.com

contact@nqicorp.com - Web :

1. Installation du Module

Le stockage local de données en HTML5

DOSSIER D'ACTIVITES SUR LE PHP N 03 Créer une base de données MySQL avec PHPMyAdmin

Compte-rendu de projet de Système de gestion de base de données

Information utiles. webpage : Google+ : digiusto/

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

PROSOP : un système de gestion de bases de données prosopographiques

Petite définition : Présentation :

Mise en oeuvre d'une base de données mono-utilisateur avec SQLite

Qlik Sense Cloud. Qlik Sense Copyright QlikTech International AB. Tous droits réservés.

Guide de l'utilisateur de l'application mobile

Sommaire. Avertissement :

Blueprint OneWorld v8.2a Configuration Recommandée

Intro: WordPress SEO Version Française

THEME PROJET D ELABORATION D UNE BASE DE DONNEES SOUS LE SERVEUR MYSQL

Guide de démarrage rapide Centre de copies et d'impression Bureau en Gros en ligne

Diigo : fonctions avancées

Septembre 2012 Document rédigé avec epsilonwriter

Serveur de travail collaboratif Michaël Hoste -

Auguria_PCM Product & Combination Manager

Le service de création de site Internet : Mode d emploi. La Création de Site Internet

Panda Managed Office Protection. Guide d'installation pour les clients de WebAdmin

Qu'est ce que le Cloud?

Gestion collaborative de documents

Le générateur d'activités

Application web de gestion de comptes en banques

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

Comment faire pour créer ses propres pages html?

TRAAM STI Acquisition et exploitations pédagogiques des données sur un système pédagogique

Architecture de la plateforme SBC

Conditions générales.

Service WEB, BDD MySQL, PHP et réplication Heartbeat. Conditions requises : Dans ce TP, il est nécessaire d'avoir une machine Debian sous ProxMox

Lectures. Accueil. Table des matières Me contacter. Rubriques. Général (12) PHP (4) MySQL (1) XHTML & CSS (3) Debian (3) Ubuntu (7) Post-it

Travail collaboratif à distance

LISTES DE DISTRIBUTION GÉRÉ PAR SYMPA DOCUMENT EXPLICATIF DE ÉCOLE POLYTECHNIQUE

Avanquest Software présente la nouvelle gamme WebEasy 8

Middleware eid v2.6 pour Windows

Présentation de l'architecture QlikView. Livre blanc sur la technologie QlikView. Date de publication : octobre

Visual Paradigm Contraintes inter-associations

TP : Shell Scripts. 1 Remarque générale. 2 Mise en jambe. 3 Avec des si. Systèmes et scripts

La biblio vient à vous : la veille avec les fils RSS

Guide d'intégration à ConnectWise

Conception d'un système d'information WEB avec UML Par Ass SERGE KIKOBYA

Configuration d'un annuaire LDAP

Guide d utilisation. AFNOR Editions Septembre 2012

Programmation Web. Madalina Croitoru IUT Montpellier

Module ebay pour PrestaShop Guide du vendeur

Exploiter les fonctionnalités de son compte Google

Conditions générales de ventes - Hébergement

Méthode de Test. Pour WIKIROUTE. Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel.

Chapitre 10. Architectures des systèmes de gestion de bases de données

D4.4 Organiser une veille informationnelle

ZABBIX est distribué sous licence GNU General Public License Version 2 (GPL v.2).

Les items explicités. Pistes de justifications de demandes en cours de français-histoire-géographie. Guillaume HAINAUT

Notre Catalogue des Formations IT / 2015

TP réseau Android. Bidouilles Tomcat. a) Installer tomcat : il suffit de dézipper l'archive apache-tomcat windowsx64.zip.

Initiation aux bases de données (SGBD) Walter RUDAMETKIN

Programmation Web. Introduction

Guide de la documentation des produits BusinessObjects XI

Hébergement MMI SEMESTRE 4

Comment retrouver le fichier "bingo" sauvegardé dans l'ordinateur? Socle commun

Hadoop / Big Data. Benjamin Renaut <renaut.benjamin@tokidev.fr> MBDS

Seagate Technology LLC S. De Anza Boulevard Cupertino, CA 95014, États-Unis

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs.

La signature électronique au service de l'émission de factures dématérialisées. Un cas B-to-C

Outils de développement collaboratif

HelpAndManual_unregistered_evaluation_copy GESTIONNAIRE D'ALARMES CENTRALISE OPTIM'ALARM. Manuel d'utilisation

A5.2.4 Étude d une technologie, d'un composant, d'un outil

REQUEA. v PD 20 mars Mouvements d arrivée / départ de personnels Description produit

Nos services* Avis clients.

Domaine D1 : Travailler dans un environnement numérique évolutif

claroline classroom online

Mémo d'utilisation de BD Dico1.6

Bibliothèque Esparron en livres.

Manuel du composant CKForms Version 1.3.2

Rapport de stage. Création d un site web. Stage du 20/01/2013 au 21/02/2013

Guide de démarrage rapide

Mercredi 15 Janvier 2014

SweetyPix, mode d'emploi

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

SYSTÈMES DE PUBLICATION POUR L INTERNET. Beatep Marie-France Landréa - Observatoire de Paris

Technologies Web. Ludovic Denoyer Sylvain Lamprier Mohamed Amine Baazizi Gabriella Contardo Narcisse Nya. Université Pierre et Marie Curie

Pour paramétrer l'extranet Pré-inscription, sélectionner Pré-inscriptions dans le menu Paramètre.

Transcription:

INFO-H-303 : Bases de données Projet : Agrégateur/créateur de ux d'informations Professeur : Esteban Zimányi Assistants : Frédéric Servais et Boris Verhaegen http://cs.ulb.ac.be/public/teaching/infoh303 Année académique 2009-2010 Étude de cas On vous demande de créer une application de consultation et de création de ux d'informations RSS 2.0. Cette application est inspirée par Google Reader 1. RSS 2.0 2 (Really Simple Syndication) est un format XML utilisé pour la syndication de contenu Web. L'usage le plus courant est de recevoir la liste des articles récents de sites d'informations comme des blogs an de gagner du temps (ou en perdre moins). Un utilisateur de l'application sera identié par son adresse email. La base de données retiendra son surnom, la ville et le pays de son domicile, son avatar (image ou photo), une petite biographie optionnelle, la date à laquelle il s'est inscrit au système ainsi qu'un mot de passe permettant de l'authentier. Chaque utilisateur pourra souscrire à des ux d'informations au format RSS 2.0. Un ux possède un nom (ou titre), une brève description, un lien vers le site web associé (par exemple, http://www.macbidouille.com) et sera identié par une url (par exemple, http://feeds.macbidouille.com/macbidouille/). D'autres attributs optionnels existent dans la spécication 3, à vous de décider s'ils sont utiles dans votre application. Ces ux sont composés de publications qui possèdent un titre, un lien, une date (timestamp) de publication et une description plus ou moins brève. Pour chacune des publications des ux auxquels un utilisateur a souscrit, le système retiendra si l'utilisateur a lu cette publication an de pouvoir ne lui présenter que celle qu'il n'a pas encore lues. Lors de la première inscription à un ux, le système sauvegardera la liste des 10 dernières publications de ce ux. Ensuite, à chaque consultation d'un ux par un utilisateur, le système téléchargera et stockera les nouvelles publications. Lorsque l'utilisateur consulte les publications de ses ux, il lui est possible de partager celles de son choix et peut adjoindre à ces dernières un court commentaire. L'ensemble des publications partagées par un utilisateur forme un nouveau ux, le ux de l'utilisateur. Tout utilisateur peut souscrire à ce nouveau ux comme pour tout autre ux. Chaque utilisateur a également un ensemble d'amis. Les relations d'amitiés sont bidirectionnelles : si Alice est l'amie de Bob, alors Bob est l'ami d'alice. Pour ajouter un ami, l'utilisateur rentre l'adresse email de celui-ci, l'ami reçoit une notication de cette demande qu'il peut accepter ou refuser. Chaque utilisateur est automatiquement inscrit aux ux de ses amis. Enn le système donne la possibilité aux utilisateurs de commenter les publications partagées par leurs amis. Un seul commentaire par publication et par utilisateur est permis. Ces commentaires sont visibles (avec la date de leur création) uniquement par les amis de la (les) personne(s) ayant partagé la publication concernée. 1 http://www.google.com/reader/ 2 http://en.wikipedia.org/wiki/rss 3 http://validator.w3.org/feed/docs/rss2.html 1

Format des données Vous recevrez plusieurs chiers RSS 2.0 à importer dans votre application. Ces chiers respecteront la norme RSS 2.0 4. Vous n'êtes pas obligés de supporter les éléments optionnels non repris dans l'énoncé du projet. Toutes les dates respectent le format RFC 822 5. Un chier XML suivant le modèle ci-dessous, concernant les données de l'application (lectures, amis, partages, etc.) vous sera également fourni. <?xml version="1.0" encoding="utf-8"?> <users> <user> <password>mot de passe (en clair)</password> <nickname>pseudonyme</nickname> <city>ville du domicile</city> <country>pays du domicile</country> <avatar>nom d'un fichier image</avatar> <biography>courte Biographie (optionnelle)</biography> <subscribedate>date d'inscription<subscribedate> </user> </users> <friends> <friend> <date>date de la demande d'amitié</date> <accepted>true ou False</accepted> </friend> </friends> <reads> <read> <date>date de lecture</date> </read> </reads> <comments> <comment> <text>texte du commentaire</text> <date>date du commentaire</date> </comment> </comments> <shares> <share> <date>date du partage</date> <text>texte du commentaire (optionnel)</text> </share> </shares> <subscriptions> <subscription> <date>date d'abonnement</date> </subsscription> </subscriptions> On vous demande créer un script d'insertion de ces données dans votre application, à l'aide par exemple de la librairie XML Parser 6. 4 http://validator.w3.org/feed/docs/rss2.html 5 http://asg.web.cmu.edu/rfc/rfc822.html 6 http://php.net/manual/en/book.xml.php

Déroulement du projet Première partie Pour cette partie, on vous demande de modéliser le problème à l'aide du formalisme entité-association et de préciser les contraintes d'intégrité nécessaires. Ces contraintes doivent être exprimées en français et utiliser les mêmes noms d'entités, d'associations ou d'attributs que dans votre modèle conceptuel. Vous pouvez également exprimer et justier des hypothèses sur votre modèle. Ces hypothèses peuvent résulter par exemple d'ambiguïtés dans l'énoncé du problème. Déduisez ensuite de ce modèle conceptuel le modèle relationnel correspondant ainsi que ses contraintes. Vos choix de modélisation doivent être justiés. Ces modèles doivent être susamment riches pour pouvoir servir de support à l'application décrite ci-dessous ainsi que pour pouvoir répondre aux requêtes de la deuxième partie. Deuxième partie Création On vous demande tout d'abord de déduire de votre modèle relationnel un script SQL DDL de création de la base de données et de ses diérentes tables ainsi que de créer cette base de données. Initialisation On vous demande d'écrire un script permettant d'importer dans votre base de données les chiers XML fournis. Ces données devront être présentes dans votre base de données lors de la défense. Les chiers XML seront disponible le 3 novembre sur la page web du projet. Application Nous vous demandons ensuite de développer une interface graphique pour votre base de données permettant au minimum de réaliser les opérations ci-dessous : connecter un utilisateur souscrire à un ux RSS 2.0 visualiser le texte des publications non lues des ux parmi ses souscriptions, en ce compris les ux de ses amis lire une publication partager une publication en laissant ou non un commentaire visualiser le résultat des requêtes ci-dessus à l'endroit où cela vous semble cohérent Votre application devra bien entendu veiller à ce que la base de données reste cohérente. Vous pouvez bien sûr ajouter des fonctionnalités à votre application comme par exemple acher des statistiques de manière graphiques (comme Trends dans Google Reader ) acher les images (avatars, images d'une publication, etc.) commenter une publication partagée par un ami rechercher un nouvel ami, envoyer une demande, accepter une demande ajouter un utilisateur gérer l'internationalisation etc. Ces apports personnels seront valorisés à hauteur de 4 points sur 20. Requêtes Nous vous demandons d'écrire en algèbre relationnelle et calcul relationnel tuple les requêtes R1, R2, R3 et R4 ainsi que toutes les requêtes en SQL. Si une requête vous semble imprécise, indiquez dans votre rapport les hypothèses que vous avez faites pour lever ces imprécisions.

R1 : Les bleus : Tous les utilisateurs qui ont au plus 2 amis. R2 : Suggestion de ux : La liste des ux auxquels a souscrit au moins un utilisateur qui a souscrit à au moins deux ux auxquels X a souscrit. R3 : Nettoyage de ux : La liste des ux auxquels X a souscrit, auxquels aucun de ses amis n'a souscrit et duquel il n'a partagé aucune publication. R4 : Suggestion d'ami : La liste des utilisateurs qui ont partagé au moins 3 publications que X a partagé. R5 : Statistiques des souscriptions : La liste des ux auquel un utilisateur est inscrit avec le nombre de publications lues, le nombre de publications partagées, le pourcentage de ces dernières par rapport aux premières, cela pour les 30 derniers jours et ordonnée par le nombre de publications partagées. R6 : Statistiques des amis : La liste des amis d'un utilisateur avec pour chacun le nombre de publications lues par jour et le nombre d'amis, ordonnée par la moyenne des lectures par jour depuis la date d'inscription cet ami. Rapports Pour la première partie, on vous demande les documents suivants : un diagramme entité-association modélisant le projet ainsi que ses contraintes une traduction relationnelle de ce diagramme et ses contraintes vos hypothèses et la justication de vos choix de modélisation Le formalisme utilisé doit être un de ceux vus au cours ou aux TPs. Pour la deuxième partie, vous rendrez un rapport contenant : les documents de la première partie tenant compte des remarques des assistants le script SQL DDL de création de la base de données les requêtes demandées les instructions d'installation de votre application un scénario de démonstration de votre application les explications et justications de vos choix et hypothèses Le code source de votre script d'insertion et de votre application devra être rendu par mail à ulb.code+infoh303@ gmail.com avant votre défense.

Informations pratiques Le projet se fera obligatoirement par groupe de deux. La première partie, en version papier, devra être rendue aux assistants pour le mardi 27 octobre à 14h au TP et être présentée la semaine suivante suivant un horaire à déterminer. Le rapport de la seconde partie devra être rendu en version papier lors de votre défense. Une archive contenant tous les codes sources devra être envoyée à l'adresse ulb.code+infoh303@gmail.com pour le 8 décembre à minuit. La défense du projet aura lieu la même semaine suivant un horaire à déterminer. On vous demandera de présenter votre application pendant 10 minutes et de répondre à quelques questions. Le projet comptera pour 25% de la note nale du cours. Les apports personnels au projet seront valorisés à hauteur de 4 points sur 20. En d'autres mots, un projet parfait sans apport personnel aura une valeur de 16 points sur 20. Sauf mention explicite, vous pouvez utiliser les langages et outils de votre choix (MySQL, PostgreSQL, PHP, Java, Python, ). Vous pouvez développer sur votre propre machine et présenter vos projets sur un ordinateur portable que vous apporterez lors de la défense. Au besoin, nous mettrons à votre disposition une base de données MySQL ainsi qu'un espace web PHP sur un serveur de l'université. Bon travail!