Nom d'équipe: Team4Software
Auteurs: Manon Caroy, Augustin Borne, Jacques Mironneau
Licences: MIT
L'application est découpée en trois fichiers différents :
tea.js, Tweet.js et TweetParser.js.
- Gère les entrées utilisateurs en ligne de commande - Appelle la fonction de parse pour générer la liste de tweets à partir du/des fichier(s) - Effectue le traitement des tweets en fonction de la commande - Génère le rendu (graphique ou texte) des commandes
- Décrit les objets tweets - Fait des comparaisons de base (axiomes des spécifications algébriques)
- Récupère les données depuis un fichier - Stocke chaque tweet dans un tableau d'objets Tweets (Tweet.js)
Nous allons ajouter un commande affichant "hello world".
Ajouter un .command
avec le nom de la commande et la description de celle-ci
On peut aussi ajouter un alias avec .alias
On peut ajouter les arguments avec les commandes .argument
et .option
Exemple :
.command('helloWorld','Afficher hello world en console') .alias('hw') .argument('<nom>',"Nom de l'utilisateur qui utilise la commande") .option('-l, --langue <langue>', "option qui permet d'afficher la langue de l'utilisateur")
Pour ajouter un comportement ou une action à la commande créée, il suffit de chaîner la fonction .action()
.
Dans cette fonction on peut spécifier quels attributs on veut utiliser puis ajouter une fonction de callback afin d'ajouter un comportement concret.
Exemple :
.command('helloWorld', 'Afficher hello world en console') // Arguments, options... ... .action(({args, options, logger}) => { logger.info(args); logger.info(options); logger.info('Bonjour Monde et bonjour à toi ' + args.nom); if (options.langue) { logger.info('Ah mais vous parlez ' + options.langue + ' !'); } // Ajouter le code ici }
La plus grande partie du programme est dans le fichier tea.js. Séparer le fichier en plusieurs modules permettra de rendre le code plus facilement maintenable. Pour cela, le logiciel pourra par exemple contenir un module pour afficher les graphiques, un module d'ouverture et gestion de fichier, un module de gestion de collection de tweet.
Il n'y a aucun test unitaire pour sécuriser le logiciel. Pour cela il faudrait ajouter des tests unitaires pour augmenter la qualité du logiciel en le sécurisant d'éventuels bugs apparaissant lors de l'évolution et maintenance
Dans les critères, il n'est actuellement pas possible de faire une recherche sur deux hashtags ou deux noms d'auteurs.
Il faudrait ajouter la possibilité de prendre en compte plusieurs auteurs et plusieurs hashtags lors de l'utilisation de la commande "criteres". Cela permettrait de combiner des filtres pour affiner la recherche.
Le tri se fait actuellement sur la base des spécifications détaillées sans prendre en compte les spécifications algébriques. Pour respecter les spécifications algébriques, il faut introduire une pondération en fonction des informations présentes dans la description des auteurs. Cela permettrait d'afficher les auteurs qui n'ont pas rempli tous les champs.
On ne peut actuellment pas trier par pays ou par régions, à part pour les USA. Il faudrait introduire un fonction pour générer des camemberts avec la proportion de tweets par pays/régions comme spécifié dans le cahier des charges.
Pour améliorer le système et ajouter de nouvelles fonctionnalités, il serait possible de :
- créer une interface graphique pour utiliser les commandes depuis un navigateur ou une application de bureau
- analyser le contenu des tweets (enlever les tweets haineux, rechercher un type de contenu...)
- trier les tweets pour n'avoir que les auteurs certifiés
- classer les tweets par nombre de like
- récupérer les documents et média contenus dans les tweets (vidéos, musique, images, pdf...)