SlideShare ist ein Scribd-Unternehmen logo
1 von 8
RésuméPrésentation du développement de l’Interface Homme-Machine permettant aux visiteurs d’utiliser l’ensemble des fonctionnalités de l’application Web.MusicBrainzRapport de ProjetJulien BANVILLE MusicBrainz Rapport de Projet Sommaire Table des matières TOC  
1-3
    Sommaire PAGEREF _Toc64082082  3Introduction PAGEREF _Toc64082083  4Cahier des charges PAGEREF _Toc64082084  5Les besoins PAGEREF _Toc64082085  5Choix technologiques PAGEREF _Toc64082086  5Le développement PAGEREF _Toc64082087  5La logique de construction PAGEREF _Toc64082088  5Enregistrement de l’utilisateur PAGEREF _Toc64082089  6Connexion de l’utilisateur PAGEREF _Toc64082090  6Recherche MusicBrainz PAGEREF _Toc64082091  6L’historisation des informations PAGEREF _Toc64082092  6Que mettre dans une page JSP PAGEREF _Toc64082093  7Les instructions JAVA PAGEREF _Toc64082094  7Le XHTML PAGEREF _Toc64082095  7Navigation dans les pages JSP PAGEREF _Toc64082096  7Vérification et validation PAGEREF _Toc64082097  8 Introduction Le projet MusicBrainz étant un site Internet, la conception, l’organisation et la présentation de l’interface homme machine est extrêmement importante afin de valoriser le site et utiliser au mieux ses fonctionnalités. Ce rapport présentera donc la partie du projet portant sur la présentation des informations, et ainsi l’utilisation de l’ensemble des autres modules développés par l’équipe. Il sera composé d’un plan en plusieurs parties présentant le cahier des charges de cette partie du projet, le développement lui même, comment tester un tel site, et le résultat aujourd’hui. Cahier des charges Les besoins Les différentes pages doivent utiliser les classes déjà développées par l’ensemble de l’équipe, puisque le but est de retranscrire ces informations. On a donc besoin d’un module de recherche permettant à l’utilisateur d’entrer facilement ses critères de choix, qui donneront des résultats identiques à ceux que donnerait le site MusicBrainz. On pourra aussi offrir un espace personnel à l’utilisateur afin qu’il stocke les recherches déjà faites et qu’il trouve intéressantes, afin de les réutiliser plus tard. On a donc le besoin d’avoir un espace sécurisé par mot de passe et identifiant, ainsi que celui d’enregistrer l’utilisateur et l’authentifier de manière fiable. Comme tout site Internet, l’application doit posséder une charte graphique claire et mettant en valeur les informations dont pourra avoir besoin le visiteur. Choix technologiques Il a été convenu que le site Internet serait construit sur une base de Java. Ainsi, les pages développées devront être de type JSP, permettant donc l’utilisation du langage Java pour faire des traitements en l’accompagnant de balises  XHTML. Le développement Le développement des pages JSP nécessite que les autres participants au projet aient déjà développé une partie du logiciel, sans quoi le développement s’arrête à l’interface homme machine seule, sans aucun traitement possible. Il est donc nécessaire d’adopter une logique de construction stricte. Combien de pages JSP, et que mettre dans ces pages ? Comment utiliser au mieux les avantages du modèle objet dans ces pages ? La logique de construction J’ai décidé d’opter pour un développement au fur et à mesure que les composants étaient disponible par les autres développeurs, mais aussi en parcourant le site comme un visiteur le ferait. Ainsi, j’ai commencé par développer la page principale, qui devait être le cœur de l’ensemble des pages JSP, qui ferait appel aux autres pages lorsqu’un traitement est spécifique. J’y ai aussi ajouté les éléments graphiques que l’on retrouverait dans chaque page, c’est à dire la bannière, le menu de navigation à gauche, le cadre principal où seraient rendues toutes les informations données par les composants, et le cadre inférieur pour les informations sur le développement (noms des participants et contexte). Puis, j’ai développé les pages JSP comme si j’étais un visiteur, en suivant une méthode chronologique. Enregistrement de l’utilisateur Les instructions nécessaires à l’enregistrement de l’utilisateur dans la base des utilisateurs. Il était nécessaire d’utiliser les données POST des formulaires afin de cacher les informations comme le mot de passe, et les réutiliser pour inscrire le visiteur. Un simple appel à une méthode développée par un autre participant permet de faire l’enregistrement réel. Connexion de l’utilisateur La connexion de l’utilisateur. On utilise un formulaire et là encore on stocke les informations d’identification dans le tableau de valeurs POST, que l’on réutilise dans une méthode en demandant si le couple identifiant/mot de passe est correct, là encore dans un paquetage différent. Recherche MusicBrainz L’utilisateur peut faire de nombreuses recherches sur toutes les classes principales, et peut définir plusieurs critères.  Ces critères sont ensuite rassemblés dans une table de hachage, composée d’un ensemble de clés qui sont les noms des arguments de recherche, et de valeurs qui sont les critères. Cette table est ensuite envoyée en paramètres à la méthode de récupération des données XML du site de MusicBrainz.  Ces données XML sont ensuite extraites par la class XMLParser, qui nous renvoie des objets Java contenant les informations. Pour réutiliser ces résultats, il suffit d’afficher un tableau avec les informations contenues dans ces objets. L’historisation des informations Lorsqu’une recherche intéresse l’utilisateur, il a la possibilité de l’enregistrer pour l’utiliser plus tard. Intégré au formulaire de recherche, l’option d’enregistrement garanti la réutilisation d’une recherche (à la condition que l’utilisateur soit enregistré). Une page JSP assure ces traitements, tout d’abord en affichant l’ensemble des recherches enregistrées par l’utilisateur. En cliquant sur une recherche, on va pouvoir réutiliser ces données en réaffichant les résultats comme s’il venait de faire sa recherche. Que mettre dans une page JSP Une page JSP est toujours composée de la même manière. On y trouve des instructions en JAVA, et des balises XHTML pour la mise en forme. Les instructions JAVA On a donc directement accès à toutes les classes fournies par les autres développeurs, mais aussi à toutes les classes de base dans le langage JAVA. Cela permet de faire tous les traitements utiles avec les informations à fournir ou fournies par les autres classes, comme par exemple réutiliser un tableau d’objets, ou transmettre une table de hachage à une méthode. Le XHTML Afin d’habiller les informations et les présenter de manière lisible, claire à l’utilisateur, l’utilisation du XHTML permet de faire une présentation classique de site Internet. En structurant correctement une page, on peut donc afficher n’importe quelle information, n’importe où, selon les conditions qu’on ce sera fixé. Par exemple, un utilisateur non connecté n’aura pas besoin de voir la catégorie « Historique ». Navigation dans les pages JSP A partir du site, il est possible à tout moment de faire une recherche, se connecter, s’enregistrer.  Il n’est possible d’utiliser un historique qu’à partir du moment où l’utilisateur est enregistré et connecté (sinon, il n’aurait pas d’espace de stockage). Cette navigation se fait de manière transparente. L’utilisateur ne peut jamais savoir dans quelle page JSP il se trouve, ce qui s’avère très pratique en terme de sécurité : le visiteur ne pourra jamais tomber sur une page internet à laquelle il n’aurait pas le droit d’accès. En effet, on ne met jamais un lien direct vers une page JSP. On préférera l’utilisation des tableaux GET et POST pour traiter l’action désirée par l’utilisateur, et faire l’affichage en fonction de ces données. Vérification et validation  Pour vérifier que les pages JSP font des traitements corrects et n’occasionnent pas de dysfonctionnement du site, il n’est pas nécessaire de tester les méthodes développées par les autres participants, puisque ce sont eux qui ont fait leurs tests. Pour tester une JSP, il faut en fait naviguer et chercher les cas d’utilisation. Etant donné qu’on cache les informations lorsqu’elles ne sont pas accessibles à l’utilisateur, il n’est pas possible que celui-ci tombe sur une page non initialisée et non traitée. Conclusion Aujourd’hui, le développement des pages JSP dans le cadre de ce projet est terminé. En effet, elles affichent les informations voulues, quand c’est nécessaire et disponible, et lorsque l’utilisateur y a accès. Les différents traitements disponibles dans le moteur de l’application sont donc disponibles en front end.  Ce développement a été intéressant car il m’a permis de me familiariser à nouveau avec les JSP, ce que je n’avais pas fait depuis quelques années. Ayant fait l’an dernier du développement Web avec le langage PHP, j’ai pu voir les différences et apprécier l’utilisation d’un moteur Java dans le cadre du développement Web. Au delà de l’aspect développement, ce projet m’a permis de voir ce qu’était la gestion de projets pour un groupe, avec son chef de projet qui donne les directives et les temps impartis, ce qui permet d’ordonnancer efficacement les tâches.
Music Brainz
Music Brainz
Music Brainz
Music Brainz
Music Brainz
Music Brainz
Music Brainz

Weitere ähnliche Inhalte

Andere mochten auch

Du côté du cdi 26 1juin
Du côté du cdi 26 1juinDu côté du cdi 26 1juin
Du côté du cdi 26 1juinClaudie Merlet
 
AT13 - Construire une démarche patrimoine mondial -Ville de Besançon
AT13 - Construire une démarche patrimoine mondial -Ville de BesançonAT13 - Construire une démarche patrimoine mondial -Ville de Besançon
AT13 - Construire une démarche patrimoine mondial -Ville de BesançonCap'Com
 
AT10 - Différencier sa communication touristique - Office de tourisme de Troyes
AT10 - Différencier sa communication touristique - Office de tourisme de TroyesAT10 - Différencier sa communication touristique - Office de tourisme de Troyes
AT10 - Différencier sa communication touristique - Office de tourisme de TroyesCap'Com
 
Templo de San Isidro de Coronado
Templo de San Isidro de CoronadoTemplo de San Isidro de Coronado
Templo de San Isidro de CoronadoHazel Cerdas
 
Proyecto matem
Proyecto matemProyecto matem
Proyecto matemlarafratti
 
Fundamentos de sistemas_de_informaci
Fundamentos de sistemas_de_informaciFundamentos de sistemas_de_informaci
Fundamentos de sistemas_de_informaciartuscategui73
 
Indicadores de Gestión
Indicadores de GestiónIndicadores de Gestión
Indicadores de Gestiónmilandynavarro
 
Des jeux de plateaux aux serious games
Des jeux de plateaux aux serious gamesDes jeux de plateaux aux serious games
Des jeux de plateaux aux serious gamesKnowtex
 
Presentación1
Presentación1Presentación1
Presentación1jugadores
 
Redes informaticas
Redes informaticasRedes informaticas
Redes informaticasMiki17
 
Primer trabajo para el profesor manuel
Primer trabajo para el profesor manuelPrimer trabajo para el profesor manuel
Primer trabajo para el profesor manuelejoya
 
Nuevo presentación de microsoft office power point (2)
Nuevo presentación de microsoft office power point (2)Nuevo presentación de microsoft office power point (2)
Nuevo presentación de microsoft office power point (2)desips
 
La veille de Red Guy du 18.04.12 : les Wants
La veille de Red Guy du 18.04.12 : les WantsLa veille de Red Guy du 18.04.12 : les Wants
La veille de Red Guy du 18.04.12 : les WantsRed Guy
 

Andere mochten auch (20)

Du côté du cdi 26 1juin
Du côté du cdi 26 1juinDu côté du cdi 26 1juin
Du côté du cdi 26 1juin
 
Crea un planeta con gimp
Crea un planeta con gimpCrea un planeta con gimp
Crea un planeta con gimp
 
Tutorial
TutorialTutorial
Tutorial
 
AT13 - Construire une démarche patrimoine mondial -Ville de Besançon
AT13 - Construire une démarche patrimoine mondial -Ville de BesançonAT13 - Construire une démarche patrimoine mondial -Ville de Besançon
AT13 - Construire une démarche patrimoine mondial -Ville de Besançon
 
Mares
MaresMares
Mares
 
El Podcasting como recurso educativo
El Podcasting como recurso educativoEl Podcasting como recurso educativo
El Podcasting como recurso educativo
 
AT10 - Différencier sa communication touristique - Office de tourisme de Troyes
AT10 - Différencier sa communication touristique - Office de tourisme de TroyesAT10 - Différencier sa communication touristique - Office de tourisme de Troyes
AT10 - Différencier sa communication touristique - Office de tourisme de Troyes
 
Templo de San Isidro de Coronado
Templo de San Isidro de CoronadoTemplo de San Isidro de Coronado
Templo de San Isidro de Coronado
 
Proyecto matem
Proyecto matemProyecto matem
Proyecto matem
 
MGF
MGFMGF
MGF
 
Fundamentos de sistemas_de_informaci
Fundamentos de sistemas_de_informaciFundamentos de sistemas_de_informaci
Fundamentos de sistemas_de_informaci
 
Educ.ar presentación
Educ.ar   presentaciónEduc.ar   presentación
Educ.ar presentación
 
Indicadores de Gestión
Indicadores de GestiónIndicadores de Gestión
Indicadores de Gestión
 
Des jeux de plateaux aux serious games
Des jeux de plateaux aux serious gamesDes jeux de plateaux aux serious games
Des jeux de plateaux aux serious games
 
Presentación1
Presentación1Presentación1
Presentación1
 
Artimag15
Artimag15Artimag15
Artimag15
 
Redes informaticas
Redes informaticasRedes informaticas
Redes informaticas
 
Primer trabajo para el profesor manuel
Primer trabajo para el profesor manuelPrimer trabajo para el profesor manuel
Primer trabajo para el profesor manuel
 
Nuevo presentación de microsoft office power point (2)
Nuevo presentación de microsoft office power point (2)Nuevo presentación de microsoft office power point (2)
Nuevo presentación de microsoft office power point (2)
 
La veille de Red Guy du 18.04.12 : les Wants
La veille de Red Guy du 18.04.12 : les WantsLa veille de Red Guy du 18.04.12 : les Wants
La veille de Red Guy du 18.04.12 : les Wants
 

Ähnlich wie Music Brainz

Conférence Drupagora 2011: Drupal et les moteurs de recherche: Apache SolR
Conférence Drupagora 2011: Drupal et les moteurs de recherche: Apache SolRConférence Drupagora 2011: Drupal et les moteurs de recherche: Apache SolR
Conférence Drupagora 2011: Drupal et les moteurs de recherche: Apache SolRgwenael chichery
 
API JSP avec Java EE.pptx
API JSP avec Java EE.pptxAPI JSP avec Java EE.pptx
API JSP avec Java EE.pptxramadanmahdi
 
Les bonnes pratiques SEO avec les frameworks javascript - SEO CAMPUS 9 mars 2017
Les bonnes pratiques SEO avec les frameworks javascript - SEO CAMPUS 9 mars 2017Les bonnes pratiques SEO avec les frameworks javascript - SEO CAMPUS 9 mars 2017
Les bonnes pratiques SEO avec les frameworks javascript - SEO CAMPUS 9 mars 2017Peak Ace
 
Angular développer des applications .pdf
Angular développer des applications .pdfAngular développer des applications .pdf
Angular développer des applications .pdfimenhamada17
 
Introduction aux Technologies Web élaborée par Marouan OMEZZINE
Introduction aux Technologies Web élaborée par Marouan OMEZZINEIntroduction aux Technologies Web élaborée par Marouan OMEZZINE
Introduction aux Technologies Web élaborée par Marouan OMEZZINEMarouan OMEZZINE
 
jQuery mobile / PhoneGap : contenus dynamiques client-side
jQuery mobile / PhoneGap : contenus dynamiques client-sidejQuery mobile / PhoneGap : contenus dynamiques client-side
jQuery mobile / PhoneGap : contenus dynamiques client-sidemaru.maru
 
Installation et configuration d'AWSTATS "Outils d'analyse de Logs" sur Centos...
Installation et configuration d'AWSTATS "Outils d'analyse de Logs" sur Centos...Installation et configuration d'AWSTATS "Outils d'analyse de Logs" sur Centos...
Installation et configuration d'AWSTATS "Outils d'analyse de Logs" sur Centos...medfaye
 
cours web developpement statique AJAX 2024
cours web developpement statique AJAX  2024cours web developpement statique AJAX  2024
cours web developpement statique AJAX 2024YounesOuladSayad1
 
Oxalide Workshop #3 - Elasticearch, an overview
Oxalide Workshop #3 - Elasticearch, an overviewOxalide Workshop #3 - Elasticearch, an overview
Oxalide Workshop #3 - Elasticearch, an overviewLudovic Piot
 
Oxalide Academy : Workshop #3 Elastic Search
Oxalide Academy : Workshop #3 Elastic SearchOxalide Academy : Workshop #3 Elastic Search
Oxalide Academy : Workshop #3 Elastic SearchOxalide
 
[Chambé-Carnet] L'accessibilité au service du référencement naturel
[Chambé-Carnet] L'accessibilité au service du référencement naturel[Chambé-Carnet] L'accessibilité au service du référencement naturel
[Chambé-Carnet] L'accessibilité au service du référencement naturelChambé-Carnet
 
Créer un site web ? Méthode illustrée par la médiathèque de Roubaix - PARTIE 1
Créer un site web ? Méthode illustrée par la médiathèque de Roubaix - PARTIE 1Créer un site web ? Méthode illustrée par la médiathèque de Roubaix - PARTIE 1
Créer un site web ? Méthode illustrée par la médiathèque de Roubaix - PARTIE 1Médiathèque de Roubaix - La Grand-Plage
 
Ajax et Accessibilite
Ajax et AccessibiliteAjax et Accessibilite
Ajax et Accessibilitemikeh
 
API JSP2 avec Java EE.pdf
API JSP2 avec Java EE.pdfAPI JSP2 avec Java EE.pdf
API JSP2 avec Java EE.pdframadanmahdi
 

Ähnlich wie Music Brainz (20)

Association 2 0
Association 2 0Association 2 0
Association 2 0
 
Conférence Drupagora 2011: Drupal et les moteurs de recherche: Apache SolR
Conférence Drupagora 2011: Drupal et les moteurs de recherche: Apache SolRConférence Drupagora 2011: Drupal et les moteurs de recherche: Apache SolR
Conférence Drupagora 2011: Drupal et les moteurs de recherche: Apache SolR
 
API JSP avec Java EE.pptx
API JSP avec Java EE.pptxAPI JSP avec Java EE.pptx
API JSP avec Java EE.pptx
 
Les bonnes pratiques SEO avec les frameworks javascript - SEO CAMPUS 9 mars 2017
Les bonnes pratiques SEO avec les frameworks javascript - SEO CAMPUS 9 mars 2017Les bonnes pratiques SEO avec les frameworks javascript - SEO CAMPUS 9 mars 2017
Les bonnes pratiques SEO avec les frameworks javascript - SEO CAMPUS 9 mars 2017
 
Angular développer des applications .pdf
Angular développer des applications .pdfAngular développer des applications .pdf
Angular développer des applications .pdf
 
Introduction aux Technologies Web élaborée par Marouan OMEZZINE
Introduction aux Technologies Web élaborée par Marouan OMEZZINEIntroduction aux Technologies Web élaborée par Marouan OMEZZINE
Introduction aux Technologies Web élaborée par Marouan OMEZZINE
 
jQuery mobile / PhoneGap : contenus dynamiques client-side
jQuery mobile / PhoneGap : contenus dynamiques client-sidejQuery mobile / PhoneGap : contenus dynamiques client-side
jQuery mobile / PhoneGap : contenus dynamiques client-side
 
Installation et configuration d'AWSTATS "Outils d'analyse de Logs" sur Centos...
Installation et configuration d'AWSTATS "Outils d'analyse de Logs" sur Centos...Installation et configuration d'AWSTATS "Outils d'analyse de Logs" sur Centos...
Installation et configuration d'AWSTATS "Outils d'analyse de Logs" sur Centos...
 
Paris Web
Paris WebParis Web
Paris Web
 
cours web developpement statique AJAX 2024
cours web developpement statique AJAX  2024cours web developpement statique AJAX  2024
cours web developpement statique AJAX 2024
 
Oxalide Workshop #3 - Elasticearch, an overview
Oxalide Workshop #3 - Elasticearch, an overviewOxalide Workshop #3 - Elasticearch, an overview
Oxalide Workshop #3 - Elasticearch, an overview
 
Oxalide Academy : Workshop #3 Elastic Search
Oxalide Academy : Workshop #3 Elastic SearchOxalide Academy : Workshop #3 Elastic Search
Oxalide Academy : Workshop #3 Elastic Search
 
[Chambé-Carnet] L'accessibilité au service du référencement naturel
[Chambé-Carnet] L'accessibilité au service du référencement naturel[Chambé-Carnet] L'accessibilité au service du référencement naturel
[Chambé-Carnet] L'accessibilité au service du référencement naturel
 
Créer un site web ? Méthode illustrée par la médiathèque de Roubaix - PARTIE 1
Créer un site web ? Méthode illustrée par la médiathèque de Roubaix - PARTIE 1Créer un site web ? Méthode illustrée par la médiathèque de Roubaix - PARTIE 1
Créer un site web ? Méthode illustrée par la médiathèque de Roubaix - PARTIE 1
 
Ajax et Accessibilite
Ajax et AccessibiliteAjax et Accessibilite
Ajax et Accessibilite
 
API JSP2 avec Java EE.pdf
API JSP2 avec Java EE.pdfAPI JSP2 avec Java EE.pdf
API JSP2 avec Java EE.pdf
 
Association 2 0
Association 2 0Association 2 0
Association 2 0
 
Association 2 0
Association 2 0Association 2 0
Association 2 0
 
Chapter1
Chapter1Chapter1
Chapter1
 
Java Server Faces 2
Java Server Faces 2Java Server Faces 2
Java Server Faces 2
 

Mehr von Banville Julien

Analyse statistique du jeu DOTA
Analyse statistique du jeu DOTAAnalyse statistique du jeu DOTA
Analyse statistique du jeu DOTABanville Julien
 
Analyse statistique sur DOTA
Analyse statistique sur DOTAAnalyse statistique sur DOTA
Analyse statistique sur DOTABanville Julien
 
Création d'une plate-forme ouverte à l'enseignement à distance
Création d'une plate-forme ouverte à l'enseignement à distanceCréation d'une plate-forme ouverte à l'enseignement à distance
Création d'une plate-forme ouverte à l'enseignement à distanceBanville Julien
 

Mehr von Banville Julien (7)

Analyse statistique du jeu DOTA
Analyse statistique du jeu DOTAAnalyse statistique du jeu DOTA
Analyse statistique du jeu DOTA
 
Rapport Tal Master 1
Rapport Tal Master 1Rapport Tal Master 1
Rapport Tal Master 1
 
Analyse statistique sur DOTA
Analyse statistique sur DOTAAnalyse statistique sur DOTA
Analyse statistique sur DOTA
 
Projet Music Brainz
Projet Music BrainzProjet Music Brainz
Projet Music Brainz
 
Recherche de citations
Recherche de citationsRecherche de citations
Recherche de citations
 
DOTA statistic analysis
DOTA statistic analysisDOTA statistic analysis
DOTA statistic analysis
 
Création d'une plate-forme ouverte à l'enseignement à distance
Création d'une plate-forme ouverte à l'enseignement à distanceCréation d'une plate-forme ouverte à l'enseignement à distance
Création d'une plate-forme ouverte à l'enseignement à distance
 

Music Brainz

  • 1. RésuméPrésentation du développement de l’Interface Homme-Machine permettant aux visiteurs d’utiliser l’ensemble des fonctionnalités de l’application Web.MusicBrainzRapport de ProjetJulien BANVILLE MusicBrainz Rapport de Projet Sommaire Table des matières TOC 1-3 Sommaire PAGEREF _Toc64082082 3Introduction PAGEREF _Toc64082083 4Cahier des charges PAGEREF _Toc64082084 5Les besoins PAGEREF _Toc64082085 5Choix technologiques PAGEREF _Toc64082086 5Le développement PAGEREF _Toc64082087 5La logique de construction PAGEREF _Toc64082088 5Enregistrement de l’utilisateur PAGEREF _Toc64082089 6Connexion de l’utilisateur PAGEREF _Toc64082090 6Recherche MusicBrainz PAGEREF _Toc64082091 6L’historisation des informations PAGEREF _Toc64082092 6Que mettre dans une page JSP PAGEREF _Toc64082093 7Les instructions JAVA PAGEREF _Toc64082094 7Le XHTML PAGEREF _Toc64082095 7Navigation dans les pages JSP PAGEREF _Toc64082096 7Vérification et validation PAGEREF _Toc64082097 8 Introduction Le projet MusicBrainz étant un site Internet, la conception, l’organisation et la présentation de l’interface homme machine est extrêmement importante afin de valoriser le site et utiliser au mieux ses fonctionnalités. Ce rapport présentera donc la partie du projet portant sur la présentation des informations, et ainsi l’utilisation de l’ensemble des autres modules développés par l’équipe. Il sera composé d’un plan en plusieurs parties présentant le cahier des charges de cette partie du projet, le développement lui même, comment tester un tel site, et le résultat aujourd’hui. Cahier des charges Les besoins Les différentes pages doivent utiliser les classes déjà développées par l’ensemble de l’équipe, puisque le but est de retranscrire ces informations. On a donc besoin d’un module de recherche permettant à l’utilisateur d’entrer facilement ses critères de choix, qui donneront des résultats identiques à ceux que donnerait le site MusicBrainz. On pourra aussi offrir un espace personnel à l’utilisateur afin qu’il stocke les recherches déjà faites et qu’il trouve intéressantes, afin de les réutiliser plus tard. On a donc le besoin d’avoir un espace sécurisé par mot de passe et identifiant, ainsi que celui d’enregistrer l’utilisateur et l’authentifier de manière fiable. Comme tout site Internet, l’application doit posséder une charte graphique claire et mettant en valeur les informations dont pourra avoir besoin le visiteur. Choix technologiques Il a été convenu que le site Internet serait construit sur une base de Java. Ainsi, les pages développées devront être de type JSP, permettant donc l’utilisation du langage Java pour faire des traitements en l’accompagnant de balises XHTML. Le développement Le développement des pages JSP nécessite que les autres participants au projet aient déjà développé une partie du logiciel, sans quoi le développement s’arrête à l’interface homme machine seule, sans aucun traitement possible. Il est donc nécessaire d’adopter une logique de construction stricte. Combien de pages JSP, et que mettre dans ces pages ? Comment utiliser au mieux les avantages du modèle objet dans ces pages ? La logique de construction J’ai décidé d’opter pour un développement au fur et à mesure que les composants étaient disponible par les autres développeurs, mais aussi en parcourant le site comme un visiteur le ferait. Ainsi, j’ai commencé par développer la page principale, qui devait être le cœur de l’ensemble des pages JSP, qui ferait appel aux autres pages lorsqu’un traitement est spécifique. J’y ai aussi ajouté les éléments graphiques que l’on retrouverait dans chaque page, c’est à dire la bannière, le menu de navigation à gauche, le cadre principal où seraient rendues toutes les informations données par les composants, et le cadre inférieur pour les informations sur le développement (noms des participants et contexte). Puis, j’ai développé les pages JSP comme si j’étais un visiteur, en suivant une méthode chronologique. Enregistrement de l’utilisateur Les instructions nécessaires à l’enregistrement de l’utilisateur dans la base des utilisateurs. Il était nécessaire d’utiliser les données POST des formulaires afin de cacher les informations comme le mot de passe, et les réutiliser pour inscrire le visiteur. Un simple appel à une méthode développée par un autre participant permet de faire l’enregistrement réel. Connexion de l’utilisateur La connexion de l’utilisateur. On utilise un formulaire et là encore on stocke les informations d’identification dans le tableau de valeurs POST, que l’on réutilise dans une méthode en demandant si le couple identifiant/mot de passe est correct, là encore dans un paquetage différent. Recherche MusicBrainz L’utilisateur peut faire de nombreuses recherches sur toutes les classes principales, et peut définir plusieurs critères. Ces critères sont ensuite rassemblés dans une table de hachage, composée d’un ensemble de clés qui sont les noms des arguments de recherche, et de valeurs qui sont les critères. Cette table est ensuite envoyée en paramètres à la méthode de récupération des données XML du site de MusicBrainz. Ces données XML sont ensuite extraites par la class XMLParser, qui nous renvoie des objets Java contenant les informations. Pour réutiliser ces résultats, il suffit d’afficher un tableau avec les informations contenues dans ces objets. L’historisation des informations Lorsqu’une recherche intéresse l’utilisateur, il a la possibilité de l’enregistrer pour l’utiliser plus tard. Intégré au formulaire de recherche, l’option d’enregistrement garanti la réutilisation d’une recherche (à la condition que l’utilisateur soit enregistré). Une page JSP assure ces traitements, tout d’abord en affichant l’ensemble des recherches enregistrées par l’utilisateur. En cliquant sur une recherche, on va pouvoir réutiliser ces données en réaffichant les résultats comme s’il venait de faire sa recherche. Que mettre dans une page JSP Une page JSP est toujours composée de la même manière. On y trouve des instructions en JAVA, et des balises XHTML pour la mise en forme. Les instructions JAVA On a donc directement accès à toutes les classes fournies par les autres développeurs, mais aussi à toutes les classes de base dans le langage JAVA. Cela permet de faire tous les traitements utiles avec les informations à fournir ou fournies par les autres classes, comme par exemple réutiliser un tableau d’objets, ou transmettre une table de hachage à une méthode. Le XHTML Afin d’habiller les informations et les présenter de manière lisible, claire à l’utilisateur, l’utilisation du XHTML permet de faire une présentation classique de site Internet. En structurant correctement une page, on peut donc afficher n’importe quelle information, n’importe où, selon les conditions qu’on ce sera fixé. Par exemple, un utilisateur non connecté n’aura pas besoin de voir la catégorie « Historique ». Navigation dans les pages JSP A partir du site, il est possible à tout moment de faire une recherche, se connecter, s’enregistrer. Il n’est possible d’utiliser un historique qu’à partir du moment où l’utilisateur est enregistré et connecté (sinon, il n’aurait pas d’espace de stockage). Cette navigation se fait de manière transparente. L’utilisateur ne peut jamais savoir dans quelle page JSP il se trouve, ce qui s’avère très pratique en terme de sécurité : le visiteur ne pourra jamais tomber sur une page internet à laquelle il n’aurait pas le droit d’accès. En effet, on ne met jamais un lien direct vers une page JSP. On préférera l’utilisation des tableaux GET et POST pour traiter l’action désirée par l’utilisateur, et faire l’affichage en fonction de ces données. Vérification et validation Pour vérifier que les pages JSP font des traitements corrects et n’occasionnent pas de dysfonctionnement du site, il n’est pas nécessaire de tester les méthodes développées par les autres participants, puisque ce sont eux qui ont fait leurs tests. Pour tester une JSP, il faut en fait naviguer et chercher les cas d’utilisation. Etant donné qu’on cache les informations lorsqu’elles ne sont pas accessibles à l’utilisateur, il n’est pas possible que celui-ci tombe sur une page non initialisée et non traitée. Conclusion Aujourd’hui, le développement des pages JSP dans le cadre de ce projet est terminé. En effet, elles affichent les informations voulues, quand c’est nécessaire et disponible, et lorsque l’utilisateur y a accès. Les différents traitements disponibles dans le moteur de l’application sont donc disponibles en front end. Ce développement a été intéressant car il m’a permis de me familiariser à nouveau avec les JSP, ce que je n’avais pas fait depuis quelques années. Ayant fait l’an dernier du développement Web avec le langage PHP, j’ai pu voir les différences et apprécier l’utilisation d’un moteur Java dans le cadre du développement Web. Au delà de l’aspect développement, ce projet m’a permis de voir ce qu’était la gestion de projets pour un groupe, avec son chef de projet qui donne les directives et les temps impartis, ce qui permet d’ordonnancer efficacement les tâches.