Rapport de stage de Master 2 Informatique au Pôle ...

45
Rapport de stage de Master 2 Informatique au Pôle Recherche de l’Université de La Réunion du 19 janvier au 19 juillet 2016 Mission : Développement d’une solution logiciel permettant d’obtenir un référentiel de partenaires Mots‐clés : Référentiel de partenaires, Gestion des contrats et des conventions, Service web, PHP5, MySQL, Bootstrap, jQuery Étudiant : ROBERT Cédric 33001944 Tuteur de stage : CALDERONI Stéphane Enseignant référent : MESNARD Fred Rédiger pour le 06/06/2016

Transcript of Rapport de stage de Master 2 Informatique au Pôle ...

Page 1: Rapport de stage de Master 2 Informatique au Pôle ...

Rapport de stage de Master 2

Informatique au Pôle Recherche

de l’Université de La Réunion du 19 janvier au 19 juillet 2016

Mission : Développement d’une solution logiciel permettant d’obtenir un référentiel de partenaires

Mots‐clés : Référentiel de partenaires, Gestion des contrats et des conventions, Service web, PHP5, MySQL, Bootstrap, jQuery

Étudiant : ROBERT Cédric 33001944 Tuteur de stage : CALDERONI Stéphane

Enseignant référent : MESNARD Fred

Rédiger pour le 06/06/2016

Page 2: Rapport de stage de Master 2 Informatique au Pôle ...

Résumé

Ce document est en deux partie, une première écrit en français et une seconde en anglais. Pendant six mois, j’ai participé avec le Pôle Recherche de l’Université à la conception et au développement d’une application qui sera stratégique dans le développement et la gestion future du Pôle Recherche. Cette application gérera les contrats, les conventions, et les partenaires du Pôle Recherche. Par ailleurs, elle permettra d’obtenir très facilement des indicateurs clés de performance. J’ai principalement développé et testé l’application sur mon poste de travail personnel à l’aide de l’éditeur de code NetBeans en utilisant les langages PHP et Javascript. L’application en production est hébergée sur un serveur web Apache que j’accède via le programme informatique et le protocole de communication sécurisé SSH. Les premiers résultats ont été obtenus après trois mois de stage avec une application de gestion des partenaires accessible par une interface web ou par un service web. Puis, j’ai consacré le reste de la période de stage au développement d’un outil de gestion des feuilles de temps et à la conception d’un référentiel budgétaire, financier et comptable. J’ai apprécié mon travail au Pôle Recherche car j’ai bénéficié d’avantages considérables en travaillant dans cet environnement qui est le Campus universitaire Nord de La Réunion et de cette expérience j’en ressort comblé avec notamment des progrès d’ordre techniques, humaines et même sportives. Summary

This document is in two parts, the first is written in French and the second is in English. For six months, I worked with the University's Research division for the design and development of an application that will be strategic for the information system, the development and the future management of the Research Division. The web application in question will handle contracts, agreements, and the division's partners. And it will also allow to easily obtain key performance indicators. I mainly developed and tested the application on my personal workstation using NetBeans code editor and using PHP and Javascript languages. The production application is hosted on an Apache web server that I access via the SSH network protocol. The first results were obtained after three months of internship with an application to manage partners through a web interface or a web service. Then, I focused my time to develop a tool able to manage time sheets and to design a repository of budget, finance and accounting. I enjoyed working in this division because I had considerable advantages by working in this environment which is the Campus North of the University of Reunion Island and thanks to this experiences, I improve not only my technical skills but also my human abilities and even sports skills.

Page 1 sur 44

Page 3: Rapport de stage de Master 2 Informatique au Pôle ...

Page 2 sur 44

Page 4: Rapport de stage de Master 2 Informatique au Pôle ...

1 Remerciements 2 Introduction 3 Annonce 4 Le cadre du stage

4.1 Le Pôle Recherche 4.1.1 Ses activités 4.1.2 Les mission du Pôle Recherche

4.2 Organigramme 4.3 Fonctionnement et organisation

4.3.1 Le cadre de travail 4.3.2 La rédaction du rapport 4.3.3 Les différentes périodes du stage

5 Problématique et objectif initial du stage 6 Les travaux effectués

6.1 L’existant 6.2 Les missions

6.2.1 L’intégration à l’équipe 6.2.2 Recherche de fournisseurs de données pour la saisie des partenaires 6.2.3 Conception et création de la base de données 6.2.4 Les missions annexes

6.3 Développement de la maquette 6.4 Développement de la solution 6.5 Résultats et amélioration possible

7 Les apports du stage et conclusion 8 Annexes

8.1 Les différents fournisseurs de données sur les partenaires potentielles 8.1.1 Publics 8.1.2 Privés

9. Table des illustrations

1 Remerciements Avant tout développement sur cette expérience professionnelle, il apparaît opportun de

commencer ce rapport de stage par des remerciements, à ceux qui m'ont beaucoup appris au cours de ce stage ainsi qu’à ceux qui ont eu la gentillesse de faire de ce stage un moment très profitable. Parmi eux, je citerais particulièrement Stéphane CALDERONI qui a bien voulu m'accueillir dans son bureau et me suivre en tant que tuteur tout au long du stage. Je tiens aussi, à remercier les personnes sans qui ce stage n’aurait pas eu lieu notamment, Monsieur Kamel EL BACCOUCHE en qualité de directeur du Pôle Recherche pour avoir proposer ce stage et veiller à son bon déroulement tout au long de ces six mois. Je tiens également à remercier ma famille pour leurs encouragements et leurs soutiens pendant toutes ces années. Enfin, tous les personnels du Pôle Recherche qui m’ont accueilli chaleureusement au quotidien, apporter leur bonne humeur et collaborer à mon travail dans une bonne ambiance.

Page 3 sur 44

Page 5: Rapport de stage de Master 2 Informatique au Pôle ...

2 Introduction Avant même le début du stage et dès la première réunion avec M. CALDERONI, nous avons

défini un projet à réaliser mettant en pratique mon portefeuille de compétences en développement web afin de mettre en évidence mes lacunes dès le début du stage, les corriger si nécessaire et commencer le plus tôt avec de bonnes bases. L’application web à développer était un annuaire de personnes permettant la gestion de ces derniers, la recherche et le partage de données à travers un API.

J’ai profité de ce mini­projet pour faire le point sur mes compétences en développement et acquérir de nouvelles compétences. J’ai développé l’annuaire en PHP objet en me basant sur un tutoriel de création d’un framework PHP objet du site OpenClassroom. Le site crée est un site adaptatif grâce à l’utilisation de la librairie Bootstrap 3. J’ai documenté une grande partie du projet à l’aide de l’outil PHPDOC qui permet notamment d’obtenir un diagramme de classe de l’application grâce à l’analyse des sources.

Le résultat de ce mini­projet était satisfaisant et le seul point négatif retenu est le fait que M. CALDERONI ne s’attendait pas à ce que je me base sur une structure logicielle (framework) PHP étant lui même partisan du développement “sans structure logicielle (no­framework)”. Les forces de ce modèle de développement résident principalement dans la maintenance d’un projet car il permet à un nouveau développeur découvrant le projet de ne pas s’attarder sur la maîtrise d’un framework avant d’apporter des modifications en toute sécurité. Avant d’approfondir davantage sur le stage en lui­même, revenons sur l’opportunité qui m’a emmené à effectuer ce stage.

3 Annonce Messieurs Kamel EL BACCOUCHE et Stéphane CALDERONI sont venus faire une

présentation du sujet de stage au premier semestre vers la mi­octobre avec trois sujets de stage tant les projets applicatifs à réaliser sont nombreux, stratégiques et urgents. Le Pôle Recherche ne disposant que d’un ingénieur de recherche développeur, le manque de main d’oeuvre est un véritable frein au développement du service en période de restructuration organisationnelle. A cette période je débutais un stage à temps partiel d’un mois chez MEDIALIGHT, une entreprise de services du numérique composée d‘experts accompagnant tout projet numérique du cahier des charges à la mise en ligne depuis plus de 20 ans. Après une semaine de stage à temps partiel, il s’est avéré que je n’étais pas capable de m’adapter aux exigences et contraintes d’une société commerciale composée uniquement d’experts issues de SUPINFO tout en poursuivant mes études à coté. Je n’ai donc pas pu poursuivre mon stage chez eux mais j’ai répondu à l’offre du Pôle Recherche à temps, le 1er décembre 2015, juste avant d’être hors délai dans le choix d’un stage, date imposée par le responsable pédagogique de ma formation M. MESNARD.

Page 4 sur 44

Page 6: Rapport de stage de Master 2 Informatique au Pôle ...

4 Le cadre du stage Maintenant que j’ai mis en avant les spécificités qui m’ont conduit à ce stage, voyons

ensemble les activités, les missions et le fonctionnement de ce service.

4.1 Le Pôle Recherche

4.1.1 Ses activités Les activités de recherche de l'Université de La Réunion recouvrent trois grands secteurs et

sont impliquées dans 21 unités de recherche reconnues par le ministère. Elles se retrouvent au sein de trois structures fédératives qui représentent les trois axes de recherche prioritaires de l'établissement : Milieux Naturels et des Changements Globaux, BioSécurité en milieu Tropical et Sociétés de l'Océan Indien et trois domaines : Droit, Economie et Gestion ; les Sciences, Technologies et Santé ; les Lettres et Sciences Humaines. L'ensemble de ces unités est rattaché à deux Ecoles Doctorales (L'Ecole Doctorale Sciences, Technologies et Santé, L'Ecole Doctorale Sciences Humaines et Sociales), qui accueillent plus de 300 doctorants inscrits à l'Université de La Réunion. Chaque année, une cinquantaine de thèses et HDR sont soutenues.

4.1.2 Les mission du Pôle Recherche Afin d'assurer la mise en oeuvre de la politique scientifique et le développement des activités

de recherche de l'Université de La Réunion, le Pôle Recherche a pour missions principales : La gestion des Écoles Doctorales : préparation, instruction et suivi des dossiers. L'élaboration et la gestion du budget de la recherche fondamentale et contractuelle. L'élaboration et la gestion du Conseil Académique, des conseils des 2 écoles doctorales et du

collège doctoral. La gestion de Commission Recherche de l'établissement : préparation, instruction et suivi des

dossiers. Le pilotage et l'administration des unités de recherche et des structures fédératives. La coordination du volet recherche du contrat d'établissement. La prise en charge de la communication et des relations institutionnelles de la recherche et de

la valorisation. La diffusion de l'information scientifique et technique régionale, nationale et européenne

(appels à projets, subventions, bourses...). L'appui aux chercheurs et aux laboratoires pour l'élaboration et la gestion administrative et

financière des projets de recherche et pour la valorisation des résultats dans le cadre de partenariats avec le monde économique.

Page 5 sur 44

Page 7: Rapport de stage de Master 2 Informatique au Pôle ...

4.2 Organigramme

1. Organigramme du Pôle Recherche (mai 2016)

J’étais affecté à la cellule d’administration des données de la recherche sous la supervision de Stéphane CALDERONI.

Page 6 sur 44

Page 8: Rapport de stage de Master 2 Informatique au Pôle ...

4.3 Fonctionnement et organisation

4.3.1 Le cadre de travail Mes horaires de travail sont ceux du Pôle Recherche qui est lui­même ouvert de 09h00 à

12h00 et de 14h00 à 18h00 du lundi au vendredi pendant l’année universitaire. J’ai partagé le bureau A408 de Stéphane CALDERONI pendant toute la durée du stage, ce bureau est situé précisément au dernier étage du bâtiment administratif de l’Université de La Réunion. Je travaillais sur mon poste de travail personnel et j’avais à ma disposition un bureau individuel et un écran pour plus de confort. Cette proximité géographique avec mon tuteur m’a permis de bénéficier d’un suivi régulier. De plus, des réunions d’avancement ont été effectuées pendant toute la durée du stage avec M. EL BACCOUCHE et M. CALDERONI lorsque l’on jugeait que cela était nécessaire. Parfois, ces réunions impliquaient d’autres membres du service ou étaient effectuées en réunion de service avec l’ensemble des membres du Pôle Recherche.

Le Pôle Recherche travail principalement en mode projet avec des groupes de réflexion et de travail spécifiques pour les projets structurants qui impliquent le système d’information. Deux projets ont notamment été réalisés avec ce mode de travail : EMERODE pour la gestion des doctorants et SI AVENIR pour la gestion du personnel des unités de recherche. J’ai, quant à moi, travaillé principalement de façon autonome puis j’ai pris en considération les remarques d’amélioration des utilisateurs lors des différentes réunions d’avancement.

4.3.2 La rédaction du rapport La rédaction de ce rapport a débuté en même temps que mon stage, suite au conseil avisé de mon tuteur de stage. Puis, il a été complété au fil de mes missions avec les informations acquises au fil des mois et les éléments mis à ma disposition. Ce choix a été très bénéfique pour moi car j’ai pu prendre le temps d’effectuer les révisions nécessaires avant la date de rendu du dossier et ainsi y reporter les éléments manquants.

4.3.3 Les différentes périodes du stage Ci­dessous, j’ai listé les dates importantes du stage avec une brève description de l’événement

: 2 Février : Réunion de service pour définir précisément le projet et les besoins Février à Mai : développement de la solution logicielle de gestion des partenaires 2 Mai : Réunion de service et affectation à deux nouveaux projets (Feuille de temps et

référentiels budgétaire, financier et comptable) 12 Mai : Réunion de présentation des travaux réalisés pour la gestion des partenaires Mai à Juin : Développement des améliorations et correctifs remontés lors de la réunion

précédentes

Page 7 sur 44

Page 9: Rapport de stage de Master 2 Informatique au Pôle ...

5 Problématique et objectif initial du stage La problématique rencontrée par le Pôle Recherche est le manque de ressources humaines en

période de modernisation du système d’information. C’est de ce constat que découle l’offre de stage. Le Pôle Recherche conduit activement depuis trois ans une politique de modernisation du système d’information par l’informatisation des dossiers papier. Plus précisément, le Pôle Recherche met actuellement en place une application de gestion des contrats et des conventions afin d’améliorer la production et le suivi des dossiers. Une partie de cette application demandera pendant la saisie d’une convention ou d’un contrat de saisir le partenaire avec lequel le contrat a été contracté. Afin de simplifier au maximum cette partie et de garder des informations cohérentes sur le long terme, on souhaite mettre en place un référentiel de partenaires collaborant avec l’Université de La Réunion. Ce référentiel sera une application autonome, stocké dans une base de données et sera mis à disposition des autres applicatifs par le biais d’un service web.

6 Les travaux effectués Dans cette partie, nous aborderons principalement le système d’information existant lors de

ma prise de fonction, les missions réalisées, la solution mise en place et les résultats obtenus.

6.1 L’existant A mon arrivé au Pôle Recherche, le projet était déjà bien défini, des prototypes d’interfaces

utilisateur montrant les pages de l’application étaient réalisés et le personnel du pôle était déjà informé du projet. Il ne manquait que le cahier des charges qui était débuté mais non terminé. Il faut savoir que ce projet a déjà été mené avec succès au CNRS par M. EL BACCOUCHE. Dès son arrivé dans le service, M. El BACCOUCHE a oeuvré à la mise en place d’une gouvernance forte en cherchant à mettre à la disposition de toute l’équipe les données. Il a aussi oeuvré à ce que toute l’Université ait une seule source fiable d'information à travers des sources de données, des métadonnées, des calculs et des champs de données entièrement nouveaux, que tout le monde pourra utiliser. Cette évolution a été mis en oeuvre par diverses actions de mise à jour et de fiabilisation du référentiel des étudiants APOGEE. Puis, par la mise à disposition des données aux doctorants et aux personnels de l’Université à travers l’outil EMERODE. Enfin par le partage d’information des différents système d’information à travers l’application SI AVENIR aux unités de recherche. SI AVENIR permet un meilleur pilotage des Unités de Recherche grâce à des données sur les personnels, les dépenses, les thèses/HDR, les conventions, les projets, les statuts des Unités de Recherche.

Page 8 sur 44

Page 10: Rapport de stage de Master 2 Informatique au Pôle ...

6.2 Les missions Dans cette partie, je vais expliquer les missions qui m’ont été confiées et comment j’ai réussi à surmonter les difficultés de l’intégration d’une équipe, de la recherche de fournisseurs de données, de la création de la base de données et des missions annexes.

6.2.1 L’intégration à l’équipe Au début du stage en attendant que le cahier des charges soit terminé et que je prenne mes

repères, j’ai fais des recherches sur les technologies demandées par mon tuteur. Ce sont les suivantes : ESB, PHPCAS, PHPLDAP, service web et JSON web token. Dans le même temps, j’ai commencé à travailler sur la mission principale du stage en faisant des recherches sur le site du CNRS où ce projet avait déjà été réalisé. Seules les notions précédentes mises en production seront définies par la suite. Au bout de quelques jours, j’ai rencontré tous les membres de l’équipe du Pôle Recherche.

Au début du stage, j’ai consacré une bonne partie du temps à échanger avec les intervenants afin de comprendre les besoins, les enjeux et les priorités des projets en cours. Une réunion de service qui a eu lieu le 2 Février m’a permis de prendre connaissance des projets terminés et en cours de réalisation par tous les membres de l’équipe.

6.2.2 Recherche de fournisseurs de données pour la saisie des partenaires Dans l’application qui sera développée, à un moment donné, il faudra que l’utilisateur ajoute

les parties du contrat ou de la convention. Ces parties sont, par exemple, les laboratoires et des partenaires publics ou privés. On souhaite rendre la tâche de saisie la plus simple possible pour l’utilisateur en implémentant une fonction de saisie semi­automatique des parties. Pour cela, il est nécessaire d’avoir préalablement constitué un annuaire de partenaires ou de se baser sur un annuaire déjà constitué.

J’ai passé les premières semaines de mon stage à concevoir cette fonctionnalité. D’abord, j’ai cherché les solutions existantes permettant de récupérer le maximum d’informations sur des partenaires publics d’enseignement supérieur et de la recherche. Puis, j’ai fais la même chose en recensant les solutions existantes permettant de récupérer le maximum d’informations sur les partenaires privés. Ce qui m’a permis de dresser le tableau comparatif de la page suivant, de présenter les solutions possibles et de choisir les plus pertinentes. Des informations supplémentaires sont disponibles en annexe 8.1 (notamment les liens d’accès aux différents services web).

Page 9 sur 44

Page 11: Rapport de stage de Master 2 Informatique au Pôle ...

Comparatif des fournisseurs de données possibles pour les partenaires

Partenaires publics Partenaires privés

Fournisseurs data.gouv.fr

DGRI/RNSR CNRS HAL archives ouvertes

FirmAPI Societéinfo

SIRENE CCI

Taille en millions d’enregistrements

0.0003

0.001/0.0038 0.0015 0.013 1,2 5 10 2,6

Commentaire sur la précision

orga UR ED Discipline ERC Action LOLF Responsable

orga compo personnel activité

Laboratory Institution Research team

Très précis pour les entreprises modifiées récemment

Suffisamment précis

Le plus précis possible car regroupe l’ensemble des activités professionnelles

Limité aux entreprises commerciales

Coût €/mois 0 0 0 0 0 ou 100 0­200 100­40 000 puis 0

~5833

Commentaire sur la pérennité

Très long car gouv.

Très long car ministère ESR

Moyen CNRS

Très long CCSD

Inconnu/moyen car startup

Inconnu/moyen car startup

Très long car gouv. Migration vers cette solution à prévoir en 2017

Long

Suite à la présentation de ce tableau, nous avons fait le choix d’essayer de croiser les différentes sources de données gratuites. Après avoir testé les API sur un jeu d’essai, nous avons constaté que bien que l’application FirmAPI soit très précise, elle ne permet pas de répondre aux attentes car aucun élément du jeu d’essai n’était présent dans la base de données de FirmAPI. SociétéInfo est donc la solution retenue afin de permettre la saisie semi­automatique des partenaires privés (sociétés, associations, personnes physiques).

Par la suite, je développerais plus précisément le développement qui découle de ces recherches et les résultats obtenues mais avant je présenterais brièvement les autres missions sur lesquels j’ai pu travailler.

Page 10 sur 44

Page 12: Rapport de stage de Master 2 Informatique au Pôle ...

6.2.3 Conception et création de la base de données Avant de commencer à coder l’application, j’ai profité des réunions avec les utilisateur afin d’identifier les éléments qui seront collectés et stockés dans une base de données MySQL. La liste ci­dessous présente les éléments constituant la fiche d’un partenaire et les informations enregistrées en base de données :

id → identifiant unique d’un partenaire dans notre système d’information idParent → identifiant de la fiche précédente lors de l’évolution d’une fiche idExterne → identifiant d’un partenaire dans la base d’origine Situation de la fiche → actif­valider/inactif/en cours de validation statutjuridique →

('ASSOCIATION','CCAS','EARL','EI','EIRL','EPCC','EPCI','EPCS','EPIC','EPLE','EPS','EPCSCP','EPST','EURL','GAEC','GEIE','GIE','LABORATOIRE','OPH','PERSONNE PHYSIQUE','SA','SARL','SAS','SASU','SC','SCA','SCI','SCIC','SCM','SCOP','SCP','SCS','SDIS','SEL','SELAFA','SELARL','SELAS','SELCA','SEM','SEML','SEP','SICA','SNC','INCONNU')

sigle → libellé court libellé → libellé nom → nom d’une personne physique prénom → prénom d’une personne physique adresse → adresse d’un partenaire code postal → code postal d’un partenaire ville → ville d’un partenaire département → département d’un partenaire pays → pays remplissage automatique siren → identifiant d’une société française rna → identifiant d’une association uai → identifiant d’un établissement de recherche codeUniteRecherche → code de l’unité de recherche tva → identifiant d’une société à l’échelle internationale commentaire → commentaire d’un partenaire date création → date de création de la fiche date modification → date de la dernière modification de la fiche creerPar → nom de l’agent ayant créée la fiche modifierPar → nom de l’agent ayant modifié la fiche validerPar → nom de l’agent ayant validé la fiche

La base de données MySQL contenant cette table n’est pas complexe, elle est uniquement constituée de trois table principales, les utilisateurs, les partenaires et les code postaux sans aucune relation d’association entre ces tables. Une autre table a été créée, celle des partenaires privés de type associations créées à partir de 2009 mais celle­ci n’a pas été maintenue. J’ai utilisé l’outil HeidiSQL afin d’obtenir rapidement le script SQL de création de cette base de données. HeidiSQL est un client léger de base de données permettant d'interagir facilement et rapidement avec une base de données de type MySQL, MariaDB, PostgreSQL et Microsoft SQL SERVER.

Page 11 sur 44

Page 13: Rapport de stage de Master 2 Informatique au Pôle ...

6.2.4 Les missions annexes Suite à ces missions principales de recherche, du développement issues suite à ces travaux préalables et entre deux réunions d’avancements, j’ai travaillé sur deux missions ayant demandé un temps nettement moins conséquent concernant la mise en place d’une nouvelle feuille de temps pour les chercheurs et la construction d’un référentiel budgétaire financier et comptable n’ayant pas abouti à des résultats concrets mais qui nécessitait tout de même beaucoup de réflexion avec différents acteurs. Ces deux projets impacteraient les chercheurs, les gestionnaires et les directeurs d’unités de l’Université en leurs donnant une vision plus précise et fine de leur gestion administrative et légale. Ces différents projets sont toujours en cours d’avancement.

6.3 Développement de la maquette Dès février, je me suis consacré au développement d’une maquette présentant les

fonctionnalités attendues par le service. Cette maquette possède un champs de recherche qui interroge plusieurs services web en fonction du bouton radio sélectionné ou plus précisément du type de partenaires que l’on souhaite rechercher parmi les possibilités suivantes : Établissement public, Unité de recherche, Institution de recherche, Société, Personne physique ou Association. La maquette présente aussi un formulaire de demande de création de partenaire ainsi qu’une représentation de la base de données sous forme de tableau HTML dynamique avec des fonctionnalités avancées telles que la pagination, la recherche, le tri sur les colonnes et l’exportation des données dans différents formats. Le formulaire de demande de création d’une fiche partenaire est pré­rempli en sélectionnant un partenaire dans la liste proposée lors d’une recherche. Lors du remplissage du champs code postal, les champs commune, département, région et pays sont automatiquement remplis. Pour ce faire, je me suis inspiré du service web payant disponible sur Geonames permettant d’obtenir différentes informations sur un code postal et j’ai développé un service web identique à partir de la base de données qu’ils mettent à disposition.

Page 12 sur 44

Page 14: Rapport de stage de Master 2 Informatique au Pôle ...

2. Maquette du référentiel des partenaires

Page 13 sur 44

Page 15: Rapport de stage de Master 2 Informatique au Pôle ...

Une fois soumis pour validation, une quinzaine de jours plus tard, j’ai commencé le développement d’une première version de l’application. J’ai migré la partie développée dans la maquette précédente dans un framework PHP créé dans le cadre du projet initial de stage ce qui m’a permis d’obtenir rapidement les fonctionnalités manquantes telles que le lien avec la base de données MySQL et l’API d’accès aux données des partenaires. Le gouvernement met à disposition le référentiel des associations sous forme de fichiers XML par publication dans le journal officiel, regroupé chaque année dans un fichier XML. J’ai créé une base de données contenant les associations créées et modifiéés à partir de 2008 (date de mise en application de la directive d’affectation d’un identifiant unique aux associations). Cette base de données permet de remplir automatiquement les champs sigle, libellé, adresse, code postal, commune, département et région. Cette base de données sera mise à jour annuellement à l’aide d’un script à automatisé. Le script à automatiser est une adaptation du script original mis en oeuvre dans le projet OpenStreetMap. Après la recette de l’application, il s’est avéré que le nombre de partenaires de type associations n’était pas suffisant par rapport à la charge de travail pour maintenir cette base de données. Cette base de données des association a, par conséquent, été abandonnée par la suite.

3. Première version de l’application

De nombreux paramètres de configuration ont été externalisés dans des fichiers au format JSON ou XML. Le fichier JSON est récupéré à l’ouverture de la page web et permet d’afficher les tableaux HTML avec les colonnes souhaitées, de définir le niveau de détail souhaité pour chaque type de partenaires permettant de différencier deux partenaires entre eux et faire la correspondance entre les données issues des services et notre formulaire HTML. Le fichier XML n’est pas visible par l’utilisateur final, il est utilisé afin de regrouper les paramétrages possibles de la partie administration.

Page 14 sur 44

Page 16: Rapport de stage de Master 2 Informatique au Pôle ...

6.4 Développement de la solution Suite à la vérification de la maquette et de la première version, on m’a demandé d’adapter

l’interface et le cheminement des actions. Après seulement une semaine de développement, les modifications demandées ont été appliquées. Suite à cela, j’ai commencé à travailler sur l’interface d’administration car il s’agissait de la partie la plus importante, floue et source d'interrogation lors des réunions précédentes pour les futurs administrateurs. J’ai décidé de mettre en place une partie administration avec quatre parties :

Gestion des partenaires Gestion des utilisateurs Gestion des alertes et des mails Gestion des rapports

L’onglet “Gestion des partenaires” permet d’afficher la base de données avec l’ensemble des fiches partenaires puis une fois représentée sous forme de liste, il permet de les afficher, de les modifier ou de les supprimer. Cet onglet permet également d’afficher sous forme de liste les fiches ayants évoluées tout au long du cycle de vie de l’application. L’onglet “Gestion des utilisateurs” permet d’ajouter des utilisateurs à l’application et plus précisément des administrateurs.

4. Onglet “Gestion des utilisateurs” de l’espace administration de l’application

Page 15 sur 44

Page 17: Rapport de stage de Master 2 Informatique au Pôle ...

L’onglet “Gestion des rapports” permet d’afficher un tableau de bord avec des chiffres ou des graphiques selon le besoin à un instant t. La page web présentant les chiffres est constituée de tableau dynamique grâce à la bibliothèque Bootstrap­table. La bibliothèque Bootstrap­table permet notamment le tri, l’export des données sous différents formats comme on peut le voir sur la capture d’écran suivante :

5. Onglet “Les Rapports ­ Les chiffres” de l’espace administration de l’application

Page 16 sur 44

Page 18: Rapport de stage de Master 2 Informatique au Pôle ...

La page web présentant les graphiques est constituée de trois graphiques réalisés à l’aide de la bibliothèque Google Charts : un graphique de type carte proportionnelle, un graphique de type histogramme et enfin un graphique de type secteur. Ces trois graphiques sont dynamiques et permettent d’obtenir plus de détails au survol de la souris ou lors d’un clic.

6. Onglet “Les Rapports ­ Les graphiques” de l’espace administration de l’application

Le graphique présentant la répartition géographique des partenaires actifs est très intéressant. Il s’appuie sur les attributs pays, région, département et ville de chaque partenaire afin de proposer une vision à chaque niveau géographique. Par exemple, on obtient la répartition régionale des partenaires telle que présentée dans la capture suivante lorsque l’on clique sur la partie FR de couleur orange foncé que l’on peut voir sur le premier graphique de la capture d’écran précédente :

7. Répartition géographique des partenaires au niveau régional

Page 17 sur 44

Page 19: Rapport de stage de Master 2 Informatique au Pôle ...

La page d’accueil contient, quand à elle, trois parties distinctes, la première est une vision des huit dernières fiches à valider, la seconde est une vision des quatre dernières fiches modifiées et enfin la dernière est une vision des quatre dernières fiches ajoutées.

8. Page d’accueil de l’espace administration de l’application

Page 18 sur 44

Page 20: Rapport de stage de Master 2 Informatique au Pôle ...

Suite à cela, j’ai développé une maquette de l’application CONTRA­VENTION afin de montrer aux utilisateurs les futures interactions possibles entre les deux applications. CONTRA­VENTION intègre sous forme d’IFrame l’application PARTENARIAT et l’échange entre les applications se fait à l’aide HTML5 et de javascript grâce à la fonction “postMessage()”. Dès le début, je me suis confronté au pire des cas et je me suis donné pour objectif de rendre opérationnelle l’interaction entre les deux applications comme s’il s’agissait d’applications distinctes, autonomes, s'exécutant sur des serveurs et domaines différents. Ce choix a été motivé par le fait que cela risque fortement d’arriver à un moment ou un autre du projet. Dans CONTRA­VENTION, l’utilisateur procède par différentes étapes l’élaboration et l’enregistrement d’un contrat ou d’une convention. A l’étape de sélection des parties prenantes, il ajoute un partenaire au contrat ou à la convention en cliquant sur un bouton “Ajouter un partenaire”.

9. Maquette de l’application CONTRA­VENTION Dès lors, l’application CONTRA­VENTION s’assombrit et une fenêtre se charge par dessus avec l’application PARTENARIAT comme dans l’image suivante :

10. Maquette de l’interaction entre CONTRA­VENTION et le référentiel des partenaires

L’utilisateur est alors invité à rechercher un partenaire et à l’ajouter à la contravention à l’aide d’un bouton. Lors d’un clic sur ce bouton, la fenêtre se ferme et l’application CONTRA­VENTION est à nouveau disponible.

Page 19 sur 44

Page 21: Rapport de stage de Master 2 Informatique au Pôle ...

6.5 Résultats et amélioration possible Une fois le site développé en local sur ma machine, j’ai demandé un accès au serveur de

développement afin que mes travaux soient accessibles par l’ensemble des utilisateurs potentiels. Lors de la dernière présentation de l’application pour validation à l’ensemble des membres du

service, il a été souligné que le vocabulaire employé au sein de l’application ne correspondait pas et que des ajustements étaient encore nécessaires. De plus, il serait nécessaire d’agencer des champs du formulaire qui n’utilisent pas entièrement l’espace disponible horizontalement et cela pourrait forcer les utilisateurs à user de l’ascenceur du navigateur. Enfin l’interface entre CONTRAVENTION et PARTENARIAT n’est pas satisfaisant car les utilisateurs souhaitent une solution où l’application PARTENARIAT s’ouvre à la place de CONTRAVENTION puis qui retourne sur CONTRAVENTION lorsqu’on a fini la recherche de partenaire.

Lors de l’écriture de ce rapport, la dernière fonctionnalité ajoutée est la connexion avec l’annuaire LDAP de l’Université permettant de connaître précisément un utilisateur avec son nom et son prénom à partir de son identifiant CAS. Voici une capture d’écran de la page d’accueil public de l’application dans sa dernière version :

11. Page d’accueil de l’espace public de l’application

L’application dispose d’ores et déjà de nombreuses fonctionnalités mais des améliorations sont encore possibles, surtout dans la partie administrateur. Par exemple, on peut ajouter dans le futur une fonctionnalité de détection des doublons parmi les enregistrements en base de données ou des alertes lors d’événements tels que la demande de création d’un partenaire par mail ou à la connexion d’un utilisateur.

Page 20 sur 44

Page 22: Rapport de stage de Master 2 Informatique au Pôle ...

7 Les apports du stage et conclusion Dans la cadre de ce rapport, j’ai essayé de montrer le travail accompli pendant mes six mois

de stage. L’objectif du stage était de développer une solution web de gestion des partenaires du Pôle Recherche. La solution mise en oeuvre est un développement dans le langage PHP avec une base de données MySQL et des bibliothèques javascript telles que jQuery ou Bootstrap. Cette solution s’appuie sur des services web existant afin de proposer des informations à jour sur les partenaires recherchés. Les principales difficultés de ce travail étaient la recherche des services web permettant d’acquérir des informations sur les partenaires publics et privés ainsi que le développement d’une solution logicielle basé sur ses services web.

Ce stage à été l’occasion de voir autrement l’Université dans laquelle j’ai réalisé mon cursus de master et de découvrir les services et le personnel administratif sur lequel repose la recherche à l’île de La Réunion. Ce fut une expérience très enrichissante tant humaine que professionnelle. J’en ressort avec de nouvelles compétences et des réalisations prouvant ma maîtrise de ces compétences.

Pendant ces six mois de stage, j’ai été au plus près du campus universitaire que durant tout

mon cursus. J’ai profité de cette proximité pour pratiquer des activités sportives notamment l’escalade dans lequel j’ai acquis un très bon niveau et obtenu les deux premiers grade du sport ce qui me permet d’envisager la formation d’initiateur escalade et la reconnaissance associée à ce titre. Je maîtrise maintenant le PHP objet et j’ai amélioré mes compétences de conception d’application métier. Si possible, je souhaite dans un premier temps orienter ma carrière de développeur dans cette optique de développeur d’applicatifs métiers. Je trouve cela gratifiant de contribuer à développer une entreprise tout en améliorant les conditions de travail des salariés par la mise en place d’outils automatisant ou simplifiant les tâches répétitives telles que la collecte, la recherche et la synthèse d’informations. Lors de l’écriture de ce rapport, une perspective d’embauche a été avancée sans pour autant que cela soit une promesse d’embauche. Après ces six mois d’intégration, si cette proposition devait aboutir, je l’accepterai sans hésité.

Page 21 sur 44

Page 23: Rapport de stage de Master 2 Informatique au Pôle ...

8 Annexes

8.1 Les différents fournisseurs de données sur les partenaires potentielles Mes recherches ont abouti au résultat suivant, correspondant à des liens vers différents services web permettant l'interrogation de leurs données à des fins de réutilisation à l’aide d’une API qui retourne des données au format JSON.

8.1.1 Publics Les Etablissement d’Enseignement Supérieur et de la Recherche Lien vers les données gouvernementales libres et ouvertes sur les institutions de recherches : data.gouv.fr. Lien vers les données gouvernementales libres et ouvertes sur les établissements d’enseignement supérieur : data.gouv.fr. Les unités de recherche Lien vers les données de l’archive ouverte pluridisciplinaire HAL donnant accès aux unités de recherche : api.archives­ouvertes.fr. Le Répertoire National des Structures de Recherche La base de données la plus complète regroupant l’ensemble des données présentées précédemment est le RNSR : lien. Nous n’avons pas pu utiliser cette source de données dans ce projet pour des raisons techniques. Premièrement, nous avons rencontrés des difficultés pour retrouver les codes d’accès à la base puis nous n’avons pas trouvé de solution pour une interrogation simple et rapide de la base à travers un service web.

8.1.2 Privés Les sociétés, les associations et les personnes physiques Le service web societeinfo.com propose une base de données de plus de 5 millions d’enregistrements suffisamment précis et donnant accès gratuitement à 30 000 crédits utilisables par mois soit environ 150 recherches détaillées. La base de données nationale sirene.fr référence plus de 10 millions d’enregistrements et sera en accès libre à partir de 2017. En conclusion, pour les partenaires publics on utilisera les sources de données gouvernementales ainsi que l’archive ouverte HAL et pour les partenaires privés, je propose l’utilisation de l’API mise à disposition gratuitement par la startup nommée societeinfo.com. Une évolution sera possible et est d’ores et déjà à prévoir pour 2017 car la base nationale des sociétés française SIRENE sera entièrement disponible à travers un service web gratuit.

Page 22 sur 44

Page 24: Rapport de stage de Master 2 Informatique au Pôle ...

9. Table des illustrations Dans cette table des illustrations, le terme application désigne l’application de gestion des

partenaires.

1. Organigramme du Pôle Recherche (mai 2016) 2. Maquette du référentiel des partenaires 3. Première version de l’application 4. Onglet “Gestion des utilisateurs” de l’espace administration de l’application 5. Onglet “Les Rapports ­ Les chiffres” de l’espace administration de l’application 6. Onglet “Les Rapports ­ Les graphiques” de l’espace administration de l’application 7. Répartition géographique des partenaires au niveau régional 8. Page d’accueil de l’espace administration de l’application 9. Maquette de l’application CONTRA­VENTION 10. Maquette de l’interaction entre CONTRA­VENTION et le référentiel des partenaires 11. Page d’accueil de l’espace public de l’application

Page 23 sur 44

Page 25: Rapport de stage de Master 2 Informatique au Pôle ...

Page 24 sur 44

Page 26: Rapport de stage de Master 2 Informatique au Pôle ...

1 Acknowledgements 2 Preamble 3 Announcement 4 The organization of the internship

4.1 The Research Department 4.1.1 Its activities 4.1.2 The mission of the Research Department

4.2 Organization chart 4.3 Operation and organization

4.3.1 The framework 4.3.2 Report writing 4.3.3 The different periods of the traineeship

5 Issues and initial aim of the internship 6 The work

6.1 The existing 6.2 Missions

6.2.1 Integration with the team 6.2.2 Data providers for partners recording 6.2.3 Design and creation of the database 6.2.4 The side missions

6.3 Development of the model 6.4 Development of the solution 6.5 Results and possible improvement

7 The contributions of the traineeship and conclusion 8 See also

8.1 The different data providers on potential partners 8.1.1 Public 8.2 Private individuals

9. Table of figures

1 Acknowledgements Before any development on this experience, it seems appropriate to begin this training report

with thanks to those who taught me a lot during this course and those who were kind enough to make this course a very profitable moment. Among them I would mention particularly Stéphane CALDERONI who kindly welcoming me into his office and follow me as tutor throughout the course. I also want to thank the people without whom this course would not have taken place in particular, Mr. Kamel EL BACCOUCHE as Director of the Research Departement offer this course and ensure its smooth running throughout these six months. Not forgetting my family without which access to higher education would probably not be so easy. And finally, all the people employed at the Research Department who welcomed me warmly every day, bring their cheerfulness and collaborate with my work in a good atmosphere.

Page 25 sur 44

Page 27: Rapport de stage de Master 2 Informatique au Pôle ...

2 Preamble Well before the start of the training and at the first meet with Mr. CALDERONI, we defined a

project to check my web­development skills portfolio, to highlight my shortcomings at an earlier step, correct if necessary and start as soon as possible with a good foundation. The web application is more precisely a directory of people with the ability to manage them, research them and with data sharing through a web service API­like.

I enjoyed this small­project to take pros and cons of my development skills and learn new skills. I developed the directory with PHP­object based on a tutorial for creating a PHP­object framework from the OpenClassroom website. The created website is a responsive site through the use of the library Bootstrap 3. I documented much of the project using the tool PHPDoc which allow to obtain an application class diagram through the analysis of sources.

The result of this small project was satisfactory and the only negative point retained by Mr. CALDERONI was that he did not expect that I used a software structure PHP­framework being himself a supporter of no­framework. The strengths of this model of development is mainly in the maintenance of a project as it allows a new developer discovering the draft not dwelling on the mastery of a framework before making changes safely. Before delving about the internship itself, let's see the context and the opportunity which drived me to do this internship.

3 Announcement Gentlemen Kamel EL BACCOUCHE and Stéphane CALDERONI came make a presentation of

the training in the first semester to mid­October with three internship subjects, they make us aware how much application projects to realize are numerous, strategic and urgent. The Research Department is only composed with a Developer Research Engineer, lack of manpower is a real obstacle for development in times of organizational restructuring. At this time I began a part­time one­month internship at Medialight, an information technology consulting of experts accompanying any digital project from specifications till the launch for over 20 years. After a week of part­time training, it turned out that I was not able to adapt to the requirements and constraints of a corporation composed solely of experts from SUPINFO while pursuing my studies next to it. So I did not continue my training with them and I answered the offer of the Research Department, on 1 December 2015, just before the deadline in choosing an internship that the teacher of my training Mr. MESNARD has fixed.

Page 26 sur 44

Page 28: Rapport de stage de Master 2 Informatique au Pôle ...

4 The organization of the internship Now that I have highlighted the characteristics that have led me to this internship, let's see all

the activities, tasks and operation of this service.

4.1 The Research Department

4.1.1 Its activities University of Reunion Research activities cover three major sectors and are involved in 21

research units recognized by the Ministry. They are found in three federal structures that represent the three research priorities of the institution : Natural Media and Global Change, biosafety and environment Tropical Indian Ocean Societies and three areas : Law, Economics and Management; Science, Technology and Health; the Arts and Humanities. All of these units is attached to two doctoral schools (Doctoral School Science, Technology and Health Doctoral School Humanities and Social Sciences), which host more than 300 doctoral students at the University of Réunion Island. Each year, about fifty theses and HDR are supported.

4.1.2 The mission of the Research Department To ensure the implementation of science policy and to develop research activities at the

University of Reunion Island, the main tasks are : The management of the doctoral schools : preparation, instruction and monitoring of

files. The development and management of the budget of basic and contractual research. The development and management of the Academic Council, the council of doctoral

schools and the doctoral college council. The manage of the Research Commission : preparation, instruction and monitoring of

files. The supervision and administration of research units and federal structures. The coordination of the research component of the institution contracts. The management of communication, institutional relations of the search and the

development of the value. The dissemination of scientific information and technical regional, national and

European (calls for projects, grants, award...). Support researchers and laboratories with the development , administrative and

financial management of research projects and highlight the results in term of partnerships with the business world.

Page 27 sur 44

Page 29: Rapport de stage de Master 2 Informatique au Pôle ...

4.2 Organization chart

1. Organization Chart of the Research Department (May 2016)

I was assigned to the Information system cell of the division under the supervision of Stéphane

CALDERONI. As we can see in this graph the director is Mr EL BACCOUCHE.

Page 28 sur 44

Page 30: Rapport de stage de Master 2 Informatique au Pôle ...

4.3 Operation and organization

4.3.1 The framework My working hours are those of the Research Department which is itself open from 09:00 to

12:00 and 14:00 to 18:00 Monday to Friday during the academic year. I shared the office with the number A408 of Stéphane CALDERONI for the period of the traineeship, more precisely the office is at the top floor of the administration building of the University of Réunion Island. I was working on my personal workstation and I had at my disposal a personal desktop and a screen for comfort. This geographical proximity with my tutor helped me get a regular supervision. In addition, progress meetings were conducted throughout the duration of the placement with Mr. EL BACCOUCHE and Mr. CALDERONI when deemed necessary. Sometimes these meetings involved other service members or were made in service meeting with all members of the Research Department.

The Research Department work mostly in project mode with design group and specific working groups for structuring projects involving the information system. As example EMERODE for managing PhD students and SI AVENIR to manage the staff of research units. I worked in an autonomous way and mainly by considering the remarks of users highlighted at various progress meeting.

4.3.2 Report writing Writing this report began with the beginning of my internship following the wise advice of my

tutor. Then it was improved based on the progress by adding the missing informations and things at my knowledge. This choice was very beneficial because I could take the time to make revisions prior to rendering and bring the missing items without overworking me towards the end of the internship.

4.3.3 The different periods of the traineeship Below, I listed the important dates of the traineeshipwith a brief description of the event : February 2 : Service meeting to precisely define the project and needs February ­ May : development of the software solution to manage partner May 2 : Service meeting and two new projects (Time Sheet and fiscal, finance and accounting repository) May 12 : Meeting about work done for partner management May ­ June : Development of enhancements and fixes highlighted at the previous meeting

5 Issues and initial aim of the internship The issues encountered by the Research Department is the lack of human resources in a

period of modernization of the information system. From this observation stems the internship offer. The Research Department lead since three years a policy of modernization of the information system by computerizing paper files. Specifically, the Research Department is driving a project which will manage contract and conventions in order to improve the production and monitoring of files. Part of this application will ask for entering a contract then to enter the partner with whom the contract was held.To simplify this part up and keep consistent information over the long term, we want to establish a repository of partners collaborating with the University of Réunion Island. This repository will be a

Page 29 sur 44

Page 31: Rapport de stage de Master 2 Informatique au Pôle ...

standalone application, stored in a database and will be made available to other applications through a web service.

6 The work In this part we will discuss mainly the existing information system to my taking office, made the

missions, solution implementation and results.

6.1 The existing When I arrived at the Research Department, the project was already well defined with some

visuals showing the pages of the application and all the staff was already informed about the project. Only missing the specifications, which were already started but not finished. This project has already been successfully lead at the CNRS by Mr. EL BACCOUCHE. Upon his arrival in the service, Mr. El Baccouche worked hard to establishment of strong governance by seeking to make data available to the team. He has also worked to make only one reliable source of information with data sources, metadata, calculations and completely new data fields, that everyone can use. As example he managed to develop EMERODE a tool to manage the PhD students and SI AVENIR a tool to manage the staff members in the research units.

6.2 Missions In this part, I will explain the tasks that i have done and how I overcome the difficulties of

integration into the team, the difficulties of looking for data providers and the related missions.

6.2.1 Integration with the team At the beginning of the internship until the specification is done and that I take my bearings, I

researched the following technologies that I would probably be brought to use during the traineeship : BSE phpCAS, PHPLDAP, web service , webtoken JSON. At the same time, I started to work on the main task of the internship by researching on the CNRS site where the project had already been done. Within days, I met with all members of the Research Departement team.

At the beginning of the course, I devoted much time to the exchange with stakeholders to understand the needs, issues and priorities of ongoing projects. An early meeting on February 2 allowed me to get in touch with the projects completed and in progress by all team members.

6.2.2 Data providers for partners recording Within the application that will be developed at some point will require that the user adds the

parts of the contract or agreement. These parts are for example laboratories and public or private partners. We wish to make the task as easy as possible for the user input by implementing an input assistant. To accomplish that, it is necessary to have previously built a partner directory or to work on an already constituted directory. I spent the first weeks of my internship to design this feature. First, I looked for existing solutions to recover the maximum of information on public partners of higher education and research. Then I do the same thing by identifying existing solutions to recover the maximum of information on private partners. This allowed me to draw up the comparative table below, to present possible solutions and choose the most relevant. Additional information is available in Annex 8.1 (including access links to various web services).

Page 30 sur 44

Page 32: Rapport de stage de Master 2 Informatique au Pôle ...

Comparison of possible data providers for partners

Public partners Private partners

Providers data.gouv.fr

DGRI/RNSR CNRS HAL archives ouvertes

FirmAPI Societéinfo

SIRENE CCI

Number of records in millions

0.0003

0.001/0.0038 0.0015 0.013 1,2 5 10 2,6

Comment on accuracy

orga RU DS Discipline ERC Manager

orga compo employee activity

Laboratory Institution Research team

Very precise for companies recently changed

enough accurate

As precise as possible because includes all professional activities

Limited to commercial companies

Cost in € by month

0 0 0 0 0 ou 100 0­200 100­40 000 puis 0

~5833

Comment on sustainability

Very long gov.

VERY LONG as Education ministry

Middle Very long CCSD

Unknown /medium by a startup

Unknown /medium by a startup

Very long as gov. Migration to this solution to provide in 2017

Long

After the presentation of this table, we have decided to try to cross the different sources of free

data. After testing the API on a set, we found that although the FirmAPI application is very precise, it does not meet expectations because none of the set's elements were present in the database of FirmAPI. SociétéInfo is the solution to propose autocompletion of private partners (companies, associations, individuals). Below, I will deal with the development, the research and the results obtained but before I will briefly present the other missions done.

Page 31 sur 44

Page 33: Rapport de stage de Master 2 Informatique au Pôle ...

6.2.3 Design and creation of the database Before I start coding the application, I met the users to identify the elements that will be

collected and stored in a MySQL database. The list below shows the elements constituting a partner card and the information stored in the database :

identifiant → unique identifier of a partner in our information system idParent → ID of the previous record in the evolution of a partner card idExterne → identifier of a partner provide by the different providers Situation de la fiche → active / inactive / in progress statutjuridique →

('ASSOCIATION','CCAS','EARL','EI','EIRL','EPCC','EPCI','EPCS','EPIC','EPLE','EPS','EPCSCP','EPST','EURL','GAEC','GEIE','GIE','LABORATOIRE','OPH','PERSONNE PHYSIQUE','SA','SARL','SAS','SASU','SC','SCA','SCI','SCIC','SCM','SCOP','SCP','SCS','SDIS','SEL','SELAFA','SELARL','SELAS','SELCA','SEM','SEML','SEP','SICA','SNC','INCONNU')

sigle → short name libellé → name nom → name of a physical person prénom → first name of a physical person adresse → partner address code postal → partner postal codes ville → partner city département → partner division pays → country siren → unique identifier of a french company rna → unique identifier of an organization/association uai → unique identifier of a french higher school codeUniteRecherche → unique identifier of a french research unit tva → VAT identifier of an international company commentaire → comment date création → creation date date modification → modification date creerPar → id of the agent who create the record modifierPar → id of the agent who made the last update validerPar → id of the administrator who confirm the record

The MySQL database containing the partner table is not complex, it is simply compose of three main table, users, partners and postal codes without any association relationship between these tables. Another table was created, the associations created from 2009 but it was not maintained.

Page 32 sur 44

Page 34: Rapport de stage de Master 2 Informatique au Pôle ...

6.2.4 The side missions Following these main tasks of research, development following this preliminary work and

between meetings and necessary evolutions, I worked on two missions that i dedicated much less time. It concerns the new timesheet tool for researchers and building a financial and accounting budgetary repository. Both has not yet concrete results but it needed a lot of thought with different actors. Both projects would impact researchers, managers and university unit managers by giving them a more accurate view of their expenses and administrative and legal management. These projects are still in progress.

6.3 Development of the model I dedicated the month of february to the development of a mockup with the features expected

by the service. This mockup has an input field that request several web services. This input depends on the selected radio button or, more precisely the type of partner that we want searched from the following possibilities : Public Institution, Research Unit, Research Institution, Company, People, Association. The mockup also has an application form to create a partner and a representation of the database in a dynamic HTML table with advanced functionality such as paging, search, sort the columns and export the datas in different formats. The application form is pre­filled by selecting a partner in the proposed list during a search. Once the postal code field is filled, the fields, city, province, and country are automatically filled. To do this, I reverse engineering the paid web service available on Geonames and I made the same service. It allow me to obtain different information about postal code and I used the database they provide.

Page 33 sur 44

Page 35: Rapport de stage de Master 2 Informatique au Pôle ...

2. Mockup of the partner repository

Page 34 sur 44

Page 36: Rapport de stage de Master 2 Informatique au Pôle ...

Once submitted for validation, a fortnight later, I started developing a first version of the

application. I migrated the developed part from the previous mockup in a PHP framework created in the initial internship project which allowed me to quickly get the missing features such as connection to the MySQL database and the API to access the partners data. The french government provides the repository of the associations as XML files, one by record in the official newspaper compiled every year in a whole XML file. I create a database of associations created and modified from 2008 (date which correspond to the creation of a unique associations identifier). This database can automatically fill the acronym field, label, address, postal code, town, province. This database could be updated annually using an automation script. I wrote a script which is an adaptation of the original script used in the project OpenStreetMap. After the evaluation of the application, it turned out that the number of partner­associations partner type was not enough compared to the workload to maintain this database. This association database was therefore abandoned later.

3. Alpha version of the application

Many configuration settings have been outsourced in files of JSON or XML format. The choice

of JSON is for the client­side. The file is retrieved at the opening of the web page and displays HTML tables with the desired columns to define the desired level of detail for each type of partner. This allow to differentiate two partners between them and the correspondence between data from webservice and our HTML form. The XML file is not visible to the end user, it is used to group the possible settings of the admin.

Page 35 sur 44

Page 37: Rapport de stage de Master 2 Informatique au Pôle ...

6.4 Development of the solution Following the verification of the model and the first version, I was asked to adapt the interface

and the interaction flow. After only one week of development, the requested changes were applied. After that, I started working on the administration interface because it was the most important part, unclear and raising a lot of questions at previous meetings by the future administrators. I decided to set up an administration part with three parts :

Partners management Users Management Alerts and messages management Dashboard

The tab "Partner Management" displays the database with all partners and the two

functionnalities change or delete. The same tab also displays in a list the evolution of the partners throughout the application life cycle.

The "User Management" tab allow to add users to the application including administrators.

4. Tab "User management" in the administration area of the application

Page 36 sur 44

Page 38: Rapport de stage de Master 2 Informatique au Pôle ...

The tab "Dashboard" displays a dashboard with numbers or charts as needed at time t.

5. Tab "Reports ­ Table" Space Administration of the application

Page 37 sur 44

Page 39: Rapport de stage de Master 2 Informatique au Pôle ...

The web page with the graphic has three graph made using the Google Charts library : a treemap, a histogram chart and finally an area chart. These three charts are dynamic and allow more details on mouse hover or on click.

6. Tab "Reports ­ Graphs" from the administration area of the application

The graph showing the geographic distribution of active partners is very interesting, it builds

on the attributes country, region, state, city of each partner to offer a vision at every geographic level. For example, we obtain the regional distribution partners as presented in the following screenshot when you click on the FR from dark orange from the previous graph :

7. Geographical distribution of the partners at a regional level

Page 38 sur 44

Page 40: Rapport de stage de Master 2 Informatique au Pôle ...

The home page contains three distinct parts, the first is a vision of the past eight records to

validate, the second is a vision of the past four partners cards changed and finally the last is a vision of the past four partner card added.

8. Homepage of the administration area of the application

Page 39 sur 44

Page 41: Rapport de stage de Master 2 Informatique au Pôle ...

Following this, I developed a mockup of the CONTRA­VENTION application to show users possible future interactions between the two applications. PARTNERSHIP is integrated as iFrame in CONTRA­VENTION and data exchange between applications is done using HTML5 and JavaScript with the "postMessage ()". From the beginning I faced the worst case and my goal was to operationalize the interaction between the two applications as if it were separate two stand­alone applications running on different servers and domains. This choice was motivated by the fact that it is very likely to happen at one time or another in this project.

In CONTRA­VENTION, the user proceeds through various stages of construction and registration of a contract or agreement. At the stage of selection of stakeholders, the user adds a partner to the contract or the agreement by clicking on "add a partner." Therefore, the CONTRA­VENTION application window darkened and load it with the PARTNERSHIP application as in the following image :

9. Mockup of the CONTRA­VENTION Application

10. Mockup of the interaction between CONTRA­VENTION and partners repository

Page 40 sur 44

Page 42: Rapport de stage de Master 2 Informatique au Pôle ...

The user is then prompted to look for a partner and to add it using a button. By clicking this button, the window closes and the CONTRA­VENTION application is available again.

6.5 Results and possible improvement Once the site developed locally on my machine, I asked for access to the development server

to put my work accessible to all potential users. At the last presentation of the tool to all members of the service, it was emphasized that the

vocabulary used in the application did not meet the requirements and that some adjustments were still needed. In addition, it is necessary to change the layout of the form fields that do not fully use the space available horizontally and it could force users to use the browser lift. Finally the interface between CONTRAVENTION and PARTNERSHIP is not satisfactory because users want a solution or application PARTNERSHIP opens instead of CONTRAVENTION then returns to CONTRAVENTION when finished the partner search.

When writing this report, the last feature added is the connection with the LDAP directory of the university allowing to know precisely who is the user with its name and its first name from its CAS identifier. Here is a screenshot of the public home page of the application in the latest version:

11. Home of the public area of the application

The application has already many features, but improvements are still possible, especially in

the admin section where you can for example, add in the future, a duplicate detection functionality through records in the database or alerts for events such as the request to create a partner by email or when a user is connecting.

Page 41 sur 44

Page 43: Rapport de stage de Master 2 Informatique au Pôle ...

7 The contributions of the traineeship and conclusion In this report, I tried to show the work done during my six­month internship. The objective of the

intership was to develop a web management solution for partners of the Research Department. The solution implemented is a development in PHP with a MySQL database and JavaScript libraries such as jQuery and Bootstrap. This solution builds on existing web services in order to provide updated information on partners sought. The main difficulties of this work were : searching web services to acquire information on public and private partners and the development of a software solution based on those web services.

This internship was an opportunity to see the University in which I do my Master programs differently and discover services and administrative staff on which research is based. It was a very rewarding experience as professional as personal and human. I emerged with new skills and achievements proving my mastery of these skills.

During the six­month internship, I was more close to the university campus that throughout my studies. I took advantage of this proximity to practice sporting activities in particular climbing in which I have acquired a very good level and got the two first grade allows me to consider the initiator climbing training and the recognition associated with this title.Now, I master the PHP object and I improved my design application skills. If possible, I would initially focus my career as a business applications developer. I find it rewarding to help develop a business while improving the working conditions of employees by the implementation of tools automating or simplifying repetitive tasks such as collection, research and synthesize information. When I wrote this report, the proposal of hiring was advanced without this being a promise of employment. After six months of integration, if this proposal should to succeed, I will accept without any hesitation.

Page 42 sur 44

Page 44: Rapport de stage de Master 2 Informatique au Pôle ...

8 See also

8.1 The different data providers on potential partners My research has accomplished the following results corresponding to links to various web

services to query their data for reuse by using an API that returns data in JSON format.

8.1.1 Public The Higher Education Establishment and Research

Link to government open and free data research institutions : data.gouv.fr . Link to government open and free information on higher educational institutions : data.gouv.fr .

Research units Link to the data of the multidisciplinary HAL open archive providing access to research units :

api.archives­ouvertes.fr .

The National Directory of Research Structures The most comprehensive database of all the data presented above is the RNSR : link .We do

not use this data source in the project for technical reasons. First we encountered difficulties in finding access to basic codes then we do not find a solution for a quick and easy query the database through a web service.

8.2 Private individuals Companies, associations and individuals

The web service societeinfo.com offers a database of over 5 million records sufficiently precise and gives free access to 30 000 credits used per month is around 150 detailed research.

The national database sirene.fr reference more than 10 million records and will be open access from 2017.

In conclusion, public partners we will use government data sources and open archive HAL and

private partners I propose the use of the API available for free by societeinfo.com named startup. A change is possible and is already expected for 2017 because SIRENE the French companies database will be fully available through a free web service.

Page 43 sur 44

Page 45: Rapport de stage de Master 2 Informatique au Pôle ...

9. Table of figures In this table of figures, the term application refers to the partner management application.

1. Organization Chart of the Research Department (May 2016) 2. Mockup of the partner repository 3. Alpha version of the application 4. Tab "User management" in the administration area of the application 5. Tab "Reports ­ Table" Space Administration of the application 6. Tab "Reports ­ Graphs" from the administration area of the application 7. Geographical distribution of the partners at a regional level 8. Homepage of the administration area of the application 9. Mockup of the CONTRA­VENTION Application 10. Mockup of the interaction between CONTRA­VENTION and partners repository 11. Home of the public area of the application

Page 44 sur 44