Mon billet de la semaine dernière n’était pas un hasard. À temps perdu, j’ai travaillé sur un projet qui me trottait en tête depuis que je suis client du service prépayé de Koodo. Ce projet consiste à utiliser CasperJS afin d’aller y extraire les données d’utilisation de mon forfait prépayé.
La principale motivation de ceci est de me permettre d’avoir accès à mes statistiques d’utilisation autrement que par le site web de Koodo. Ce point est plus une question de préférence qu’un irritant. Il faut savoir que Koodo offre une application iOS pour ses clients afin de consulter les informations de leur compte. Cependant, elle n’est pas accessible pour les clients du prépayé.
De plus, en archivant les données de mon côté, l’objectif sera de développer mes propres statistiques d’utilisations. C’est vraiment plus cette raison qui me motive dans ce projet.
Bienvenue à FrenchCoding.KoodoJS!
Avant tout, je dois dire que j’ai manqué d’inspiration pour ce nom de projet. C’est tout ce qui m’est venu en tête!
KoodoJS est fabriqué avec quatre composants bien distincts:
- Utilisation de CasperJS et PhantomJS pour aller récupérer les données d’utilisation de mon compte (koodo.js)
- NodeJS, afin de récupérer les fichiers JSON générés par le script CasperJS et les déposer dans la base de données. (koodoWatch.js)
- MongoDB, pour stocker les données.
- Powershell et les tâches automatisées Windows pour exécuter le script CasperJS à intervalles réguliers. (casper-koodo.ps1)
Le fonctionnement de tout cela est bien simple. La tâche automatisée exécute CasperJS à intervalles réguliers afin de produire un fichier JSON avec les données provenant du site de Koodo. Ensuite, une application NodeJS attend le fichier nouvellement créé et l’insère dans une base de données MongoDB.
C’est tout! Pour l’instant… :)
Plans pour l’avenir
Vous en conviendrez probablement avec moi. Après la lecture de mon code source, KoodoJS fait un peu brouillon. Il s’agit de la première étape de quelque chose qui a un peu de potentiel.
Dans les changements que je veux apporter à KoodoJS, il y a ceux-ci:
- Raffiner un peu le code en place
- Rendre un API accessible par le web. Actuellement, c’est bien, mais les données sont enregistrées sur mon ordinateur personnel. Pas pratique!
- Produire des statistiques sur l’historique de consommation. Par exemple:
- Analyse du rythme de consommation des données et des minutes.
- Graphiques des statistiques d’utilisation
- Prévision de coûts pour le forfait prépayé selon l’historique de consommation
Ressources supplémentaires
- http://stackoverflow.com/questions/14894311/casperjs-windows-installation-how-is-it-done-the-correct-way-please
- http://stackoverflow.com/questions/6568736/how-do-i-set-a-windows-scheduled-task-to-run-in-the-background
- http://blog.xebia.com/2014/02/11/phantomjs-data-mining-bash-data-analysis/
- https://github.com/mongodb/node-mongodb-native
- https://github.com/mikeal/watch