Création et développement d’une application Java de
génération de contenu à partir de fichiers CSV sur une
            plateforme web d’e-coaching
                            eBusiness Information
                            Vanessa Pasquet
                            Mars – Août 2012
Projet de fin d’études   2




Projet de fin d’études
I.     Groupe Excilys
II.    eBusiness Information : produit Capico
III.   Enjeux du projet « Orthographe et
       Conjugaison »
IV.    Etapes de développement
V.     Déploiement et tests
VI.    Conclusion
I. Groupe Excilys   3




I.      Groupe Excilys
7    sociétés de services en informatique

 Technologies    Java/JEE

 Secteurs    d’activités:
     Santé, Banque, Sécurité, Fret, …
II. eBusiness Information, Capico   4




II.   eBusiness Information
 Conseil et développement
 Expertise Java/JEE
 Produit d’e-learning, e-coaching :
  CAPICO
II. eBusiness Information, Capico   5



II.      Capico
     Plateforme web d’ e-learning / e-coaching
     Apprentissage et suivi
     Mise en commun des connaissances
II. eBusiness Information, Capico   6



Elève et Coach
Mode élève :

    Consultation de cours
    Cours sonorisés
    Exercices QCM et questions à trous
    Travail à faire et évaluation
    Communication et commentaires

Mode coach:

    Edition de cours
    Sonorisation personnalisée
    Edition exercices QCM et questions à trous
    Classes : Travail à faire, évaluations et suivi des élèves
III. Enjeux du projet « Orthographe et
                         Conjugaison »                            7



III.   Enjeux du projet « Orthographe
       et Conjugaison »
          Académie de Créteil
     Classes « pilotes » de primaire (CP au CM2)
   Thèmes pédagogiques et programmes scolaires




             Rentrée Septembre 2012
III. Enjeux du projet « Orthographe et
                         Conjugaison »                            8



Formats de l’archive Orthographe
 CSV   Comma-Separated Values
     Tabulaire
     Encodage UTF-8
     Orthographe.csv

pistache,picetache,pystache,pistacheux,pistache.mp3
piste,pystte,pisteux,pyste,piste.mp3
pistolet,pistaulet,pistoler,pystolet,pistolet.mp3


 Audio   format MP3
III. Enjeux du projet « Orthographe et
                          Conjugaison »                            9



Dimensionnement
 Orthographe
  • QCM & question à trous
  • CSV : 20 000 lignes/mots
  • 40 000 questions
  • Sonorisation
  • Rapport d’état de sonorisation

 Conjugaison
  • Questions à trous
  • 468 CSV : Lettre/Mode/Temps
  • 80 000 questions
III. Enjeux du projet « Orthographe et
                          Conjugaison »                            10



Développement
 Méthodes
        de création de cours Capico
 communes

 Hiérarchies   de dossiers

 Méthodes   de « Parsing » adaptées

 Sonorisation   et gestion de contenu
III. Enjeux du projet « Orthographe et
                         Conjugaison »                            11



Déploiement
 Cycle    de déploiement

 Gestion   de contenu

 Flot   d’exécution

 Temps    d’exécution

 Rapports   d’erreurs

 Rapports   d’état du gestionnaire de contenu
III. Enjeux du projet « Orthographe et
                       Conjugaison »                            12



Gestion de projet
 Equipe : 2 développeurs et 1 chef de projet
 Intégration dans projet global « Capico
  Condor »
IV. Etapes de développement   13



IV. Etapes de développement
A.   Environnement de développement

B.   Suivi de projet

C.   Gestionnaire de versions

D.   Choix technologiques

E.   « Orthographe »

F.   « Conjugaison »
IV. Etapes de développement
                                   A. Environnement              14



A.        Environnement de développement

 Langage        Java, version Java 6

        Compatibilité avec projet « Capico Condor »

        eBusiness Information : Java/JEE

        Eclipse, version Indigo

        Développement sous Windows 7

        Machine virtuelle de tests Capico : Ubuntu
IV. Etapes de développement
                             B. Suivi de projet            15




B. Suivi de projet
   2 étapes : « Orthographe » puis « Conjugaison »
       Dimension du traitement des fichiers CSV

   Scrum
     Sprints
     Scrum Master
     Planification
     Daily Scrum


   AgileFant
     Outil Open-Source
     Gestion et visualisation des Sprints : burndown
IV. Etapes de développement
                              C. Gestionnaire de versions   16



C. Gestionnaire de versions
    Gestion de versions

        Git

        Branche principale « master » du projet Capico
         condor

        Branche dédiée « CSVConverterBeforeMerge »
IV. Etapes de développement
                               D. Choix technologiques       17



D. Choix technologiques
    Framework Spring
      Java/JEE


      Alternative   aux EJB

      Gestion   des transactions

      Intégration   « Capico Condor »
         Injection de dépendances
         Accès aux données via JDBC


      Pattern   MVC
IV. Etapes de développement
                              D. Choix technologiques       18



D. Choix technologiques
    Hibernate
      Librairie   Java

      ORM     : Mapping Relationnel d’Objets

      Liaison
            Objets Java et Objets persistés en base de
       données

      Méthodes  d’accès aux données, s’affranchir de
       requêtes SQL

      Etats
           des objets, gestion des écritures en base de
       données
IV. Etapes de développement
                               D. Choix technologiques       19



D. Choix technologiques
    Outil Maven

      Version   Maven2

      Intégration   plugin Eclipse

      Gestion   et génération de projets Java/JEE
         Génération de module jar
         Utilisable au déploiement


      Intégration   « Capico Condor »
         Structure en POM, gestion de dépendances
IV. Etapes de développement
                                D. Choix technologiques       20



D. Choix technologiques
    Log4J

      API   Java

      Intégration   à l’outil Maven

      Logging
         Rapport d’erreurs
         Temps d’exécution
         Rapport d’état des objets persistés
IV. Etapes de développement
                           E. Orthographe                21



E. Orthographe
 Hiérarchie   dossiers pour 20 000 mots
     Contrainte: 50 éléments par dossier


     Orthographe
       20 dossiers
         20 sous-dossiers
           10 cours
             10 questions = 10 mots
IV. Etapes de développement
                            E. Orthographe                22



E. Orthographe
 Gestion   de ressources

    Alfresco

    Contenu Audio

    Attachement à objets en base de données par
     connexions Alfresco

      Chargement  des fichiers MP3 de l’archive
      Temps d’exécution
IV. Etapes de développement
                            E. Orthographe                23



E. Orthographe
 Parsing   CSV


     Parsing linéaire

     Création des mots au fur et à mesure du parcours
      du fichier CSV

     Organisation selon la hiérarchie
IV. Etapes de développement
                                E. Orthographe                24



E. Orthographe
 Transactions      avec Spring

    Création de la hiérarchie de dossier
    Création d’élément (cours/exercice)
    Sonorisation
      Chargement      de fichier


    Annotations

      @Transactional    en tête de méthode
         Roll-back en cas d’erreur
         Limiter impact du code sur reste de l’application
IV. Etapes de développement
                                F. Conjugaison                25



F. Conjugaison
 Parsing
        CSV
 Opencsv, librairie Java, Sourceforge
     Réécriture de fichiers CSV
       Parcours   de l’arborescence initiale
           Conjugaison >> Lettre >> Mode >> fichier CSV avec
            verbes et différents temps et différents groupes
           Conjugaison >> Lettre >> Groupe >> Mode >> Temps >>
            verbe
     Séparateur « , » ou « ; » uniformisé à « ; »
     Encodage UTF-8
       CSVReader  : lecteur d’objet File
       InputStreamReader : Wrapper pour l’encodage
IV. Etapes de développement
                             F. Conjugaison                26



F.        Conjugaison/Orthographe
 Paramètres       de lignes de commande

        --archivePath
        --targetFolder
        --questionType (Orthographe)
        --begin (Conjugaison)
        --end (Conjugaison
        --number (Orthographe)


 Scripts    lancés au déploiement sur serveur
V. Déploiement et tests   27



V. Déploiement et tests
 Processus   de livraison
V. Déploiement et tests   28



V. Déploiement et tests
 Tests   et Résultats « Orthographe »

 Local   :
     VM Ubuntu, Virtual Box avec configuration
      d’intégration « Capico Condor »
     15 heures d’exécution
     1 à 2 secondes par question
     Contenu présent sur serveur local Alfresco

     Diagnostic : Problème de performances
V. Déploiement et tests   29



V. Déploiement et tests
 Tests   et Résultats « Orthographe »

 Recette:
     Moins de mots
     Confirmer diagnostic de performance
     Erreur timeout Alfresco
     Segmentation en paquets de 1000 mots à
      chaque script
     Création manuelle du dossier parent Orthographe
     Récupération de l’id pour création de la
      hiérarchie
V. Déploiement et tests   30



V. Déploiement et tests
 Tests   et Résultats « Orthographe »

 Pré-production:


     1000 mots en 80 minutes

     Déploiement par paquets de 1000 mots
     Maximum de 3 paquets lancés simultanément
      pour garder visibilité sur l’exécution et la
      connexion Alfresco


 Passage    en Production
V. Déploiement et tests   31



V. Déploiement et tests
 Tests   et Résultats « Conjugaison »

 Local:
     Temps de création de question croissant
       10ms   à 3 secondes après 30 minutes
     Persistance de plus en plus d’objets
       Cascade    d’exécution

     Clear() session Hibernate dans méthode de
      création d’un DAO
     Back-end de Capico embarqué dans jar généré
      par Maven
V. Déploiement et tests   32



V. Déploiement et tests
 Tests   et Résultats « Conjugaison »

 Recette:
     Pas de conflits ni de problèmes de performances
      diagnostiqués et réglés en local
     Pas de sonorisation prévue
     45 minutes ensemble des fichiers 468 CSV


Passage en Pré-production et Production
V. Déploiement et tests   33



V. Déploiement et tests
 Visuels
V. Déploiement et tests   34



V. Déploiement et tests
 Visuels
VI. Conclusion       35



VI. Conclusion
 Réponse au besoin pour rentrée 2012
 Déploiements réussis
 Contenus répertoriés pour sonorisation future


 Formation   en début de stage
 Projet pratique
 Projet en situation
 Gestion de projet
 Technologies Java/JEE
Création et développement d’une application Java de
génération de contenu à partir de fichiers CSV sur une
            plateforme web d’e-coaching
                            eBusiness Information
                            Vanessa Pasquet
                            Mars – Août 2012

Soutenance PFE 2012

  • 1.
    Création et développementd’une application Java de génération de contenu à partir de fichiers CSV sur une plateforme web d’e-coaching eBusiness Information Vanessa Pasquet Mars – Août 2012
  • 2.
    Projet de find’études 2 Projet de fin d’études I. Groupe Excilys II. eBusiness Information : produit Capico III. Enjeux du projet « Orthographe et Conjugaison » IV. Etapes de développement V. Déploiement et tests VI. Conclusion
  • 3.
    I. Groupe Excilys 3 I. Groupe Excilys 7 sociétés de services en informatique  Technologies Java/JEE  Secteurs d’activités: Santé, Banque, Sécurité, Fret, …
  • 4.
    II. eBusiness Information,Capico 4 II. eBusiness Information  Conseil et développement  Expertise Java/JEE  Produit d’e-learning, e-coaching : CAPICO
  • 5.
    II. eBusiness Information,Capico 5 II. Capico  Plateforme web d’ e-learning / e-coaching  Apprentissage et suivi  Mise en commun des connaissances
  • 6.
    II. eBusiness Information,Capico 6 Elève et Coach Mode élève :  Consultation de cours  Cours sonorisés  Exercices QCM et questions à trous  Travail à faire et évaluation  Communication et commentaires Mode coach:  Edition de cours  Sonorisation personnalisée  Edition exercices QCM et questions à trous  Classes : Travail à faire, évaluations et suivi des élèves
  • 7.
    III. Enjeux duprojet « Orthographe et Conjugaison » 7 III. Enjeux du projet « Orthographe et Conjugaison » Académie de Créteil Classes « pilotes » de primaire (CP au CM2) Thèmes pédagogiques et programmes scolaires Rentrée Septembre 2012
  • 8.
    III. Enjeux duprojet « Orthographe et Conjugaison » 8 Formats de l’archive Orthographe  CSV Comma-Separated Values  Tabulaire  Encodage UTF-8  Orthographe.csv pistache,picetache,pystache,pistacheux,pistache.mp3 piste,pystte,pisteux,pyste,piste.mp3 pistolet,pistaulet,pistoler,pystolet,pistolet.mp3  Audio format MP3
  • 9.
    III. Enjeux duprojet « Orthographe et Conjugaison » 9 Dimensionnement Orthographe • QCM & question à trous • CSV : 20 000 lignes/mots • 40 000 questions • Sonorisation • Rapport d’état de sonorisation Conjugaison • Questions à trous • 468 CSV : Lettre/Mode/Temps • 80 000 questions
  • 10.
    III. Enjeux duprojet « Orthographe et Conjugaison » 10 Développement  Méthodes de création de cours Capico communes  Hiérarchies de dossiers  Méthodes de « Parsing » adaptées  Sonorisation et gestion de contenu
  • 11.
    III. Enjeux duprojet « Orthographe et Conjugaison » 11 Déploiement  Cycle de déploiement  Gestion de contenu  Flot d’exécution  Temps d’exécution  Rapports d’erreurs  Rapports d’état du gestionnaire de contenu
  • 12.
    III. Enjeux duprojet « Orthographe et Conjugaison » 12 Gestion de projet  Equipe : 2 développeurs et 1 chef de projet  Intégration dans projet global « Capico Condor »
  • 13.
    IV. Etapes dedéveloppement 13 IV. Etapes de développement A. Environnement de développement B. Suivi de projet C. Gestionnaire de versions D. Choix technologiques E. « Orthographe » F. « Conjugaison »
  • 14.
    IV. Etapes dedéveloppement A. Environnement 14 A. Environnement de développement  Langage Java, version Java 6  Compatibilité avec projet « Capico Condor »  eBusiness Information : Java/JEE  Eclipse, version Indigo  Développement sous Windows 7  Machine virtuelle de tests Capico : Ubuntu
  • 15.
    IV. Etapes dedéveloppement B. Suivi de projet 15 B. Suivi de projet  2 étapes : « Orthographe » puis « Conjugaison »  Dimension du traitement des fichiers CSV  Scrum  Sprints  Scrum Master  Planification  Daily Scrum  AgileFant  Outil Open-Source  Gestion et visualisation des Sprints : burndown
  • 16.
    IV. Etapes dedéveloppement C. Gestionnaire de versions 16 C. Gestionnaire de versions  Gestion de versions  Git  Branche principale « master » du projet Capico condor  Branche dédiée « CSVConverterBeforeMerge »
  • 17.
    IV. Etapes dedéveloppement D. Choix technologiques 17 D. Choix technologiques  Framework Spring  Java/JEE  Alternative aux EJB  Gestion des transactions  Intégration « Capico Condor »  Injection de dépendances  Accès aux données via JDBC  Pattern MVC
  • 18.
    IV. Etapes dedéveloppement D. Choix technologiques 18 D. Choix technologiques  Hibernate  Librairie Java  ORM : Mapping Relationnel d’Objets  Liaison Objets Java et Objets persistés en base de données  Méthodes d’accès aux données, s’affranchir de requêtes SQL  Etats des objets, gestion des écritures en base de données
  • 19.
    IV. Etapes dedéveloppement D. Choix technologiques 19 D. Choix technologiques  Outil Maven  Version Maven2  Intégration plugin Eclipse  Gestion et génération de projets Java/JEE  Génération de module jar  Utilisable au déploiement  Intégration « Capico Condor »  Structure en POM, gestion de dépendances
  • 20.
    IV. Etapes dedéveloppement D. Choix technologiques 20 D. Choix technologiques  Log4J  API Java  Intégration à l’outil Maven  Logging  Rapport d’erreurs  Temps d’exécution  Rapport d’état des objets persistés
  • 21.
    IV. Etapes dedéveloppement E. Orthographe 21 E. Orthographe  Hiérarchie dossiers pour 20 000 mots  Contrainte: 50 éléments par dossier  Orthographe  20 dossiers  20 sous-dossiers  10 cours  10 questions = 10 mots
  • 22.
    IV. Etapes dedéveloppement E. Orthographe 22 E. Orthographe  Gestion de ressources  Alfresco  Contenu Audio  Attachement à objets en base de données par connexions Alfresco  Chargement des fichiers MP3 de l’archive  Temps d’exécution
  • 23.
    IV. Etapes dedéveloppement E. Orthographe 23 E. Orthographe  Parsing CSV  Parsing linéaire  Création des mots au fur et à mesure du parcours du fichier CSV  Organisation selon la hiérarchie
  • 24.
    IV. Etapes dedéveloppement E. Orthographe 24 E. Orthographe  Transactions avec Spring  Création de la hiérarchie de dossier  Création d’élément (cours/exercice)  Sonorisation  Chargement de fichier  Annotations  @Transactional en tête de méthode  Roll-back en cas d’erreur  Limiter impact du code sur reste de l’application
  • 25.
    IV. Etapes dedéveloppement F. Conjugaison 25 F. Conjugaison  Parsing CSV  Opencsv, librairie Java, Sourceforge  Réécriture de fichiers CSV  Parcours de l’arborescence initiale  Conjugaison >> Lettre >> Mode >> fichier CSV avec verbes et différents temps et différents groupes  Conjugaison >> Lettre >> Groupe >> Mode >> Temps >> verbe  Séparateur « , » ou « ; » uniformisé à « ; »  Encodage UTF-8  CSVReader : lecteur d’objet File  InputStreamReader : Wrapper pour l’encodage
  • 26.
    IV. Etapes dedéveloppement F. Conjugaison 26 F. Conjugaison/Orthographe  Paramètres de lignes de commande  --archivePath  --targetFolder  --questionType (Orthographe)  --begin (Conjugaison)  --end (Conjugaison  --number (Orthographe)  Scripts lancés au déploiement sur serveur
  • 27.
    V. Déploiement ettests 27 V. Déploiement et tests  Processus de livraison
  • 28.
    V. Déploiement ettests 28 V. Déploiement et tests  Tests et Résultats « Orthographe »  Local :  VM Ubuntu, Virtual Box avec configuration d’intégration « Capico Condor »  15 heures d’exécution  1 à 2 secondes par question  Contenu présent sur serveur local Alfresco  Diagnostic : Problème de performances
  • 29.
    V. Déploiement ettests 29 V. Déploiement et tests  Tests et Résultats « Orthographe »  Recette:  Moins de mots  Confirmer diagnostic de performance  Erreur timeout Alfresco  Segmentation en paquets de 1000 mots à chaque script  Création manuelle du dossier parent Orthographe  Récupération de l’id pour création de la hiérarchie
  • 30.
    V. Déploiement ettests 30 V. Déploiement et tests  Tests et Résultats « Orthographe »  Pré-production:  1000 mots en 80 minutes  Déploiement par paquets de 1000 mots  Maximum de 3 paquets lancés simultanément pour garder visibilité sur l’exécution et la connexion Alfresco  Passage en Production
  • 31.
    V. Déploiement ettests 31 V. Déploiement et tests  Tests et Résultats « Conjugaison »  Local:  Temps de création de question croissant  10ms à 3 secondes après 30 minutes  Persistance de plus en plus d’objets  Cascade d’exécution  Clear() session Hibernate dans méthode de création d’un DAO  Back-end de Capico embarqué dans jar généré par Maven
  • 32.
    V. Déploiement ettests 32 V. Déploiement et tests  Tests et Résultats « Conjugaison »  Recette:  Pas de conflits ni de problèmes de performances diagnostiqués et réglés en local  Pas de sonorisation prévue  45 minutes ensemble des fichiers 468 CSV Passage en Pré-production et Production
  • 33.
    V. Déploiement ettests 33 V. Déploiement et tests  Visuels
  • 34.
    V. Déploiement ettests 34 V. Déploiement et tests  Visuels
  • 35.
    VI. Conclusion 35 VI. Conclusion  Réponse au besoin pour rentrée 2012  Déploiements réussis  Contenus répertoriés pour sonorisation future  Formation en début de stage  Projet pratique  Projet en situation  Gestion de projet  Technologies Java/JEE
  • 36.
    Création et développementd’une application Java de génération de contenu à partir de fichiers CSV sur une plateforme web d’e-coaching eBusiness Information Vanessa Pasquet Mars – Août 2012