====== Agora Move ====== ==== Présentation du projet ==== * Nom 1 : Persenda Edgar * Créneau (AM ou PM) : PM * Nom 2 : Mesnier Maylanie * Créneau (AM ou PM) : PM * Nom du Projet : Agora Move === Un scénario d'illustration du Projet === Bob veut savoir si il y aura du monde à la plage à 4h cette après midi, pour cela il utilise notre application et lui indique la position de la plage et l’heure. Notre application lui renverra un taux de fréquentation et un taux de mouvement relatif au lieu demandé. Le frère de Bob gère une grande infrastructure (ex: Centre commerciale) et voudrait consulter des cartes lui indiquant la fréquentation et le taux de mouvement à un instant donné dans son infrastructure afin d’améliorer la gestion de son infrastructure. Pour cela il donne à l’application la coordonnée gps de son infrastructure et le moment passé pour lequel il veut obtenir la carte et l’application lui retourne. Toute ces données sont calculées à partir des informations récupérées par le GPS et l’accéléromètre des personnes ayant installé l’application. ==== Matériel disponbile ==== * Référence du SmartPhone Motorola G3 * Caractéristiques techniques: [[https://www.motorola.fr/products/moto-g-gen-3|[[https://www.motorola.fr/products/moto-g-gen-3]] * Capteurs: Accéléromètre (2), capteur de luminosité ambiante, magnétomètre, proximité, processeur de gestion contextuelle * Localisation: GPS, AGPS, GLONASS * OS: Android 6.0.1 * Développement possible sur android studio ==== Ressouces utilisées dans le Projet ==== * Capteurs: * capteur gps * accéléromètre * Liste des SDK et API pour l'accès à ces informations * Environnement de logiciel : Android * Version OS : 6.0.1 * Accelerometre: [[https://developer.android.com/guide/topics/sensors/sensors_motion.html|[[https://developer.android.com/guide/topics/sensors/sensors_motion.html]] * GPS: [[https://developers.google.com/android/reference/com/google/android/gms/location/package-summary|[[https://developers.google.com/android/reference/com/google/android/gms/location/package-summary]] * Maps: [[https://developers.google.com/maps/documentation/android-api/?hl=fr |[[https://developers.google.com/maps/documentation/android-api/?hl=fr]] * Algorithme utilisé: * Clustering (K-means) * Apprentissage (SVM) (Prend en entrée les coordonnées GPS, la tranche horaire et la date et ressors le taux de mouvement et la fréquentation du lieu) * Activité reconnue et utilisée: * Position GPS * Taux de mouvement renvoyé par l’accéléromètre ====Conclusion sur la Faisabilité du Projet:==== * La récupération des données ne pose pas de problème. * L’affichage sur map se sert de l’API google maps * On utilisera une approche incrémentale pour ne pas se retrouver confronter en même temps aux différentes approche clustering/machine learning ==== Repository ==== * Tout le code est disponible sur git à l'adresse suivante: https://github.com/maylme/ELIM_Agora_Move * Le serveur a été développé avec nodeJS * La base de donnée est une base de donnée MongoDb * L'application téléphone est développé avec AndroidStudio * Un APK est disponible à la racine du git ==== Utilisation de l'application ==== * Lancer l'application * Déplacer la map jusqu'à la zone désirée * Entrer la période pendant laquelle vous voulez les données (Exemple: 2017-02-17 et 09-30) * Appuyer sur le bouton situé en bas à droite de l'écran pour afficher les différentes zones ==== Modificiation pour utiliser un serveur local au lieu du serveur distant ==== * Editer le fichier GetLocation.java à la ligne 60, remplacer l'adresse par l'adresse de votre serveur locale * Faire de même dans le fichier MapsActivity.java à la ligne ==== How-To install ==== * Installer l'apk sur android comme n'importe quel APK * Télécharger la base de donnée et le serveur * Installer mongoDb 3.2 minium * (https://www.mongodb.com/download-center#community) * Choisir linux, votre version linux, téléchargez et installez * Se mettre dans le dossier de la base de donnée * Taper "mongod --dbpath . " * Ouvrir un autre terminal * Installer "npm" (sudo apt-get install npm) * Se mettre dans le dossier du serveur * Taper npm install * Taper node server.js