Cours-Gratuit
  • Accueil
  • Blog
  • Cours informatique
home icon Cours gratuits » Cours informatique » Cours développement web

Exemple rapport de stage developpement web

Exemple rapport de stage developpement web
Participez au vote ☆☆☆☆☆★★★★★
< 
Diplôme Universitaire Technologique 
Spécialité Informatique 
11 Avril – 26 Juin 2015 
RAPPORT DE STAGE 
CHARPY Bastien 
Développement Web  
CREATIS 
Bâtiment Blaise Pascal (4ème étage) 
7 Avenue Jean Capelle - 69621 Villeurbanne Cedex 
Maitre de Stage :  
Responsable Pédagogique :  
Bruno SCIOLLA 
Victor Ostromoukov 
~ 1 ~ 


Sommaire  
Remerciements 
3 
1. 
Introduction 
4 
2. 
Environnement de Stage 
5 
2.1 
Présentation du Laboratoire Commun () 
5 
2.2 
Présentation de l’Equipe de travail 
6 
2.3 
Environnement de Travail, outils utilisés 
6 
3. 
Travail réalisé 
7 
3.0 Préambule : configuration du serveur 
8 
3.1 
Site Web AtysCrea 
9 
3.1.1 Analyse de la structure du site 
9 
3.1.2 
Fonctionnalités 
10 
3.1.3 Réalisation 
11 
3.2. Gestionnaire de fichiers 
13 
3.2.1 Fonctionnalités attendues 
14 
3.2.2 Développement et Intégration 
15 
18 
3.3.1 Configuration du desk 
19 
3.3.2 Prise en main de l’environnement 
20 
3.3.3 Réalisation 
21 
Conclusion technique 
24 
Conclusion 
25 
Bibliographie 
26 
Glossaire 
27 
Table des Figures 
28 
~ 2 ~ 


Remerciements 
Je  tiens  à  remercier  toutes  les  personnes  qui  ont  contribué  au  succès  de  mon  stage,  qui 
m’ont 
accompagné 
et 
aidé 
lors 
de 
la 
rédaction 
de 
ce 
rapport. 
Tout  d'abord,  j'adresse  mes  remerciements  à  mon  professeur, Mme  LAGRAA qui  m'a 
beaucoup aidé dans ma recherche de stage et m’a permis de postuler dans cette entreprise.  
Je tiens à remercier vivement mon maitre de stage, Philipe DELACHARTRE, responsable du 
LabCom AtysCrea
, pour son accueil, le temps passé ensemble et le partage de son expertise 
au quotidien. Grâce aussi à sa confiance j'ai pu m'accomplir totalement dans mes missions et 
ainsi 
développé 
mes 
connaissances 
grâce 
à 
son 
aide 
précieuse.  
Je  remercie  également  toutes  les  personnes  de  l’équipe  imagerie  ultrasonore  de  CREATIS 
pour  leur  accueil,  leur  esprit  d'équipe  et  en  particulier Bruno  SCIOLLA, mon  second tuteur 
qui  m'a  beaucoup  aidé  à  comprendre  le  sujet  notamment  sur  la  dernière  partie  de  mon 
stage.  Je  le  remercie  aussi  pour  m’avoir  guidé  sur  la  rédaction  les  rendus  finaux,  ainsi  que 
pour  son  écoute  et  son  soutien  lorsque  j’avais  des  questions  plus  techniques.  
~ 3 ~ 


1. Introduction 
Dans  le  cadre  de  mon  DUT  Informatique  à  Bourg  en  Bresse,  j'ai 
souhaité réalisé mon stage dans une entreprise qui soit en adéquation 
avec  mon  projet  professionnel.  Je  n’ai  pas  choisi  un  laboratoire  de 
recherche  médical  parce  que  je  veux  faire  une  école  de  médecine 
ensuite, mais parce que la mission qui m’a été proposée correspondait 
avec mon projet de poursuite d’étude.   
En effet ma mission première a été de mettre en place un serveur afin de pouvoir y intégrer 
le    Site  Web  que  j’allais  concevoir  par  la  suite.  Comme  je  poursuis  mes  études  dans  le 
domaine  de  l’administration  réseau/système,  ce  fut  une  belle  opportunité  pour  moi  de 
mettre en application mes compétences acquises lors de mon DUT et d’avoir une première 
expérience concrète dans ce domaine. 
Etant  moins  à  l’aise  en  développement  d’applications,  je  me  suis  orienté  vers  une  mission 
proposant  du  développement  Web.  Cette  mission  m’a  permis  de  mettre  en  avant  mes 
compétences  dans  ce  domaine  que  j’affectionne,  en  contribuant  à  l’évolution  d’un    projet 
comme celui-ci. 
Dans  un  second  temps,  j’ai  dû  réaliser  un  Gestionnaire  de  Fichiers,  qui  est  accessible 
depuis le Site Web. Son rôle est de permettre à tous les collaborateurs du projet de pouvoir 
stocker et  échanger des fichiers et ainsi créer un espace collaboratif simple et efficace. 
Enfin,  toujours  dans  cette  même  optique  de  portail  collaboratif,  j’ai  réalisé  un 
Démonstrateur Web en JavaScript, utilisant des outils déjà préconçus, ce démonstrateur est 
accessible  directement  depuis  le  Site  Web.  Il  permet  à  n’importe  qui  de  venir  tester  les 
algorithmes des chercheurs du Laboratoire, directement en ligne. Les activités détaillées du 
Laboratoire sont expliquées dans la partie suivante.  
Tout  d’abord,  je  décrirai  l'unité  de  recherche  CREATIS  et  son  secteur  en  insistant  sur 
l’enjeu de ce projet. Puis je présenterai mes missions lors de ce stage avant de dresser un 
bilan de celui-ci. 
~ 4 ~ 


2. Environnement de Stage 
Avant  tout,  il  est  important  de  comprendre  quels  sont  les  acteurs  de  ce 
projet.  En  effet,  le  laboratoire  CREATIS  a  répondu  en  partenariat  avec 
l’entreprise  Atys  Medical  à  un  appel  à  Projet  de  l’ANR  intitulé  programme 
LabCom.  L’objectif  de  cet  appel  à  projet  est  de  faire  travailler  ensemble 
académique  et  entreprise  pour  favoriser  le  transfert  des  savoir-faire 
développer dans les laboratoires. Située en périphérie Lyonnaise, l’entreprise 
Atys  Medical  (www.atysmedical.com)  fabrique  du  matériel  de  diagnostic 
médical comme des échographes par exemple.  
2.1 Présentation du Laboratoire Commun () 
Ce  laboratoire  commun  intitulé  AtysCréa  est  centré  sur  l’instrumentation  ultrasonore 
médicale  pour  le  Doppler  Transcrânien  et  l’imagerie  échographique  haute  fréquence.  Il 
associe  la  société  Atys  Médical  et  l’unité  de  recherche  micro-emboles  cérébrales  dans  un 
enjeu  de  santé  publique  pour  prévenir  les  accidents  vasculaires  cérébraux  (110 000 
hospitalisations en France en 2010). 
Atys  est  fortement  impliqué  en  R&D,  sur  un  effectif  de  10 
personnes, six sont en R&D. Cette activité produit de nouveaux 
équipements (2012 : premier Holter transcrânien).  
Très présente sur le marché international, Atys effectue plus de 
80% de son chiffre d’affaires à l’étranger par l’intermédiaire de 
distributeurs exclusifs et 20% en France avec son propre réseau 
commercial.  
CREATIS est l’un des principaux laboratoires de recherche européen en imagerie biologique 
et  médicale.  L’unité  est  fortement  impliquée en  transfert/valorisation  (3start’up,  diffusion 
de plus de 10 logiciels et 20 brevets) soutenue par les structures de valorisation des tutelles 
et le Pres de Lyon.  
Deux premiers grands axes sont à développer dans le cadre de ce laboratoire commun : 
?  Détection  de  micro-emboles  présents  dans  le  flux  sanguin  cérébral  par  Doppler 
Transcrânien.  
?  Imagerie échographie haute fréquence pour des applications de caractérisation tumorale 
en dermatologie et sur le petit animal de laboratoire. 
~ 5 ~ 


2.2 Présentation de l’Equipe de travail 
L’équipe  dans  laquelle  je  travaille  est  composée  de  5  Stagiaires,  2  Post-Doctorants  et 
Philippe, l’encadrant. 
En  ce  qui  concerne  le  travail  au  sein  de  cette  même  équipe,  j’ai  travaillé  en  collaboration 
avec  un  autre  stagiaire,  Mehdi,  qui  m’a  épaulé  à  la  fin  de  mon  stage.  On  a  travaillé  en 
binôme  tout  au  long  du  développement  du  Démonstrateur  Web,    cela  nous  a  permis 
d’avancer plus efficacement et ainsi finir cette partie plus rapidement. 
2.3 Environnement de Travail, outils utilisés 
?  La partie web sera créée à l’aide de Drupal, un CMS (Content Management System) 
Qui a été utilisé par le laboratoire pour son propre site Web. C’est un 
choix  de  la  part  de  mon  tuteur  puisqu’il  connait  déjà  cet  outil,  il  est 
donc  préférable  pour  lui  de  le  garder  afin  de  maintenir  le  site 
facilement. 
?  Le  site  web  sera  ensuite  hébergé  directement  dans  les  locaux  du  laboratoire.  Pour  ce 
faire,  un  serveur  virtuel  CentOS  est  mis  en  place,  un  environnement  Linux.  J’ai  donc 
utilisé MySQL, PhpMyAdmin, FTP, et Apache pour réaliser l’hébergement du Site.  
?  Le gestionnaire de Fichier sera codé en JavaScript/JQuery/PHP, pour 
gérer  les  diverses  fonctionnalités  demandées  par  le  laboratoire 
(Multiples  Upload,  Click  &  Drop…)  j’ai  utilisé  FileAPI,  une  librairie 
JavaScript. 
?  En  ce  qui  concerne  le  Webdesk,  c’est  uniquement  en  JavaScript  que  le  travail  s’est 
effectué, utilisation de QOOXDOO pour l’interface, et du format Json pour faire transiter 
les données du serveur vers le client. 
~ 6 ~ 


3. Travail réalisé  
Pour avoir une idée plus précise de mon travail tout au long du stage, voici un diagramme de 
Gantt qui récapitule le déroulé des missions qui m’ont été demandées.  
Ce diagramme a été mis à jour tout au long du stage afin d’avoir un aperçu du travail réalisé 
mais aussi pour que je puisse m’organiser pour finir mon stage dans les meilleurs délais.  
Figure 1 : Diagramme de Gantt 
Mon stage s’est décliné en différentes phases distinctes :  
?  Bleu/Jaune :  En  tout  début  de  stage  c’est  une  phase  de  découverte  et  d’analyse. 
Précision  du  sujet  de  stage  et  la  découverte  de  Drupal.  Durant  plusieurs  jours,  en 
local, j’ai installé et configuré de nombreux modules.  
?  Vert : Deuxièmement, le serveur sur lequel le site est hebergé a été configuré pour 
permettre le deploiement de Drupal. 
?  Rouge : La mise en place du Site Web. 
?  Violet :  L’intranet  sécurisé,  la  gestion  des  rôles,  du  contenu  et  de  l’intégration  du 
gestionnaire de fichiers. 
?  Gris : Le Gestionnaire de Fichiers.  
?  Orange : Webdesk, implémentation sur le site et ajustements. 
Sans oublier que tout au long de mon stage, des mises au points régulières avec mes tuteurs 
ont eu lieu pour s’assurer que le travail que je réalise répond bien aux attentes. La rédaction 
des rapports s’est déroulée sur l’ensemble de la durée du stage. 
~ 7 ~ 


3.0 Préambule : configuration du serveur 
Ayant pour seule ressource initiale une adresse IP, je devais implémenter et mettre sur pied 
le site web AtysCrea, tel que décrit dans l’intitulé de ma mission. 
Afin  d’orienter  ce  projet  qui  partait  d’une  base  nulle,  une  démarche  réfléchie  en  amont, 
suivant une analyse fine des points difficiles m’a permis de me canaliser et de procéder par 
étapes successives que je vais aborder ci-après. 
Plusieurs  étapes  ont  donc  été  nécessaires  à  la  configuration  du 
serveur.  Je  me  suis  familiarisé  à  l’environnement  linux,  et  j’ai 
installé  et  configuré  différents  éléments  sur  le  serveur : 
PhpMyAdmin, Apache, MariaDB, PHP et un serveur FTP…   
En  suivant  divers  tutoriels  sur  internet,  j’ai  ainsi  décomposé  les  tâches  à  effectuer  suivant 
l’archétype : 
-  PhpMyAdmin : sert à administrer mes bases de données, je l’ai configuré 
de  la  façon  la  plus  standard  possible,  je  peux  y  accéder  depuis  une 
interface Web. 
-  Apache, est un logiciel libre que l’on installe sur le serveur qui fait office de 
serveur http, il va donc accueillir notre Site Web et c’est lui qui va faire en 
sorte qu’il soit accessible via notre navigateur.
-  MariaDB,  qui  est  en  réalité  comme  MySQL,  un  gestionnaire  de  Base  de 
Données.  Grâce  à  cet  outil,  mes  bases  de  données  vont  pouvoir  être 
créées et administrées via PhpMyAdmin sans problèmes.

-  PHP, il est indispensable pour que notre serveur puisse communiquer avec 
notre site et nos bases de données. 
-  FTP,  c’est  un  explorateur  graphique  de  notre  serveur,  il  nous  permet 
notamment de copier/coller du contenu facilement qui serait utile pour le 
site Web. Il est indispensable pour l’installation des modules Drupal. 
Au final, un schéma succinct permet de mieux visualiser l’ensemble des interactions 
de la chaîne. C’est cette représentation et étude qui m’ont permis de ne pas m’égarer et de 
me  focaliser  sur  les  différentes  étapes  pour  configurer  le  serveur  dans  les  temps  que  je 
m’étais fixé. 
~ 8 ~ 


3.1 Site Web AtysCrea 
Creatis  m’a  proposé  de  réaliser  un  site  web  en  partant  du  CMS  Drupal,  que  le 
laboratoire utilise lui-même pour son site. C’est un outil puissant, intuitif et ergonomique qui 
permet de gérer du contenu… et qui est surtout connu des laborantins. 
Il est par ailleurs très simple de le complexifier en installant des modules idoines, là encore 
très ergonomiques. 
A terme, Drupal permettra de créer un site qui se veut interactif, où tous les collaborateurs 
d’AtysCrea  pourront  interagir,  selon  plusieurs  niveaux.  En  effet,  seront  distingués  deux 
volets  du  site :  une  partie  publique  pour  les  visiteurs  et  une  partie  privée  pour  les 
collaborateurs  du  LabCom.  Une  analyse  approfondie  de  la  structure  du  site  a  été  réalisée 
avec tous les responsables du projet. 
3.1.1 Analyse de la structure du site 
Figure 2 : Maquette Site Web AtysCrea 
Mon  tuteur  ayant  déjà  une  idée  très  précise  du  contenu  qu’il  voulait  intégrer  au  site,  j’ai 
réalisé  cette  maquette  en  lien  étroit  avec  les  intervenants  du  projet,  et  avec  leur  aval,  ce 
modèle a été retenu pour la forme, la disposition et le type de contenu à intégrer au site. Par 
~ 9 ~ 


ailleurs,  son  aspect  graphique  reprend  les  codes  de  construction  du  site  du  laboratoire 
, afin de garder une homogénéité parmi les réalisations du laboratoire. 
Il sera très important de mettre en avant les deux démonstrateurs web (détaillés plus tard), 
qui sont vraiment la façade du savoir-faire de Creatis. 
Sans entrer dans les détails de l’aspect graphique, ce sont surtout les fonctionnalités du site 
qui vont nous intéresser. 
3.1.2Fonctionnalités 
Principal support de la collaboration entre le laboratoire Creatis et l’entreprise 
Atys  Medical,  le  principal  attrait  du  site  est  son  aspect  collaboratif,  puisque 
chaque personne pouvant s’authentifier pourra déposer, modifier ou supprimer 
du  contenu  selon  les  droits  qui  lui  seront  attribués.  En  particularité,  les 
fonctionnalités suivantes m’ont été demandées : 
-  une gestion des droits d’accès, étant donné que dans le domaine médical, 
certaines données sont très sensibles et soumises à la loi. 
-  un  espace  dédié  à  l’échange  permettra  de  suggérer  des  améliorations, 
faire  remonter  des  idées  et  donner  son  avis  sur  le  fonctionnement  des 
démonstrateurs. 
-  un  espace  de  gestion  des  publications  des  chercheurs,  dont 
l’implémentation est relativement difficile, étant donné qu’aucun module 
répondant aux exigences n’existait en l’état sur Drupal.  
-  un gestionnaire de fichiers qui, compte tenu de son importance sur le site, 
fera l’objet d’une partie de ce rapport. 
Passée l’analyse des besoins et des fonctionnalités attendus par la finalité de ma mission, j’ai 
pris  en  main  l’environnement  de  Drupal  et  ai  réalisé  ,  dont  je 
détaille la réalisation ci-après. 
~ 10 ~ 


3.1.3 Réalisation 
Drupal  est  un  CMS,  pour  Content  Management  System,  c’est-à-dire  un  outil  destiné  au 
développement d’un site web. Il permet de rapidement générer du contenu interactif sans 
passer par le développement informatique dans un certain langage de programmation.    
La particularité de Drupal est la possibilité d’ajouter des modules que l’on télécharge sur le 
site , permettant d’ajouter des fonctionnalités de conception du  site. Il est donc 
très modulable dans les limites de ce que permettent les modules. Cela dit, il est tout à fait 
possible d’aller encore plus loin en modifiant soi-même les modules, et c’est précisément ce 
que j’ai fait pour agrémenter la réalisation du site de petits bouts de code : PhP, JavaScript, 
HTML. 
Ci- dessous un exemple de module particulier à ce CMS, que j’ai téléchargé et installé, qui 
met  en  exergue  la  praticité  de  l’outil  dans  la  réalisation  d’une  fonctionnalité  du  site,  ici 
l’insertion d’une formule Latex. 
Figure 3 : Exemple de Module : Formule Latex 
Dans  le  cadre  du  développement  d’un  site  traditionnel,  il  aurait  fallu  inclure  une  librairie 
spécifique  au  langage  utilisé  et  coder  entièrement  les  lignes  nécessaires  à  l’affichage  de  la 
formule, ce qui aurait été plus coûteux en temps. 
~ 11 ~ 


A la date de réalisation, j’ai installé 168 modules, dont 110 qui ont été configurés et activés. 
Figure 4 : Aperçu du Menu d'Administration des Modules 
Outre cet aspect de gestion des modules qui permettent d’étoffer et réaliser plus finement 
le site, la prise en main de Drupal a été relativement intuitive, bien que complexe de par la 
richesse des possibilités qu’offre ce CMS même sans modules. 
Cela  dit,  et  sans  entrer  dans  les  détails,  j’ai  en  particulier  modifié  le  code  de  la  rubrique 
Publications  pour  y inclure  des détails  graphiques  demandés  par  mon  tuteur, mais  qui  ont 
nécessité des connaissances en JavaScript pour ajuster le module associé. 
Figure 5 : Code modifié du module Publication 
~ 12 ~ 


Figure 6 : Application du code modifié du module Publication
Ces quelques lignes donnent aux chercheurs la possibilité d’ajouter un document avec une 
icône graphique associée à son format. 
Au total, plus de 10 modules ont été modifiés de la sorte afin de parfaire l’ergonomie et la 
convivialité du site. Toutes les fonctionnalités instaurées sont donc dépendantes de la prise 
en main de Drupal. Je ne passe pas en revue tous les modules modifiés mais cet exemple sur 
Publications  permet  de  visualiser  le  travail  qui  peut  être  nécessaire  pour  approfondir  les 
possibilités du CMS.  
Ainsi,  bien  que  ma  mission  principale  eût  été  la  mise  en  place  du  site  web,  le  cœur  du 
développement  a  été  fait  au  travers  du  gestionnaire  de  fichiers  et  du  démonstrateur 
JavaScript. 
3.2. Gestionnaire de fichiers 
Le gestionnaire de fichiers m’a demandé d’opérer une approche différente de la conception 
du site, en mettant un accent sur la gestion des droits d’accès. 
L’idée  est  de  permettre  aux  collaborateurs  d’échanger  leurs  données  au  travers  du 
gestionnaire et d’avoir un espace de stockage personnel sur le serveur. 
~ 13 ~ 


3.2.1 Fonctionnalités attendues 
Le schéma UML suivant présente les interactions entre les différents éléments du 
Gestionnaire de fichiers : 
Figure 7 : Diagramme de Cas d’Utilisation du Gestionnaire de Fichier 
Une liste non exhaustive et plus particulière des fonctionnalités du gestionnaire est la 
suivante : 
-  Upload Multi-Fichiers (Plusieurs Fichiers à la fois) ; 
-  Drag & Drop ; 
-  Pouvoir Copier/Coller, renommer, ou trier par Date/Taille… ; 
-  Gérer les Gros Fichiers (+200Mo) ; 
-  Gérer les droits d’accès aux Répertoires ; 
-  Et bien d’autres. 
Initialement, aucun module Drupal ne permettait de réaliser autant de fonctionnalités. J’ai 
donc voulu utiliser une API, qui est une librairie JavaScript facilitant toutes les actions sur la 
gestion des fichiers.  
~ 14 ~ 


3.2.2 Développement et Intégration 
J’ai comparé différentes API suivant les fonctionnalités dont j’avais besoin, et ai retenu File 
API, qui me permet de répondre à toutes les attentes. 
En  particulier,  le  Github  de  l’API  est  très  ergonomique  et  synthétique,  et  propose  tout  un 
arsenal  de  fonctions  complexes  et  prêtes  à  l’utilisation,  telles  que  l’upload,  le  download, 
etc… ce qui a efficacement orienté le codage du gestionnaire. 
Cela dit, la fonction de  Drag & Drop proposée par le Github ne convenait pas, et j’ai donc 
étudié une implémentation différente de l’existant. Je suis parti d’une démo existante de la 
fonction  notamment  pour  avoir  une  idée  du  squelette,  et  me  suis  aidé  du  diagramme 
suivant : 
Figure 8 : Diagramme du Fonctionnement du Drag&Drop 
En l’occurrence, quand le navigateur détecte un fichier en survol au-dessus de la page (drop 
evt)
,  l’API  va  lire  ce  fichier  (FileReader),  transférer  les  données,  et  le  charger  sur  le 
gestionnaire (load evt). 
~ 15 ~ 


Figure 9 : Code du 'load evt' 
Suite à cela, l’analyse conceptuelle de la maquette du gestionnaire a été faite en adéquation 
avec les collaborateurs du projet. Nous avons abouti au modèle suivant :  
Figure 10 : Maquette du Gestionnaire de Fichiers 
~ 16 ~ 


Très simpliste, l’interface répond à toutes les exigences et fonctionnalités demandées. 
Un  autre  point  dur  du  gestionnaire  de  fichiers  est  la  gestion  des  droits  d’accès.  Pour 
homogénéiser et centraliser l’accès à la fois sur le site et sur le gestionnaire, j’ai effectué des 
requêtes SQL afin de réaliser des jointures entre les différentes tables de la base de données 
de Drupal. 
Je  ne  souhaitais  pas  qu’il  y  ait  une  réauthentification  lorsqu’on  accède  au  gestionnaire  de 
fichiers. L’objectif est de récupérer les informations de session Drupal (le type d’utilisateur 
connecté), notamment en termes de droits d’accès, afin de les conserver en allant du site au 
gestionnaire. 
Figure 11 : Schéma de fonctionnement des Droits d'accès du Gestionnaire 
Au final,  l’accès au gestionnaire de fichiers se fait grâce au bordereau supérieur, comme sur 
l’image qui suit : 
Figure 12 : Aperçu du Site avec le lien du Gestionnaire de Fichiers 
~ 17 ~ 


 Avec la page du gestionnaire ci-dessous : 
Figure 13 : Résultat final du Gestionnaire 
3.3. Démonstrateur JavaScript - Web desk 

Cette  dernière  partie  aborde  un  aspect  tout  à  fait  intéressant  de  mon  stage.  Un 
développeur du laboratoire, Sébastien Valette, a développé une librairie JavaScript ‘Desk’ qui 
permet de coder et exécuter du code directement en ligne sur un navigateur. 
En l’occurrence, c’est une architecture tout à fait adaptée à la visualisation et le traitement 
d’images  médicales.  On  exploite  les  technologies  HTML5  et  WebGL  côté  client    pour 
naviguer et visualiser les images. Le côté serveur est quant à lui géré grâce à un protocole 
réseau (RPC) que je ne détaillerai pas. Grâce au PHP, les exécutables sont ensuite lancés sur 
le serveur. 
L’avantage  est  donc  de  pouvoir  coder  en  ligne  mais  aussi  de  lancer  des  exécutables  côté 
serveur. L’interaction du modèle client/serveur est schématisée comme suit : 
Figure 14 : Architecture Complexe du modèle Client/serveur de la Libraire Desk 
Je  vais  aborder  dans  cette  partie  la  configuration  du  desk,  la  prise  en  main  de 
l’environnement et le code développé pour une application demandée. 
~ 18 ~ 


3.3.1 Configuration du desk 
Le desk est trouvable sur le github de Sébastien Valette, avec les instructions nécessaires à 
son installation sous Linux. J’ai essayé dans un premier temps cette option, en l’installant en 
local  sur  ma  machine  et  en  le  faisant  tourner  via  le  port  8080.  Posant  des  problèmes  de 
visibilité depuis l’extérieur, j’ai pensé à utiliser un proxy, mais la solution étant coûteuse en 
temps, je me suis orienté vers une autre option. 
Figure 15 : Lancement de Desk en Local sur une sa machine 
La  solution  retenue  pour  pouvoir  développer  sur  mon  desk  a  été  de  créer  un  espace 
personnel sur le serveur de Sébastien Valette, et de m’enregistrer comme utilisateur sur son 
serveur.  Depuis  l’adresse  ,  j’accède  donc  à  mon  espace 
personnel où je peux développer mon code JavaScript pour l’application de démonstrateur. 
Figure 17 : Lancement du Desk en Local via  
Figure 16 : Exemple d'une page de développement sous Desk 
~ 19 ~ 


3.3.2 Prise en main de l’environnement 
Je  me  suis  inspiré  des  codes  préexistants  dans  l’onglet  démos  afin  de  prendre  en  main  le 
desk notamment en termes de syntaxe et d’articulation du code. 
Le  langage  de  programmation  étant  le  JavaScript,  qui  m’est  familier,  j’ai  pu  rapidement 
structurer mon code afin de créer des fonctions basiques utiles pour la suite du projet sous 
desk.  
Figure 18 : Exemple de fonction basique sous Desk pour une prise en main 
Ci-dessus  un  morceau  de  code  pour  implémenter  dans  une  page  un  petit  emplacement 
nommé spectrogramme sur lequel se situe un slicer. 
La syntaxe est relativement intuitive, j’ai codé mes fonctions dans un seul .js. 
C’est suite à cette prise en main sur ce type de fonctions que j’ai pu m’intéresser au cœur du 
problème : le démonstrateur Echo3D. 
Figure 19 : Exemple d'image médical qui peut être traité (3 Plans (x,y,z)) 
A partir d’images médicales sous forme de 3 plans, mon programme codé sur le desk devra 
suivre le fonctionnement suivant : 
~ 20 ~ 


1.  Proposer  à  l’utilisateur  de  choisir  certains  paramètres  d’entrée :  clics  sur  une 
surface, champs d’entrée… 
2.  Écrire ces paramètres dans un fichier .json 
3.  Lancer les algorithmes des chercheurs au travers d’exécutables en lisant le .json  
4.  Afficher les données en sortie de l’exécutable, c’est-à-dire une image 3D 
Figure 20 : Chaine de traitement dans le Desk, de l'image brut au résultat 3D 
3.3.3 Réalisation 
Suivant  les  étapes  décrites  ci-dessus,  j’ai  d’abord  réalisé  l’interface  du  démonstrateur  en 
m’inspirant du code d’un collègue qui avait présenté une disposition similaire. 
Figure 21 : Interface Finale du Desk Echo3D 
L’interface est réalisée à l’aide de la librairie Qooxdoo, basée sur une architecture JavaScript, 
et  qui  permet  de  manipuler  des  composants  web  tels  que  des  boutons,  fenêtres,  sliders, 
etc… L’intérêt est principalement graphique et servira donc de base visuelle. 
~ 21 ~ 


L’utilisation  de  Qooxdoo  est  très  permissive  en  termes  de  développement  et  relativement 
simple d’utilisation, ce qui permet d’obtenir un code aéré avec des fonctions concises et bien 
distinctes les unes des autres. 
Figure 23: Initialisation du File Browser (Qooxdoo) 
Figure 22 : Initialisations de boutons (Qooxdoo) 
Figure 23 : Initialisation de la fenêtre principale (Qooxdoo) 
~ 22 ~ 


La  récupération  des  paramètres  d’entrée  saisis  par  l’utilisateur  au  travers  des  clics  ou  du 
champ  d’entrée  se  fait  au  travers  d’une  fonction  actuellement  en  développement.    Elle 
collecte  les  coordonnées  associées  aux  clics/valeurs  entrées  puis  les  écrit  dans  un  fichier 
.json. 
Image fonction + .json 
Une courte fonction se charge de l’appel d’un exécutable sur le serveur. Le fichier .json sert 
de paramètre d’entrée à celui-ci. 
Figure 25 : Fonction qui lance l'exécutable avec le .json en paramètre 
Prenons l’exemple d’une donnée montrant le derme/épiderme, et que le chercheur cherche 
à détecter et visualiser une éventuelle tumeur…  
Un fichier 3D est ainsi généré et on obtient le résultat final suivant :  
Figure 246 : Exemple d'une Tumeur visualisé en 3D 
~ 23 ~ 


Au  final,    environ  70%  de  la  programmation  du  Web  Desk  a  été  réalisée  à  l’heure  de 
rédaction  de  ce  rapport :  l’interface  est  codée,  l’appel  à  l’exécutable  est  fonctionnel  et  le 
passage par paramètres en voie de finalisation. 
Conclusion technique 
J’ai mis en place durant ces deux derniers mois un site web avec pour seule ressource une 
adresse IP et un accès serveur. 
J’ai tout d’abord configuré le serveur afin d’accueillir le CMS Drupal, sur lequel j’ai annexé un 
parc de modules répondant aux attentes de ma mission. Afin d’approfondir et agrémenter le 
site de petits détails demandés par mes encadrants, j’ai modifié le code de certains modules 
en me perfectionnant en JavaScript. 
Le  second  aspect  du  stage  était  l’ajout  au  site  d’un  gestionnaire  de  fichiers,  toujours  dans 
l’optique globale d’avoir un espace collaboratif entre les intervenants du projet. J’ai dû faire 
valoir des compétences en gestion de base de données afin de contrôler les droits d'accès. 
Pour  parachever  mon  travail,  j’ai  supplémenté  le  site  d’un  démonstrateur  écho  3D,  un 
puissant  outil  pour  promouvoir  le  savoir-faire  de  Creatis.  Cela  m’a  notamment  permis  de 
gagner  en  compréhension  et  en  compétences  vis-à-vis  de  la  gestion  des  interactions 
client/serveur, et de découvrir un outil très prometteur de développement web. 
Ce stage a été une opportunité de mettre en exergue mes compétences et de les exploiter à 
travers un projet concret. 
~ 24 ~ 


Conclusion  
J’ai effectué mon stage de fin de DUT au sein du laboratoire Creatis dans l’équipe Ultrasons. 
Ma  mission  était  de  promouvoir  la  collaboration  entre  Creatis  et  Atys  Medical  au  travers 
d’un site web mettant en avant le travail des chercheurs et les algorithmes développés par le 
laboratoire. 
Ayant  déjà  travaillé  dans  un  milieu plus  industriel,  cette  mission  en  laboratoire  m’a  donné 
une  nouvelle  perspective  du  fonctionnement  d’un  tel  environnement.  Moins  rigide  qu’une 
entreprise,  le  laboratoire  donnait  plus  de  liberté  quant  à  ma  manière  de  travailler.  Cela 
impliquait aussi de m’organiser afin d’orienter du mieux possible mon travail. J’avais le loisir 
de pouvoir suivre des formations sans rapport avec ma mission mais qui m’ont permis d’en 
connaître davantage sur le laboratoire et en particulier l’équipe ultrasons. 
En ce sens, mon rôle était de sublimer le travail des chercheurs. Je me suis intégré en tant  
que  développeur  web  ayant  à  charge  l’image  du  LabCom,  mais  aussi  la  mise  en  avant 
concrète  du  projet  au  travers  de  démonstrateurs  fonctionnels  et  des  publications  des 
laborantins. 
Au  cours  de  ces  deux  derniers  mois,  j’ai  donc  découpé  mon  stage  suivant  trois  axes 
principaux :  la  mise  en  place  du  site  web,  le  gestionnaire  de  fichiers  et  enfin  le 
démonstrateur.  
J’ai  capitalisé  sur  mes  compétences  acquises  au  cours  de  ma  formation,  mais  ai  dû  faire 
preuve  de  partialité  afin  de  les  exploiter  dans  un  milieu  professionnel,  et  sélectionner  ce 
dont j’avais besoin pour réaliser ce qui était attendu de moi. 
C’est  ainsi  que  j’ai  aussi  complété  ma    formation  en  me formant  à  l’utilisation poussée  du 
CMS Drupal, et aux langages web JavaScript et Json. 
Au final, le site est fonctionnel, visitable, le gestionnaire de fichiers répond aux exigences, et 
le démonstrateur est en bonne progression, avec une idée guidée de la démarche à suivre 
pour continuer.  
Ce  stage  m’aura  permis  d’avoir  une  expérience  très  appliquée  du  monde  professionnel, 
notamment en ce qui concerne la gestion de projet, étant donné que j’ai mené mon projet 
de la feuille blanche au rendu final. C’est une opportunité qui me permettra d’aborder mon 
année d’alternance sous les meilleurs auspices. 
~ 25 ~ 


 Bibliographie 
Librairie Desk :  
?  H. Jacinto, R. Kéchichian, M. Desvignes, R. Prost, and S. Valette - A Web Interface for 
3D  Visualization  and  Interactive  Segmentation  of  Medical  Images  -  Conference 
Paper 
Link: 
?  R. Kéchichian, S. Valette, M. Desvignes, and R. Prost - Shortest-path constraints for 
3D multiobject semiautomatic segmentation via clustering and Graph Cut. – Journal 
Article  
Link: ; 
~ 26 ~ 


Glossaire 
~ 27 ~ 


Table des Figures 
Figure 1 : Diagramme de Gantt 
7 
Figure 2 : Maquette Site Web AtysCrea 
9 
Figure 3 : Exemple de Module : Formule Latex 
11 
Figure 4 : Aperçu du Menu d'Administration des Modules 
12 
Figure 5 : Code modifié du module Publication 
12 
Figure 6 : Application du code modifié du module Publication 
13 
Figure 7 : Diagramme de Cas d’Utilisation du Gestionnaire de Fichier 
14 
Figure 8 : Diagramme du Fonctionnement du Drag&Drop 
15 
Figure 9 : Code du 'load evt' 
16 
Figure 10 : Maquette du Gestionnaire de Fichiers 
16 
Figure 11 : Schéma de fonctionnement des Droits d'accès du Gestionnaire 
17 
Figure 12 : Aperçu du Site avec le lien du Gestionnaire de Fichiers 
17 
Figure 13 : Résultat final du Gestionnaire 
18 
Figure 14 : Architecture Complexe du modèle Client/serveur de la Libraire Desk 
18 
Figure 15 : Lancement de Desk en Local sur une sa machine 
19 
Figure 16 : Exemple d'une page de développement sous Desk 
19 
Figure 17 : Lancement du Desk en Local via  
19 
Figure 18 : Exemple de fonction basique sous Desk pour une prise en main 
20 
Figure 19 : Exemple d'image médical qui peut être traité (3 Plans (x,y,z)) 
20 
Figure 20 : Chaine de traitement dans le Desk, de l'image brut au résultat 3D 
21 
Figure 21 : Interface Finale du Desk Echo3D 
21 
Figure 22 : Initialisations de boutons (Qooxdoo) 
22 
Figure 23: Initialisation du File Browser (Qooxdoo) 
22 
Figure 26 : Exemple d'une Tumeur visualisé en 3D 
23 
~ 28 ~ 


Résumé : Stage en Développement Web 
Au sein du Laboratoire Médical CREATIS, à Villeurbanne proche du campus de la Doua. 
Ma mission a été de promouvoir le savoir-faire de CREATIS à travers un projet concret.   
Ce projet, intitulé AtysCréa est centré sur l’instrumentation ultrasonore médicale pour le 
Doppler Transcrânien et l’imagerie échographique haute fréquence. 
Travail Réalisé :  
?  Configuration d’un Serveur CentOS (Linux) pour héberger le Site Web. 
?  Prise en Main du CMS Drupal 
?  Mise en place de Site Web à l’aide de Drupal  
?  Gestionnaire de Fichiers en JavaScript (File API) 
?  Démonstrateur Web en JavaScript 
Summary: Web Development Internship  
Within the Medical Laboratories, CREATIS in Villeurbanne near the campus of La Doua. 
My mission has been to promote the expertise of CREATIS through A concrete project. 
The project, entitled AtysCréa focuses on medical ultrasound instrumentation for Trans 
cranial Doppler and high frequency ultrasound imaging.  
Work Performed:  
• Setting up a CentOS server (Linux) to host website. 
• Getting Started Drupal CMS 
• Establishment of Website using Drupal 
• File Manager in JavaScript (File API) 
• Web Demonstrator in JavaScript 
Mots-Clés : CREATIS, DéveloppementWeb, Admin Système, Drupal, Javascript, FileAPI, 
Démonstrateur Web
~ 29 ~ 


~ 30 ~ 

Decouvrir ces documents

  • Exemple de rapport de stage secrétariat bureautique

    Exemple de rapport de stage secrétariat bureautique

  • Exemple rapport de stage developpement web

    Exemple rapport de stage developpement web

  • Rapport de fin de stage en secrétariat bureautique

    Rapport de fin de stage en secrétariat bureautique

  • Comment présenter une activité dans un rapport de stage ?

    Comment présenter une activité dans un rapport de stage ?

  • Rapport de Stage Reseaux

    Rapport de Stage Reseaux

  • Modèles de rapport de stage sur Word

    Modèles de rapport de stage sur Word

  • Modèle d’attestation de stage sous format Word

    Modèle d’attestation de stage sous format Word

  • Modèles de PowerPoint pour soutenance stage

    Modèles de PowerPoint pour soutenance stage

Articles connexes

  • Comment rédiger un rapport de stage ?
  • Rapport de stage : chef de chantier de construction de bâtiment ou travaux public
  • Lettre de motivation pour un stage de moniteur éducateur au Canada
  • Comment élaborer un plan de développement des compétences ?
  • Comment rédiger une lettre de motivation pour un stage d’ingénieur ?
  • Comment rédiger un rapport d’activité informatique?
  • Comment devenir un consultant en développement durable et RSE?
  • Comment élaborer un rétroplanning commercial ?
  • Contactez-nous
  • A propos de nous
  • On recrute
  • Rechercher dans le site
  • Politique de confidentialité
  • Droit d'auteur/Copyright
  • Conditions générales d'utilisation
  • Plan du site
  • Accueil
  • Blog
  • Finance et compta.
  • Formations Pro.
  • Logiciels & Apps
  • Organisation
  • Cours informatique
  • Aide à la rédaction
  • Etudes et Metiers
  • Science et Tech
  • Titans de la Tech
id 11354 02