Menu

Guide de maintenance

Hachet Yassine Doghri

Guide Développeur

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

Structure du code

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 :

  • projet/
    • exports/
    • sample/
      • test.ics
      • test2.ics
      • etc.
    • test/
      • unit/
      • testRunner.js
    • iCalParser.js
    • Meeting.js
    • Planning.js
    • PlanningList.js
    • mainApp.js
    • package.json

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 :

  • Le fichier iCalParser.js analyse les fichiers iCalendar en entrée et génère des objets JSON
  • L'objet Meeting (Rendez-vous) est l'élément centrale, le plus basique de l'application.
  • L'objet Planning est une liste d'objets Meeting
  • L'objet PlanningList d'objets Planning, donc une liste de liste d'objets Meeting

Évolutions de l'application

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.


MongoDB Logo MongoDB