Projet M2 Miage Marrakech 2011-2012

De $1

Version de 21:29, 24 Avr 2024

cette version.

Revenir à liste des archives.

Voir la version actuelle

 

Introduction

Vous allez réaliser une ébauche du site Facebook, avec des relations à déterminer entre les utilisateur, les posts (différents types de posts), les commentaires, + gestion de connexion, beaucoup de données (plusieurs pages d'utilisateurs, de posts, des commentaires, etc.)  et aussi que ce soit joli !

Réalisez une ébauche de Facebook

Il s'agit d'un Facebook très simplifié, avec au minimum des utilisateurs, des posts, et des commentaires.

  • Vous devrez gérer des sessions utilisateurs, avec connexion par login/password. Une fois loggé, les champs pour entrer le login et le password ne sont plus affichés, puisqu'une session est ouverte.
  • Vous appliquerez un "layout" aux pages, avec un menu sur la gauche et un bandeau au-dessus (templating, cf. TP2. pour un cours simple sur Facelets,  http://djo-mos.developpez.com/tutoriels/java/jsf/facelets-intro/ )
  • Votre base de données devra être suffisement remplie pour illustrer de quoi votre application est capable, soit vous la remplissez à la main et vous me l'envoyez avec votre projet, soit vous l'initialisez au démarrage de l'application, à l'aide d'une classe annotée @WebListener qui implémente l'interface ServletContextListener.

 Voici une liste de fonctionnalités que votre application devra avoir, dans l'ordre de priorité décroissante. 

  • En tant que personne non connectée, je peux
    • m'authentifier 
    • accéder à la liste des inscrits
    • voir le profil d'un utilisateur (ses informations publiques)
    • m'inscrire
  • En tant qu'utilisateur, je peux:
    • modifier les informations de mon profil. Certaines informations sont publiques et certaines sont réservées à mes amis, vous pourrez améliorer ça comme vous voudrez, mais je veux au moins dans un premier temps:
      • informations publiques: nom, prénom, ville, posts publiques
      • informations visibles par les amis: date de naissance, téléphone, liste d'amis, posts privés.
    • accéder à la liste des inscrits
    • voir le profil d'un utilisateur
      • si il n'est pas mon ami 
        • je peux voir ses informations publiques 
      • si il est mon ami,
        • toutes les informations de son profil
        • la liste de ses amis
      • je peux l'ajouter comme ami  (l'amitié sera acceptée automatiquement dans un premier temps)
    • accéder à la liste de mes amis, supprimer une amitié ou voir le profil d'un ami
  • En tant qu'utilisateur, je peux:
    • écrire un post publique,
    • écrire un post que seuls mes amis pourront voir,
    • écrire un post sur le profil ("le mur") d'un ami
  • En tant que personne non connectée, je peux
    • voir la liste des posts publiques
    • voir le détail d'un post avec tous ses commentaires
  • En tant qu'utilisateur, je peux
    • voir la liste des posts publiques,
    • voir la liste de mes posts et ceux de mes amis.
    • voir le détail d'un post avec tous ses commentaires, et ajouter un commentaire

Comme vous connaissez tous Facebook, j'imagine que vous aurez plein d'idées pour étendre et d'améliorer ce prototype... vous devrez m'indiquer quelles fonctionnalité vous avez ajouté/améliorer, ce qu'on peut faire, ce qui marche, ce qui ne marche pas, et utiliser des petit scénario illustratifs. Avant d'ajouter des fonctionnalités élaborées comme le tagging (ajouter un mot-clé aux posts et recherche de posts par mot-clé), les messages privés à une personne ou à un groupe, la messagerie instantanée avec une personne ou un groupe, le partage des photos, l'internationnalisation du site, les groupes, voir les villes des personnes sur une carte google maps, etc... Je vous propose d'améliorer les fonctionnalités déjà existantes dans le prototype (ex: l'amitié doit être acceptée par la personne, bonne ergonomie de l'application, profil plus complet, tinymce pour ajouter des liens et des photos dans les posts, etc...)

 

Modalités de remise du projet

Projets à faire à 2 ou 3, Date limite : le 15/05/2012. Vous devrez fournir un zip ou un rar portant votre nom, par exemple projetJEE2012-nom1-nom2.zip. Le projet est à faire en groupes de 3 personnes maximum. Si vous récupérez du code de certains de vos collègues ou sur le net, vous devez l'indiquer. Sinon ce sera assimilé à de la triche et vous serez sanctionnés. Vous avez parfaitement le droit de partager des bouts de code ou de réutiliser du code du net, il faut juste le dire.

Le zip (ou rar) devra contenir :

  1. Les sources du projet, faites un clean avant, pas la peine de me rendre des .class
  2. La base de données (à prendre dans .netbeans-derby sous votre user dir)
  3. Un readme d'explications, qui contient un résumé de ce que vous avez fait : points forts, points faibles, logins passwords, nom de la base, log et pass de la base, etc
  4. Des photos d'écrans.
  5. Si votre projet est particulièrement réussi, j'aimerais aussi avoir une petite vidéo sur youtube qui montre votre projet en train de fonctionner. Vous pouvez trouver des logiciels comme camtasia qui permettent de faire des captures d'écran et d'exporter des vidéos. Pas la peine si votre projet n'est pas très beau ou tout juste correct.