Réalisation d'un service de partage de tâches et de souhaits, exploitant le réseau social de l'utilisateur Quentin MOURARET Tuteurs : Sébastien BERTRAND  Yann MATHET
Sommaire Présentation du contexte Le Web 2.0 AJAX et Ruby on Rails Le projet Daruma Développement d'un prototype Conclusion
Sommaire Présentation du contexte Le Web 2.0 AJAX et Ruby on Rails Le projet Daruma Développement d'un prototype Conclusion
Contexte France Télécom R&D Division Recherche  & Développement de France Télécom 6 centres de R&D (les CRD) Direction des laboratoires internationaux Fonctions de support de pilotage URD SWING : Social Web Innovation New Generation Investigation sur les nouvelles technologies de communication et d'accès au contenus SNI : Social Networking Innovation Projet d'anticipation qui propose des services mettant en avant les réseaux sociaux
Contexte Sharezone   Réalisation d'un moteur de lien sociaux Gestion des relations entres utilisateurs Place du projet Nouveau service (Web 2.0) Utilisation de Sharezone
Sommaire Présentation du contexte Le Web 2.0 AJAX et Ruby on Rails Le projet Daruma Développement d'un prototype Conclusion
Le Web 2.0 Une transition importante du Web Un regroupement des concepts et technologies déjà en place 3 points  Les réseaux sociaux Les technologies (HTML, XML, CSS, etc.) Les services
Le Web 2.0 Les réseaux sociaux Liens entres amis Partage de points communs Apparition de communautés Distribution de contenu Exemple : Myspace
Le Web 2.0 Les technologies HTML CSS 2.0 Javascript XML Le protocole HTTP REST (architecture de services Web )   Nouvelle ergonomie des sites Web
Le Web 2.0 Les services Intègre la notion de réseaux sociaux Partage et collaboration API ouverte Exemple : Flickr
Sommaire Présentation du contexte Le Web 2.0 AJAX et Ruby on Rails Le projet Daruma Développement d'un prototype Conclusion
AJAX Asynchronous JavaScript And XML  Mise à jour d'une portion de page uniquement  Web classique Modèle AJAX
AJAX : exemples de site Web http://www.flickr.com/ Modification à la volée  (titre, description, tags des photos) http://maps.google.com/ Pré-chargement des portions  de carte à afficher.
Ruby on rails Un Framework pour les applications Web. Extrait de Basecamp (outil de gestion de projet), développé par David Heinemeier Hansson (Danois).  La première version de Ruby on Rails date de 2004 et la première version stable juillet 2005 (Ruby 1995). Ecrit avec et grâce à Ruby.
Ruby on rails Ruby Langage de programmation interprété entièrement orienté objet. Crée par Yukihiro "Matz" Matsumoto (Japonais).  Ruby n'est pas un acronyme, mais un jeu de mot sur Perl.  Première version sortie en 1995. La syntaxe de Ruby est inspirée par Eiffel et Ada.
Ruby on rails (Ruby) on rails : Un framework pour les applications Web. Les principes principaux sous-jacents au framework sont :  "Ne pas se répéter"  "Convention plutôt que Configuration".  Modèles de conception (design pattern) : Mappage Objet-Relationnel ( Object-Relational mapping , ORM). MVC (Modèle Vue contrôleur)
Ruby on rails Utilisation du modèle MVC Modèle: Représente les données de l'application. Vue: Permet d'élaborer des modèles de pages. Contrôleur: Gère la logique de la navigation.
Ruby on rails Mappage objet-relationnel Faire étroitement correspondre les tables de la base de données avec les classes utilisées au sein de Ruby.
Ruby on rails Outils 1/2 Scripts de génération de structure  Structure du projet Contrôleur + vue Modèle Scaffold (modèle, contrôleur, vue)
Exemple d'arborescence des fichiers d'une application Web permettant de gérer une bibliothèque. Partie généré par RoR lors de la création de l'application Fichiers crées au cours de l'évolution de  l'application
Ruby on rails Outils 2/2 Helpers : méthodes aidant à générer les vues <%= img_link (&quot;www.daruma-project.com&quot;, { :class => &quot;link&quot; }, &quot;/images/daruma.jpg&quot;, { :class => &quot;image&quot;} ) %> <a href=&quot;www.daruma-projet.com&quot; class=&quot;link&quot;> <img src=&quot;/images/daruma.jpg&quot;  class=&quot;image&quot; /> </a> HTML Génération Ruby
Ruby on rails Serveur En développement : WEBrick En production : Apache ou Lighttpd avec FastCGI.
Ruby on rails : exemple http://www.37signals.com Management de projet Gestion des taches http://www.43things.com Partager les 43 choses  les plus importantes pour vous.
AJAX et Ruby on Rails Conclusion Interface plus interactive (AJAX) Développement simple et rapide (RoR)   Outils adaptés aux besoins pour le développement de l’application Daruma
Sommaire Présentation du contexte Le Web 2.0 AJAX et Ruby on Rails Le projet Daruma Développement d'un prototype Conclusion
Le projet Daruma Définition Sources d'inspirations Les objets Les cas d'utilisations Le schéma de la BDD
Daruma : un service de partage de taches, de souhait( Wish list ) exploitant le réseau social de l'utilisateur. Daruma : désigne dans la culture Japonaise une figurine à vœux. Utilisation des technologies émergentes : AJAX et Ruby on rails Le projet : définition
Le projet : définition Quentin souhaite apprendre le Japonais
Les sources d'inspirations http://36trucs.com/ http://www.millemercis.com/ http://www.backpackit.com/ http://www.tadalist.com/ http://www.flickr.com   Diffusion et Partage d'informations   Communauté virtuelle
Les objets Les utilisateurs Les fiches Les tags Les commentaires Les suivis et aides
Les cas d'utilisations 1/3 Visuel d'un blog  Voir les fiches Effectuer des recherches Poster des fiches
Les cas d'utilisations 2/3 Actions possibles au sein d'une  fiche: Ecrire des commentaires Suivre la fiche Proposer son aide Flux Rss Pour ses propres fiches Modifier le contenu ajouter/supprimer des tags ajouter/supprimer des  commentaires
Les cas d'utilisations 3/3 Actions sur le compte d’une personne ou sur son compte: Voir les fiches Voir les amis Voir le profil Voir l’activité récente Voir les fiches suivies Voir les fiches aidées
Sommaire Présentation du contexte Le Web 2.0 AJAX et Ruby on Rails Le projet Daruma Développement d'un prototype Conclusion
Développement Outils utilisés La structure du projet Daruma Les effets et objets AJAX L'aspect social Les flux RSS Interconnexion avec les moteurs sociaux
Développement Outils utilisés La structure du projet Daruma Les effets et objets AJAX L'aspect social Les flux RSS Interconnexion avec les moteurs sociaux
Développement Outils utilisés Développement sous RadRails (environnement basé sur Eclipse) BDD: Mysql Serveur WEBrick (développement)
Développement La structure du projet Daruma Modèles Définir les objets (tag, card, user, etc.) Définir les relations Has_many Has_one Belongs_to
Développement Diagramme :
Développement La structure du projet Daruma Contrôleurs (1/2)  http://daruma-project.com/card/show/ 9 1. La première partie de l'URL identifie l'application 2. La suivant sélectionne le contrôleur 3. La dernière identifie l'action à invoquer (Optionnel) on peut rajouter des variables qui passeront directement dans l'url
Développement La structure du projet Daruma Contrôleurs (2/2) User_controller profile cards Card_controller cards Tag_controller Rss_controller
Développement Les effets et objets AJAX Les nuages de mots (tags) Les recherches Ajout/suppression de tag Edition à la volée
Développement Ajout/suppression de tags Serveur Réception des tags Mise à jour de la liste des tags Renvoie de la nouvelle liste
Développement Edition à la volée Mise a jour du champ dans la BDD Renvoi de la réponse Réception des données Serveur
Développement L'aspect social Utilisation du réseau social Flickr, Sharezone Chargement de la liste d’amis Possibilité de voir qui est mon ami directement à différent endroit de l'application. Indique que c'est un ami
Développement Les flux Rss Contenu sous la forme d'un flux de données normalisées et diffusé sur le  Web. Proposer des flux par fiche, par utilisateur, par tag, etc.
Développement Interconnexion avec les moteurs sociaux Principe Brique Web utilisateur Navigation sur  Le site Daruma Authentification  et profil Application Daruma
Développement Interconnexion avec les moteurs sociaux Flickr Présent depuis 2 ans sur Internet (mature) API fonctionnelle (documentée) Clé publique et clé secrète Exemple de méthodes utilisées : flickr.contacts.getList flickr.people.getInfo
Développement Interconnexion avec les moteurs sociaux Sharezone Tester les fonctionnalités Proposer des améliorations Identifiant de session (http) Exemple de méthodes utilisées : SNEGetProfile SNELogin
Développement Interconnexion avec les moteurs sociaux Intégration dans l’application Flickr flickr.people.getInfo Etc. Méthode : getProfile Service  : flickr Plus paramètres contrôleur Requête Transmission des  paramètres Sharezone SNEGetProfile Etc.
Développement Interconnexion avec les moteurs sociaux Synthèse Utilisation de Flickr facile et bien documenté. Utilisation de Sharezone mal documenté et plus contraignante. Les résultat obtenus sont les mêmes sur les deux API
Sommaire Présentation du contexte Le Web 2.0 AJAX et Ruby on Rails Le projet Daruma Développement d'un prototype Conclusion
Conclusion  Mon travail consistait à  analyser les technologies existantes  et à  développer un prototype  de service de gestion de souhaits utilisant le réseau social de l'utilisateur. Ruby on Rails  offre d'excellents avantage en terme de productivité, mais souffre de sa jeunesse. Le prototype est développé correctement  et montre la possibilité de s'interconnecter avec différentes API. Potentiel des APIs ouverte Sharezone doit être amélioré  pour être vraiment considéré comme une API ouverte.
Démonstration Daruma

Présentation de stage

  • 1.
    Réalisation d'un servicede partage de tâches et de souhaits, exploitant le réseau social de l'utilisateur Quentin MOURARET Tuteurs : Sébastien BERTRAND Yann MATHET
  • 2.
    Sommaire Présentation ducontexte Le Web 2.0 AJAX et Ruby on Rails Le projet Daruma Développement d'un prototype Conclusion
  • 3.
    Sommaire Présentation ducontexte Le Web 2.0 AJAX et Ruby on Rails Le projet Daruma Développement d'un prototype Conclusion
  • 4.
    Contexte France TélécomR&D Division Recherche & Développement de France Télécom 6 centres de R&D (les CRD) Direction des laboratoires internationaux Fonctions de support de pilotage URD SWING : Social Web Innovation New Generation Investigation sur les nouvelles technologies de communication et d'accès au contenus SNI : Social Networking Innovation Projet d'anticipation qui propose des services mettant en avant les réseaux sociaux
  • 5.
    Contexte Sharezone Réalisation d'un moteur de lien sociaux Gestion des relations entres utilisateurs Place du projet Nouveau service (Web 2.0) Utilisation de Sharezone
  • 6.
    Sommaire Présentation ducontexte Le Web 2.0 AJAX et Ruby on Rails Le projet Daruma Développement d'un prototype Conclusion
  • 7.
    Le Web 2.0Une transition importante du Web Un regroupement des concepts et technologies déjà en place 3 points Les réseaux sociaux Les technologies (HTML, XML, CSS, etc.) Les services
  • 8.
    Le Web 2.0Les réseaux sociaux Liens entres amis Partage de points communs Apparition de communautés Distribution de contenu Exemple : Myspace
  • 9.
    Le Web 2.0Les technologies HTML CSS 2.0 Javascript XML Le protocole HTTP REST (architecture de services Web )  Nouvelle ergonomie des sites Web
  • 10.
    Le Web 2.0Les services Intègre la notion de réseaux sociaux Partage et collaboration API ouverte Exemple : Flickr
  • 11.
    Sommaire Présentation ducontexte Le Web 2.0 AJAX et Ruby on Rails Le projet Daruma Développement d'un prototype Conclusion
  • 12.
    AJAX Asynchronous JavaScriptAnd XML Mise à jour d'une portion de page uniquement Web classique Modèle AJAX
  • 13.
    AJAX : exemplesde site Web http://www.flickr.com/ Modification à la volée (titre, description, tags des photos) http://maps.google.com/ Pré-chargement des portions de carte à afficher.
  • 14.
    Ruby on railsUn Framework pour les applications Web. Extrait de Basecamp (outil de gestion de projet), développé par David Heinemeier Hansson (Danois). La première version de Ruby on Rails date de 2004 et la première version stable juillet 2005 (Ruby 1995). Ecrit avec et grâce à Ruby.
  • 15.
    Ruby on railsRuby Langage de programmation interprété entièrement orienté objet. Crée par Yukihiro &quot;Matz&quot; Matsumoto (Japonais). Ruby n'est pas un acronyme, mais un jeu de mot sur Perl. Première version sortie en 1995. La syntaxe de Ruby est inspirée par Eiffel et Ada.
  • 16.
    Ruby on rails(Ruby) on rails : Un framework pour les applications Web. Les principes principaux sous-jacents au framework sont : &quot;Ne pas se répéter&quot; &quot;Convention plutôt que Configuration&quot;. Modèles de conception (design pattern) : Mappage Objet-Relationnel ( Object-Relational mapping , ORM). MVC (Modèle Vue contrôleur)
  • 17.
    Ruby on railsUtilisation du modèle MVC Modèle: Représente les données de l'application. Vue: Permet d'élaborer des modèles de pages. Contrôleur: Gère la logique de la navigation.
  • 18.
    Ruby on railsMappage objet-relationnel Faire étroitement correspondre les tables de la base de données avec les classes utilisées au sein de Ruby.
  • 19.
    Ruby on railsOutils 1/2 Scripts de génération de structure Structure du projet Contrôleur + vue Modèle Scaffold (modèle, contrôleur, vue)
  • 20.
    Exemple d'arborescence desfichiers d'une application Web permettant de gérer une bibliothèque. Partie généré par RoR lors de la création de l'application Fichiers crées au cours de l'évolution de l'application
  • 21.
    Ruby on railsOutils 2/2 Helpers : méthodes aidant à générer les vues <%= img_link (&quot;www.daruma-project.com&quot;, { :class => &quot;link&quot; }, &quot;/images/daruma.jpg&quot;, { :class => &quot;image&quot;} ) %> <a href=&quot;www.daruma-projet.com&quot; class=&quot;link&quot;> <img src=&quot;/images/daruma.jpg&quot; class=&quot;image&quot; /> </a> HTML Génération Ruby
  • 22.
    Ruby on railsServeur En développement : WEBrick En production : Apache ou Lighttpd avec FastCGI.
  • 23.
    Ruby on rails: exemple http://www.37signals.com Management de projet Gestion des taches http://www.43things.com Partager les 43 choses les plus importantes pour vous.
  • 24.
    AJAX et Rubyon Rails Conclusion Interface plus interactive (AJAX) Développement simple et rapide (RoR)  Outils adaptés aux besoins pour le développement de l’application Daruma
  • 25.
    Sommaire Présentation ducontexte Le Web 2.0 AJAX et Ruby on Rails Le projet Daruma Développement d'un prototype Conclusion
  • 26.
    Le projet DarumaDéfinition Sources d'inspirations Les objets Les cas d'utilisations Le schéma de la BDD
  • 27.
    Daruma : unservice de partage de taches, de souhait( Wish list ) exploitant le réseau social de l'utilisateur. Daruma : désigne dans la culture Japonaise une figurine à vœux. Utilisation des technologies émergentes : AJAX et Ruby on rails Le projet : définition
  • 28.
    Le projet :définition Quentin souhaite apprendre le Japonais
  • 29.
    Les sources d'inspirationshttp://36trucs.com/ http://www.millemercis.com/ http://www.backpackit.com/ http://www.tadalist.com/ http://www.flickr.com  Diffusion et Partage d'informations  Communauté virtuelle
  • 30.
    Les objets Lesutilisateurs Les fiches Les tags Les commentaires Les suivis et aides
  • 31.
    Les cas d'utilisations1/3 Visuel d'un blog Voir les fiches Effectuer des recherches Poster des fiches
  • 32.
    Les cas d'utilisations2/3 Actions possibles au sein d'une fiche: Ecrire des commentaires Suivre la fiche Proposer son aide Flux Rss Pour ses propres fiches Modifier le contenu ajouter/supprimer des tags ajouter/supprimer des commentaires
  • 33.
    Les cas d'utilisations3/3 Actions sur le compte d’une personne ou sur son compte: Voir les fiches Voir les amis Voir le profil Voir l’activité récente Voir les fiches suivies Voir les fiches aidées
  • 34.
    Sommaire Présentation ducontexte Le Web 2.0 AJAX et Ruby on Rails Le projet Daruma Développement d'un prototype Conclusion
  • 35.
    Développement Outils utilisésLa structure du projet Daruma Les effets et objets AJAX L'aspect social Les flux RSS Interconnexion avec les moteurs sociaux
  • 36.
    Développement Outils utilisésLa structure du projet Daruma Les effets et objets AJAX L'aspect social Les flux RSS Interconnexion avec les moteurs sociaux
  • 37.
    Développement Outils utilisésDéveloppement sous RadRails (environnement basé sur Eclipse) BDD: Mysql Serveur WEBrick (développement)
  • 38.
    Développement La structuredu projet Daruma Modèles Définir les objets (tag, card, user, etc.) Définir les relations Has_many Has_one Belongs_to
  • 39.
  • 40.
    Développement La structuredu projet Daruma Contrôleurs (1/2) http://daruma-project.com/card/show/ 9 1. La première partie de l'URL identifie l'application 2. La suivant sélectionne le contrôleur 3. La dernière identifie l'action à invoquer (Optionnel) on peut rajouter des variables qui passeront directement dans l'url
  • 41.
    Développement La structuredu projet Daruma Contrôleurs (2/2) User_controller profile cards Card_controller cards Tag_controller Rss_controller
  • 42.
    Développement Les effetset objets AJAX Les nuages de mots (tags) Les recherches Ajout/suppression de tag Edition à la volée
  • 43.
    Développement Ajout/suppression detags Serveur Réception des tags Mise à jour de la liste des tags Renvoie de la nouvelle liste
  • 44.
    Développement Edition àla volée Mise a jour du champ dans la BDD Renvoi de la réponse Réception des données Serveur
  • 45.
    Développement L'aspect socialUtilisation du réseau social Flickr, Sharezone Chargement de la liste d’amis Possibilité de voir qui est mon ami directement à différent endroit de l'application. Indique que c'est un ami
  • 46.
    Développement Les fluxRss Contenu sous la forme d'un flux de données normalisées et diffusé sur le Web. Proposer des flux par fiche, par utilisateur, par tag, etc.
  • 47.
    Développement Interconnexion avecles moteurs sociaux Principe Brique Web utilisateur Navigation sur Le site Daruma Authentification et profil Application Daruma
  • 48.
    Développement Interconnexion avecles moteurs sociaux Flickr Présent depuis 2 ans sur Internet (mature) API fonctionnelle (documentée) Clé publique et clé secrète Exemple de méthodes utilisées : flickr.contacts.getList flickr.people.getInfo
  • 49.
    Développement Interconnexion avecles moteurs sociaux Sharezone Tester les fonctionnalités Proposer des améliorations Identifiant de session (http) Exemple de méthodes utilisées : SNEGetProfile SNELogin
  • 50.
    Développement Interconnexion avecles moteurs sociaux Intégration dans l’application Flickr flickr.people.getInfo Etc. Méthode : getProfile Service : flickr Plus paramètres contrôleur Requête Transmission des paramètres Sharezone SNEGetProfile Etc.
  • 51.
    Développement Interconnexion avecles moteurs sociaux Synthèse Utilisation de Flickr facile et bien documenté. Utilisation de Sharezone mal documenté et plus contraignante. Les résultat obtenus sont les mêmes sur les deux API
  • 52.
    Sommaire Présentation ducontexte Le Web 2.0 AJAX et Ruby on Rails Le projet Daruma Développement d'un prototype Conclusion
  • 53.
    Conclusion Montravail consistait à analyser les technologies existantes et à développer un prototype de service de gestion de souhaits utilisant le réseau social de l'utilisateur. Ruby on Rails offre d'excellents avantage en terme de productivité, mais souffre de sa jeunesse. Le prototype est développé correctement et montre la possibilité de s'interconnecter avec différentes API. Potentiel des APIs ouverte Sharezone doit être amélioré pour être vraiment considéré comme une API ouverte.
  • 54.