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:gr1:gr1 [2017/01/28 11:31] gchapon [Sécurité et vie privée] |
cours:plim:projet16_17:gr1:gr1 [2017/02/17 15:00] (Version actuelle) gchapon [Code source] |
||
---|---|---|---|
Ligne 88: | Ligne 88: | ||
Pour réaliser la phase de test de notre application, nous utiliserons le jeu de données de nos téléphones personnelles. | Pour réaliser la phase de test de notre application, nous utiliserons le jeu de données de nos téléphones personnelles. | ||
- | ====== Questions de Sécurités et de vie privée ====== | + | ==========RENDU FINAL========== |
+ | ====Code source==== | ||
+ | Ci-dessous le lien pour accéder au code source de la partie backend (serveur Python) et la partie mobile (projet android studio) : | ||
+ | [[https://github.com/gatienchapon/SmartContactList]] | ||
+ | |||
+ | ====== Sécurité et vie privée ====== | ||
Pour assurer la confidentialité des données échangées entre l'application cliente et le serveur gérant l’algorithme d'apprentissage, nous avons choisi d'affecter un identifiant unique à chaque contact. | Pour assurer la confidentialité des données échangées entre l'application cliente et le serveur gérant l’algorithme d'apprentissage, nous avons choisi d'affecter un identifiant unique à chaque contact. | ||
Ligne 94: | Ligne 99: | ||
De ce fait, **le nom des contacts ou les numéros de téléphones de ceux-ci restent privés** et ne sont pas envoyés et bien sûr non stockés sur le serveur distant. Seuls les identifiants des contacts transitent entre l'application et le serveur, ce qui permet de rendre **les contacts non identifiables en dehors de l'application**. | De ce fait, **le nom des contacts ou les numéros de téléphones de ceux-ci restent privés** et ne sont pas envoyés et bien sûr non stockés sur le serveur distant. Seuls les identifiants des contacts transitent entre l'application et le serveur, ce qui permet de rendre **les contacts non identifiables en dehors de l'application**. | ||
- | ====== Machine "Serveur" ====== | + | Nous avons choisi de fournir à nos utilisateurs deux versions de l'application : |
+ | * Une version dite "Cloud": c'est à dire que le traitement et l'algorithme d'apprentissage est réalisé sur un serveur distant dans le "Cloud". De ce fait, l'utilisateur n'a pas a ce soucier de la partie serveur et il pourra réaliser de nouvelles synchronisations à n'importe quel endroit (en ayant une connexion internet active comme la 3G, la 4G ou le WIFI). | ||
+ | * Une version dite "Local": aucune information ne sera envoyée à un serveur distant et tous les traitements seront effectués directement sur l'ordinateur de l'utilisateur. Cela permet d'assurer la sécurité et la confidentialité des données échangées, puisque aucune donné ne transitera par le réseau "Internet" et tous les traitements s’effectueront en local. | ||
- | ===== Explication générale ===== | + | ====== Fonctionnement de la machine Serveur ====== |
- | + | ||
- | Le serveur fonctionne sur un machine distante privée stockée sur le cloud. C'est celui-ci qui se charge du traitement des données et de l'algorithme d'apprentissage. | + | |
Notre serveur reçoit en entrée plusieurs vecteurs (envoyé par l'application mobile et de type POST) correspondants aux appels d'un utilisateur (pour une question de "vie privée" les numéros de téléphone ainsi que le nom des contacts ne sont pas transférés, seuls les identifiants des contacts sont transférés) . | Notre serveur reçoit en entrée plusieurs vecteurs (envoyé par l'application mobile et de type POST) correspondants aux appels d'un utilisateur (pour une question de "vie privée" les numéros de téléphone ainsi que le nom des contacts ne sont pas transférés, seuls les identifiants des contacts sont transférés) . | ||
- | Après un processus de traitement réalisé par le serveur pour augmenter la taille des vecteurs, un appel à une bibliothèque python implémentant Random Forest est réalisé. | + | Après un processus de traitement réalisé par le serveur pour augmenter la taille des vecteurs, un appel à une bibliothèque implémentant Random Forest est réalisé. |
Le serveur renvoi par la suite ces prédictions concernant les identifiants des contacts que l'utilisateur souhaitera potentiellement appeler à un instant donné. | Le serveur renvoi par la suite ces prédictions concernant les identifiants des contacts que l'utilisateur souhaitera potentiellement appeler à un instant donné. | ||
- | ====== Application mobile SmartContactList sous Android ====== | ||
- | * Installation : télécharger l'APK suivant sur votre téléphone mobile : [[https://www.dropbox.com/s/oq8eg5zlalvt3yz/app-release.apk?dl=0|SmartContactListApp]] | + | ====== Produit 1 : Une Version "Local" ====== |
+ | |||
+ | Dans cette version, nous fournissons la machine serveur et l'application cliente Android. | ||
+ | **//Attention : dans cette version votre ordinateur et votre smartphone doivent être sur le même réseau local.//** | ||
+ | |||
+ | **1) Installation de la machine serveur sous Windows** | ||
+ | * Télécharger l’exécutable suivant sur votre ordinateur Windows : [[https://www.dropbox.com/s/ewx6tkkgh6rbj7q/Smart_Contact_List.exe?dl=0|SmartContactList_Server_For_Windows]] | ||
+ | |||
+ | **2) Installation de l'application mobile sur cible Android** | ||
+ | * Télécharger l'APK suivant directement sur votre mobile : [[https://www.dropbox.com/s/9guy316o7ml1l5i/LocalSmartContactList.apk?dl=0|SmartContactListApp_Local]] | ||
+ | * Allez dans l'application "Téléchargement" et cliquez sur le fichier .apk | ||
+ | * Sélectionnez "Installer" | ||
+ | {{:cours:plim:projet16_17:gr1:screenshot_2017-01-28-11-38-51.png?200|}} | ||
+ | {{:cours:plim:projet16_17:gr1:screenshot_2017-01-28-11-40-29.png?200|}} | ||
+ | {{:cours:plim:projet16_17:gr1:screenshot_2017-01-28-11-40-35.png?200|}} | ||
+ | |||
+ | **3) Utilisation et synchronisation avec votre machine local** | ||
+ | * Vérifiez que votre ordinateur et votre smartphone sont bien connectés au même réseau local (la connection WIFI de votre mobile doit être activée) | ||
+ | * Lancez l'exécutable préalablement téléchargé sur votre ordinateur Windows | ||
+ | * Lancez l'application mobile et choisir "Make a Sync" | ||
+ | {{:cours:plim:projet16_17:gr1:lancerexe.png?200|}} | ||
+ | {{:cours:plim:projet16_17:gr1:sychronisation.png?200|}} | ||
+ | |||
+ | {{:cours:plim:projet16_17:gr1:screenshot_2017-01-28-11-40-54.png?200|}} | ||
+ | {{:cours:plim:projet16_17:gr1:screenshot_2017-01-28-11-41-21.png?200|}} | ||
+ | |||
+ | |||
+ | |||
+ | ====== Produit 2 : Une Version "Cloud" ====== | ||
+ | |||
+ | Pour cette version, il suffit d'installer l'application mobile sur votre smartphone Android | ||
+ | |||
+ | **Installation de l'application mobile sur cible Android** | ||
+ | |||
+ | * Téléchargement : télécharger l'APK suivant sur votre téléphone mobile : [[https://www.dropbox.com/s/oq8eg5zlalvt3yz/CloudSmartContactList.apk?dl=0|SmartContactListApp_Cloud]] | ||
+ | * Choisir "Téléchargement direct" | ||
+ | * Allez dans l'application "Téléchargement" et cliquez sur le fichier .apk | ||
+ | * Sélectionnez "Installer" | ||
+ | * Ouvrir l'application | ||
+ | * Cliquez sur "Make a Sync", attention vous devez avoir un accès à internet 3G, 4G ou WIFI | ||
+ | {{:cours:plim:projet16_17:gr1:screenshot_2017-01-28-11-38-51.png?200|}} | ||
+ | {{:cours:plim:projet16_17:gr1:screenshot_2017-01-28-11-40-29.png?200|}} | ||
+ | {{:cours:plim:projet16_17:gr1:screenshot_2017-01-28-11-40-35.png?200|}} | ||
+ | {{:cours:plim:projet16_17:gr1:screenshot_2017-01-28-11-40-54.png?200|}} | ||
+ | {{:cours:plim:projet16_17:gr1:screenshot_2017-01-28-11-41-21.png?200|}} | ||
+ | ===== Utilisation de l'application mobile Android ===== | ||
+ | {{:cours:plim:projet16_17:gr1:screenshot_2017-01-28-10-51-03.png?200|}} | ||
+ | {{:cours:plim:projet16_17:gr1:screenshot_2017-01-28-10-51-29.png?200|}} | ||
+ | {{:cours:plim:projet16_17:gr1:screenshot_2017-01-28-10-52-40.png?200|}}{{:cours:plim:projet16_17:gr1:screenshot_2017-01-28-10-51-43.png?200|}} | ||
+ | {{:cours:plim:projet16_17:gr1:screenshot_2017-01-28-10-53-47.png?200|}} |