Академический Документы
Профессиональный Документы
Культура Документы
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.
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
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)
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
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
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
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
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.
19
- Lexcution dune application Ruby est globalement rapide. Plus que PHP tout du moins
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 :
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
23
Comme Phonegap implique la cration dune webapp, Dreamweaver CS5.5 sera utilis.
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
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
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
Contrleur
Fonctions
dchange
avec
MongoDB,
rponses
Modle
Fonctions
et
requtes
MongoDB
30
Membres proximits (Trouvs par la comparaison des coordonnes GPS des utilisateurs)
Profil
du
membre
Recherche
de
matchs
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
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
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