|
M1 Miage 2011-2012 Mini projet
De $1
Introduction
Plusieurs sujets vous sont proposés en fonctions de vos envies, de votre niveau en informatique, de votre future orientation.
Date et modalités de rendu
Le projet est à rendre pour fin Mai, début Juin, avant le jury, quoiqu'il arrive. Vous le commencerez pendant les séances de TP qu'il nous reste. La date finale sera précisée, mais vous êtes invités à commencer dès que possible.
Les projets sont à faire par groupe de 2, 3 ou 4, mais attention, les soutenances seront individuelles et les notes aussi, en fonction de la qualité du projet et de la présentation/réponse aux questions que vous ferez. On attend des groupes de 3 ou 4 plus que les fonctionnalités minimales proposées. Vous disposez aussi de liberté quant à l'interprétation du projet, parlez nous en !
Profitez des séances de TPs encadrées pour demander des conseils ou de l'aide à vos responsables.
Comme d'habitude vous avez le droit de réutiliser ce que vous voulez du net, de vos collègues, etc mais vous devez clairement l'indiquer. Pas d'appropriation du travail d'autrui mais de la réutilisation honnête.
Vous devrez rendre:
- Une archive portant le nom de votre groupe de projet, exemple : M1_Miage_nom1_nom2.zip ou .rar, vous rendrez cette archive soit le jour de la soutenance, soit vous la déposerez sur un site de partage simple à utiliser (dropbox, dl.free.fr etc.)
- L'archive doit contenir :
- un rapport de 2 à 10 pages détaillant votre travail,
- Le projet (faites un clean avant, pas besoin d'avoir les .class), mais n'oubliez pas les jars si votre projet utilise des trucs externes. Je conseille de les mettre dans un répertoire lib à côté de src.
- Au moins deux photos d'écran caractéristiques,
- Si vous considérez que votre projet est "super", une vidéo ou un lien vers la vidéo sur youtube. Cela permettra d'en faire de la pub !
- Le powerpoint de votre présentation, mais vos responsables apprécient encore plus des présentations fun en HTML5 (voir Michel Buffa pour qu'il vous indique comment faire des transparents HTML5 fun).
Sujets de mini projets au choix
2 - Un site "social" de gestion de photos
C'est un projet sympa pour ceux qui ont bien aimé le cours HTML5, qui veulent jouer avec CSS3, jQuery etc.
Sujet pour ceux qui veulent un peu plus s'amuser avec un site "fun" bourré d'animations, de popups, de slide shows, de jQuery effects 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. Voir le tutorial HTML5 de Michel Buffa, section "discovery path", il y a un exemple de selection de photos multiples avec possibilité de drag'n'drop. Il manque la partie "upload" en ajax, pour cela voir Michel Buffa ou chercher sur google "images base64 save on server" ou "canvas save on server".
- 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), nombreux exemples HTML5 sur le web.
- Utiliser plein de trucs sympas en jQuery pour des effets visuels, comme 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...
3 - Ecriture d'un "facebook like"
Il s'agit d'un sujet "ouvert", si vous êtes bons, passionnés, curieux, il y a plein de trucs à faire. Vous pouvez aussi vous associer avec un des groupes qui a pris le sujet "galerie de photo en ligne" pour la partie gestion des 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 glassfish-resources.xml et les re-créer (en faisant clic droit/new/persistence/persistence Unit sur le projet)
Ressources intéressantes HTML/CSS/JavaScript/jQuery
FAQ sur glassfish, en cas de soucis
|