Projet IHM - Gestion de tâches

pense-bête

Objectif : réalisation d'une application de gestion de tâches

Ce projet est avant tout un projet d'IHM. Vous devez donc vous focaliser sur cet aspect en priorité puisque l'évaluation de votre travail reposera dessus : respectez les principes ergonomiques, réfléchissez aux interactions possibles, à l'aspect didactique, à l'homogénéité du style graphique, etc. Un fonctionnement complet de l'application n'est pas demandé.

Le but de ce projet est la conception et la réalisation d'une application de gestion de tâches. Il s'appuie sur todo.txt, un outil en ligne de commandes très pratique mais à qui il manque une interface graphique pour être utilisé par un plus grand nombre d'utilisateurs. Cet outil permet de gérer ses tâches quotidiennes à partir d'un simple fichier texte, d'en conserver un historique, d'éditer des statistiques et plus encore via un ensemble d'"add-ons".

L'application doit permettre :

  • d'ajouter une nouvelle tâche,
  • de modifier ou de supprimer une tâche,
  • de consulter la liste des tâches,
  • d'obtenir des informations annexes.

En pratique, l'implantation de cette application se fera en Python et s'appuiera sur la bibliothèque tkinter et sur l'utilitaire todo.


Présentation générale

Les grandes qualités de cet utilitaire sont d'être simple dans son utilisation, pratique dans ses buts et souple par sa portabilité et la possibilité d'ajouter des fonctionnalités. Ces qualités doivent être conservées dans ce projet.

Un fonctionnement basé sur des commandes et l'édition d'un fichier texte garanti un fonctionnement parfaitement adapté à un public habitué à manipuler des outils dit "bas niveau" i.e dont la présentation et le mode de fonctionnement sont très proches de celui de la machine. Il s'agit d'adapter au mieux les fonctionnalités de ce type d'application à un public plus large via une interface graphique.

En pratique, l'interaction de type WIMP se traduira en commandes connues de l'application initiale. Il faut donc passer en revue les différentes possibilités offertes par todo.txt.

L'application est lancée par la commande todo.sh (un script shell écrit en bash) suivie de ses paramètres dont les principaux sont :

  • add <string> : ajoute une tâche à la liste des tâches, la chaîne de caractères <string> suit la syntaxe suivante : "(<prio>) <date> tâche +<proj> @<cont>" avec <prio> la priorité (une lettre entre A et Z), <date> la date dans le format anglo-saxon (i.e yyyy-mm-dd), <proj> le projet dans lequel s'inscrit la tâche (par exemple +Enseignement) et <cont> son contexte (par exemple @Travail)
  • ls <filter> : pour consulter la liste des tâches, avec la possibilité de filtrer le résultat par mot-clé, contexte, projet ou toute combinaison,
  • do <number> : la tâche numéro <number> est terminée,
  • replace <num> <string> : modification de la tâche numéro <number>,
  • addto <file> <string> : ajout d'une tâche <string> au fichier <file> (et non au fichier todo.txt par défaut),
  • listfile <file> : liste des tâches associée au fichier <file>

Le retour se fait sous la forme d'un flux de caractères comportant des codes couleurs en shell pour les consoles textes (par exemple : x1b[1;33m se lit ESC jaune vif).

L'interface graphique ne doit pas se contenter de reproduire in extenso le mode de fonctionnement de todo.txt mais doit offrir des facilités au niveau ergonomique (glisser-déposer, auto-complétion, etc.)


Cahier des charges

Une phase de conception, qui repose sur des diagrammes UML de "cas d'utilisation" et/ou sur une conception dirigée par les buts (avec archétypes, scénarios et décomposition associée), doit être réalisée préalablement et donnée lieu à la rédaction d'un rapport (qui sera remis, par voie électronique, au format PDF).

Dans le cadre du module IHM, on s'attachera à la conception d'une interface intuitive. Les fonctionnalités demandées, volontairement approximatives, sont :

  • ajout, modification et suppression d'une tâche,
  • sauvegarde et chargement d'une liste de tâches,
  • obtention d'informations annexes (tâches terminées, histogramme, etc.),
  • personnalisation de l'interface,
  • configuration de l'application suivant plusieurs niveaux d'apprentissage.
  • synchronisation à travers le réseau (en option).

Notation

La notation de ce projet prendra en compte le rapport, le respect du cahier des charges, la qualité de la programmation (robustesse, lisibilité et modularité du code, présence de tests unitaires) ainsi que les aspects propres à une IHM que sont : cohérence, concision (limitation du nombre d’interventions de l’utilisateur), structuration des activités (décomposition d’une tâche complexe), flexibilité (application personnalisable), retour d’informations et gestion des erreurs, toutes choses qui garantissent une interface ergonomique et intuitive et qui n’apparaissent pas explicitement dans cette présentation.