Menu

Tree [r117] /
 History

HTTPS access


File Date Author Commit
 branches 2018-12-10 carrarav [r103] Ajout du fichier readme
 tags 2018-11-22 carrarav [r21] Suppression des fichiers inutiles dans /tags
 trunk 2019-01-09 guillaumeblnchr [r117] oupsi une erreur c'était glissée par mégarde
 README.md 2019-01-05 guillaumeblnchr [r110] Correction messages d'erreur
 readme-dev.txt 2018-11-26 mathilde73 [r28] correction read me, Victor tu es notre héros à ...

Read Me

Outil d'analyse de l'API de Twitter Synevent

__Description : __
Application en ligne de commande permettant d’aider à exploitater des données de Twitter pour juger l’impact social d’un évènement pour Synevent

Installation et dépendances

  • Compatible Windows & MAC OS

  • Cloner le dossier du depôt avec la commande checkout

  • Se placer dans le dossier trunk et installer ces différentes dépendences :

    • npm install
    • npm install node
  • Installer également :

    • npm install colors
    • npm install vega
    • npm install vega-lite
    • npm install fast-csv
    • npm install csv
    • npm install readline-sync

Données fournies

Données sujet A (disponible sur moodle : https://elearning.utt.fr/course/view.php?id=769 )

Architecture de l'application

DOSSIERS

  • node_module - contient les dépendances node
  • test - contient tests unitaires

FICHIERS

  • caporalCli.js - décrit toutes les commandes exécutables
  • actions.js - liste des actions possible par le logiciel
  • csv-parser.js - Permet de parser un csv
  • donneChemins.js - retourne un tableau contenant les chemins des fichiers csv
  • main.js - contient les exigences de la spécification 1 : lance le menu principal en ligne de commande
  • spec2.js - contient les exigences de la spécification 2
  • spec3.js - contient les exigences de la spécification 3
  • spec4.js - contient les exigences de la spécification 4
  • spec5.js - contient les exigences de la spécification 5
  • spec6.js - contient les exigences de la spécification 6
  • spec7.js - contient les exigences de la spécification 7
  • spec8.js - contient les exigences de la spécification 8
  • spec9.js - contient les exigences de la spécification 9
  • spec10.js - contient les exigences de la spécification 10
  • tweetparser.js - Permet de parser un tweet
  • test/testRunner.js - runner des tests du parser de mail
  • test/unit/test.csv - fichier csv pour tester la spec 3
  • test/unit/testSpec3.js - tests unitaires du parser de la spec 3

Les graphiques seront générés en .txt et en .svg à la racine de l'application dans notre cas javaspies-gl02-code/trunk

Utilisation

  1. Le logiciel démarre à partir du fichier main.js node main.js
  2. Choisir le chemin des données de l'API de Twitter
  3. Choisir l'action à réaliser grâce au menu
  4. Pour quitter l'action en cours, utilisez la commande CTRL + C

Fonctionnalités

Liste des fonctions disponibles :

  1. Obtenir le nombre de tweets sur une période :

    • Choisir un jour au format JJ/MM/AAAA
    • Choisir une heure de début (un nombre entier)
    • Choisir une heure de fin (un nombre entier)
    • Afficher dans la console le résultat
      • Exemple : "Entre 5h et 18h le 19/03/2018 il y a eu 16 tweets"
  2. Obtenir le top 10 des tweets les plus tweetés

    • Affiche dans la console le résultat
    • Créé le fichier top10_tweet_rt.txt
  3. Retrouver les 10 auteurs avec le plus d'informations

    • Affiche dans la console le résultat
  4. Obtenir la liste des hashtags associés

    • Entrer le hashtag de référence
      • Exemple : eaw18
    • Créé le fichier liste_hashtags_associes.txt
  5. Calculer la proportion des tweets dans un pays

    • Créé le fichier graphique.svg
  6. Trier les tweets selon un critère

    • Liste tous les différents critères
    • Choisir le numéro du critère
      • Exemple : 2 (le critère choisi ici est le hashtag)
    • Affiche dans la console le résultat et créé un fichier txt en fonction du critère dans javaspies-gl02-code/trunk
      • Exemple : tweets_critere_hashtags.txt si on choisit 2
  7. Retrouver l'heure ayant le plus de tweets

    • Choisir le jour au format JJ/MM/AAAA
    • Affiche le résultat dans la console
      • Exemple : Si le jour choisi est 19/03/2018 le résultat sera :
        "Le(s) heure(s) avec le plus grand nombre de tweets sont: 11h, avec 6 tweets.
  8. Obtenir le top 10 des tweet les plus commentés

    • Affiche dans la console le résultat
    • Créé le fichier top_10_commentaires.txt
  9. Obtenir la liste complète des tweets

    • Choisir le hashtag à rechercher
      • Exemple : eaw18
    • Affiche le résultat dans la console et crée le fichier tweet_par_hashtag.txt

Messages d'erreur

  • Chemin invalide : Vérifier que le chemin corresponde au dossier de l'API de Twitter dans ce cas "/donneesSujetA"
  • Aucun fichier n'a été trouvé: Ce message apparait lorsqu'il n'y a pas de fichier csv dans le chemin. Le chemin fourni est donc incorrect. Pour faire face à ce problème, placez-vous à la racine du dossier contenant les données et entrez la commande pwd.
  • Il y a une erreur dans les horaires : Ce message apparaît quand les horaires de fin sont supérieures aux horaires du début
  • Le hashtag spécifié n'existe pas : Pour résoudre ce problème il y a plusieurs possibilités :
    • Il y a eu une faute d'orthographe dans le hashtag, dans ce cas vérifier comment il s'écrit
    • Ce hashtag n'existe pas dans le chemin spécifié.
    • Vérifier son existence dans les fichier csv
  • Aucun tweet n'a été envoyé le JJ/MM/AAAA : Pour résoudre ce problème il y a plusieurs possibilités :
    • Il n'y a vraiment aucune dates qui correspondent aux dates choisies
    • Vérifier la date entrée
  • Aucun tweet n'a été commenté : Le logiciel n'a pas trouvé de tweets commentés dans l'API
  • Aucun tweet ne possède ce hashtag : Pour résoudre ce problème, vérifier le chemin de l'API. Il se peut que le hashtag recherché se trouve dans un autre dossier

Développeurs : L'équipe PandaCompagny

  • Guillaume Blanchard
  • Mathieu Drache
  • Farah Hadjoudj
  • Elena Thieu

Contributeurs : L'équipe JavaSpies

  • Victor Carrara
  • Damien Chevigny
  • Adrien Clairet
  • Adrien Dumas
  • Mathilde Sandor