Ce guide a pour but de décrire le choix de la structure du code ainsi que les éventuelles évolutions à mettre en place pour les versions futures.
Gestion de version : Subversion (SVN)
Language Principal : Javascript (NodeJS)
Interface Utilisateur : Terminal / Ligne de Commande
Le choix de structure initial a été de développer l'application en créant un fichier par fonctionnalité et avec un fichier principal afin de faciliter le partage et la mise en commum autour de subversion, les conflits étaient alors mineurs. Cependant, la maintenance pour ce type de structure n'en est que plus difficile.
Ainsi, il a été décidé d'effectuer un refactoring complet de la solution logicielle en reprenant quelques parties du code utilisé pour chaque fonctionnalité. Le projet est maintenant structuré avec des classes séparés en plusieurs fichiers utilise la logique universelle : le développement orienté objets.
Structure du dossier de source :
L'export de tout document se fait dans le répertoire exports, s'il n'est pas crée, il le sera automatiquement.
Les fichiers utilisés pour les tests se trouvent dans le répertoire sample.
Les fichiers de tests unitaires se trouvent dans le répertoire test. Ils n'ont pas été réalisés car le code initial n'était pas (ou peu) testable.
Voici nos scénarios de tests :
https://docs.google.com/spreadsheets/d/1tkBuo-3NFMP14DpVsT6uaApkhMEWLTfQeLuwdPqG8GI/edit?usp=sharing
Toutes les fonctionnalitées sont appelées dans le fichier mainApp.js qui est le fichier par défaut de l'application.
Le code est structuré de cette façon :
Suite au développement de l'application, plusieurs évolutions ont été pensées afin d'améliorer les interractions entre l'utilisateur et la solution.
Dans un premier temps, il est primordial de réduire les bugs ou disfonctionnements de l'application afin que l'expérience utilisateur n'en soit pas impactée.
Aussi, une interface interractive en ligne de commandes pourrait être mise en place afin de diminuer les manipulations de l'utilisateur et ainsi lui faire comprendre plus facilement ce qui est attendu.