Accueil > Intranet Michel Buffa > Applications web, M1 Miage 2010-2011 > Projets application web M1 Miage 2010-2011

Projets application web M1 Miage 2010-2011

De $1

Sujet No 1 : un site de vente en ligne de jeux vidéo

Il s'agit ici du projet "classique", recommandé pour ceux qui ne sont pas très à l'aise avec cette matière. Vous vous inspirerez du projet Igift pour réaliser un site de vente en ligne de jeux vidéos.

Quelques contraintes vous sont imposées néanmoins :

  • Template de présentation du site avec header, footer, menus, et champs de saisie pour la connexion,
  • Gestion de la session de connexion comme dans les TPs, mais en AJAX (à l'aide de jQuery ou de Dojo) : la page ne va pas se réafficher lorsqu'on entre un mauvais login/password mais simplement afficher un message d'erreur.
  • Vous devrez utiliser un modèle de données avec des relations, à vous de voir quel modèle utiliser. On vous recommande de partir des classes entités pour générer les tables, comme dans les derniers TPs.
  • On distinguera des catégories de supports pour les jeux : PC, xbox360, PS3, etc. A vous de voir si il faut une relation ici ou pas... vous justifierez le choix dans le rapport qui sera rendu avec le projet.
  • On peut associer des "tags" (des mots-clé) aux produits (un ou plusieurs), comme sur youtube, flickr, etc. On pourra rechercher des produits par tags (plusieurs tags possibles). Par exemple, le jeu "Crysis2" appartiendra aux catégories PS3, PC, xbox360, et sera taggué avec "fps, action, multi-joueur".
  • Un jeu a un code pour la catégorie d'âge à laquelle il est destiné (voir http://www.pegi.info/fr/)
  • Un jeu a une description résumée, un prix, une référence (un id), le nom du distributeur (on veut pouvoir faire des recherches par distributeurs, catégorie ou pas ?), une ou plusieurs photos, etc.
  • Gestion des comptes des clients + un ou plusieurs admins.
  • On veut pouvoir mettre des jeux dans son panier et passer la commande.
  • On veut un jeu de plusieurs dizaines (voir centaines) de données. A vous de vous débrouiller pour le générer.
  • Le logiciel, lorsqu'on le lance, doit par défaut peupler la base de données avec le jeu de test, sauf si la base est déjà pleine. (comme igift)
  • Vous devrez utiliser quelques fonctionnalités Ajax + quelques widgets et effets javascript dans votre application, à l'aide de Dojo ou jQuery (pas d'autres choix svp!). Vous documenterez dans le rapport les éléments de ces frameworks que vous aurez utilisé. Obligatoire : valider tout ce que l'on peut dans les formulaires en javascript avant de les envoyer sur le serveur.

Facultatif :

  • Interface d'administration : faites ce que vous pouvez. Par exemple, le degré zéro c'est de ne rien faire ! Les produits sont créés par programme, les images sont dans un rep sur le serveur, etc. Degré un : on peut rajouter un produit, on donnera l'url de l'image sur le web, degré deux : on peut uploader les images, etc.
  • Associer des vidéos youtube ou dailymotion aux produits,
  • Noter les produits (avec des étoiles), tri par popularité (stats de consultation), par note (étoiles),
  • Poser des commentaires sur les produits (il faut être loggué),
  • Mettre plein de gadgets supplémentaires dans l'interface (un caroussel pour animer les photos, des dialogues qui se poppent enb javascript, etc)

Deuxième sujet : un site "social" de gestion de photos

Sujet pour ceux qui veulent un peu plus s'amuser avec un site "fun" bourré d'animations, de popups, de slide shows, etc. On se propose de refaire un site web "à la picasa". Remarque : il existe de nombreux plugins jquery pour afficher des albums photos, etc. Vous avez tout à fait le droit de les utiliser mais : citer les sources, indiquer ce que vous avez modifié, etc. !

  • Gestion d'albums photos, partage d'albums, commentaires, notifications,
  • En gros : on uploade des photos, elles arrivent sur le serveur (ce sera une tâche à faire marcher en priorité : l'upload), l'idéal est qu'on puisse envoyer plusieurs photos en multi-selection, ou à l'aide d'une applet java spécialisée ou d'une appli flash spécialisée (il y en a). Au pire -> selecteur de fichiers avec selection multiple.
  • Gestion des albums : lors d'un upload, on choisit le nom de l'album où va la photo, on peut en créer un nouveau,
  • Affichage des photos dans l'album + affichage de la photo en grand. Là, jQuery ou Dojo sont vos amis : on trouve de nombreux widgets pour afficher de manière très sympa des photos !
  • Possibilité de partager des albums (en donnant la liste des utilisateurs avec qui ont veut partager : autocompletion attendue !)
  • Lors d'un partage les autres utilisateurs sont notifiés (par email ou bien lors de la prochaine connexion. Si par email, chercher java mail api sur google + utiliser un initParameter ou un contextParameter cf cours sur les servlets),
  • Lors d'un partage, les photos qui n'appartiennent pas à un utilisateur mais qui sont partagées avec lui doivent apparaitre dans la rubrique "albums partagés".
  • On peut commenter les photos mais aussi celles des albums partagés. Là aussi des notifications seront envoyées.
  • Des albums peuvent être publics ou privés. On peut partager des albums même publics ->  notifications en cas de commentaires.

Facultatif :

  • Réduire les photos pour en faire des imagettes une fois reçues sur le serveur,
  • Possibilité de "décorer les photos" en ajoutant des cadres, des effets (il y a des libs pour cela, chercher sur google),
  • Utiliser plein de trucs sympas en jQuery ou Dojo pour des effets visuels, faire un slideshow à partir d'un album ou de photos sélectionnées,
  • Afficher la géolocalisation des photos  sur une google map (ou demander de cliquer dessus),
  • etc... allez voir sur picasa ou sur d'autres sites de photos...

Conseils/FAQ :

  • METTEZ DES COMMENTAIRES DANS LE CODE, AVANT TOUT POUR VOUS !
  • Utilisez un netbeans et un glassfish à jour (help/update),
  • Penser à lire les logs de glassfish, c'est là que sont les erreurs,
  • Penser à regarder la console de firebug : c'est là que sont les erreurs javascript,
  • Utiliser un gestionnaire de version (ce sera obligatoire l'an prochain), mettez le projet sur github ou sur googlecode ou sur sourceforge par ex... netbeans ou eclipse savent gérer les principaux gestionnaires de version,
  • Utiliser une méthode de conception "agile" : tester le plus rapidement des fonctionnalités avant d'avoir le modèle de données définitif, l'interface définitive, orienter votre développement "demain je dois pouvoir afficher un produit, demain après midi je dois pouvoir rechercher un produit, après demain je dois pouvoir ajouter un produit à une commande, etc....",
  • En cas de soucis, pensez que si vous changez vos classes, le modèle de données doit changer, mettez vous en "drop and create",
  • Si vous avez une erreur sur le build.xml : stoppez le serveur, clean and build, redémarrez,
  • Bien lire les messages d'erreurs, vérifier vos requêtes en lisant les logs,
  • Si les logs ne bougent pas où s'ils ont disparus : clic droit sur glassfish et "voir logs",
  • Mettre impérativement un login et un password à votre base de données,
  • Si vraiment tout foire : supprimer les fichiers persistence.xml et server-resources.xml et les re-créer (en faisant clic droit/new/persistence/persistence Unit sur le projet)
Mots clés:
 
Images (0)
 
Commentaires (0)
Vous devez être connecté pour poster un commentaire.