PYP (Path Your Partner)

RENDU FINAL

Le serveur est déployé sur le cloud grâce à Heroku, cependant l'utilisation gratuite est limitée car au bout de quelques heures, le serveur se met en standby, et donc il faut le relancer.

Il suffit de le copier sur votre téléphone, et de l'installer comme n'importe quelle application Android.

Si vous souhaitez installer le serveur NodeJS en local, c'est très simple:

Si vous voulez avoir accès à la base de données sur firebase pour la visualiser à titre d'information, envoyez un mail à ugo.elkoubi (at) gmail.com pour qu'on vous donne les droits.

HOWTO

Vous pouvez vous créer un compte sur l'appli, ou bien utiliser le compte suivant de test :

Présentation du projet (VOIR RENDU PAR MAIL POUR + DE DETAILS)

PYP , servira à localiser ses amis dans des zones couvertes par le réseau. Les cas d’utilisation sont nombreux : retrouver ses amis au cours de festivals, pendant une balade en ville, à un concert, pour une sortie où il n’y a pas de point de repère universel à proximité pour se donner rendez-vous, etc. Il s’agit de faciliter les rencontres entre des gens qui se sont donné rendez vous quelque part, mais que ce quelque part est suffisamment vaste pour que l’utilisateur nécessite une assistance.. Les capteurs utilisés seront principalement le gps et la boussole. Afin de proposer plus qu’une simple application GPS qui localise des amis connectés, l’application collectera aussi les données et les traitera afin de découvrir des points “chauds”, c’est à dire des points où les gens se donnent souvent rendez-vous, et qui sont donc garantis comme étant des “bons” points de rendez vous. L’application pourra donc proposer des points de rendez-vous afin de faciliter les retrouvailles entre amis.

Un scénario d'illustration du Projet

Jonathan, 25 ans, a prévu une journée plage à Mandelieu. Les plages de Mandelieu sont très larges, et hormis des immeubles d’habitation il n’y a rien à proximité pour se repérer. Jonathan ne connaît pas bien Mandelieu car il est là en vacances, et il cherche un moyen de pouvoir retrouver ses amis sur les 3 kilomètres de plage. Heureusement Mandelieu dispose d’une bonne couverture réseau, ainsi, les amis de Jonathan qui sont déjà à la plage vont pouvoir se signaler comme “point de rendez-vous” sur l’application. Le téléphone de Jonathan va donc pouvoir lui indiquer où se trouvent ses amis, grâce un affichage de type boussole qui va lui permettre de marcher dans la bonne direction. L’application lui indique par ailleurs un bien meilleur point de rendez-vous très fréquenté par les gens du coin avec un parking à proximité. La prochaine fois, Jonathan et ses amis se donneront rendez vous à cet endroit là.

Architecture et modalités techniques

Dans le cadre de ce projet, l’application sera développée pour Android, en langage Java, ce sera donc une application Android native. La cible mobile ne doit pas avoir de caractéristiques particulières, si ce n’est un capteur gps et un gyromètre pour trouver le nord. C’est pourquoi notre application sera compatible pour les versions Android supérieures à 4.0. Cela nous permettra de toucher la majorité des smartphones Android (98,4%). Nous développerons donc sur Windows en utilisant l’IDE Android Studio.

Faisabilité

Comme précisé précédemment, il s’agit de développer une application Android native utilisant un capteur GPS. Nous avons donc un très grand choix de cibles puisque normalement tous les smartphones même les moins modernes sont équipés de capteurs GPS et de gyromètre. Toutefois, il faut faire attention, ces derniers temps les constructeurs de smartphone ont tendance à enlever ce dernier capteur, pour réduire les coûts de fabrication, comme par exemple le dernier Samsung Galaxy A5. Google Maps est par ailleurs facilement intégrable à des applications Android donc cela est faisable aussi. Stocker les données à distance sur une machine et les envoyer aux applications en fonction de leur localisation (on ne va pas envoyer les points de rendez vous de toute la France à toutes les applications sans tenir compte de leur localisation) sera peut être plus difficile à mettre en oeuvre, mais dans l’absolu cela est faisable. Nous prévoyons un algorithme d’apprentissage machine assez simple basé sur la méthode K-Means, car cette méthode est adaptée au clustering d’informations, les clusters seront donc les points chauds pour notre project. De plus, cette méthode est facilement implémentable en Java. Cet algorithme permettre de déterminer des points d'agrégation donc cet objectif est aussi à notre portée. Il faudra déterminer ce que la fenêtre temporelle prévue par le cours permet de faire. Mais dans l’absolu tout est à notre portée.

Planning de développement et de test

Séance 6 - 11 : Développement de l’application

Séance 12 - 13 : Expérimentation et collecte de données à échelle réelle.

Séance 14 - 15 : Maintenance et correction de bugs

Séance 16 : Livraison finale