Réalisation d'un serveur de musique en streaming
Imaginez que vous vouliez écouter vos mp3 situés chez vous depuis une page web ou un téléphone. Un Itunes dans une page web ! On veut pouvoir parcourir les chansons, les artistes, les albums, les favoris, par années etc.. En gros, une navigation selon les tags ID3 (il existe plusieurs librairies qui savent les extraire en java). Mais comme certains préfèrent organiser leurs mp3 en répertoires et sous répertoires, on fera une double classification : par tags ID3 mais aussi par répertoires et noms de fichier.
On veut pouvoir aussi faire des playlists (des listes de lecture) pour jouer des morceaux dans un ordre pré-établi.
Plus tard dans la partie "amélioration à la web 2.0", dans le cadre du projet web 2.0 on voudra partager ces playlist avec des amis, il faudra donc gèrer des amis, des invitations, des listes de partage. Les amis voudront voir les derniers ajouts, etc. Cette partie est facultative pour le moment, à moins que vous ne souhaitiez en tenir compte dès maintenant pour le modèle de données et les services.
Ce projet sera rendu "en l'état" lors de la date limite de remise du projet EJB mais il est clair qu'il sera "ré-évalué" si à la fin du cours web 2, vous avez modifié la partie back end et qu'elle est nettement plus aboutie. En effet, ce projet est prévu pour être aussi le projet du cours web 2.0 (on y adjoindra des web services REST pour le rendre utilisable par des clients externes par ex sur téléphone, et on utilisera des web services externes comme musicbrainz). Les parties requises pour la partie web 2.0 seront précisées plus tard. Pour le moment concentrez-vous sur la partie back-end et proposez une interface web simple pour tester les fonctionnalités.
Si on utilise la méthode de conception agile, on peut déterminer l'ordre dans lequel les fonctionnalités de base devront être implémentées (vous devez les tester dans cet ordre au fur et à mesure de l'implémentation, on ne passe pas à la suite tant qu'une fonctionnalité ne marche pas).
Vous pourrez vous inspirer du logiciel open gratuit subsonic.org par exemple, pour trouver des idées. Il vient avec des clients android, iphone, etc.
Priorité | Nom |
10 | En tant qu’utilisateur, je peux visualiser la liste des catégories |
20 | En tant qu’utilisateur, je peux visualiser la liste des artistes |
30 | En tant qu’utilisateur, je peux consulter la liste des albums d’une catégorie |
40 | En tant qu’utilisateur, je peux consulter la liste des albums d’un artiste |
45 | En tant qu’utilisateur, je peux consulter la liste des pistes d’un album |
50 | En tant qu’utilisateur, je peux rechercher un album |
60 | En tant qu’utilisateur, je peux consulter la liste des playlists enregistrées |
70 | En tant qu’utilisateur, je peux charger une playlist existante |
80 | En tant qu’utilisateur, je peux créer et enregistrer une nouvelle playlist |
90 | En tant qu’utilisateur, je peux ajouter des pistes à une playlist |
95 | En tant qu’utilisateur, je peux réordonner les pistes d’une playlist |
97 | En tant qu’utilisateur, je peux enlever des pistes à une playlist |
100 | En tant qu’utilisateur, je peux sauvegarder une playlist |
110 | En tant qu’utilisateur, je peux supprimer une playlist |
Modalités de remise du projet
Date limite : le 27/11/2011. Vous me ferez des démos le 27 pendant la journée. Vous me rendrez un zip portant votre nom.
Le zip (ou rar) devra contenir :
- Les sources du projet, faites un clean avant, pas la peine de me rendre des .class
- La base de données (à prendre dans .netbeans-derby sous votre user dir)
- 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
- Des photos d'écrans.
- 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.
Ressources intéressantes
- Librairie pour lire les tags ID3 (et les écrire, au cas où...) des fichiers mp3 : http://jid3.blinkenlights.org/5
- Cette archive : ExemplesUtilisationLibJId3.zip6 tirée d'un projet équivalent, contient des bouts de code pour analyser récursivement à partir d'un message driven bean un ensemble de répertoires. Le fichier Test.java montre un exemple d'utilisation de la lib jid3.
Notes et archives des projets rendus (accès restreint)
Notes de bas de page
1 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/Cours_composants_distribu%c3%a9s_pour_l'entreprise_%2f%2f_EJB_2009/Projet_%c3%a0_rendre_MBDS_Nice_2011-2012#R.c3.a9alisation_d'un_serveur_de_musique_en_streaming
2 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/Cours_composants_distribu%c3%a9s_pour_l'entreprise_%2f%2f_EJB_2009/Projet_%c3%a0_rendre_MBDS_Nice_2011-2012#Modalit.c3.a9s_de_remise_du_projet
3 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/Cours_composants_distribu%c3%a9s_pour_l'entreprise_%2f%2f_EJB_2009/Projet_%c3%a0_rendre_MBDS_Nice_2011-2012#Ressources_int.c3.a9ressantes
4 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/Cours_composants_distribu%c3%a9s_pour_l'entreprise_%2f%2f_EJB_2009/Projet_%c3%a0_rendre_MBDS_Nice_2011-2012#Notes_et_archives_des_projets_rendus_(acc.c3.a8s_restreint)
5 http://jid3.blinkenlights.org/
6 http://miageprojet2.unice.fr/@api/deki/files/1550/=ExemplesUtilisationLibJId3.zip