Ce guide est destiné aux développeurs qui par la suite vont reprendre le projet dans le but de l’améliorer ou de corriger des bugs. Il peut également servir à comprendre l’architecture du projet dans le but de rajouter différentes fonctionnalités. Tout au long de ce guide nous présenterons les différents fichiers qui constituent le projet et leur rôle dans celui-ci.
Tout d’abord avant d’aborder son architecture il est important de préciser l’environnement du projet. Ce projet est développé en utilisant le langage javascript et l’environnement fourni par Node JS, dont le but est de développer une interface en ligne de commande. Nous avons également utilisé un certain nombre de packages :
Un certain nombre de fichiers javascript sont présents au sein de notre projet, nous allons les détailler ci-dessous.
Ce fichier sert à représenter un Mail, il possède uniquement un constructeur de mail qui instancie un objet Mail avec une entête, un contenu, et l’objet du mail.
Ici ce fichier contient un objet nommé mailParser qui va nous permettre de traiter les différentes données d’un mail, c’est-à-dire la conformité des différents champs qui le constitue par rapport à ce qui est attendu. Nous allons détailler ci-dessous les fonctions les plus importantes de ce fichier :
Le constructeur : il sert à instancier un Parser, il possède plusieurs attributs dont les symboles attendus et un tableau de mails qui est pour le moment vide.
Parse : cette fonction sert à faire le lien entre le résultat de la fonction tokenize et la suite du programme qui va découper et analyser l’ensemble des mails qui sont sous forme de tableau.
Next : Lors de l’analyse des différents fichiers, leurs informations sont contenu dans un tableau, grâce à cette fonction on retourne le premier élément du tableau et cet élément est retiré.
Expect : Lors de l’analyse cette fonction sert à vérifier que le symbole ou les caractères qui suivent sont bien ceux attendus.
listMail : Cette fonction va prendre une liste de mail et va en appeler une autre qui va servir à construire une liste d’objet Mail.
mail : c’est la fonction qui sert à découper le tableau qui contient les informations du mail, elle va, pour cela appeler deux autres fonctions :
o entete : elle sert à découper et à vérifier le format des données concernant l’entête du mail.
o contenu : qui sert, cette fois ci les informations concernant le contenu du mail.
creationDiagrammeLocalisation : sert à créer un diagramme du nombre de mails échangés avec d’autres personnes, elle prend en paramètre un tableau contenant une liste de noms de boîte mail associées au nombre de mails qui ont été échangés. Pour générer ce diagramme, les données sont d’abord enregistrées dans un fichier csv intermédiaire qui sert par la suite à créer le diagramme.
Les fonctions les plus importantes du programme ont été définies, il en reste quelques autres mais elles servent uniquement à vérifier la conformité de certains champs des mails.
C’est ce fichier qui nous sert à développer nos commandes cli, mais avant nous avons deux fonctions qui vont nous servir à analyser un ensemble de fichiers et qui découpent leurs informations en objet Mail.
parseByCollab : qui sert à analyser uniquement les échanges de mails d’un seul collaborateur dont le nom est passé en paramètre.
parseAllCollab : qui sert à analyser tous les échanges d’un dossier quel que soit les collaborateurs.
Ensuite nous avons un certain de commandes cli qui ont été définies dans notre programme, nous allons les lister et les définir en dessous.
parseAll : cette commande va analyser tous les fichiers d’un répertoire, puis afficher les objets mail qui ont été créés
readme : cette commande va afficher le fichier passé en paramètre dans la console
searchList : va rechercher les mails qui ont été envoyés entre deux dates, pour cela le programme sélectionne tous les mails puis ceux qui ne répondent pas aux options définies. Il peut s’agir d’un expéditeur ou d’une date.
convertVcard : convertit un fichier vers le format Vcard
countMails : la commande analyse l’ensemble des fichiers contenus dans le répertoire précisé puis va compter ceux qui ont été envoyés entre les deux dates précisées. S’il n’y avait pas de dates précisées alors le programme compte tous les mails.
genererGraphiqueCollaborateur : celle-ci va, pour une boite mail indiquée, générer un graphique des échanges entre la boite mail donnée et toutes les autres boites mails avec qui la première a échangé.
recupListe : récupère tous les objets mails et garde uniquement ceux qui ont été envoyés le week-end, ou entre 22h et 8h du matin.
topInterloc : affiche le top 10 des interlocuteurs d’une boite mail donnée.
topTermes : affiche le top 10 des termes les plus utilisés dans les objets de message pour une boite mail donnée.
Ce fichier contient des indications sur les différentes commandes.
Ce fichier contient l’enregistrement d’une commande « recupListe »
C’est un fichier qui sert d’intermédiaire entre le programme et la génération du graphique.
C’est le fichier où est affiché le diagramme qui résulte de la commande « genererGraphiqueCollaborateur »
Un certain nombre de pistes d'évolution sont à prévoir, on peut notamment citer le fait que la fonction parse ne va marcher que pour deux type d'architecture de dossier, il faudrait que cela s'adapte à n'importe laquelle. Par la suite on peut également améliorer d'autres points, en effet pour une personne normale il n'est pas facile d'éxécuter des commandes sur une cli, il pourrait donc être intéressant de développer une interface graphique.