Vous êtes sur la page 1sur 40

EPITECH

Cahier des charges


Liny
seban_j, jaspar_y, ringue_t, rousse_g, thierr_o

EIP 2013

Ce document dresse le cahier des charges (CDC) du projet Liny. Il prsente Liny, plateforme de rencontres amoureuses via golocalisation. Le CDC dcrit les objectifs du produit. Rend une courte tude de la demande et de lexistant. Il dpeint le produit et prcise ses fonctionnalits. Le CDC aborde les moyens et technologies utiliss lors du droulement du projet.

Informations sur le projet


Groupe : Nom du projet : Type de document : Version : Rfrence : Statut du document :

seban_j, jaspar_y, ringue_t, rousse_g, thierr_o


Liny cahier des charges 1.4 Liny-CDC-1.4 Livre

Diffusion
Personne Frdric Rousseau Julien Seban Olivier Thierry Thomas Ringuedet Yoann Jaspar Email frederic.rousseau@epitech.eu julien.seban@epitech.eu olivier.thierry@epitech.eu thomas.ringuedet@epitech.eu yoann.jaspar@epitech.eu Rle Dveloppeur (Dv.) BlackBerry et Windows Phone 7 Dv. Android, charg market/communication Dv. iPhone et serveur Dv. Android, charg market/communication Dv. Site web et serveur

Historique des rvisions du document


Version 1.1 1.2 1.3 1.4 Date Nom 15/05/11 Frdric 04/07/11 Frdric 12/12/11 Frdric 20/02/12 Frdric Description Mise au propre du document Rcriture partielle du document pour rpondre aux attentes du labeip Changement de technologie serveur Ajout de dtails concernant les technologies utilises pour les applications mobiles + des logiciels utiliss pour le dveloppement

Sommaire
Introduction .......................................................................................................................................... 5 Contexte ............................................................................................................................................. 5 Lexistant ............................................................................................................................................ 5 Description de la demande ............................................................................................................. 6 Les objectifs ...................................................................................................................................... 6 Le rseau ....................................................................................................................................... 6 La recherche ................................................................................................................................ 7 Facilit et Disponibilit ........................................................................................................... 7 Le respect de la vie prive ..................................................................................................... 7 Les fonctions du produit .................................................................................................................. 8 Inscription/connexion ................................................................................................................. 8 Accueil ................................................................................................................................................. 9 Profile .................................................................................................................................................. 9 Donne personnelle .............................................................................................................. 10 Description de la personnalit ......................................................................................... 10 Description physique ............................................................................................................ 11 Recherche ....................................................................................................................................... 13 Contact ............................................................................................................................................. 14 Historique ....................................................................................................................................... 15 Paramtre ....................................................................................................................................... 17 Contraintes .......................................................................................................................................... 18 Droulement du projet .................................................................................................................. 18 Le serveur ....................................................................................................................................... 18 Les applications ........................................................................................................................... 23 Application iOS ........................................................................................................................ 23 Application Android .............................................................................................................. 23 Application Black Berry ....................................................................................................... 23 Application Windows Phone7 .......................................................................................... 24 Le site internet ............................................................................................................................. 24 Objectifs de fin de tek 4 ................................................................................................................. 25 Tests et Seuils d acceptance des objectifs tablis pour la fin de tek4 ............... 25 Glossaire .......................................................................................................................................... 26 Schmas ........................................................................................................................................... 28 Principe basique de Liny ..................................................................................................... 28

Fonctionnement de Liny ..................................................................................................... 29 Architecture simplifie du serveur ................................................................................. 30 Fonctionnement simplifi de lalgorithme de recherche. ..................................... 31 UML ................................................................................................................................................... 32 Serveur ........................................................................................................................................ 32 Base de donne ....................................................................................................................... 32 Applications .............................................................................................................................. 33 GANT ................................................................................................................................................. 34 Bibliographie ................................................................................................................................. 36 Logiciels utiliss ........................................................................................................................... 38 Dveloppement ....................................................................................................................... 38 Management, mise en commun ........................................................................................ 40

Introduction

Contexte

Liny est une plateforme de rencontre amoureuse base sur les rseaux sociaux et la recherche par golocalisation. Elle sera disponible via un site internet, ainsi que sur les principaux terminaux mobiles et tablettes sous forme d'application iOS, Android, Windows Phone 7 et BlackBerry.

Lexistant
Le leader de la rencontre par internet est Meetic. Compos de 17 millions dutilisateur, il ralise lui seul 53% du march des rencontres en France et 23% dans toute lEurope. Les services de Meetic sont payants, une application mobile a t annonce mais sans relle spcification. Yuback est la premire application de rencontre par golocalisation sur liPhone, Yuback totalise 1,7 millions dinscrits. Lapplication est un rseau social o tous les connects peuvent se retrouver. Le but de Liny est dassocier ces deux principes et de rpondre une demande dapplication de rencontre, base la fois sur un algorithme de correspondance entre les membres et leurs localisations frquentes. Tableau comparatif de Liny par rapport ses principaux concurrents : Recherche par affinit Recherche par golocalisation site web iPhone Android Windows Phone 7 BlackBerry Dmo sans inscription Inscription simple Interaction Facebook Interaction Twitter Meetic X X X X X X X X Yuback X X X X X X Liny

Description de la demande

Les objectifs

Lobjectif de Liny est de faciliter les rencontres amoureuses. Pour atteindre ce but, Liny repose sur un rseau social et la recherche par affections. Lapplication se devra dtre disponible, facile dutilisation et respecter la vie prive de ses utilisateurs.

Le rseau

Le rseau se formera par la rencontre des membres. Cette rencontre seffectue en fonction des prfrences des utilisateurs, mais surtout en fonction de la position go-localise des membres. Si deux utilisateurs ont rempli leurs profiles, lalgorithme peut rechercher les personnes proche de leur personnalit. Suite lalgorithme, une liste dutilisateur et leurs positions sont affiches. Cette liste contient le profil des personnes et leur taux de correspondance. Le profile est compos de la photo, information personnelle (nom, prnom), autre indication choisit par lutilisateur et le taux de confiance. Suite un rencontre les utilisateurs peuvent laisser des apprciations, qui dfinissent le taux de confiance.

La recherche

Liny sera un rseau social go-localis, bas sur un algorithme de recherche, intgrant : Proximit o Dans un rayon dfini par lutilisateur Profile et prfrence o Les prfrences et leurs profiles sont analyss par lapplication pour crer des relations entre utilisateur Confiance o Une note de confiance sera attribue chaque membre en fonction des apprciations quil aura reu.

Facilit et Disponibilit

Liny est accessible depuis internet mais surtout depuis les principaux OS de Smartphones disposant dun module de localisation (Android, iPhone, BlackBerry, Windows Phone 7). Liny est facile dutilisation par son interface visuelle utilisant les crans tactiles des terminaux; par la prsentation visuelle des rsultats de la recherche amoureuse sur une carte. Mais aussi par son systme de rendez-vous via itinraire GPS (aprs match et acceptation de la rencontre). Liny respecte la loi Franaise et les recommandations de la CNIL concernant notamment la conservation, lutilisation et la non divulgation des donnes utilisateurs. Les applications disposent dune page doptions permettant lutilisateur de mieux protger sa vie prive. (Mode hors ligne, paramtrage des dlais, distances et nombre de matchs)

Le respect de la vie prive

Les fonctions du produit


Inscription/connexion

Linscription se fait le plus simplement possible, trois possibilits : Se connecter avec Facebook o Utilisation de lapi Facebook, connexion en 1 clic Se connecter avec OpenID o Utilisation de lapi OpenID, connexion en 1 clic grce un compte google, yahoo, blogger, flickr, orange, myspace, wordpress, Crer un compte o grce ladresse email et un mot de passe

La seule inscription donne un accs trs limit aux fonctionnalits. Lutilisateur doit remplir suffisamment sont profile pour pouvoir accder au reste des fonctionnalits.

Accueil

La page daccueil est la premire page que lutilisateur voit aprs sa connexion. La page correspond un tableau de bord sur lequel lutilisateur peut accder toutes les fonctionnalits de lapplication en un clic.

Profile

La page de profile permet lutilisateur de se dfinir. Cette page se compose de trois parties : Donnes personnelles Description de la personnalit Description physique

Donne personnelle

Oblig. Inscription Oui Oui Oui Oui Oui Non Oblig. matching Oui Oui Oui Oui Oui Oui

Nom Nom Prnom Mail Mot de passe Age Sexe

Description Le nom de famille de l'utilisateur Le prnom de l'utilisateur L'adresse e-mail de l'utilisateur Le mot de passe de l'utilisateur L'ge de l'utilisateur Le sexe de l'utilisateur

Description de la personnalit

Nom Ce que vous recherchez (relation ?) Ce que vous aimez ? Description Une phrase courte rsumant l'utilisateur et ses attentes. Une phrase courte rsumant. Oblig. Inscription Non Oblig. matching Oui
si profil < 75%

Non

Oui
si profil < 75%

Etude

Le niveau d'tude de l'utilisateur.

Non

Oui
si profil < 75%

Type de travail

Le secteur d'activit /job de l'utilisateur. La frquence de consommation d'alcool de l'utilisateur. La frquence de consommation de tabac de l'utilisateur. La frquence de sortie de l'utilisateur.

Non

Oui
si profil < 75%

Frquence alcool

Non

Oui
si profil < 75%

Frquence tabac

Non

Oui
si profil < 75%

Frquence sortie

Non

Oui
si profil < 75%

10

Description physique

Nom Description Oblig. Inscription Non Oblig. matching Oui
si profil < 75%

Cheveux Le style de coiffure de l'utilisateur + (Couleur/Longueur/S couleur de cheveux. tyle) Yeux La couleur des yeux de l'utilisateur.

Non

Oui
si profil < 75%

Taille

La taille (physique) de l'utilisateur.

Non

Oui
si profil < 75%

Silhouette

La silhouette de l'utilisateur.

Non

Oui
si profil < 75%

Couleur de peau

La couleur de peau de l'utilisateur L'utilisateur peut spcifier si il/elle a des piercings. L'utilisateur peut spcifier si il/elle a des tatouages.

Non

Oui
si profil < 75%

Piercing

Non

Oui
si profil < 75%

Tatouage

Non

Oui
si profil < 75%

11

Aperu des crans de profil.

Aperu des crans de cration/modification du profile physique

12

Recherche

Sur cette page lutilisateur peut effectuer une recherche laide de la fonction de go localisation de son Smartphone. Il a la possibilit daffiner sa recherche en remplissant la liste de critres suivants : Couleurs des cheveux Couleurs des yeux Morphologie Couleur de peau Piercings Tatouages Fumeur Buveur Tranche dge Disponibilit

Une prospection des profils des utilisateurs alentours est alors effectue. Les membres, dont la grande majorit des caractristiques correspondent aux restrictions, sont alors affichs sous leurs pseudonymes. Le taux de confiances des utilisateurs est aussi affich. Il permet lutilisateur de partager un retour dexprience, sous forme de pourcentage. Le nombre dami en commun est aussi visible pour chaque rsultat ce qui augmentera les affinits entre les membres. Il est alors possible denvoyer une invitation au chat puis de partager sa position avec le membre. Celui-ci peut alors consulter le profil dtaill de lutilisateur cibl. Si linvitation est refuse le membre napparatra plus dans les rsultats des futures recherches. Il sera possible de dbloquer des contacts via la blacklist disponible dans lcran de paramtrages.

13

Contact

La liste des contacts permet l'utilisateur de garder en mmoire les personnes rencontres via l'application (aprs l'acceptation de la dite personne). Il est galement possible de synchroniser sa liste avec la liste d'amis de Facebook. Trois fonctionnalits seront implmentes : La blacklist : permet de bloquer un contact l'empchant ainsi de communiquer et de retrouver la personne via l'algorithme de recherche. La whitelist : permet d'ajouter la personne ses contacts. Signaler : permet de signaler toute personne ayant un profile suspect l'quipe de modration.

14

Historique

L'utilisateur aura disposition un historique lui permettant de garder une trace de son exprience dans Liny. L'historique sera une rfrence vers les matchs ou les crations de relations qui ont eu lieu. (Voir schma 1).

15

Chaque historique possdera une vue dtaille diffrente selon son type. Pour l'exemple des matchs, la vue dtaille mettra disposition de l'utilisateur la date, le lieu (adresse + carte) et l'tat final du match. L'tat tant reprsentatif du choix de l'utilisateur sur le match ainsi que le choix personne dite "matcher" (voir schma 2). L'utilisateur pourra bien sr choisir d'effacer les historiques de son choix. Le contenu sera entirement ditable.

16

Paramtre


Cet cran servira au paramtrage gnral de l'application. Golocalisation : activer ou dsactiver sa localisation G.P.S. pour les autres utilisateurs Notifications: activer ou dsactiver l'envoi de notifications par l'application. Champs cachs: dfinir les champs du profil personnel de l'utilisateur a cacher/afficher aux autres utilisateurs qui n'appartiennent pas la liste d'amis. Rseaux sociaux: permet de coupler l'application avec un compte Facebook ou Twitter.

17

Contraintes
Malgr un ambitieux projet, pendant le dveloppement de celui, nous prouverons plusieurs difficults : problme de distance, impossibilit de rencontre entre les dveloppeurs pendant 1 an un faible budget pour squiper et ralis des tests correctement une contrainte sur le temps : o Dans les dlais des deux ans pour le projet, chaque tudiant sera galement occup sur leurs projets, ou leurs travails en entreprise.

Droulement du projet
Liny sexcute sur des terminaux mobiles. Afin de ne pas surcharger les ressources du tlphone et dacclrer le dveloppement des IHM, toutes opration non visuelle est excute du cot serveur (Systme de web services). Le projet se droulera en trois temps : - - - Liny se dcoupe en deux parties : 1. Le serveur 2. Les applications sur les diffrent Smartphone 3. Un site internet dveloppement des communications client/serveur et cration du design de lapplication. Cration des IHM, finition de lalgorithme de recherche Tests grandeur nature, beta, marketing

Le serveur
Le serveur sera la partie la plus important du projet. Il consiste tablir la communication entre les applications. Il soccupe de toutes les fonctions du projet comme lalgorithme de recherche et son systme de

18

push/notification, les interactions entre membres, , la base de donnes et toutes les actions qui sy rapportent. Cest un serveur de web service REST dvelopp en Ruby et utilisant une base de donnes MongoDb, de type NoSql. Le serveur est dvelopp avec le Framework Ruby On Rails. La version de Ruby utilise est la version 1.9.3. Il sagit de la dernire version stable lheure actuelle. La version de Ruby On Rails est la 3.1. Cette version intgre la gestion du protocole de scurit SSL que nous utilisons. Le choix de Ruby On Rails se justifie par plusieurs faits : - - Ruby ncessite relativement peu de ligne de code Le Framework offre la possibilit de dvelopper le site web de liny tout en gnrant un service web REST retournant du JSON.

OO Class = Object Oriented Class

19

- Lexcution dune application Ruby est globalement rapide. Plus que PHP tout du moins

- Ruby consomme relativement peu de mmoire

Les versions des langages compars sont respectivement php 5.2.5, Perl 5.8.8, Python 2.5.1 et Ruby 1.8.6. Plus dinfos sur ces benchmarks sur xodian.net.

20

La version actuelle, 1.9.x de Ruby est plus de deux fois plus rapide que la version 1.8.x Exemple avec limplmentation dun algorithme mergesort devant classer un tableau, de 100 nombres, 300 fois :

Plus dinfos sur npzrk8rz.wordpress.com

Le serveur web faisant tourner lapplication Ruby On Rails en environnement de dveloppement est WEBrick. Il sagit du serveur fourni par le Framework pour le dveloppement. En environnement de production le serveur utilis est Apache avec le module Passenger. Passenger, en plus dtre performant et facile paramtrer, est activement maintenu, au contraire de dautres modules comme fastcgi ou mongrel.

La possibilit de chat est gre par la librairie XMPP4R qui implmente le protocole XMPP

21

La communication RoR MongoDB se fait via le driver MongoMapper. Il existe deux driver pour ruby : MongoID et MongoMapper. Ce dernier a t choisi pour plusieurs raisons : - - - Initialement le serveur de web services devait tre dvelopp en C++. Du un lger retard de dveloppement et aux remarques faites pendant notre soutenance de Bilan Architectural. Nous avons opt pour un framework permettant de dvelopper le site web en mme temps que le serveur web Le serveur sera amen tre frquemment modifie en fonction des diffrentes fonctionnalits et problmes rencontrs. Une personne sera donc ddie entirement au serveur tout au long du projet, deux autres personnes soccuperont aussi du dveloppement pour une dure dun an au minimum. Chaque personne sera polyvalente et aura en charge un aspect principal du serveur : communication (REST/JSON), base de donne, algorithme de recherche Les notifications seront gres par un batch indpendant. Elles ne seront envoyes quen cas dun taux de match important. Le taux sera dfini pendant la phase de tests. Il sagit du driver officiel. Dvelopp et support par les dveloppeur de MongoDB Il dispose dune plus large communaut Il intgre un systme de plugin, ce qui le rend plus extensible si nous avons un jour le besoin de crer notre propre plugin

22

Les applications
Le projet sera dploy sur quatre plateformes : iOS (iPhone) Android Windows phone Blackberry

Chaque application sera une interface graphique, qui partagera ses donnes via le serveur. Une personne sera assigne sur chaque plateforme durant toute la dure du projet, en prenant en compte une phase dapprentissage importante des nouvelles technologies.

Application iOS
Lapplication iOS est dveloppe en Native avec liPhone Developper SDK et XCode fournis par Apple.

Application Android
Lapplication Android est dveloppe en Native avec le SDK android

Application Black Berry


Lapplication Black Berry est dveloppe avec PhoneGap 1.4 de Adobe Nitobi. PhoneGap est un framework permettant la cration dapplications native pour tlphone mobile en utilisant les technologies web telles que HTML5 et les standards W3C. PhoneGap est open source et est support par la fondation apache sous le nom dApache Cordova. Ce framework support nativement par le SDK BlackBerry permet de gnrer des applications aussi bien pour tlphone que pour tablette. Des technologies comme le css media query et le framework javascript et open source Jquery seront utilises afin respectivement dadapter lapplication au format tablette/smartphone, et de rendre lapplication fluide et interactive facilement.

23

Comme Phonegap implique la cration dune webapp, Dreamweaver CS5.5 sera utilis.

Application Windows Phone7


Lapplication Windows Phone 7 est, tout comme lapplication BlackBerry, dveloppe avec PhoneGap. Ceci a des fins dacclration de dveloppement.

Le site internet
Le site internet sera une plateforme ressemblant lapplication, intgrant les mmes fonctionnalits. Il servira galement comme prsentation du projet, et servira inciter les utilisateurs tlcharger lapplication. Le site sera dvelopp avec les nouvelles technologies du web telle que lHTML5, CSS3 et JavaScript. Voir la partie 1) serveur pour plus dinfos.

24

Objectifs de fin de tek 4


Notre objectif sera davoir une application basique fonctionnelle sur chaque plateforme. Cest dire enregistrement/modification de compte, profiles et filtres de recherche.

Tests et Seuils d acceptance des objectifs tablis pour la fin de tek4


Lutilisateur est capable de tester lapplication sans enregistrement. Lutilisateur peut senregistrer. Lutilisateur peut crer un profil. Lutilisateur peut sauvegarder des filtres de recherche. Lenregistrement devra pouvoir tre fait par openID, Facebook ou seul. La cration de profil doit tre visuelle et intuitive.

25

Annexe
Smartphone : Tlphone nouvelle gnration intgrant internet et GPS (iPhone, Android, ) OS : Systme dexploitation (Operating System). Dans ce document Interface logicielle dun Smartphone. iOS : Systme dexploitation de liPhone dApple Android : Systme dexploitation, par Google, quipant de nombreux smartphones BlackBerry OS : Systme dexploitation des BlackBerry Windows Phone : Systme dexploitation, par Microsoft, quipant de nombreux terminaux mobiles. Web Services : Mode de communication client serveur. (Bibliothques de fonctions distantes permettant de synchroniser les applications mobiles entre elles) NoSQL :

Glossaire

26

Type de base de donnes non relationnelle MongoDB : Base de donnes NoSql utilis par de grandes entreprises Blacklist : Liste noire de contacts Oblig. : Obligatoire Facebook : www.facebook.com, site de rfrence en rseaux sociaux. Golocalisation : Localisation G.P.S. du Smartphone IHM : Interface Home-Machine REST : Representational State Transfer. Il sagit dune architecture de web services bas sur lenvoie de requtes http post / get et le renvoie de leur rsultat, dans notre cas sous forme de donnes JSON. ROR : Ruby On Rails Webapp: Application web

27

Schmas

Principe basique de Liny

28

Fonctionnement de Liny
iPhone Android BlackBerry Windows phone 7 Lgende :

Serveur
Donnes utilisateurs profils, critres, fonctions de recherche

Site Web

Serveur de web services, conserve les comptes utilisateurs, fait le lien entre toutes les IHM Interface utilisateur disponible via application mobile ou site web Donnes changes avec le serveur Format de donnes du serveur une application : JSON Dune application au serveur : POST/GET

29

Architecture simplifie du serveur


Vue
Rponses au format JSON, interprtable par lappli mobile

Contrleur
Fonctions dchange avec MongoDB, rponses

Modle
Fonctions et requtes MongoDB

30

Fonctionnement simplifi de lalgorithme de recherche.

Membres proximits (Trouvs par la comparaison des coordonnes GPS des utilisateurs)

Critres de recherches (sexe, ge, )


Recherche de matchs

Profils des membres proximits

Profil du membre
Recherche de matchs

Critres de recherche des membres proximit

Liste de membres classs par poids de match, profiles, taux de confiance.


Si un amour potentiel frquente souvent le lieu o la recherche est lance, son taux de match peut tre augment.

31

UML

Serveur

Base de donne

32

Applications

33

GANT
Feuille :

34

Feuille 2/2 :

35

MSDN (Microsoft Developement Netwok): http://msdn.microsoft.com/en-us/library/ff402535%28v=vs.92%29.aspx Apple iOS Dev Center: http://developer.apple.com/devcenter/ios/index.action BlackBerry Developer Zone: http://us.blackberry.com/developers/ Android Developers: http://developer.android.com/ Ruby On Rails documentation: http://rubyonrails.org/documentation MongoDB Docs: http://www.mongodb.org/display/DOCS/Home MongoDB Ruby API: http://api.mongodb.org/ruby/current/ RESTful Web Services (de Leonard Richardson et Sam Ruby): http://oreilly.com/catalog/9780596529260

Bibliographie

36

Rdoc : http://rdoc.sourceforge.net/ PhoneGap: http://wiki.phonegap.com/

37

Logiciels utiliss

Dveloppement

Adobe Illustrator Utilis pour la cration de la charte graphique. Ce logiciel permet la cration dimages vectrices. Cest dire redimensionnables sans perdre la qualit de limage

Eclipse Eclipse est un lIDE java officiellement support par Android. Il est le seul IDE intgrer une interface de cration graphique en glisser-dpos.

XCode Cest le logiciel utilis pour le dveloppement iOS mais aussi pour la gnration dapplications phonegap.

PhoneGap

Gnrateur dapplications natives pour Smartphone. Il est utilis pour gnrer les applications BlackBerry et WP7

38

Adobe Dreamweaver

IDE de dveloppement de site web. Il gre lauto compltion et la prvisualisation de site web

Textmate

IDE pour Mac, gre lauto compltion pour un nombre important de langages.

Ripple Il sagit du SDK BlackBerry. Il fourni un visualiseur dapplications la manire dune machine virtuelle BlackBerry OS

39

Management, mise en commun


Git

Il sagit dun gestionnaire de version. Nous utilisons les serveurs de https://bitbucket.org/ qui prsentent lavantage dtre gratuit et de nous pargner une installation laborieuse dun serveur git. Un dpt a t cr pour le serveur et un dpt pour chaque plateforme mobile de diffrente technologie.

Subversion

Utilis pour les rendu du labeip. Il sagit galement dun gestionnaire de version

Mediawiki

Utilis pour rassembler la documentation dune manire lisible et facilement accessible. Mediawiki est un cms de wiki (site de documentation) la wikipedia.

40