Projet Groupe 18

Présentation du projet

Présentation

ActivityWatcher consiste à récupérer la durée d’utilisation de chaque application sur le téléphone et de produire un rapport hebdomadaire sous forme de barres de progressions les une au dessous des autres.

Chaque barre représentant un jour sera clicable et développera toutes les informations concernant le jour, pour voir quelles applications ont été utilisées et dans quelles proportions.

L'application proposera des rapports intelligents détaillant les zones géographiques et les heures auxquelles l'utilisation a été la plus intensive, ainsi qu'une liste exhaustive des applications utilisées classées par durée, sous forme de listes ou de graphes.

L’avantage et que nous pourrons nous occuper des statistiques indépendamment les une des autres et ce de manière incrémentale tout au long du projet.

Le but de cette application est la prise de conscience de l’utilisation de son téléphone à l’utilisateur pour l’aider à « décrocher ».

Coté esthétique ce sera très épuré et flat, les barres représentant les jours auront aussi un code couleur de vert à rouge, représentant quelles jours on été critiques.

Il peut être également intéressant de faire varier les seuils du code couleur afin de mettre en place une sorte de challenge pour l'utilisateur en comparant le résultat de chaque jour avec celui de le ou des semaines précédentes.

Sénario

Nous sommes lundi et j'ai à ma disposition le compte rendu intégral de la semaine précédente. Je peux constater que la journée du mardi à été forte en utilisation. Si je développe cette journée : l'essentiel de l'utilisation s'est faite dans la zone de Polytech entre 8h et 17h45 ! Soit en cours, et les applications les plus utilisées sont “SMS (30min)” et “Clash of Clan (1h30)” ⇒ Conclusion personnelle : au lieu de jouer je ferais mieux de suivre le cours !

Matériel disponbile

HTC one m8

ASUS ZenPhone

Environnement de développement

Ressouces utilisées

Faisabilité

A l'heure actuelle, l'intégralité des smartphones est équipée de puces GPS plus ou moins performantes. Le SDK android est probablement l'environnement le plus documenté et l'algorithme K-Means dispose de nombreuses implémentations qui ont fait leurs preuves.

Nous avons fait nos choix en matière de technologies afin d'optimiser nos chances de réussite dans l'objectif que nous nous sommes fixé.

Nos recherches dans ce qui existe dèjà dans ce domaine nous ont conforté dans l'idée que notre projet est non seulement faisable, mais aussi innovant.

Algorithme

Le travaille à effectuer sur les données récupérées relève de la classification. Nous devrons pouvoir détecter d'une part quelles sont les zones dans lesquelles le téléphone est le plus solicité. Nous devons détecter quels sont les crénaux horaires les plus critiques et quels sont les applications les plus utilisées.

Pour cela nous avons choisi l'algorithme K-Means, pour des raisons de facilité à mettre en oeuvre, de documentation et d'efficacité.

RENDU FINAL

Téléchargement

Vous trouvez içi une archive RAR contenant les sources ainsi que les exécutables.

Application

Le code source de l'application se trouve dans le répertoire ActivityWatcher. C'est une application Android, donc le projet doit être importé dans Android Studio.

Dans l'archive vous trouverez également le .apk de l'application installable directement grâce à la commande : adb install -l activitywatcher.apk

Note sur l'application : Celle-ci peut fonctionner hors connexion grâce à la base de donnée locale du téléphone qui fait tampon. Après expérimentation, il suffit replacer le smartphone et le serveur sur le même réseau local en veillant à ce que la configuration soit correcte, puis, de sélectionner le jour de l'expérimentation dans la liste pour que l'application lance une synchronisation avec le serveur.

Serveur

Le backend de notre application qui reçois, traite, et renvoie les données a été réalisé en JEE grâce au framework spring-boot. Le code source du serveur est disponible dans le répertoire ActivityWatcherBackend. L'effort a été fait de changer de type de base de données, pour permettre une exécution simplifier. La base de données mySQL est donc remplacée par un homologue embarqué : H2.

Il s'agit d'un projet Gradle, importable très simplement dans IntelliJ en tant que projet Gradle. Il faudra effectuer une synchronisation dans le volet Gradle, pour qu'il se charge de télécharger les dépendances.

Vous trouverez le .jar du server, directement exécutable grâce à la ligne suivante :

java -jar activitywatcher-backend-1.0.0.jar

HOW TO

Voici comment installer notre application :

Déployer le backend

Déployer l'application