Tuteur : Jean-Philippe Prost Soutenance de Projet Licence Professionnelle Assistant de Projet Informatique Développement d’Applications E-Business Année Étudiants : Jean-Sylvain Granier & Jéremy Bouchet AssignManager Gestion de Documents Pédagogiques
Plan Cahier des charges Conception Google Web Toolkit Appel de Procédures Distantes Lucene Résultats Conclusion Cahier des charges — Conception — Résultats — Conclusion 1
Expression des Besoins Cahier des charges — Conception — Résultats — Conclusion Problème de classification Difficultés de recherche 2 Annuaire de documents Classification par mot-clefs Recherche multi-critères combinatoire
Spécifications fonctionnelles Cahier des charges — Conception — Résultats — Conclusion 3 ?? Informations sur des documents pédagogiques URL vers fichiers informatiques Application à produire Recherche par mots- clefs Résultat(s) Triable
Spécifications supplémentaires Cahier des charges — Conception — Résultats — Conclusion 4 Répartition en deux groupes de travail Application en ligne : Google Web Toolkit avec Java Open Source Interface internationalisable Référencement sans stockage
Répartition initiale Cahier des charges — Conception — Résultats — Conclusion 5 Application Métier Interface Graphique Binôme 2eme année Notre travail Analyse commune du domaine statique Convention de communication entre les deux parties
Google Web Toolkit Cahier des charges — Conception — Résultats — Conclusion 6 Environnement de développement Environnement Serveur (Serveur web Java) Client HTTP AJAX
Exemples d’utilisation : un Bouton Cahier des charges — Conception — Résultats — Conclusion 7 Button btnAddComment = new Button("Add Comment"); parentPanel.add(btnAddComment); btnAddComment.addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { launchPopupComment(); } }); Clic ici
Exemples d’utilisation : un Accordéon Cahier des charges — Conception — Résultats — Conclusion 8 DecoratedStackPanel leftStackPanel = new DecoratedStackPanel(); leftStackPanel.add(subWidget1,"Emplacement"); leftStackPanel.add(subWidget2,"Nuage de Mots clef"); RootPanel.get().add(leftStackPanel);
Appels de Procédures Distantes Cahier des charges — Conception — Résultats — Conclusion 9 Echange de données client/serveur Asynchrone Minimiser temps et quantité des échanges Améliorer expérience utilisateur
Appels de Procédures Distantes : Classes Cahier des charges — Conception — Résultats — Conclusion 10 ClientServeur SearchRemoteInterface SearchRemoteInterfaceAsy nc SearchRemoteInterfaceImp l
Appels de Procédures Distantes : Code Cahier des charges — Conception — Résultats — Conclusion 11 public interface SearchRemoteInterface extends RemoteService { public ArrayList searchQuery(String query); } SearchRemoteInterfaceAsy nc public interface SearchRemoteInterfaceAsync { void searchQuery(String query, AsyncCallback > callback); }
Appels de Procédures Distantes : Code Cahier des charges — Conception — Résultats — Conclusion 12 SearchRemoteInterfaceImp l public class SearchInterfaceImpl extends RemoteServiceServlet implements SearchRemoteInterface public ArrayList searchQuery(String query) { //Traitement de la requête coté serveur //Et retours du résultat } }
Appels de Procédures Distantes : Utilisation Cahier des charges — Conception — Résultats — Conclusion 13 private SearchRemoteInterfaceAsync searchSvc ; Private AsyncCallback > callback = new AsyncCallback >() { public void onFailure(Throwable caught) { //Traitement de l’erreur retournée, ou signalement à l’utilisateur } public void onSuccess(ArrayList result) { //Traitement du résultat } } }; SearchWidget : Client searchSvc.searchQuery(suggestBox.getText(), callback));
Appels de Procédures Distantes : Echanges Cahier des charges — Conception — Résultats — Conclusion 14 Echanges sur le réseau
Lucene Cahier des charges — Conception — Résultats — Conclusion 15 Moteur de recherche Générateur d’index : Titre Auteur Mots-clefs Résumé... Titre Auteur Mots-clefs Résumé... Document Lucene Fichier d’Index
La recherche avec Lucene Cahier des charges — Conception — Résultats — Conclusion 16 public static Map searchOnAuthor (String searchString) { Map listResult = new HashMap (); IndexSearcher searcher = new IndexSearcher(INDEX_DIR); QueryParser parser = new QueryParser("author", new StandardAnalyzer()); Query query = parser.parse(searchString); Hits hits = searcher.search(query); Iterator iter = hits.iterator(); while(iter.hasNext()){ Hit hit = iter.next(); Document doc = hit.getDocument(); InfoSheet is = new InfoSheet(Integer.valueOf(doc.get("id")),doc.get("title"), doc.get("abstract"),doc.get("author")); listResult.put(is.getId(), is); } return listResult; }
Initier un projet Open Source Travailler en groupe Application en ligne Gestion de documents pédagogique Rappel des objectifs de départ Cahier des charges — Conception — Résultats — Conclusion 17
Hébergement des fichiers sur un serveur FTP Classement des résultats de recherche Multiplier les indexes de recherche. Édition des fiches Présentation des résultats Préférences utilisateur Afficher des suggestions de recherches dynamiquement... Possibilités d’ouverture & d’amélioration Cahier des charges — Conception — Résultats — Conclusion 18
Un projet largement initié GWT : une compétence très valorisante Travail en équipes : expérience pédagogique & décisionnelle Conclusion Cahier des charges — Conception — Résultats — Conclusion 19
Merci de votre attention.Des questions ?