Menu

Guide Développeur

Jayson Galante Valentin Guilloux

Click here for home menu: [Home]

Guide Développeur

Ce guide a pour but de presenter la structure de l'application en vue de la maintenance future pour les développeurs.


Structure externe De l'application

Le dossier racine de l'application est composé de plusieurs éléments :

Licence.md : Fichier texte détaillant la licence d'utilisation de l'application, en l'occurence ici la licence MIT.

README.txt : Fichier texte détaillant des instruction simples concernant l'instalation et l'utilisation du programme.

log.txt : Fichier texte généré automatiquement lors de l'utilisation de l'application : un journal des differentes opérations y est tenu.

test : dossier contenant un ensemble de fichier Vcard (.vcf) et BaseProspect (.bp) utilisées pour tester l'application.

BaseProspect : dossier contenant les fichiers de contacts BaseProspect (.bp). Un fichier .bp engloble un domaine d'activité comunun au contacts et posséde la structure suivante (ABNF). L'importation d'un fichier VCard résultera une écriture dans le fichier .bp corespondant au domaine spécifié.

FichierBP = 1*FormatBP 
FormatBP    =    Domaine CRLF Nom CRLF Prénom CRLF Entreprise CRLF Fonction CRLF Email 
CRLF Téléphone1 CRLF Remarque 
Domaine        =    '###' WSP 'Domaine : ' TEXT 
Nom         =     ‘Nom : ’ TEXT 
Prénom         =    ‘Prénom : ’ TEXT 
Entreprise     =    ‘Entreprise : ’ TEXT 
Fonction    =    ‘Fonction : ’ TEXT 
Email         =     ‘Email : ’ PLAINTEXT ‘@’ PLAINTEXT ‘.’ PLAINTEXT 
Téléphone    =     ‘Téléphone : ’ 1*(DIGIT)  
Remarque    =    DATE WSP ‘-’ WSP TEXT 
TEXT         =    1*(WSP / VCHAR) 
PLAINTEXT     =    1*(VCHAR) 
DATE        =    2DIGIT ‘/’ 2DIGIT ‘/’ 2DIGITF 

il y a 22 domaine prédefinits diponibles pour l'utilisation de l'outil lesquels sont :

1     Nettoyage de locaux,
2     Portiques de sécurité,
3     Sécurité électronique,
4     Transport (fret et express),
5     Travaux et aménagement,
6     Assurance automobile,
7     Assurance décennale,
8     Assurance de marchandises,
9     Assurance de personne,
10    Assurance multirisque,
11    Assurance RC Pro,
12    Véhicules Utilitaires Légers,
13    Transport,
14    Comptabilité et gestion,
15    Cession,
16    transmission entreprise,
17    Comptabilité externalisée/Expert comptable,
18    Création d'entreprises,
19    Permanence Téléphonique,
20    Recouvrement amiable et judiciaire,
21    Boissons et fontaine à eau,
22    Imprimante Multifonction & Photocopieur 

VCard : Lors de l'exportation en VCard d'un fichier BaseProspect (.bp), le fichier VCard résultant sera crée dans ce dossier et portera le nom du Domaine du fichier BaseProspect.

BaseProspect.js : fichier contenant le code javascript décrivant le l'objet BaseProspect. Le module est exporté pour une utilisation dans d'autres fichier .js

Contact.js : fichier contenant le code javascript décrivant le l'objet Contact. Le module est exporté pour une utilisation dans d'autres fichier .js

ImportVcard.js : fichier contenant le code javascript permetant d'importer un fichier VCard et d'écrire le fichier .bp demandé

VcParser.js : fichier contenant un parser de fichier vCard (.vcf). Le module est exporté pour une utilisation dans d'autres fichier .js

bpParser.js fichier contenant un parser de fichier BaseProspect (.bp) et le code nessesaire pour créer le fichier vCard désiré dans le dossier VCard. Le module est exporté pour une utilisation dans d'autres fichier .js


Structure interne De l'application

Contact.js : fichier contenant le code javascript décrivant le l'objet Contact : un nom, un prénom, une entreprise, une fonction, un telephone et une remarque lui sont donné comme attribut. Le module est exporté pour une utilisation dans d'autres fichier .js

var Contact = function(n, prn, ent, fct, em, tel, rem){
    this.nom = n;
    this.prenom = prn;
    this.entreprise = ent;
    this.fonction = fct;
    this.email = em;
    this.telephone = tel;
    this.remarque = rem;
}

module.exports = Contact;

BaseProspect.js : fichier contenant le code javascript décrivant le l'objet BaseProspect : un domaine et une liste de contact lui sont donné comme attribut. Une fonction addContact est également présente pour ajouter un contact à la liste. Le module est exporté pour une utilisation dans d'autres fichier .js

var BaseProspect = function(dm){
    this.domaine = dm;
    this.contacts = [];
}

BaseProspect.prototype.addContact = function(contact) {
    this.contacts.push(contact);
};

module.exports = BaseProspect;

ImportVcard.js : fichier contenant le code javascript permetant d'importer un fichier VCard et d'écrire le fichier .bp demandé. Il contien un object importVcard posedant l'attibut fileDomain corespondant a un tableau contenant les nom des fichiers .bp. la methode AjouterContact(contact, domaine) permet d'ajouter au domaine choisi un contact.
la methode importer(domaine, card) est la methode pivot permetant d'importer le fichier vcf dans BaseProspect.

VcParser.js Contient une classe qui s'occupe de transformer le fichier vcard en objet Json à l'aide du module vcf

var vCard = require( 'vcf' );
var VcParser = function(data){
    this.data=data;

};
VcParser.prototype.parse=function()
{
    var card=vCard.parse(this.data);
    return card.toJSON();
};
module.exports=VcParser;

bpParser.js Contient a la fois le parseur de fichier .bp et l'algorithme permetant l'exportation en VCard. Le parseur contient les methodes parse, tokenise,err, next,accept, check, expect tel qu'implementé dans les parseurs classiques en javascript. exportVcf est la methode exportant le fichier en vCard. Les methodes portant le nom des attributs de l'objet Contact vérifient à l'aide d'expressions réguliéres la validités des champs du contact parsé. Enfin la methode bp contruit l'objet (.bp) comme un domaine et une liste de contacts.


Pistes d'évolution du code à moyen terme

Differentes possibilités d'évolution sont possibles pour le code a moyen terme, par exemple :

  • En rendant les domaines BaseProspect personalisable, le code deviendra beacoup plus flexible.
  • L'ajout d'une surcouche graphique permetant une utilisation plus intuitive à l'utilisateur.
  • L'integration sur le web pourra facilement être réalisé du fait de l'utilisation de node.js

Related

Wiki: Home