Avant de tout commencer, vous devez installer les packages suivants:
+ caporal
+ colors
+ vega
+ vega-lite
+ vcards-js
+ recursive-readdir
Le code principal est app.js
Il est accompagné de Email.js et de parserData.js.
Leur explication est détaillé ci-dessous:
Email: Représente l'objet utilisé dans le code principal (un email).
Il définit un email selon plusieurs critères: ( IDduMessage, Date, Auteur, Destinateur, Sujet, Copie, MimeVersion, ContentType, ContentTransferEncoding, Bcc, xFrom, xTo, xCC, xBCC, xFolde, xOrigin, xFileName, content, rawData).
On appelera un ou plusieurs critère de cet objet dans le code principal et dans le parser.
parserData: Parser des données.
Ce code est utilisé afin de lire les fichiers textes et d'en sortir les information nécessaires au code principale. De plus, ce parser permets de créer les différents objets emails ce qui permettera de les utiliser dans le code principal.
app.js; Code principal.
Ce code peut être expliqué en le séparant en différents morceaux. Ce code utilise caporal afin de créer un menu ainsi que des options. Pour plus d'indications sur caporal, vliquer sur ce lien : https://www.npmjs.com/package/caporal.
Créations de variables: on crée des variables, soit en utilisant un des modules téléchargés soit en explicitant la variable.
Fonction get_final_liste: Fonction permettant de trouver la liste des interlocuteurs d'une des boites mails.
Fonction buildHTML: Fonction permettant de créer un document HTML en utilisant les normes standard de HTML et acceptant en variables le titre du texte ainsi que son contenu.
Ensuite viennent les commandes créées en utilisant caporal. Au dessus de chaque commande, il y a son nom en commentaire pour pouvoir facilement la retrouver. Les SPEC 2 à 8 ont toutes l'option -e permettant l'exportation en html.
Spec1: Cette commande permets de lister les boites mails disponibles dans les données.
Appel de la fonction: listecollaborateurs
Arguments de la fonction: /
Fonctionnement: Prend les noms des boites mails et les affiches
Spec2: Commande permettant de rechercher, consulter ou extraire des mails selon certains critères (email, nom, prénom, date, terme contenu dans le corpus du mail). Elle prend en argument une boite mail donnée par l'utilisateur et fait une recherche en fonction de l'option écrite par l'utilisateur.
Appel de la fonction: filtrerpar
Arguments de la fonction: boitemail
Options: -m : email souhaité
-n : nom et prénom souhaité
-d : période souhaitée (au format JJ-MM-AAAA)
-t : terme souhaité
-c : afficher la liste des ID de mails et non les mails en entier
* Fonctionnement*: Parse les fichiers --> Recherche les mails --> Affiche les mails
Spec3: Commande permettant de trouver le nombre d'emails échanger dans par une boite mail pendant une période souhaité.
Appel de la fonction: nbrmailechange
* Arguments de la fonction: boitemail
* Options: -d : période souhaitée (au format JJ-MM-AAAA)
Fonctionnement: Parse les fichiers --> Filtre les fichiers pour la période --> Affiche le nombre d'emails
Spec4: Commande permettant d'afficher la liste d'emails envoyé par une boite mail pendant les "buzzyday", c'est-à-dire la liste de tous les mails envoyés entre 22h et 8h du matin pendant la semaine ou les mails envoyés pendant le week-end.
Appel de la fonction: buzzyday
Arguments de la fonction: boitemail
Fonctionnement: Parse les fichiers --> Filtres les fichiers en fonction de l'heure et du jour en prenant uniquement ceux que l'on veut --> Evite les duplications --> Tri par ordre croissant --> Affiche la liste
Spec5: Commande affichant la liste du top 10 des interlocuteurs d'une boite mail choisie par l'utilisateur.
Appel de la fonction: topinterlocuteur
Arguments de la fonction: boitemail
Fonctionnement: Parse les fichiers --> Trouve le nombre de fois que des emails ont été échangés pour chaques interlocuteur --> Compare les interlocuteurs --> Affiche les interlocuteurs
Spec6: Commande affichant la liste du top 10 des termes les plus utilisés dans les mails d'une boite mail choisie par l'utilisateur.
Appel de la fonction: toptermes
Arguments de la fonction: boitemail
Fonctionnement: Parse les fichiers --> Récupère tous les mots dans un tableau --> Trouve leurs nombres de répétitions --> les classe en fonctions du nombre de répétitions --> Retire les mots trop courants --> Affiche le top
Spec7: Commande permettant d'obtenir une visualisation le nombre d'échange d'une boite mail choisie par l'utilisateur avec les interlocuteurs en format png ou svg (selon ce qu'a choisi l'utilisateur)
Appel de la fonction: graphique
Arguments de la fonction: boitemail
format du graphique (png ou svg)
Fonctionnement: Parse les fichiers --> Fait la liste des interlocuteurs --> Compte le nombre d'interaction entre boite mail et interlocuteurs --> Crée un graphe --> L'export selon le format choisi
Spec8: Commande permettant d'exporter tout les contacts d'une boite mail en format Vcard dans un dossier (pour plus de documentation sur le format Vcard, cliquer sur le lien: https://tools.ietf.org/html/rfc6350).
* Appel de la fonction: exportcontact
* Arguments de la fonction: boitemail
Fonctionnement: Parse les fichiers --> Crée une liste des interlocuteurs --> Crée un Vcard pour chaque membre de cette liste.