Tags:
create new tag
, view all tags

Stage de Thomas Mayer - IUT Schuman - [8/04/19 au 21/06/19]

Important : cette page est réservée au suivi du stage, merci de ne pas la modifier

Informations générales pour les stagiaires

Pour toute information concernant ce stage : contacter Mireille, Gilles, Emmanuelle

Sujet

Stage (Avril - Juin 2019)

Avril

Semaine 1

  • 8, arrivée, journée d'accueil salle de réunion de la Coupole

  • 9,
    • Installation du poste de travail.
    • Création de compte gitlab et wiki.
    • Lecture de wiki d'anciens stagiaires ayant travaillé sur les mêmes outils.
    • Lecture de documentation pour m'habituer à Astropy et PostgreSQL .
    • Lecture de fichiers regroupant des données astronomiques pour comprendre comment ils sont organisés.
    • Séance au planétarium

  • 10,
    • Lecture de tout ce qui a un rapport avec le triplestore.
    • Début sur PostgreSQL. (Je sais pas pourquoi à chaque que j'écrit PostgreSQL, ça met un lien vide, donc j'ai décidé de mettre un lien vers la documentation PostgreSQL à chaque fois)
    • Réunion concernant la base de données.

  • 11,
    • Création d'un squelette de base donnée.
    • Écriture d'un script qui peut créer les tables, les supprimer et ajouter des lignes de test.
    • Ce que j'ai fait, c'est que j'ai stocké les requêtes SQL dans un fichier json.
    • Je fait ensuite appel à ces requêtes dans mon code.

  • 12,
    • Séminaire : "What's new at CDS?"
    • Début d'une fonction qui prend les données d'un fichier et qui les rentre correctement dans la base de données.
    • Pour cela, j'ai convertis le ficher excel en fichier csv puis j'ai mis les données dans une table grâce à la librairie python astropy.
    • Ensuite, j'ai cherché dans cette table les informations qui m'intéressent et je les ai introduites dans la base de données au moyen de requête SQL.

Semaine 2

  • 15,
    • Mise en commun de nos bases de données avec Gilles Landais, afin de prendre le meilleur des deux.
    • Je change aussi ma façon d'introduire les données dans la base.
    • Avant : Je prenais les données d'un fichier csv que je mettais entièrement dans un table astropy, puis je faisais des requêtes d'insertion des données de la table ligne par ligne dans la base de données.
    • Maintenant : Je prend toujours les données d'un fichier csv, mais au lieu de prendre toutes les données du fichier, ma table astropy ne prend que les colonnes necessaires pour pouvoir la transférer dans la base. Je met ensuite directement toute la table dans la base (comme une copie) grâce à une requête SQL.
    • Présentation du métier de chercheur.

  • 16,
    • Modification de ma base de données pour mettre à la place la nouvelle, certaines tables ont été enlevé (les tables d'héritages) et d'autres ont été créé (des tables de références).
    • De plus en plus de tables sont insérées dans la base de données.
    • Un petit truc chiant (ou plusieurs), c'est que quand il y a une erreur, c'est difficile de savoir où elle se trouve en python, donc il y a des moments où je passe des dizaines de minutes à corriger des erreurs bêtes.

  • 17,
    • Fin des insertions dans la base de données des informations du fichier de télescopes.
    • Correction de l'insertion des observatoires.
    • Début de l'écriture du compte-rendu.

  • 18,
    • Fin de l'écriture du compte-rendu.
    • Écriture du README de mon git.
    • Mise en place d'une table de noms alternatifs pour les systèmes.
    • Insertion des données dans cette table.

  • 19,
    • Jour férié

Semaine 3

  • 22,
    • Jour férié

  • 23,
    • Ajout des éventuels systèmes contenant des systèmes.
    • Élaboration de requêtes SQL pour vérifier que tout est bon.

  • 24,
    • Insertion des données des instruments à partir d'un nouveau fichier.
    • Les instruments sont reliés à un télescope, sauf que comme c'est pas le même fichier que celui des télescopes, certains ont des télescopes inexistants dans l'autre fichier.
    • Correction du nom de certains observatoires dans le fichier des télescopes.

  • 25,
    • A partir de maintenant, je vais faire un protocole TAP pour pouvoir interroger les tables.
    • Installation de tomcat.
    • Installation d'eclipse avec tomcat.
    • Explications d'eclipse, de tomcat, de TAP et des servlets.
    • Recherches sur les servlets.

  • 26,
    • Réunion sur la création de librairies python.
    • Séminaire : "La Science Ouverte, l'Astronomie et le CDS."
    • Recherches sur les schemas PostgreSQL.
    • Début de la conception des schemas.

Semaine 4

  • 29,
    • Fin de la conception des schemas.
    • Réglage de problèmes liés à Eclipse.
    • Découverte de TAP.
    • Début d'utilisation de Docker.

  • 30,
    • Familiarisation avec les servlets.
    • Plusieurs test pour voir certaines erreurs.

Mai

  • 1,
    • Jour férié

  • 2,
    • Modification du script python pour enlever les systèmes car le principe est plus complexe que ce que j'avais supposé.
    • Modification du script pour faire une commande de création de la bdd, une de suppression de la bdd et un d'insertion dans la bdd.
    • Manipulation de docker pour mettre le protocole TAP sur un serveur afin que d'autres personnes puissent tester des cas particuliers.

  • 3,
    • Rajout des anciens systèmes mais cette fois sous forme de noms alternatifs des composants.
    • Modification afin d'optimiser le temps.

Semaine 5

  • 6,
    • Optimisation du script afin de réduire son temps d'execution.
    • Réduction du temps d'execution d'un tiers
    • J'ai aussi essayé de modifier le protocole TAP afin d'afficher les résultats des requêtes sur la même page, mais j'ai pas réussi.

  • 7,
    • Modification du script pour mettre des valeurs nulles là où il faut.
    • Mise en place de requêtes SQL d'exemples sur TAP.

  • 8,
    • Jour férié

  • 9,
    • Modification du script pour convertir des valeurs en float.
    • Modification des systèmes (ce qui était mission avant devient systèmes maintenant).

  • 10,
    • Modifier la page web où l'on cherche les donnée grâce à TAP pour la rendre plus agréable.
    • Réunion.
    • Mise en place d'un système de requêtes simplifiés pour les personnes ne connaissant pas SQL.

Semaine 6

  • 13,
    • Création d'un MCD de ma BDD.
    • Ajout des bandes dans la BDD ansi qu'une table de jointure entre instrument et bande car un instrument peutavoir plusieurs bandes et une bande peut avoir plusieurs instruments.
    • Elaboration de requêtes de test afin de tester la BDD et de trouver de possibles erreurs dans les données.

  • 14,
    • Elaboration d'un système de requètes simplifiés qui permet aux personnes ne connaissant pas SQL ou la BDD de pourvoir faire des requêtes ou à ceux qui savent utiliser SQL d'aller plus vite.
    • Ce système se compose de checkbox, chacun associé à une colonne de la base de données.
    • En fonction des checkbox validés, une requête SQL se crée dans la zone de texte.
    • Ecriture de compte rendu/rapport.

  • 15,
    • Ajout de la fonctionnalité order by dans le systèmes de requêtes simplifiées
    • Ecriture de compte rendu/rapport.

  • 16,
    • Ajout des longueurs d'ondes des bandes.
    • Ajout de la fonctionnalité where dans le systèmes de requêtes simplifiées
    • Ecriture de compte rendu/rapport.

  • 17,
    • Séminaire : "Evolution of Local Group dwarf galaxies as probed by resolved stellar populations"
    • Ajout d'un système de update table mais qui ne fonctionne pas car le protocole TAP n'accepte pas les modifications de la base, seulement les recherches.
    • Ecriture de compte rendu/rapport.

Semaine 7

  • 20,
    • Modification de l'insertion des bandes.
    • Amélioration du système de requêtes simplifiées.
    • Ajout de requêtes de test sur la page web.

  • 21,
    • Création de vues sur la bases pour éviter de faire trop de jointures à chaque requêtes.
    • J'ai remplacé les checkbox du système de requêtes simplifiées par des listes déroulantes avec choix multiples.

  • 22,
    • Élaboration d'une interface d'insertion de données dans la base.
    • Pour cela, je crée un bouton pour chaque table modifiable. Chacun de ces boutons génère des textbox associés à une colonne de la table.
    • Je crée ensuite une nouvelle servlet que j'appelle avec les valeurs de chaque textbox.
    • Avec quelques manipulations, je peux créer une requête SQL d'insertion dans la servlet qui va ajouter une ligne dans la base.

  • 23,
    • Continuation de l'interface d'insertion.
    • Réunion
    • Affichage des réponses au requête sous forme de table html. En utilisant Bootstrap, on peut faire des actions plutôt sympathique comme afficher un certains nombre de résultats, rechercher un résultat voulu parmi tous ou trier chaque colonne.

  • 24,
    • L'insertion fonctionne. On peut insérer des données dans 4 différentes tables.
    • Problème, pour insérer certaines tables, il faut donner des références vers l'id d'une autre table et c'est chiant d'aller chercher l'id en question.
    • Résolution du problème en mettent une zone de texte qui à chaque caractère écrit, va chercher dans la base les éléments correspondants et les affiche dans une liste en dessous. C'est une barre de recherche dans la base.

Semaine 8

  • 27,
    • Élaboration d'une interface de modification dans la base de données.
    • Il y a 4 boutons qui correspondent chacun à une table (component, system, observatory, instrument)
    • Cliquer sur un bouton génère un tableau contenant toutes les lignes de la table. On peut manipuler le tableau (trier par colonne, rechercher une valeur).
    • La colonne id est remplacée par une colonne update dans lequel se situe un bouton à chaque ligne.
    • Appuyer sur l'un des boutons fait apparaître des zones de texte et des listes déroulantes contenant les valeurs de chaque colonnes de la ligne où se situe le bouton.
    • On peut alors modifier la ligne de la table en changeant les valeurs de ces zones de texte et listes, puis en appuyant sur le bouton submit.

  • 28,
    • Continuation de l'interface de modification dans la base de données.

  • 29,
    • Continuation de l'interface de modification dans la base de données.

  • 30,
    • Jour férié

  • 31,
    • Fusion de l'interface d'insertion et de modification
    • Écriture de compte rendu

Juin

Semaine 9

  • 3,
    • Ajout d'un système de suppression de ligne.
    • Amélioration du système de modification.
    • Modification directement à partir du tableau.
    • Le bouton update change les valeurs de la ligne en input et select que l'on peut modifier à tout moment.
    • Ré-appuyer sur le bouton update affiche un message de confirmation.

  • 4,
    • Fin de la modification de l'interface de modification.
    • Début de conception d'une interface qui permet de lier des tables séparées par une table intermédiaire.

  • 5,
    • Fin de l'interface de liaison.

  • 6,
    • Amélioration des barres de recherches.

  • 7,
    • Correction de petits problèmes.
    • Interface de modification : Les listes déroulantes faisaient bugué la nouvelle valeur écrite dans le tableau. Plus maintenant.
    • Interface de recherche : quand on utilisait where avec like/not like, il fallait mettre '' et %%. Plus maintenant.

Semaine 10

  • 10,
    • Jour férié

  • 11,
    • Possibilité de télécharger le résultat d'une requête sous forme de fichier csv.
    • Écriture du rapport.

  • 12,
    • Correction de bugs.
    • Écriture du rapport.

  • 13,
    • Système de jointure entre tables qui sont liées par une table intermédiaire.
    • Par exemple, on peut ajouter ou supprimer une bande à un instrument
    • Écriture du rapport.

  • 14,
    • Modification du système de jointure pour qu'il soit plus ergonomique.
    • Écriture du rapport.

Semaine 11

  • 17,

Liens

  • ...

Versions testables

  • ...

Documentation

  • ...

Liste des améliorations à envisager

  • ...

Bugs connus

  • ...
Topic revision: r45 - 2019-06-14 - ThomasMayer
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback