Rapport de stage 2ème année



Rapport de stage 2ème année

DUT informatique

Du 7 Novembre 2011 au 13 Janvier 2012.

Stagiaire – Baptiste Bouchereau

Responsable pédagogique - Michael Mrissa

Maître de stage : Lucile Alteyrac

Mise en place d’un outil d’e-notebook

pour les laboratoires du CIRC

Centre International de Recherche sur le Cancer

150 Cours Albert Thomas

69372 Lyon Cedex 08

[pic]

IUT Université Claude Bernard - Lyon 1

Département informatique

43 Boulevard du 11 Novembre 1918

69622 VILLEURBANNE CEDEX

Tél : 04-72-69-21-90

[pic]

Remerciements

Je tiens à remercier dans un premier temps, toute l’équipe pédagogique du département informatique de l’IUT Lyon 1.

Je remercie également Monsieur Mrissa pour les efforts qu’il a faits pour me suivre durant ce stage.

Je tiens à remercier plus particulièrement les personnes suivantes, pour l’expérience enrichissante qu’elles m’ont offerte au sein du CIRC, et l’intérêt qu’elles ont manifesté à mon égard.

Lucile Alteyrac, ma tutrice, pour m’avoir intégré rapidement au sein de l’entreprise et m’avoir accordé sa confiance ; pour le temps qu’elle m’a consacré tout au long de cette période.

Philippe Boutarin, pour son aide précieuse dans tout ce qui concerne WordPress, ainsi que toute l’équipe ITS pour leur accueil et leur énergie.

Catherine Voegele et Nivonirina Robinot, pour leur enthousiasme, leur disponibilité et leurs bonnes remarques, ainsi que l’ensemble des groupes GCS et LSB.

« Les travaux dont il est question dans le présent document ont été exécutés durant un stage de formation effectué au Centre international de Recherche sur le Cancer. »

Fiche technique

L’entreprise : Le Centre International de Recherche sur le Cancer (CIRC) fait partie de l’Organisation Mondiale de la Santé (OMS) qui est une institution spécialisée des Nations Unies (UN). La mission du CIRC consiste à coordonner et à mener des recherches sur les causes du cancer chez l’homme et sur les mécanismes de la cancérogenèse, ainsi qu’à élaborer des stratégies scientifiques de lutte contre le cancer. Le Centre participe à des recherches épidémiologiques et expérimentales, et assure la diffusion de l’information scientifique au moyen de publications, de conférences, de cours, et de bourses d’études.

Intitulé du sujet : Réalisation d’un cahier de laboratoire électronique capable de remplacer les cahiers papiers actuels utilisés par les personnels de laboratoire, dans le but d’améliorer la lecture, les recherches et les échanges d’information entre chercheurs et techniciens.

Personnel : L’entreprise possède un service informatique comprenant 6 personnes.

Conditions de travail : Je travaillais seul sur mon projet, dans mon propre bureau. En cas de besoin, je pouvais m’adresser à Lucile Alteyrac ou Philippe Boutarin et à Catherine Voegele pour les spécifications. J’ai également eu de nombreux échanges avec les utilisateurs, à la fois par l’intermédiaire de réunions organisées avec les groupes de travail, et individuellement lorsque les utilisateurs avaient des questions.

Environnement technique matériel et logiciel: Chaque membre du service informatique possède son propre ordinateur de travail. La réalisation du cahier de laboratoire électronique à été effectuée sur le CMS WordPress et un outil de transfert de données HTML a été développé en Java. J’ai aussi eu l’occasion de travailler sur du PHP et du JavaScript.

Ce rapport a été écrit au cours des deux dernières semaines de mon stage, en parallèle avec les tâches de finalisation du projet.

Sommaire

Remerciements 2

Introduction 6

Introduction 6

I) Présentation de l’entreprise 7

1) Généralités 7

2) Localisation 7

3) Environnement humain 8

4) Environnement technique 9

II) Le projet 10

1) Conception de l’ELN 10

1.1) Réalisation d’un cahier des charges. 10

1.2) Recherche de l’existant 11

2) Développement de l’ELN 12

2.1) Outils et méthodes de travail 12

a) Qu’est-ce que WordPress? 13

b) Autres outils 15

c) Méthode de travail 16

2.2) Développement 17

a) Configuration initiale de WordPress 17

b) Gestion des droits des utilisateurs 17

c) Sécurisation du blog 21

d) Mise en place d’une page ‘home’ statique 22

e) Installation du thème 22

f) Installation du menu 23

g) Les sidebars 23

h) Editeur de post 27

i) Modification du type de liens 28

j) Autres Plugins 28

2.3) Rendu 31

3) Réalisation d’une application Java pour migrer des données HTML 35

3.1) Conception 35

3.2) Développement 35

a) Outils et méthodes de travail 35

b) Architecture du programme 36

3.3) Utilisation 36

a) Formatage des fichiers 36

b) Configuration du plugin HTML Import 37

c) Migration des données 37

4) Administration de l’ELN 38

III) Bilan 39

1) Bilan technique 39

2) Bilan humain 39

3) Bilan professionnel 40

4) Rapport iut (apprentissage) / entreprise 40

Conclusion 41

Références 42

ANNEXE 1 – Recherche sur les ELN 44

ANNEXE 2 - Plugins 46

ANNEXE 3 – Image du header 51

ANNEXE 4 – Tri de la table of content 52

ANNEXE 5 – Résolution du problème du plugin « post notification » 53

ANNEXE 6 – Création de boutons pour CKeditor 55

ANNEXE 7 – Programme Java 57

Introduction

Etudiant en fin de 2ème année de DUT informatique à l’IUT Lyon 1, j’ai eu à effectuer un stage en entreprise de fin d’étude d’une durée de 10 semaines.

Pendant les 3 premiers semestres à l’IUT, j’ai archivé les offres de stages reçues à l’attention de l’IUT de la part d’entreprises diverses. Début septembre, après avoir sélectionné les stages qui m’intéressaient le plus, j’ai envoyé une dizaine d’e-mails en demandant si les offres étaient toujours valables, et si oui, en proposant ma candidature. Lorsqu’une réponse fut envoyée par le CIRC, j’ai tout de suite accepté la proposition d’entretien car l’intitulé du stage me plaisait particulièrement. Ce centre de recherche a ensuite retenu ma candidature, et j’ai décidé de saisir cette opportunité.

C’est donc à Lyon que j’ai effectué mon stage, avec pour mission de réaliser un cahier de laboratoire électronique (ou ELN pour Electronic Laboratory Notebook en anglais) utilisable dans différents groupes de recherche du Centre.

Le rapport que vous lisez présente donc le déroulement de mon stage. Il s’articule en trois parties.

Je l’entamerai par une présentation du CIRC, ainsi que l’environnement technique et humain dans lequel je travaillais.

Ensuite, je détaillerai le projet qui m’a été confié : les parties de conception, de développement et d’administration.

Enfin, j’essaierai d’expliquer tout ce que j’ai retiré de cette expérience à travers un bilan technique, humain, et professionnel.

I) Présentation de l’entreprise

1) Généralités

Le Centre International de Recherche sur le Cancer (CIRC), en anglais International Agency for Research on Cancer (IARC), est une agence intergouvernementale de recherche sur le cancer, créée en 1965 par l'Organisation Mondiale de la Santé (OMS – l’OMS étant elle même une institution spécialisée de l'Organisation des Nations Unies (ONU) pour la santé publique.)

Le rôle du CIRC est de diriger et de coordonner la recherche sur les causes du cancer (il n’y a en principe pas de recherche sur des traitements contre le cancer).

2) Localisation

Les bureaux et laboratoires du CIRC se situent 150 Cours Albert Thomas, dans le 8ème arrondissement de Lyon.

[pic]

3) Environnement humain

Le CIRC dispose d'un personnel d'environ 200 personnes à son siège à Lyon, auxquels viennent s'ajouter une centaine de chercheurs en visite, doctorants, post-doctorants et stagiaires.

Organigramme

[pic]

Le centre de recherche est divisé en différents secteurs. Il existe des sections pour chaque secteur de recherche sur le cancer, elles-mêmes divisées en groupes en fonction du thème des travaux de recherche. Il y a également la Division de l’Administration et des Finances (DAF) séparée en services. Il s’agit des secteurs ne requérant pas de compétences en relation directe avec la recherche sur le cancer, mais pourtant communs à n’importe quelle entreprise : ressources humaines, budget et finances, ainsi que le service informatique (ITS – Information Technology Services) dont je faisais partie.

Voici la liste du personnel d’ITS :

▪ Philippe Damiecki, chef du groupe ITS.

▪ Lucile Alteyrac, qui s’occupe des systèmes d’information orientés sciences.

▪ Philippe Boutarin, qui s’occupe des systèmes d’information orienté administration.

▪ Laurence Marnat, secrétaire.

▪ Christopher Jack, qui gère l’infrastructure hardware, réseau…

▪ Nicolas Hernandez, qui s’occupe de l’assistance utilisateur.

J’ai également été en relation avec les départements GCS (Genetic Cancer Susceptibility) et LSB (Laboratory Services and Biobank) - il s’agit des groupes utilisateurs de l’ELN – et plus particulièrement Catherine Voegele et Nivonirina Robinot, respectivement bioinformaticienne et technicienne de laboratoire au département GCS.

4) Environnement technique

Logiciel

Les ordinateurs fonctionnent sur différents systèmes d’exploitation : Linux, MacOSX et Windows (2000, XP et 7)

Le service mail est fourni par Microsoft Exchange 2010.

La suite Microsoft Office 2003 et 2010 est utilisée pour le traitement de texte (entre autres).

Spark : il s’agit d’un logiciel de messagerie instantanée permettant de converser en direct avec les autres membres du CIRC (équivalent professionnel de Microsoft MSN) Ce logiciel était très pratique pour travailler avec Lucile Alteyrac et Catherine Voegele, et constitue un excellent compromis entre l’e-mail et le téléphone.

Un annuaire Active Directory regroupant les informations des utilisateurs.

En dehors de ces logiciels, j’ai moi-même choisi les applications qui m’ont été utiles dans mon travail, au fur et à mesure du projet. J’étais libre d’installer ce que je souhaitais sur mon PC. Ceux-ci seront détaillés dans la partie 2.

Matériel

Le CIRC possède deux salles machines regroupant l’ensemble des serveurs. Les serveurs fonctionnent soit sous Linux (distributions RedHat, Debian et CentOS) soit sous Windows (Windows Server 2003 et 2008). J’avais également accès à un téléphone sur mon bureau qui m’a été utile pour aider les utilisateurs.

II) Le projet

1) Conception de l’ELN

Voici la description du projet telle que j’ai l’ai reçue à mon arrivée.

Le cahier de laboratoire est un outil indispensable de traçabilité des travaux de recherche pour les laboratoires. Il permet de consigner tous les détails des travaux réalisés au jour le jour, du début des expériences jusqu’à leur conclusion. Actuellement, les laboratoires du CIRC utilisent des cahiers ‘papier’.

Le but de ce stage est de mettre en place un outil informatique de type e-notebook capable de remplacer cette version papier du cahier de laboratoire. Cet outil pourra également servir au suivi des travaux d’épidémiologie, des analyses statistiques ou même des développements informatiques.

La réalisation du projet se déroulera en trois phases :

1- Recherche dans l'existant d'un outil gratuit et open source de type cahier de laboratoire électronique (veille technologique sachant qu’un outil potentiel a déjà été présélectionné)

2- Installation et configuration de l'outil choisi

3- Développement de fonctionnalités spécifiques pour le CIRC, dont les spécifications seront définies au fur et à mesure avec les utilisateurs potentiels.

1.1) Réalisation d’un cahier des charges.

Plusieurs possibilités étaient donc envisagées au départ :

▪ Récupérer l’ELN déjà utilisé par certaines personnes au CIRC (ELN ORNL - Réf [18]) et l’améliorer.

▪ Trouver un autre ELN répondant le plus possible aux spécifications du CIRC et l’améliorer.

▪ Créer un ELN à partir de zéro.

Rapidement, je me suis rendu compte que pour mieux choisir l’outil, écrire un cahier des charges de l’ELN était essentiel. Pour m’aider dans ma démarche, le groupe GCS (ce groupe travaille sur la génétique du cancer) m’a prêté un cahier de laboratoire ‘papier’. Il m’a été utile pour déterminer la plupart des fonctionnalités qu’il fallait implanter dans l’ELN.

De plus, la plupart des spécifications étaient déjà définies par Nivonirina Robinot qui avait mis en place l’ELN ORNL, et donc savait quelles étaient les fonctionnalités principales à développer. Cela m’a beaucoup aidé dans la réalisation du cahier des charges.

Voici donc les spécifications que j’avais notées comme requises pour l’ELN du CIRC, au départ du projet.

Spécifications obligatoires :

▪ La gestion des droits doit être précise :

- Certains cahiers sont lisibles par certains utilisateurs mais pas tous.

- Certains cahiers ont plusieurs auteurs.

▪ Les cahiers doivent être lisibles entre les utilisateurs. Pour cela, il faut leur permettre, via une interface, de créer des pages web (html) avec les mêmes informations que sur les cahiers de laboratoires écrits, et de les sauvegarder. La portabilité du programme (Linux, Mac, Windows) est assurée s’il s’agit d’une interface web.

▪ L’interface doit être utilisable et compréhensible par des non informaticiens. Par exemple, l’utilisateur ne doit pas à avoir à écrire du HTML: simplement du texte. Il faut donc un éditeur de texte pour souligner, changer la police, etc…

▪ L’utilisateur doit pouvoir importer des images et les visionner depuis l’ELN., comme par exemple des captures d’écran des ordinateurs présents à coté des machines => possibilité d’accéder à l’ELN à partir de ces machines pour modifier directement le rapport d’une expérience.

▪ L’utilisateur doit pouvoir joindre des fichiers (beaucoup de fichiers Excel sont utilisés pour stocker et analyser les résultats).

▪ L’utilisateur doit pouvoir faire des recherches par mot-clé :

- dans son cahier.

- dans les cahiers qu’il a le droit de lire.

▪ Tri des pages d’un cahier (par date, titre, etc…)

▪ Souvent, les images sont surlignées, ou annotées (mise en évidence de certaines choses avec des accolades, etc…). Cela doit être possible d’une manière ou d’une autre sur le logiciel.

▪ Il faut pouvoir faire la distinction entre les cahiers personnels (cahiers regroupant recherches d’un utilisateur), les cahiers de projet (plusieurs utilisateurs ont accès à ce cahier) et les cahiers de maintenance (ce sont des cahiers permettant le suivi des machines : il y aura plusieurs utilisateurs sauf dans de rares cas peut-être où seule une personne est autorisée à utiliser une machine).

▪ Penser à la protection des données (système de sauvegarde).

Spécifications optionnelles :

▪ Les pages doivent être numérotées (si jamais il y a besoin d’imprimer c’est un plus).

▪ Enregistrer les dates de modification d’un cahier (ou plus précisément d’une page?)

▪ « Obliger » l’utilisateur à remplir le cahier correctement (i.e. ne pas oublier de rubrique (matériel utilisé, conclusion…), éventuellement correcteur d’orthographe ?, etc…).

▪ Les noms des molécules/échantillons ont l’air d’être long à écrire, faire un « dictionnaire » permettant d’auto-compléter le nom de la molécule (l’utilisateur peut participer au remplissage de ce dictionnaire).

Autres remarques :

▪ Il faudrait que l’ELN ait la même valeur juridique (preuves) qu’un cahier de laboratoire papier. Maintenant les signatures électroniques ont une valeur reconnue, mais il faut vérifier tout cela.

1.2) Recherche de l’existant

Ma première semaine a donc été consacrée à une phase de recherche d’ELN.

La liste complète des ELN que j’ai trouvés, testés, rejetés, etc. et leurs descriptifs sont présentés en annexe 1.

C’est finalement lors d’une réunion avec Catherine Voegele, Lucile Alteyrac et Nivonirina Robinot, pendant la présentation de l’ancien ELN par cette dernière, que j’évoque l’idée du CMS WordPress que j’ai rencontré dans mes recherches (Réf [1]). Par la suite, Lucile se renseigne à ce propos et semble plutôt enthousiaste à l’idée d’utiliser cet outil, déjà utilisé au CIRC pour différents projets, sous réserve que cela soit faisable bien sûr.

Après une autre réunion avec deux utilisateurs avancés de CMS (Antoine Bellon et Philippe Boutarin) nous nous engageons sur cette piste. Nous décidons de laisser l’ancien ELN de côté pour plusieurs raisons : celui-ci a été développé de 1998 jusqu'en 2004, son code est difficile à maintenir, et surtout une gestion précise des droits utilisateurs semblait trop complexe à mettre en œuvre.

WordPress est à la base utilisé pour faire du « blogging », la gestion des droits n’est donc quasiment pas présente dans la version de base de WordPress. En revanche la communauté WordPress est très active, il existe donc peut-être des plugins pour pallier ce problème. C’est là où réside la plus grande difficulté.

En revanche, il y a aussi de nombreux avantages. Réaliser un ELN de A à Z sans aucune base en 9 semaines pour une unique personne (un stagiaire qui plus est) semblait difficile. WordPress permet à la fois de partir de quelque chose, tout en permettant une grande liberté d’évolution. Et surtout, mes recherches m’avait permis de comprendre qu’une grande partie des fonctionnalités utiles à l’ELN étaient déjà en application avec WordPress.

Nous nous sommes donné une semaine pour étudier la faisabilité d’un ELN sous WordPress, en commençant par s’assurer que toutes les fonctionnalités demandées par les utilisateurs étaient trouvables, ou bien implémentables.

2) Développement de l’ELN

Cette partie concerne donc l’élaboration de l’ELN de A à Z. Je traiterai ici de l’ELN de production. En effet j’ai effectué la première phase du développement sur un ELN de test, où j’y ai créé des utilisateurs factices, en essayant de leur attribuer tous les types de droits et restrictions possibles en partant du principe que qui peut le plus peut le moins.

Cette partie servira également de documentation au Centre, et plus particulièrement à Lucile Alteyrac qui prendra le relai en tant qu’administratrice de l’ELN. Elle se veut donc la plus exhaustive possible. Pour faciliter la lecture, tout le code se trouve en annexe.

Le paragraphe 2.3) donne une représentation de l’ELN dans sa version finale. Cette partie 2 présente les informations dans l’ordre chronologique mais pour une bonne compréhension, un aperçu peut être utile.

2.1) Outils et méthodes de travail

Pour comprendre le travail que j’ai effectué, il est nécessaire de savoir ce qu’est WordPress. Il s’agit en effet de l’outil (logiciel) principal de mon projet.

a) Qu’est-ce que WordPress?

WordPress est un système de gestion de contenu* (ou CMS : (en) Content Management System) libre* écrit en PHP (version 5.2.4-2ubuntu5.14) et reposant sur une base de données MySQL (version 5.0.51). WordPress est surtout utilisé comme moteur de blog, mais ses fonctionnalités lui permettent également de gérer n'importe quel site web. Le site web de l’ELN était hébergé sur un serveur Linux, avec pour distribution Ubuntu 8.04.4 LTS.

L’image présentée ci-après constitue l’essentiel de WordPress. A travers les différents onglets, il est possible de modifier le contenu du site.

▪ Via l’onglet « Post », on peut créer des catégories, qui correspondront pour l’ELN à des cahiers ou des ensembles de cahiers. Ajouter un « post » à une catégorie est équivalent à ajouter une page à un cahier.

▪ Via l’onglet « Media », les utilisateurs peuvent télécharger (uploader) des images pour les insérer dans les pages de leurs cahiers.

▪ Via l’onglet links, on peut créer des catégories de liens à afficher sur le site. Cela permet entre autre de créer des menus.

▪ Via l’onglet « Pages », on peut créer des pages statiques. Elles n’appartiennent pas à des catégories et ne sont pas régies par les mêmes règles que les posts (on peut par exemple choisir de désactiver les commentaires sur les pages ou sur les posts au choix).

▪ Via l’onglet « Comments » on peut gérer les commentaires utilisateurs.

▪ Via l’onglet « Appearance », on gère le thème du site, sa mise en page, etc…

▪ Via l’onglet « Plugins », on ajoute de nouvelles fonctionnalités au site.

▪ L’onglet « Users » permet d’ajouter de nouveaux utilisateurs et de leur attribuer les droits WordPress par défaut.

▪ Enfin, l’onglet « Settings » permet de définir un ensemble de généralités, tel que le titre du site, les paramètres d’horaires, etc…

Tous les autres onglets sont ajoutés lors de l’installation de plugins. Ils ne sont pas présents dans la version initiale de WordPress.

C’est grâce aux nombreux plugins disponibles que WordPress est extrêmement configurable. Il existe ainsi un moteur de recherche intégré à WordPress, permettant de trouver des plugins avec des mots-clés.

[pic]

[pic]

b) Autres outils

Les autres outils que j’ai utilisés pour réaliser l’ELN sont les suivants :

▪ Core FTP LE. Il s’agit d’un client FTP que j’utilisais pour accéder aux fichiers du site sur le serveur.

▪ Gimp et Paint qui sont deux logiciels que j’ai utilisés pour modifier les images d’entête et les logos du site.

▪ Faststone Capture, outil de capture d’écran. Cela m’a été utile pour faire des tutoriels pour aider les utilisateurs. Je l’ai aussi utilisé pour insérer des images dans ce rapport.

c) Méthode de travail

En ce qui concerne ma méthode de travail, je ne la détaillerai pas spécifiquement pour chaque étape car celle-ci est récurrente.

En ce qui concerne les plugins, la première partie de mon travail consistait à me documenter. Il ne s’agit pas de la partie la plus excitante mais je me suis rendu compte dès l’installation du premier plugin qu’il valait mieux prendre un peu plus de temps à faire des recherches, plutôt que d’essayer tous les plugins et faire toutes les erreurs soi-même. Si on ne peut pas empêcher les erreurs d’arriver, on peut tout de même les limiter fortement. De plus, cela m’a permis d’acquérir une certaine autonomie vis-à-vis du personnel d’ITS car de cette manière je pouvais apprendre par moi-même. Ensuite venaient les phases d’installation et de tests. La plupart du temps, quand je m’étais correctement documenté, ces deux parties allaient vite.

Parfois aussi, les demandes des utilisateurs n’étaient pas solvables par des plugins. C’était donc à moi d’ajouter de nouvelles fonctionnalités soit en créant un plugin, soit en modifiant un plugin déjà installé, soit en modifiant directement les fichiers PHP du site. La première difficulté dans ce dernier cas était de trouver quel était le fichier à modifier, et ensuite comment.

Dans le cas des problèmes liés aux plugins, la méthode de résolution était toujours la même : je faisais des recherches sur internet en croisant les avis des utilisateurs s’ils avaient déjà rencontré ce problème. Dans le cas où cela ne suffisait pas, je demandais à Philippe Boutarin et/ou Lucile Alteyrac s’ils savaient directement, ou bien s’ils avaient des idées que je n’avais pas déjà eues moi-même pour identifier ou résoudre le problème. Parfois il suffisait de revenir le lendemain. Bizarrement se détacher d’un problème est souvent productif. Dans le cas où tout cela ne suffisait pas et ou le problème pénalisait vraiment l’utilisateur, je supprimais la source du problème et essayait de trouver un substituant.

Dans les paragraphes qui suivent, seuls les plugins retenus sont indiqués. La liste des plugins testés se trouve en annexe (cette liste est incomplète car il y a quelques plugins que j’ai testés pour finalement les supprimer aussitôt, et je n’ai pas toujours pris le temps de remplir cette liste).

2.2) Développement

a) Configuration initiale de WordPress

Philippe Boutarin étant déjà auteur de trois sites basés sur WordPress (non multi utilisateurs), un script permettant de générer les fichiers requis sur un serveur Linux hébergeant le site était déjà créé. Je n’ai donc eu qu’à configurer WordPress, c'est-à-dire créer le fichier wp-config.php (sachant qu’un aperçu était déjà disponible).

Celui-ci requiert les informations suivantes :

- nom de la base de données mysql utilisée pour le stockage des articles, informations sur les utilisateurs, etc…

- login de l’administrateur de la base de données

- mot de passe de la base de données

- l’adresse du serveur sur lequel est implantée la base de données (en l’occurrence la base de données et le site se trouvent sur le même serveur)

- un ensemble de clés récupérables depuis internet (Réf [2]).

En raison d’un problème de mémoire avec le plugin de gestion des droits, la limite de mémoire allouée à WordPress a été élevée à 64M (Cf. plugin Role Scoper). On ajoute donc la ligne suivante : “define('WP_MEMORY_LIMIT', '64M');”

b) Gestion des droits des utilisateurs

La première chose à faire est d’ajouter des utilisateurs. Il suffit de remplir les champs, de sauvegarder puis d’éditer le profil pour changer le rôle en « no role for this site » et enlever la barre administrateur en décochant « show admin bar ».

Droit de lecture, d’écriture de posts et d’ajout de catégories

J’ai utilisé le plugin « role scoper » permettant la gestion des groupes et des droits utilisateurs. (Site officiel Réf [3])

L’installation du plugin ne pose pas de problème mais il est possible d’obtenir cette erreur par la suite : « Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 92160 bytes) in …. »

Pour régler cela, on peut modifier le fichier wp-config.php en ajoutant cette ligne : « define('WP_MEMORY_LIMIT', '64M'); » ou alors supprimer certaines options inutiles dans « Roles » > « Options ». (Plus d’infos Réf [4]).

Ensuite, dans l’onglet « restrictions » de la dashboard.

Dans « catégories », j’ai mis « Post reader » en restricted, pour toutes les catégories du blog. (J’ai laissé tout le reste en unrestricted).

Dans « pages », j’ai mis « Page reader » en restricted, pour toutes les pages du blog. (J’ai laissé tout le reste en unrestricted).

Dans « link categories », j’ai mis « Link reader » en restricted, pour toutes les catégories de liens du blog (j’ai laissé tout le reste en unrestricted).

Sinon, j’ai laissé les « posts » et « categories menus » en unrestricted.

Puis dans Users, on crée les groupes en fonction des besoins. On ne crée pas de modérateurs ou d’administrateurs de groupes.

Ensuite, créer le rôle qui sera spécifique aux utilisateurs de l’ELN, à savoir celui d’auteur. Pour cela, il faut aller dans Roles > Options > Rs Role Definitions. On empêche alors les auteurs de supprimer un post publié (de la même manière qu’un auteur de cahier de laboratoire n’est pas autorisé à arracher une page d’un cahier), et on autorise l’édition des posts des autres. C’est utile lorsqu’un cahier est commun à plusieurs auteurs comme c’est le cas pour les cahiers de projets par exemple.

[pic]

Puis dans Rôles > Catégories/Pages ou Links, on attribue les rôles comme on le souhaite (Aide utile : Réf [5]).

Exemple :

[pic]

Remarque 1 : un nom d’utilisateur ou groupe entre accolades ‘{‘ signifie que celui-ci a été ajouté à une catégorie parente avec l’option « assign for selected and sub-categories ». Cela permet d’automatiser l’attribution des droits lors de l’ajout d’un cahier, plutôt que d’attribuer les droits à chaque ajout de cahier.

Remarque 2 : pour qu’une personne puisse lire les articles d’une catégorie (exemple : Catherine Voegele veut lire le cahier de Lucile Alteyrac) il ne suffit pas de cocher « Reader post : voegeleca » dans la catégorie « Cahier de Lucile Alteyrac », il faut aussi l’indiquer dans la catégorie parente (groupe ITS dans ce cas). Pour autant, cela ne signifie pas que Catherine sera autorisée à lire tous les cahiers de la catégorie parente.

Remarque 3 : « Role scoper » permet vraiment de sécuriser la lecture des pages, et pas seulement de cacher les liens à l’utilisateur. Par exemple, le cahier de Lucile est à l’adresse . Si l’on rentre cette adresse en étant logué sous le pseudo chabriera (Amélie Chabrier), on obtient ce résultat :

”Nothing Found. Apologies, but no results were found for the requested archive. Perhaps searching will help find a related post”.

Difficultés rencontrées: La configuration de ce plugin est assez délicate, il y a énormément d’options. Au départ, j’ai souvent été tenté de trouve une alternative plus simple, mais au final, une fois maîtrisé, ce plugin est vraiment très puissant et répond aux besoins du CIRC. C’est surtout du temps et de la patience qu’il m’a fallu. A travers de multiples tests, faire le tour des fonctionnalités m’a demandé environ deux jours.

Droit de commenter

Par défaut :

- On ne peut pas donner le droit ou non de commenter. Sur WordPress, il s’agit d’un droit basique à tout utilisateur qui peut lire et qui est logué.

- On ne peut pas faire en sorte qu’un utilisateur puisse commenter une page en particulier et pas les autres.

- On ne peut pas faire en sorte qu’une page soit commentée par tel ou tel utilisateur.

- Celui qui commente ne peut pas supprimer son propre commentaire.

- Un utilisateur peut commenter toutes les pages/posts qu’il peut lire.

- Un auteur de post peut supprimer tous les commentaires des autres sur son post.

- Un auteur de post peut éditer les commentaires des autres sur son post.

- On peut empêcher un article d’être soumis à des commentaires (un article, pas une catégorie), mais seul l’administrateur peut le faire : pas même l’éditeur (Post désiré > quick edit > décocher « allow comment »).

Pour rajouter des fonctionnalités, j’ai installé le plugin « U Ex-Comment » permettant de rajouter des fonctionnalités utiles aux blogs multi-auteurs, en ce qui concerne les commentaires.

[pic]

J’ai autorisé la suppression, l’édition de commentaires avec éditeur de texte et la possibilité d’attacher des fichiers, conformément aux besoins des utilisateurs.

c) Sécurisation du blog

Sur les conseils de Philippe Boutarin, j’ai utilisé le plugin  « Login Configurator » pour empêcher les visiteurs étrangers d’accéder au blog, et obliger les utilisateurs à se logger.

[pic]

d) Mise en place d’une page ‘home’ statique

Par défaut, la page home contient les derniers posts publiés. Elle permet donc à n’importe quel utilisateur de voir les articles de n’importe qui. Or ceux-ci peuvent appartenir à des catégories que l’utilisateur en question n’est pas autorisé à voir. Il faut donc mettre une page « home » statique.

Comment enlever l’affichage des posts récents sur la première page et garder les catégories dans un encadré à droite ?

1 – Créer son menu (Par défaut il y a Home dans le menu. Il s’agit donc de la page qui pose problème). Pour cela, aller dans Appearance -> Menus, Créer un menu en spécifiant les pages voulues pour ce menu. Il faut donc avoir créé ses pages au préalable. En cas d’ajout de pages, il faudra penser à les ajouter au menu si on le souhaite.

Sélectionner le nouveau menu dans « Primary Menu », puis ajouter les pages (ou même des catégories) que l’on souhaite.

2 – Il faut choisir la page d’accueil. Editer cette page et choisir le Template « Sidebar template » (Permet d’afficher la sidebar que l’on spécifie dans l’étape 3).

3 – Aller dans Appearance -> Widgets -> et dans main Sidebar, sélectionner la catégorie. Pour afficher les sous catégories, cocher « show hierarchy ».

4 – Dans Settings –> Reading, cliquer sur le bouton radio « a static page » et choisir votre page d’accueil dans la liste déroulante « Front page ». Si on veut une autre page avec les derniers éléments, l’indiquer dans la liste « Posts page ».

e) Installation du thème

Thème choisi : Atahualpa 3.7.1.

L’avantage de ce thème est d’être vraiment très configurable, pour peu que l’on soit un minimum familier avec le CSS.

Configuration

Appearance -> Atahualpa Theme options.

La configuration est présente dans un fichier texte exporté, il suffit de copier l’intégralité du contenu de ce fichier dans le cadre de la page « Export, import settings ».

L’image du header.

Lorsque l’on est dans un cahier, l’utilisateur doit avoir un titre « Table of contents » pour comprendre qu’il s’agit de l’ensemble des pages de son cahier. Pour cela j’ai changé l’image du header. J’ai choisi de modifier le fichier qui permettait à l’origine de tirer aléatoirement une image parmi celles contenues dans le dossier /wp-content/themes/ atahualpa/images/header/.

Le principe est le suivant. J’ai récupéré l’url de la page : si l’url contient « category », alors on est sur la « table of contents » et on affiche l’image en conséquence. Sinon on affiche l’image par défaut. Le code est présent en annexe.

Le tri de la « table of contents »

Les utilisateurs ont demandé à pouvoir trier les liens vers les pages dans la « table of contents » (par titre, date…). J’ai donc modifié le fichier php permettant l’affichage des titres des pages d’un cahier. Le code est présent en annexe.

f) Installation du menu

La configuration du menu se fait dans les paramètres WordPress et non pas dans Atahualpa : Appearance -> Menus

Il n’y a rien de compliqué, on crée son menu, puis on ajoute les pages Home, User guide, Advanced Search et Suggestions/Ideas.

On indique ensuite dans les options d’Atahualpa, la page sur laquelle on affiche le menu.

g) Les sidebars

Les sidebars correspondent aux menus présents sur les cotés à gauche et à droite du site. (Cf. partie 2.3)

Sidebar de gauche

L’ELN présente un grand nombre de catégories, sous-catégories et mêmes sous-sous-catégories. Par défaut, les catégories sont toutes affichées, et on peut accéder à toutes. Ainsi, en cliquant sur la catégorie GCS, on peut voir tous les titres des pages de tous les cahiers de tous les utilisateurs du groupe. Or certains utilisateurs n’ont pas à voir les titres des pages auxquelles ils n’ont pas accès. Pour cela, j’ai installé le plugin « Collapsing catégorie » : en cliquant sur une catégorie parente, on n’y accède pas mais on dévoile la ou les catégories enfants. De plus, cela évite de surcharger la sidebar avec un nombre élevé de catégories. L’utilisateur choisit de dévoiler ce qu’il souhaite et les cookies sauvegardent son choix pour un futur accès au site.

Problème rencontré

En choisissant l’option qui permet de montrer une catégorie même si elle est vide, un bug apparaît : certaines catégories sont visibles et d’autres non. Je n’en ai pas trouvé la raison. Ce n’est en soit pas un problème car dans une catégorie vide, il n’y a rien à voir. Il faut donc ajouter une première page pour voir apparaître les catégories dans la sidebar.

Voici la configuration du plugin :

[pic]

[pic]

Le deuxième élément de la sidebar est du texte html. Il s’agit d’un simple formulaire, venant du plugin « Post notification ». Ce plugin permet aux utilisateurs d’être avertis par e-mail lors de l’ajout de pages sur les cahiers de leur choix.

[pic]

Configuration

La configuration par défaut est suffisante. En revanche à chaque ajout d’utilisateur, celui-ci est automatiquement notifié de toutes les pages ajoutées. Il faut donc penser à supprimer les utilisateurs de la liste, ceux-ci se rajouteront eux-mêmes lorsqu’ils en auront envie.

Difficulté rencontrée : Le plugin « role scoper » cache aux utilisateurs les catégories auxquelles ils n’ont pas accès, mais il y a un effet pervers.

Par exemple, imaginons une catégorie A contenant les sous catégories 1, 2 et 3, ainsi qu’un utilisateur ne voyant que les catégories A, 1 et 2 car les droits de lecture sur 3 lui sont refusés. Si l’utilisateur veut être notifié pour les catégories 1et 2, alors il lui suffit de cocher A. Mais A englobe aussi la catégorie 3, de fait que l’utilisateur sera averti des ajouts de page de la catégorie 3, qu’il ne pourra pourtant pas voir. J’ai donc modifié le code du plugin, pour aboutir à la résolution suivante :

[pic]

Ainsi, toutes les cases à cocher des catégories parentes ont été désactivées, de sorte que les problèmes n’ont plus lieu. Les modifications de code sont présentées en annexe.

Sidebar de droite

La sidebar de droite contient un ensemble de catégories de liens utiles aux différents groupes. Par défaut les liens sont tous mis en « restricted » par le plugin « role scoper ». Il faut donc ne pas oublier d’assigner les droits sur les catégories de liens.

Les utilisateurs m’ont demandé la possibilité de changer l’ordre des liens. J’ai donc installé le plugin « My Link order ». Pour chaque catégorie de liens, on ajoute un widget que l’on configure.

[pic]

Configuration :

On indique la catégorie de liens à inclure (par son identifiant), et on coche la case « Show Link Name ».

h) Editeur de post

Pour permettre aux utilisateurs d’écrire du HTML sans se soucier de connaître le langage, il existe un éditeur de texte par défaut mais celui-ci n’est pas très complet. Le plugin « CKEditor for WordPress » offre des fonctionnalités plus avancées.

Les utilisateurs ont demandé à pouvoir insérer automatiquement des modèles (« template ») de pages pour les cahiers de laboratoires, et les cahiers de maintenance matérielle. Il était impossible de trouver un plugin déjà prêt faisant exactement cela. J’ai donc fait des recherches qui m’ont permis de créer moi-même un bouton dans la barre d’outils de CKEditor. Le code est présent en annexe.

En cliquant sur le bouton encadré en rouge par exemple, le texte est directement inséré. De même pour le bouton de gauche utilisé pour le « Template » de laboratoire.

[pic]

i) Modification du type de liens

Il existe une option qui permet d’avoir des liens explicites plutôt que des identifiants.

Tout d’abord, il faut créer un fichier vide nommé .htaccess à la racine du site (ici web-test).

Puis on va dans Settings -> Permalinks et dans Common settings: custom structure: on écrit /%author%/%year%-%monthnum%-%day%/%postname%/

j) Autres Plugins

Plugin « Dynamic to top »

Il permet d’afficher une flèche lorsque l’utilisateur est descendu de 700 pixels (ou plus) dans la page (ce qui correspond à 7 coup de molettes sur la souris) pour remonter en haut de page.

[pic]

Plugin « Post Revision Display »

Une des particularités des cahiers papiers par rapport aux électroniques, est que toute modification sur papier laisse des traces. Certains utilisateurs ont demandé à ce qu’il y ait un historique des modifications apportées sur les pages. J'ai donc installé le plugin « Post revision display » qui sert justement à cela.

[pic]

En cliquant sur la date d’une version, on obtient des détails sur les différences de code HTML entre cette version et la version antérieure.

[pic]

Plugin « WP-Pagenavi »

Un cahier peut contenir des dizaines et des dizaines de pages. La page (il s’agit de la « table of content ») affichant l’ensemble des liens vers les pages de l’ELN peut donc vite devenir encombrée.

Pour cela, j’ai installé le plugin WP-Pagenavi permettant d’alléger la « table of content ».

[pic]

La version de plugin installée est la version 2.74 car la dernière version ne fonctionnait pas. On indique le nombre de pages que l’on souhaite afficher dans « Settings » > « Reading » puis « Blog pages show at most ».

Il faut aussi ajouter la ligne suivante : « wp_pagenavi(array('type' => ‘multipart’) ); » dans le fichier modèle du thème, c’est à dire index.php.

Plugin « Category reminder »

Par défaut, lorsqu’un utilisateur clique sur « Publish » et oublie d’assigner une catégorie à une page, celle-ci est publiée dans une catégorie nommée « unassigned ». Or dans l’ELN, les utilisateurs n’ont aucun droit sur cette catégorie pour des raisons de sécurité d’information. De ce fait, s’ils oublient d’assigner une page, une erreur est retournée et l’utilisateur perd toutes les modifications qu’il a effectuées. Le plugin « category reminder » sert donc à empêcher un utilisateur de publier quoi que ce soit, tant qu’il n’a pas choisi de catégorie.

Plugin «  Search by category »

Ce plugin sert à effectuer une recherche précise, en fonction des catégories.

[pic]

Pour le configurer, il suffit de créer une page et d’y ajouter la balise [sbc] après avoir activé le plugin.

Plugin « Redirection »

En jouant avec les URL, les utilisateurs peuvent voir s’afficher tous les titres et liens vers les pages des catégories parentes. Par exemple, prenons les utilisateurs A et B de ma catégorie group1 :

- l’utilisateur A possède un cahier à l’URL

- l’utilisateur B possède un cahier à l’URL

Si l’utilisateur entre l’URL , alors il peut voir l’intégralité des pages de A et de B. Avec le plugin redirection, on redirige l’utilisateur vers une autre page s’il rentre cette URL.

2.3) Rendu

Voici le site tel qu’il est dans sa version finale. Il s’agit uniquement des fonctionnalités principales.

Page d’accueil

[pic]

Sur la gauche, on trouve les notebooks accessibles en lecture par l’utilisateur ainsi qu’un formulaire lui permettant de « s’abonner » aux cahiers des autres personnes. 

Sur la droite, un ensemble de liens utiles. La catégorie « management » permet plusieurs actions à l’utilisateur :

- ajouter une page,

- regarder les commentaires qu’il a reçus,

- demander un nouveau cahier,

- éditer son profil (changer son mot de passe, ses préférences WordPress…).

La catégorie « nom du groupe »  links est un ensemble de liens spécifiques au groupe en question. Il s’agit souvent de liens vers des applications web sur lesquels ils travaillent.

Le menu du haut permet d’accéder aux pages fixes du site. On y trouve :

- La page « Home » ou page d’accueil. (Il s’agit de celle de la capture d’écran ci-dessus).

- La page « User guide » qui regroupe un ensemble de liens vers d’autres pages qui sont en fait des tutoriels.

- La page « Advanced search », permettant aux utilisateurs de faire une recherche dans la catégorie de leur choix.

- La page « Suggestions/Ideas » est utile pour centraliser les commentaires des utilisateurs souhaitant de nouvelles fonctionnalités, ayant trouvé des bugs, etc.

Table of contents

[pic]

La table of contents ou table des matières en français, permet de visualiser l’ensemble des titres et informations (tels que la date de publication, l’auteur) des pages d’un cahier.

Editeur

[pic]

L’éditeur permet aux utilisateurs d’écrire du HTML comme s’ils écrivaient du texte sur Word. Ils indiquent dans l’encadré de droite dans quels cahiers ils souhaitent insérer leur page. Ils peuvent aussi choisir de sauvegarder leur brouillon pour publier plus tard.

Le contenu d’une page

Le contenu des pages est propre à chaque utilisateur. En revanche la plupart respectent certaines règles d’uniformisation. De manière générale, on y trouve:

▪ En haut de page, le nom de l’auteur suivi du nom du cahier dans laquelle la page se trouve. Le titre est juste en dessous.

▪ En bas de page, l’ensemble des modifications apportés aux pages dans « posts revisions ». Puis la fenêtre permettant de commenter la page.

▪ Le corps de la page en 3 parties distinctes :

- objectives (purpose)

- materials, methods

- results

[pic]

[pic]

[pic]

3) Réalisation d’une application Java pour migrer des données HTML

A mon arrivée au CIRC, l’ELN ORNL (Réf [19]) était déjà en cours d’utilisation par 5 utilisateurs. Nivonirina Robinot était en charge de cet ELN, c’est elle qui effectuait des améliorations au fur et à mesure de son travail.

Afin de récupérer le travail effectué sur cet ELN dans le nouvel ELN, j’ai commencé à réaliser un logiciel Java pour formater les pages html de l’ancien ELN en pages html compatibles avec le nouvel ELN.

Ce fut aussi un excellent moyen de motiver les utilisateurs à migrer sur le nouvel ELN.

3.1) Conception

Pour formater les fichiers, il fallait évidemment savoir de quelle manière. Et pour cela, il fallait trouver un plugin permettant d’importer des fichiers HTML vers WordPress. Après quelques recherches il s’est avéré que le plugin « HTML import 2 » faisait parfaitement l’affaire.

Suite à ça, après avoir analysé les spécificités des pages de l’ancien ELN, j’ai pu dégager ce qu’il fallait faire :

▪ Renommer les fichiers en fonction de leur type. Les fichiers (images, html, PDF) sont tous sans extension particulière (844848.262 par exemple) mais il existe un index répertoriant leurs types.

▪ Renommer les fichiers html par auteur. Cela facilitera grandement l’importation.

▪ Changer le titre des fichiers et ajouter la balise pour que WordPress puisse les reconnaitre.

▪ Ajouter des sauts à la ligne pour avoir une mise en page respectée.

▪ Modifier les liens vers les images, fichiers et autres pages.

▪ Indiquer lorsque des liens ne sont pas actualisables et en indiquer les raisons.

La grosse difficulté est venue du fait qu’il existait des caractères de l’ancien ENL qui sont inconnus dans le langage HTML, et donc difficilement substituables. La raison est sans doute le fait que l’ancien ELN était écrit en CGI Perl (il s’agit de langages assez anciens).

Je n’ai pas choisi de faire de modélisation de données, car il n’y avait pas besoin de base de données dans ce logiciel. De plus, l’essentiel des fonctionnalités ne me semblait pas trop compliqué au départ.

3.2) Développement

a) Outils et méthodes de travail

J’ai commencé à travailler sur Netbeans car l’IUT m’avait familiarisé avec l’interface d’édition des fenêtres, et dans le cas présent il s’agissait bien de réaliser une fenêtre. Mais un stage est aussi propice à l’apprentissage et sur les conseils de Lucile Alteyrac, je me suis mis à Eclipse. Cela m’a permis de voir si j’étais capable de m’habituer rapidement à un nouvel environnement de travail. Durant cette phase du stage, j’ai pu apprendre de nombreuses choses qui me manquaient réellement en programmation : debugging, raccourcis claviers, templates de code, et surtout un ensemble de bonnes pratiques.

Ainsi, une fois que mon programme fut fonctionnel, je n’ai pas cessé d’améliorer le code, chose qui m’a été vraiment utile. En effet, même si le programme était initialement fonctionnel, Nivonirina Robinot (l’utilisatrice de l’ancien ELN qui m’avait donné un de ses cahiers pour que je fasse le programme) m’a demandé certains ajouts. Avec un code propre et bien organisé, les ajouts étaient très simples à réaliser, ce qui n’aurait sûrement pas été le cas autrement.

Je n’ai pas eu de gros problème dans l’ensemble.

b) Architecture du programme

Cette partie étant purement technique et nécessitant des connaissances en programmation, son contenu est présenté en annexe.

3.3) Utilisation

a) Formatage des fichiers

Voici le programme à utiliser :

[pic]

Dans WordPress, les pages ont une URL du type :



Il faut donc que l‘utilisateur rentre des informations comme la date d’importation (qui correspondra à la date de publication) et le nom d’utilisateur WordPress de l’auteur pour générer les liens entre les pages. Il faut aussi indiquer le chemin des fichiers attachés (PDF, images…) pour générer les liens vers les fichiers.

L’utilisateur a aussi la possibilité de choisir s’il souhaite ouvrir les liens dans de nouveaux onglets ou non.

Ensuite, dans l’ordre, on renomme par type ou par auteur, puis on modifie le HTML. Si les fichiers n’ont pas été au préalable renommés par type, alors on ne peut pas modifier le html des pages.

b) Configuration du plugin HTML Import

Le plugin « HTML import » permet d’importer des fichiers html vers WordPress. La configuration est simple.

Dans l’onglet Content, on choisit « Select content by » tag puis on écrit « body» et on supprime « id » et « content ». On désactive la case « Use meta description as Excerpt ». Un bug d’affichage apparaît sinon dans la « table of content ».

Dans l’onglet Metadata, on choisit d’importer les fichiers en tant que posts, et on choisit l’auteur. Celui-ci doit avoir le rôle d’administrateur WordPress.

Puis dans taxonomies, on choisit la catégorie dans laquelle on souhaite importer les pages.

Un des problèmes rencontrés dans la configuration de ce plugin, est l’incompatibilité avec le Plugin « CKEditor. »  Il faut donc temporairement désactiver ce plugin pour pouvoir utiliser « HTML import ». Une autre solution qui semble exploitable est de sélectionner l’onglet HTML editor dans « add new post », et de revenir sur la page d’ « HTML import ». Dans ce cas il n’est pas nécessaire de désactiver le plugin.

c) Migration des données

II faut auparavant avoir installé et activé le plugin « Maintenance mode » sans quoi il y a un risque élevé d’erreurs (selon la documentation en tout cas, je n’ai personnellement pas pris le risque de les contredire).

Ensuite, on copie tous les fichiers attachés dans un répertoire dont on a indiqué le chemin dans l’étape a). Il s’agit d’un répertoire présent sur le serveur bien sûr. Puis on copie les pages d’un seul cahier à l’adresse indiquée dans les paramètres du plugin HTML import. Ici il s’agit de /home/eln/web-test/html-files-to-import. Il ne reste plus qu’à cliquer sur le bouton « submit » dans l’onglet Tools > import de WordPress. On réitère l’opération consistant à copier les fichiers html pour chaque cahier.

4) Administration de l’ELN

Une fois l’ELN lancé, il y a toujours du travail.

La première chose consiste en l’aide aux utilisateurs. J’ai rédigé quelques tutoriels et Lucile Alteyrac a fait de même, mais il en faudrait d’avantages. Il y a aussi la « hotline ». J’ai par exemple reçu quelques coups de fils d’utilisateurs qui se posaient des questions, voulaient savoir comment faire quelque chose, détectaient des bugs et voulaient savoir si c’était normal, ou bien ne détectaient pas de bugs mais le croyait et voulaient donc savoir si c‘était normal quand même.

La deuxième chose justement consiste en la correction et l’amélioration de l’ELN. C’est au cours de l’utilisation que de nouveaux besoins vont se créer, que de nouveaux bugs vont être détectés. C’est à l’administrateur du site de régler tout cela. Pour ma part, je n’ai pas eu trop de problèmes car les utilisateurs n’ont réellement commencé à utiliser l’outil que début Janvier, et mon stage s’est terminé le 13.

Ensuite, c’est à l’administrateur d’ajouter les cahiers quand les utilisateurs le demandent. De plus, le CIRC reçoit de nombreux visiteurs et stagiaires tout au long de l’année (ou même de nouveaux salariés) : il faut donc ajouter de nouveaux utilisateurs et les droits qui leur conviennent, et les initier à l’ELN.

III) Bilan

1) Bilan technique

D’un point de vue technique, j’estime que ce stage est pour moi une réussite.

Sans pour autant découvrir de nouveaux langages, j’y ai acquis de nouvelles connaissances en PHP, JavaScript et en Java. Lucile Alteyrac ayant une bonne expérience en Java, elle m’a permis d’améliorer mes habitudes de programmation et m’a fait découvrir de nouveaux outils. J’ai aussi beaucoup appris par moi-même, notamment en PHP où mon niveau était insuffisant. Malgré cela, j’ai réussi à faire par moi-même ce que l’on me demandait avec de bonnes méthodes de travail.

J’ai aussi eu à m’adapter à un nouvel outil : WordPress et j’y suis parvenu rapidement. Je garderai une très bonne opinion de cet outil que je n’hésiterai pas à utiliser dans le futur, si j’en ai l’occasion.

Mais ce que ce stage m’a sans doute le plus apporté, c’est la recherche permanente de solutions. Que ce soit dans l’étape de conception, développement, ou même administration, j’ai toujours été confronté à une question – un problème – un besoin, auquel il fallait répondre. Il a été rare qu’immédiatement, je sois capable de savoir quelle direction prendre pour y répondre. En revanche, à la fin de mon stage, je me sentais beaucoup plus à l’aise et efficace à ce niveau. C’est à force de s’y confronter que j’ai gagné en rapidité, et je pense que ceci est valable dans n’importe quelle branche de l’informatique. Ce stage m’a clairement fait gagner en persévérance, et la satisfaction de la réussite est d’autant plus importante que l’on est celui qui a trouvé la solution.

Enfin et surtout, j’ai eu la chance d’aborder un projet du début jusqu’à la fin, c'est-à-dire de sa phase de conception jusqu’à la mise en production. C’est extrêmement intéressant, et chaque phase du projet m’a plu. De cette manière je pense pouvoir dire qu’aujourd’hui je cerne un peu mieux les enjeux de chaque partie d’un projet informatique. Je n’ai malgré tout pas été confronté à un travail d’équipe avec toutes les contraintes précises de partage de travail, avec l’utilisation de logiciel de gestion de version, etc. Il me reste donc encore pas mal de choses à apprendre dans le déroulement d’un projet informatique.

2) Bilan humain

Dès le début de l’entretien avant même d’être accepté, je me sentais paradoxalement à l’aise malgré un trac évident. L’ambiance au centre m’a donc agréablement surpris dès mon arrivée. Elle s’est d’ailleurs confirmée tout au long de mon stage.

Le CIRC étant un centre international, j’ai eu l’occasion de présenter mon travail en anglais devant un groupe. C’est une expérience que je n’aurai sans doute pas tous les jours et que j’apprécie avoir eue.

Une aide m’était toujours accordée qu’en j’en avais besoin, et de nombreux bons conseils m’ont aidé à gagner en efficacité. Une chose qui me paraît importante et que j’ai vraiment apprécié, est que l’équipe ITS et même les membres des groupes de recherche se sont véritablement intéressés à mon travail. C’est une grande source de motivation qui m’a permis de venir à bout de mes objectifs.

J’ai aussi découvert les préoccupations d’un service informatique au sein d’une organisation aussi importante que celle du CIRC. Aujourd’hui toute entreprise ou organisation repose, de près ou de loin, sur les technologies informatiques. Avec 200 employés, le service ITS a fort à faire pour satisfaire tous les utilisateurs. Cette approche était vraiment très intéressante, et m’a permis de mieux cerner les rapports entre utilisateurs et informaticiens.

Enfin, en plus des contacts entre informaticiens en ce qui concerne les travaux purement informatiques, j’ai eu moi-même de nombreux et riches échanges avec les utilisateurs. Je me suis d’ailleurs rendu compte qu’ils ont souvent le recul nécessaire (que je n’ai pas forcément), pour analyser mon travail sous un angle différent. J’ai aussi été vraiment surpris par la perspicacité de certains.

3) Bilan professionnel

L’entrée en IUT informatique s’est fait sur un « coup de tête ». A l’époque j’étais certes intéressé par ce domaine, mais je ne pensais pas m’en faire une vocation. Mais finalement, plus j’avance dans le temps, plus je me félicite dans ce choix. Ce stage en entreprise s’est révélé être une très bonne expérience que je n’hésiterai pas à faire valoir dans une future candidature. C’est d’ailleurs une des premières choses que je souhaitais en recherchant mon stage.

Ce stage est ma première expérience dans le monde informatique. Mes anciens postes se résumant à des emplois saisonniers dans les domaines agricoles et arboricoles, j’ai pris très à cœur mon travail. Le fait d’avoir fait des travaux un peu pénibles dans le passé m’a permis d’apprécier ma situation au sein du CIRC.

Du coup, cette expérience a été l’occasion de découvrir le monde « classique » de l’entreprise, avec des projets articulés autour d’objectifs précis, des services ayant chacun leur rôle à jouer dans le bon déroulement de l’entreprise, etc. Le groupe ITS en fait clairement partie.

4) Rapport iut (apprentissage) / entreprise

Le stage au CIRC m’a convaincu que les matières qui nous sont enseignées à l’IUT sont en adéquation avec le monde du travail. Je pense que le fait qu’il y a deux ans, j’étais un complet novice en matière d’informatique, et qu’aujourd’hui je suis finalement capable de faire un travail apprécié dans le monde professionnel le prouve.

Il est évidemment impossible de parcourir tous les sujets imaginables et abordables en stage, mais l’IUT offre quand mêmes les clés pour se sortir de la plupart des situations rencontrées en entreprise. Un peu de débrouillardise est tout de même nécessaire pour faire preuve d’autonomie.

Je me rends compte aussi qu’un apprentissage personnel est un vrai plus. Ma curiosité à l’égard des nouvelles technologies m’a même aidé dans ce cadre professionnel car il y a certains éléments de mon stage qui m’étaient familiers même si je ne les avais pas rencontrés dans le cadre de l’IUT.

Conclusion

Je pense que ce stage est une très bonne expérience, à la fois intéressante et enrichissante. Il m’a permis de réaliser un travail en entreprise dans le domaine informatique en mettant en application les connaissances acquises au sein de l’IUT.

Ce stage a d’abord été une véritable expérience professionnelle dans laquelle il faut s’intégrer, découvrir un nouvel environnement, prendre de nouvelles habitudes de travail... Le fait que ce stage dure 10 semaines est un plus, il nous permet de prendre une place non négligeable dans l’entreprise. Je pense que ceci aurait été moins vrai dans le cas d’un stage de plus courte durée.

En ce moment, l’ELN est utilisé par 2 groupes de recherches, avec un total de 25 utilisateurs. Mais mon travail ne s’arrête pas complètement le 13 Janvier. J’aurais l’occasion de revenir présenter l’outil fin janvier à l’ensemble du CIRC lors d’un ‘science café’ car le but est que progressivement le papier disparaisse et que toute l’agence utilise la version électronique. De plus, il reste encore des améliorations à effectuer, et de futures évolutions à apporter comme l’export de pages en PDF, l’amélioration de la lisibilité des révisions de pages… Ce projet informatique n’est pas figé, l’ajout de futurs utilisateurs va le faire vivre et dans cette optique, l’outil WordPress est adéquat.

Je tiens encore une fois à remercier l’ensemble de l’équipe d’ITS pour leur excellent accueil, ainsi que toutes les personnes qui m’ont accompagné dans mon travail.

Et je finis par également remercier l’ensemble de l’équipe pédagogique du département informatique de l’IUT pour leur engagement auprès des étudiants.

Références

Réf 1 : Article sur la construction d’un ELN open source avec WordPress.

Réf 2 : Clés pour la configuration de WordPress.



Réf 3 : Site officiel du Plugin « Role Scoper ».



Réf 4 : Informations quant au problème de mémoire lié au plugin « Role Scoper ».



Réf 5 : Aide utile pour l’utilisation du Plugin « Role Scoper ».

)

Réf 6 : Exemple d’utilisation du CMS WordPress en tant qu’ELN



Réf 7 : Site officiel de l’ELN myLabBook



Réf 8 : Site officiel de l'ELN Cynote



Réf 9 : Téléchargement de la documentation de Cynote.



Réf 10 : Site officiel du Notebook Electronique The Monster Journal



Réf 11 : Site officiel de l'ELN Electronic Laboratory Notebook



Réf 12 : Vidéo de démonstration de l'ELN Electronic Laboratory Notebook



Réf 13 : Site officiel de LabBook



Réf 14 : Site officiel de l'ELN myExperiment



Réf 15 : Vidéo de présentation de l'ELN myExperiment



Réf 16 : Discussion à propos d'un problème en rapport avec le Plugin Pdf24



Réf 17 : Discussion sur un problème lié au plugin Anthologize



Réf 18 : Site officiel de l’ELN ORNL



Réf 19 : Autres plugins à propos des PDF à tester



ANNEXE 1 – Recherche sur les ELN

ELN basé sur des outils de blog

Wordpress (CMS)

Cet outil permet de créer un blog et de le configurer comme on le souhaite à l’aide de plugins. Il peut être utilisé pour des ELN. Pour des exemples d’utilisation, voir Réf [1] et [6].

MyLabBook

Site officiel : Réf [7]

Cet outil est gratuit et open source. Il est basé sur le CMS Drupal.

Il y a une gestion multi utilisateurs et un système d’échanges.

ELN similaires à l'outil déjà utilisé au CIRC (ORNL)

Cynote

Site officiel : Réf [8]

Cet outil est gratuit, open source et écrit en Python.

Voici les fonctions générales :

- Créer plusieurs notebooks pour séparer un projet

- Insertion de commentaires/fichiers possibles

- L’administrateur peut autoriser ou non des utilisateurs

- Calcul de statistiques

- En plus il y a certains modules bioinformatiques

Télécharger la documentation : Réf [9]

Le principal problème de cet outil est le manque de clarté des pages générées (une page de cahier de labo doit être claire tout de suite)

The Monster Journal

Site officiel : Réf [10]

Cet outil est gratuit, écrit en Open source CGI Perl. Le support semble inexistant.

“The Monster Journal - An electronic journaling program to replace the paper notebook. The Monster Journal provides the user a centralized, easily accessible electronic notebook for storing thoughts, ideas, and answers to questions.”

Electronic Laboratory Notebook

Site officiel: Réf [11]

Vidéo de démonstration Réf [12]

Cet outil est gratuit et open source mais n’est plus en développement, il n’y a donc plus de support.

Voici les fonctions générales :

- Accès au Notebook via internet

- Notebooks séparés en chapitre, puis en pages

- Editeur de texte, caractères spéciaux (pour les molécules par exemple)

- Capture d’image et interface pour annoter les images.

- Editeur d’équations

- Upload de fichiers

[pic]

LabBook

Site officiel Réf [13]

Cet outil est gratuit, Open source, et fonctionne sous Perl (framework catalyst).

Il n’y a pas de séparation interface/web.

L’insertion de titres, textes, images et l’upload via internet est possible.

[pic]

MyExperiment

Site officiel : Réf [14] (open source)

Vidéo de présentation Réf [15]

ANNEXE 2 - Plugins

Ce document rend compte des différents plugins testés (ou simplement trouvés) pour la réalisation du blog eln.iarc.fr. En réalité, beaucoup d’autres ont été testés, mais les informations retenues sont surtout celles qui pourraient éviter des recherches ultérieures au futur administrateur de l’ELN.

Plugins sur la gestion des droits

Role manager (non testé)

Il existe 5 utilisateurs par défaut : Role Manager permet de modifier les autorisations affectées à chaque rôle, voire même de créer de nouveaux rôles.

Attention : la version de Wordpress est la 2.2.3. Wordpress est désormais à la version 3.3.1 : beaucoup de changements ont donc été opérés depuis et il se peut que ce plugin soit obsolète.

Apparemment il permet de gérer la lecture (ou non) de certaines pages.

Lors de l’écriture d’une page, il faut par contre mettre l’attribut privé (c'est un risque : si l'utilisateur oublie de fixer l'attribut, la page sera publique, donc il faudrait trouver un moyen de le faire automatiquement).

Role scoper (testé et mis en place)

Permet la gestion des droits des groupes et des utilisateurs. Un peu plus compliqué à utiliser que d’autres plugins, mais complet.

User Role Editor (non testé)

Analogue à Role manager.

wpNamedUsers (non testé)

Permet des restrictions par pages, posts (catégories ?).

User Access Manager (testé)

Le plugin UAM est moins riche que Role scoper et ne permet pas de gérer les droits d’une manière suffisante pour les besoins du CIRC.

Plugin No Page Comment (testé)

 

Apparemment utile pour empêcher les commentaires et/ou trackbacks sur la totalité des pages et/ou posts, mais lors des tests cela ne semblait pas fonctionnel. De plus j’ai trouvé après coup que l’on peut faire cela sans plugin.

Plugins pour mettre un (des) article(s) en pdf et/ou imprimer

Autres plugins à tester : Réf [19]

Pdf24 plugin (testé)

Ce plugin fonctionne à l’exception de l’export des images dans le PDF… Apparemment, le problème vient du fait qu’il a besoin de communiquer avec l’extérieur. Voir éventuellement Réf [16]. Après des tests plus avancés, j'ai remarqué qu'une image liée sur Wordpress par url est bien prise en compte, mais une image locale ne l’est pas.

Article2pdf (testé)

Ne supporte pas les .bmp (or beaucoup d’utilisateurs utilisent ce format d’image pour leurs travaux).

WP Post to PDF (testé)

Prend cette fois les images mais supprime les retours à la ligne ce qui donne une mise en page un peu désagréable.

Essayé une seconde fois et ne prend pas les images ?!

Blog as Pdf (testé)

Ce plugin n’est pas à jour (ne fonctionne qu’avec Wordpress 2.8), et ne prend pas en compte les images. Seuls les administrateurs peuvent l’utiliser, il n’est pas accessible aux utilisateurs.

Web2PDF Converter Widget (testé)

Ne fonctionne pas : j’obtiens des pages blanches après téléchargement du PDF.

Wp-handbook (testé)

Consiste à ajouter des articles en favoris, puis créer un PDF à partir de ceux-là. Il fonctionne bien sauf qu'il est impossible de supprimer les articles favoris pour cause de « error ajax for delete row ».

Le titre « add this article » (ou titre à choisir) est collé à l’article. On peut l’encadrer de balises de paragraphes pour aérer. Par contre je ne sais pas comment faire pareil avec le message d’erreur qui apparait quand on veut ajouter un favori déjà ajouté auparavant. (Il faut sûrement modifier directement dans le code du plugin).

Blog download (testé)

Ce plugin ne semble pas être à jour. Je n’ai pas réussi à le lancer. Normalement il suffit de l’installer et de l’activer. Il n’y a pas plus de précisions dans les informations d’installation. Il y a sans doute des incompatibilités avec le thème ou bien avec d’autres plugins.

Wp-mpdf (testé)

Il faut insérer un bout de code dans le fichier index.php d’atahualpa mais ensuite, en cliquant sur le lien une erreur apparait. Peut être utile en corrigeant l’erreur.

Print Friendly & PDF Settings (testé)

Plugin fonctionnel. Possibilité d’imprimer et de sauvegarder en PDF (toujours le problème d’image car le convertisseur n’est pas inclus dans le plugin, mais fait appel à un logiciel extérieur). Possibilité de supprimer des éléments du PDF.

Wp-print (testé)

Ce plugin n’est pas à jour (2.8). Il fonctionne bien mais n’exporte rien du tout. Il se contente de récupérer les informations des pages (en enlevant les sidebars, le header, etc…).

Joliprint (testé)

Ce plugin ne fonctionne pas (encore une fois, à cause de l’intranet sûrement).

Universal post Manager (testé)

Ce plugin semblait le mieux. Il ne fait pas appel à une application extérieure pour créer des pdf. Du coup les images sont toujours présentes. De plus on peut exporter sous forme .doc et donc modifier un article (post/pages pour les utilisateurs) avec un véritable éditeur de texte.

Les couleurs de texte, mise en forme, etc… sont conservées pour les documents Word, mais pas pour les pdf.

Pour l’impression le mieux est sans doute d’imprimer à partir du .doc ou du PDF, ou directement à l’aide du navigateur.

Cependant, ce plugin provoque de gros ralentissements. Il n'a donc pas été retenu.

Kalin PDF Creation Station (testé)

Ne prend pas les images mais respecte la mise en forme.

Anthologize (testé)

Ce plugin est en version alpha, ce qui signifie qu’il n’est pas officiellement lancé mais que l’on peut tout de même l’essayer. Les auteurs peuvent l’utiliser. Mais il y a un problème lors de la création d’une nouvelle partie. Il faut penser à donner les droits en écriture sur le dossier template tmp ou temp.

Testé : version 0.6.2 alpha et 0.6.1

Suivre ce post : Réf [17]

Down As PDF (testé)

Erreur de type TCPDF ERROR: [Image] Unable to get image: adresse de l’image.

Cette erreur est sans doute liée au problème Curl.

POST2PDF (testé)

Erreur de type TCPDF ERROR: [Image] Unable to get image: adresse de l’image.

Cette erreur est sans doute liée au problème Curl.

Plugins de recherche

Category Search – Je ne comprends pas l‘utilisation. Je n’ai pas beaucoup cherché car j’ai finalement opté pour Faceted Search

Faceted search – A priori ce plugin était bien, mais il s’est avéré qu’il rentrait en conflit avec un autre plugin.

Search By Category – fonctionnel et pratique. Plugin retenu au final.

Plugins permettant de fermer une catégorie (empêchant l’écriture, mais pas les commentaires)

Aucun plugin trouvé. L’astuce retenue consiste à supprimer tous les droits d’écriture sur une catégorie. Le résultat est exactement le même.

Plugins permettant de séparer l’édition d’un post en différentes parties (méthodes, expérience, conclusion...)

Pour les sous-titres :

WP title 2 :

Ce plugin n’affiche que le sous-titre, pas le titre. Cela est peut-être du au fait du thème Atahualpa.

Sub-heading :

Les résultats obtenus sont les mêmes que pour le plugin « WP title 2 ».

Plugins de Booking

Webreserv :

Ce plugin nécessite une clé d’activation.

Booking calendar :

Permet à un administrateur de donner ses disponibilités aux visiteurs, et de donner des services. On ne peut pas régler à l’heure près. L’admin doit tout le temps approuver une réservation. A mon avis le plugin n’est pas complet pour ce que l’on veut.

Bookings :

Nécessite l'installation de cURL sur le serveur, ce qui n'est pas possible car le serveur de l'ELN est utilisé par d'autres applications en production (trop risqué)

MP Booking:

Spécifique aux hôtels (réservations de chambres…)

WP Simple Booking Calendar

Les utilisateurs ne peuvent pas interagir, seulement savoir ce qui est disponible. Après ils peuvent réserver quelque chose mais c’est encore à l‘administrateur d’approuver.

Easy réservation

Système de prix (loyer)

Pas d’heures (seulement jours)

On ne peut réserver que des chambres.

Dans tous les plugins de booking le problème est que les utilisateurs n’ont pas autant de droits qu’on le voudrait : tout passe par l’administrateur.

Plugin Authentification/Active directory

Active Directory Integration

Active Directory Authentication

Simple AD Authentication

Je n’ai pas eu l’occasion de tester ces trois plugins. Leur priorité est moindre et j’ai consacré mon temps sur d’autres plugins.

ANNEXE 3 – Image du header

ANNEXE 4 – Tri de la table of content

Il s’agit de modifier le fichier index.php. C’est ce fichier qui est appelé à chaque chargement d’une page (pas d’un post). Ce code est placé avant la boucle d’affichage des titres de la « table of content ».

ANNEXE 5 – Résolution du problème du plugin « post notification »

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download

To fulfill the demand for quickly locating and searching documents.

It is intelligent file search solution for home and business.

Literature Lottery

Related searches