Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
cours:plim:projet16_17:gr13:gr13 [2017/02/19 19:30] mchebaane [Rendu Final] |
cours:plim:projet16_17:gr13:gr13 [2017/02/20 00:01] (Version actuelle) mchebaane [Rendu Final] |
||
---|---|---|---|
Ligne 112: | Ligne 112: | ||
==== Rendu Final==== | ==== Rendu Final==== | ||
- | |||
__**Code Source**__ | __**Code Source**__ | ||
Voici notre code final du Wifi Locator. Vous trouvez le code dans le lien suivant: | Voici notre code final du Wifi Locator. Vous trouvez le code dans le lien suivant: | ||
+ | https://github.com/meriemchebaane/elimwifilocator | ||
__**Architecture Globale**__ | __**Architecture Globale**__ | ||
Ligne 127: | Ligne 126: | ||
{{ :cours:plim:projet16_17:gr13:aa.png?500 |}} | {{ :cours:plim:projet16_17:gr13:aa.png?500 |}} | ||
- | - Conception de notre base de données | + | == Conception de notre base de données == |
Notre proposition consiste à stocker la position de l’utilisateur ainsi que la valeur de débit des Wifis autour de lui. Dans ce contexte et devant les contraintes actuelles de notre application, notre base de données doit permettre à l’utilisateur d’accéder aux données dans un temps réel et d'une manière synchrone et asynchrone à la fois. | Notre proposition consiste à stocker la position de l’utilisateur ainsi que la valeur de débit des Wifis autour de lui. Dans ce contexte et devant les contraintes actuelles de notre application, notre base de données doit permettre à l’utilisateur d’accéder aux données dans un temps réel et d'une manière synchrone et asynchrone à la fois. | ||
- | Pour que nos données seront accessible facilement et sont synchronisées en temps réel sur tous les appareils connectés, nous avons utilisés Firebase. Ce service se charge d’héberger les informations de wifis sous forme dun objet JSON. | + | Pour que nos données soient accessibles facilement et synchronisées en temps réel sur tous les appareils connectés, nous avons utilisés Firebase. Ce service se charge d’héberger les informations de wifis sous forme dun objet JSON. |
+ | |||
+ | Nous avons utilisé aussi le système d’authentification offert par firebase. L’idée est qu’il propose un service prêt emploi qui ne va pas stocker les identifiants, mais assure le mécanisme de l’authetification elle-même. | ||
+ | |||
+ | Firebase permet aussi un cache pour anticiper sur des communications intermittentes et asynchrones. | ||
+ | |||
+ | == Coté Serveur == | ||
+ | |||
+ | |||
+ | Notre application envoie une requète POST sous forme d’une liste des points d’accès(la valeur de latitude,longitude et le level) des wifis sélectionnés au Servlet (notre serveur Cloud). Suite à cette demande, le serveur fait appel à notre algorithme K-means de 3 dimensions qui permet de grouper les données en K groupes selon la proximité des valeurs. Ce résultat sera trié selon le débit du centroid de chaque cluster obtenu afin d’avoir les meilleurs signaux à renvoyer au client. | ||
+ | |||
+ | == Coté Client == | ||
+ | * Installation obligatoire | ||
+ | |||
+ | Puisque notre serveur et notre base de données sont déployés sur le cloud il va vous falloir d’installer l’application sur votre smartphone Android. | ||
+ | |||
+ | Télécharger et installer l’APK suivant sur votre smartphone :https://github.com/meriemchebaane/elimapk | ||
+ | |||
+ | Pour le bon fonctionnement de l’application, n’oubliez pas d’activer la localisation. | ||
+ | |||
+ | {{ :cours:plim:projet16_17:gr13:localisation.png?200 |}} | ||
+ | * Utilisation de l’application mobile | ||
+ | |||
+ | Suite à l’authentification, une map sera affiché au dessus d’une liste des wifis autour du l’utilisateur. | ||
+ | |||
+ | {{:cours:plim:projet16_17:gr13:16833193_1854991001410115_246472487_o.png?200|}} {{:cours:plim:projet16_17:gr13:n.png?200|}} | ||
+ | {{:cours:plim:projet16_17:gr13:i.png?200|}} | ||
+ | |||
+ | Pour rajouter les nouvelles valeurs des wifis présentes, vous auriez besoin de cliquer sur le bouton plus. | ||
+ | |||
+ | Le deusième bouton sert a afficher la liste des regions. | ||
+ | |||
+ | {{:cours:plim:projet16_17:gr13:regions.png?200|}} | ||
+ | {{:cours:plim:projet16_17:gr13:pub.png?200|}} | ||
+ | |||
+ | L’amélioration effectuée tout au long de ce projet c’est qu’au lieu d’éffectuer un cluster sur un seul wifi dans une region bien précise, on envoie tout les wifis de la même region et on effectue le clustering pour rassurer le bon fonctionnement de K-means. En effet, dans la premiere version nous avons eu des clusters videos alors que lors du changement effectué nous avons réçu tout les clusters bien définis. Prenons le cas de 5 clusters ce que nous aurons en background comme ci-dessous: | ||
+ | |||
+ | {{ :cours:plim:projet16_17:gr13:0.png?700 |}} | ||
+ | {{:cours:plim:projet16_17:gr13:1.png?150|}} | ||
+ | {{:cours:plim:projet16_17:gr13:2.png?150|}} | ||
+ | {{:cours:plim:projet16_17:gr13:3.png?150|}} | ||
+ | {{:cours:plim:projet16_17:gr13:4.png?150|}} | ||
+ | {{:cours:plim:projet16_17:gr13:5.png?150|}} | ||
+ | |||
+ | Finalement, nous affichons les meilleurs signaux sur notre map: | ||
- | Nous avons utilisé aussi le systeme d’authentification offert par firebase. L’idée est qu’il prpose un service prêt emploi qui ne va pas stocker les identifiants, mais assure le mécanisme de l’authetification elle-même. | + | {{ :cours:plim:projet16_17:gr13:final.png?250 |}} |
- | - Coté Serveur | + | |
- | - Coté Client | + | |