caradojo / caradojo.old

4 stars 6 forks source link

Feature: télécharger les donnees depuis google doc #49

Open martinsson opened 8 years ago

martinsson commented 8 years ago

@eetievent Si on va se reposer sur google pour faire un script de transformation. Comment fait-on les requêtes pour une session?

Genre cette requête: http://stark-sea-2092.herokuapp.com/jsonp/beta/session/585?callback=angular.callbacks._0

Serait-ce plus simple d'avoir un back qui télécharge le csv brut, mémorise et transforme + gère le jsonp?

eetievent commented 8 years ago

Euh je te laisse voir ce qui est le mieux et qui soit simple. Ce qui me semblerait bien, que le script de conversion soit sur un serveur ou dans le Doc, c'est qu'on puisse l'activer à la sauvegarde (automatiquement ou en cliquant un bouton).

Dans le cas où on utilise Gougueuledoque:

eetievent commented 8 years ago

Voici une version de travail (à partir du Json sur client/media/agileconf-programme): http://agile-grenoble.org/conf-programme.html#/principal Entre autres, il y a un problème pour mettre les sessions dans les bonnes salles, comment ça fonctionne le positionnement? (quel est le rôle de l'id de salle)?

(J'ai mis le source pour la conversion dans /programmeCsvToJson/ )

martinsson commented 8 years ago

Hardcoder le nom de la fonction jsonp doit sans doute marcher.

L'id de la salle est = à son index de colonne il me semble

L'année dernière les sessions venaient dans le ordre correspondant aux Ids de colonne

{
slot-id-1: [sessionAuditorium, sessionMakalu, ...],
slot-id-2: []
}

et sessionMakalu a l'index 1 et va donc dans la salle avec id 1

Faire tout dans google doc peut être bien, j'y vois deux risques:

  1. qu'il y aurait du code google specific et donc nous avons plus de choses à refaire pour bouger de google. Je n'en sais rien.
  2. que ce soit impossible à tester (si on veut le faire)

Je peux, mais pas avant vendredi soir, faire une squelette en nodejs qui télécharge le csv, (avec du polling à défaut de trigger google-doc) et qui contient un service rest pour le programme et un pour le détail de session. Après ce serait à remplir avec du js pour transformer les données.

Si aujourd'hui tu sauvegardes un fichier json ou csv brut et que tu mets le code de transfo dans le front, alors il pourra être déplacé vers le serveur node sans vraiment de la modification.

martinsson commented 8 years ago

J'ai fait ce projet https://github.com/martinsson/agile-grenoble-sessions-2016

La squelette est presque en place. Il reste

Puis évidemment le code de tranformation du csv :)

J'aurai du temps pour expliquer et demain et dimance, par tel et ici.

martinsson commented 8 years ago

Ok l'app télécharge le csv depuis l'url que tu avais crée sur google docs. Toutes les deux minutes les données sont pollées.

Il est deployé sur heroku. Accessible à http://agile-grenoble-2016.herokuapp.com/summary qui pour le moment envoie des données statiques. Il sert du jsonp si on ajoute un nom de callback. Ex http://agile-grenoble-2016.herokuapp.com/summary?callback=nom_de_ma_fonction

Il y a d'autres urls

http://agile-grenoble-2016.herokuapp.com/debug/rawcsv qui envoie le csv tel que téléchargé depuis google

http://agile-grenoble-2016.herokuapp.com/debug/rawprogram qui est la structure json en mémoire de l'objet Program