Dimension V : Les outils
5. Personnalisation
Type d’outil Description
Aide FAQ Bouton d’impression Ballons d’aide Aide Contextuelle Awareness Mise en avant de nouveau contenu, changement de statut d’information Bandeau temporel permettant d’agréger les listes de son choix Templates Gestion et configuration de patrons d’agencement de l’écran selon le rôle choisi par l’utilisateur.
Méthode de sélection des fonctionnalités à développer
Nous avons décidé d’obtenir un regard extérieur. Notre thématique s’adressant à deux types de populations (étudiants et enseignants), nous avons décidé
d’interviewer une personne de chacun de ces groupes.
De façon individuelle, nous leurs avons présenté le tableau ci‐dessus et demandé pour chacune des fonctionnalités de nous donner un ordre de priorités dans le développement de notre logiciel.
La priorité de niveau 1 était assignée à des fonctionnalités d’une version 1 du logiciel, qui en feraient un outil déjà exploitable dans le contexte de suivi de mémoire.
La priorité de niveau 2 était considérée comme non‐urgente, même si désirable.
La priorité de niveau 3 étant considérée comme non désirée.
Dans un premier temps nous avons interviewé une assistante de recherche venant de terminer son mémoire.
Dans un second temps, en cours de développement, nous avons reproduit cet exercice auprès d’un enseignant universitaire ayant l’expérience de suivi de mémoires.
Dans un troisième temps, nous avons passé en revue les fonctionnalités pour les valider.
Le tableau récapitulatif de ces fonctionnalités priorisées, sélectionnées et implémentées est disponible en Annexe 1.
Phase de Développement
Environnement technique
Le choix de l’environnement technique était un défi en soi, n’ayant jamais développé de projet en PHP et Mysql, mais ce choix s’est imposé dans l’optique d’être accessible au monde libre du logiciel. Pour le développement, deux ensembles de produits se distinguaient, et plutôt que EasyPhp, j’ai fait le choix d’installer la suite XAMPP. Comme outil d’écriture j’ai utilisé PSPad, très simple d’utilisation mais suffisant. Après quelques tests, j’appréciais également l’utilisation de MySQL Workbench, son interface étant plus agréable à utiliser pour les configurations de tables et le travail avec les requêtes SQL. La configuration logicielle installée se déclinait selon les versions suivantes :
Ensemble de logiciels sous XAMPP version 1.7.7 Php 5.3.8 Mysql 5.5.16 Apache 2.2.21 phpMyAdmin 3.5.1 MySQL Workbench 5.2 PSPad 4.5.6 Internet Explorer 9.0.7
Structure de données
Les structures de données ont été définies selon quatre axes: Gestion des données
Ceci concerne essentiellement les tables de références qui permettent
l’interprétation et l’exploitation des données
Gestion des processus
Permet de gérer les données ayant un impact sur la gestion des informations,
par exemple celles permettant le suivi des changements de statuts des
Gestion de l’interface
Structures dédiées à l’implémentation visuelle des outils, les configurations
des panneaux dans le Dashboard.
Gestion des utilisateurs
Concerne les profils utilisateurs, les droits d’accès, la configuration
personnalisée des outils et de l’interface.
Le choix de technologie de la structure de données créée s’est porté sur une structure générique, typique de nombreux CMS : nous avons créé une table de données centrale et l’avons entourée de multiples tables de références.
Grâce à cela, il a été possible de définir un outil central qui permet l’implémentation de différentes formes de fonctionnalités, toutes reposants sur des données
centralisées.
Pour cela j’ai implémenté un moteur de gestion de fiches qui centralise les informations de tous les outils du système de suivi.
Les champs de données des fiches sont stockés dans une seule et même table (donnees). Cette table dispose d’une seule colonne (DataValue) dédiée au stockage des données entrées dans les champs des formulaires.
Ce sont les tables de références qui permettent de modifier et interpréter de façon dynamique au niveau de l’interface les types de fiches, leurs structures et les types de champs.
Les fiches sont des formulaires web générés dynamiquement à partir d’une table (structuredefiche) définissant la structure de chacune, en regard de son type. Les colonnes de cette table sont dédiées à l’implémentation de chaque formulaire. (Champs obligatoire ou non, ordonnancement dans le formulaire, champs servant de titre, activation optionnelle du WYSIWYG pour les zones de textes, dimensions en hauteur et largeur, etc.)
Les types de champs permettent de définir les moyens d’actions sur les informations stockées, la façon de les traiter et de les afficher. La table des types de champs (typesdedonnees) est utilisée pour identifier chaque type de champ de formulaire. Chaque type est un enregistrement dans cette table et son identifiant est repris dans la table de structure des formulaires (structuredefiche).
J’ai identifié huit types de champs de formulaire :
Commentaire Commentaire sans entrée de données Texte Données de type texte
Tri Un champ caché dans les formulaires mais qui permet de changer l'ordre des fiches au sein d'une même liste.
Numérique Données de type numérique
Date Données de type de date
AutreStructure Permet de stocker l'ID d'une autre structure pour se référer à l’une de ses fiches. Utilisé dans les notes de lectures qui pointent sur la bibliographie.
Oui / Non Champs à choix « oui » ou « non »
Fichier Fichiers téléchargeables
A chaque mémoire sont liés des utilisateurs et des fiches.
Lorsqu’un utilisateur de type étudiant entre dans le système, il a accès aux fiches liées au mémoire qui lui est assigné.
Lorsqu’un utilisateur de type superviseur entre dans le système, il a accès aux fiches liées au mémoire de l’étudiant sur lequel il est connecté. Le superviseur peut ainsi sélectionner dans l’interface l’étudiant dont il veut voir les informations de son mémoire.
Structure de données
Configuration visuelle de l'interface
J’ai implémenté une interface modulable, avec des blocs visuels pouvant avoir des formes, tailles et contenus différents. Ce sont donc des carrés ou des rectangles. Les rectangles sont orientés de façon verticale ou horizontale selon l’outil concerné. Chaque bloc a une définition en axe et en ordonnée qui est un multiple de l’unité visuelle de base : un carré d’une résolution réelle correspondant au modulo en pourcent de la résolution d’écran.
La plupart des écrans sont sur un ratio de 4/3. J’ai donc décidé de définir l’unité visuelle de base en correspondance avec ce ratio.
Trop d’éléments visuels entraineraient une surcharge cognitive, cependant définir 12 (4*3) blocs (incluant la navigation) semblait insuffisant. En doublant le ratio (8*6), cela a permis de mettre à disposition 48 blocs de 12.5% de largeur et 16.6% de hauteur.
La colonne de gauche est l’emplacement réservé au deux zones navigation et « Awareness ».
Chaque fiche possède donc une configuration dont les limites de tailles en hauteur et en largeur doivent s’inscrire dans cette définition : 1 à 7 de largeur, 1 à 6 de hauteur.
J’ai créé trois utilisateurs ayant chacun sa propre configuration d’écran pour montrer les possibilités de l’interface :