Menu

Tree [r14] /
 History

HTTPS access


File Date Author Commit
 inc 2016-01-08 haifan [r14] Ajout de la documentation sur certaines fonctions
 Program.js 2016-01-08 exflygon [r12] Bug Fix: Correction du bug empêchant l'export d...
 README.txt 2015-12-08 perrotbryan [r6] Version finale
 test.csv 2015-12-08 perrotbryan [r6] Version finale
 test1.ics 2015-12-08 perrotbryan [r6] Version finale
 test2.ics 2015-12-08 perrotbryan [r6] Version finale

Read Me

Auteurs :
PERROT Bryan, DUBUS Clément, THIVEUX Liam, LE PAGE Gabrielle.


Installation : 


Dézipper le fichier et exécuter la commande "node" avec pour paramètre le chemin du fichier Program.js <commande> <fichier1> [<fichier2>]

Le fichier Program.js ne fait ici office que de fichier permettant les tests. La librairie est entièrement constituée des fichiers .js se trouvant dans le dossier inc.

Les commandes disponibles sont :

 - "import <fichier>" qui permet de parser un fichier planning au format csv ou ics et d'en afficher la liste des évènements (cet affichage étant à remplacer par le traitement à effectuer sur l'objet planning).
Exemple : "node.js Program.js export C:\Users\currentUser\Desktop\ulysse-adomy-code\test1.ics" ou "node.js Program.js export C:\Users\currentUser\Desktop\ulysse-adomy-code\test.csv"

 - "export <fichier source> <chemin de destination>" qui utilise la fonction d'import pour obtenir un objet planning, qui est ensuite exporté à l'emplacement donné dans <chemin de destination>.
Note : le chemin de destination doit contenir le nom du fichier, et doit nécessairement avoir pour extension ".csv".
Exemple : "node.js Program.js export C:\Users\currentUser\Desktop\ulysse-adomy-code\test1.ics C:\Users\currentUser\Desktop\ulysse-adomy-code\testbis.csv"

 - "conflicts <fichier1> <fichier2>" qui importe les deux fichiers passés en paramètre et en retourne un affichagetype CSV des conflits d'emplois du temps entre les deux plannings.
Exemple : "node.js Program.js conflicts C:\Users\currentUser\Desktop\ulysse-adomy-code\test1.ics C:\Users\currentUser\Desktop\ulysse-adomy-code\testbis.csv" affichera un planning équivalent à "test1.ics" puisque "testbis.csv" est la conversion de celui-ci.

 - "rapport <fichier>" qui affiche un rapport informant du nombre d'intervention planifiées d'un planning et son volume horaire total sur la semaine.

 - "?" ou "help" qui affiche la liste des commandes disponibles.


Tests : 

Afin d'effectuer les tests de la librairie, nous avons joint 3 jeux de test :
 - "test.csv" correspondant à un planning au format csv, destiné à être importé,
 - "test1.ics" correspondant à un planning au format iCal, destiné à être importé,
 - "test2.ics" correspondant à un planning au format iCal, différent de "test1.csv", et destiné à être comparé à un autre fichier (csv ou iCal).



Ecarts avec le cahier des charges :


La spécification SPEC_1 : "Gérer les intervenants" n'a pas été réalisée car, au vu du sujet du projet Adomy, il nous a semblé qu'il s'agissait ici d'une erreur dans le cahier des charges.

De plus, en raison de spécifications de format de données ABNF complètement erronnées, nous avons travaillé avec les spécifications suivantes :

CSV :

DOCUMENT = HEADER CRLF LINES
HEADER = ‘lundi’ SEP
 %s‘mardi’ SEP
 %s‘mercredi’ SEP
 %s‘jeudi’ SEP
 %s‘vendredi’ SEP
 %s‘samedi’ SEP
 %s‘dimanche’ SEP
LINES = 48(LINE CRLF)
LINE = 7(ITEM SEP)
ITEM = MEMPTY / TASK
MEMPTY = %s‘vide’
TASK = WORDS [WSP] ‘(‘ NAME‘)’
WORDS = WORD *(WSP WORD)
WORD = 1*ALPHANUM
ALPHANUM = ALPHA / DIGIT / ‘-’
SEP = ‘;’

iCal :

CORE-OBJECT = HEADER BODY FOOTER
HEADER = ‘BEGIN:VCALENDAR’ CRLF
 ‘VERSION:2.0’ CRLF
 ‘PRODID:’ TEXT CRLF
BODY = *EVENT
FOOTER = ‘END:VCALENDAR’
EVENT = EVENT-HEADER EVENT-BODY EVENT-FOOTER
EVENT-HEADER = ‘BEGIN:VEVENT’ CRLF
EVENT-BODY = 5((START / DURATION / SUMMARY / CONTACT / LOCATION)
 CRLF)
EVENT-FOOTER = ‘END:VEVENT’ CRLF
START = ‘DTSTART:’ DATETIME
DURATION = ‘DURATION:’ DUR-VALUE
SUMMARY = ‘SUMMARY:’ TEXT
CONTACT = ‘CONTACT:’ TEXT
LOCATION = ‘LOCATION:’ TEXT
DATETIME = DATE %s‘T’ TIME
DATE = 4DIGIT 2DIGIT 2DIGIT ; AAAAMMJJ
TIME = 2DIGIT 2DIGIT 2DIGIT [%s’Z’] ; HHMMSS (Z : temps UTC)
DUR-VALUE = %s’PT’ (DUR-H / DUR-M)
DUR-H = 1*DIGIT %s’H’ [DUR-M]
DUR-M = 1*DIGIT %s’M’
TEXT = *(SAFE-CHAR / ESCAPED)
SAFE-CHAR = WSP / %x21-2B / %x2D-39 / %x3C-5B / %x5D-7E / UTF-8
ESCAPED = ‘\\’ / ‘\;’ / ‘\,’

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.