Bonjour, nouvelle stagiaire inside, L'idée de mon stage étant d'étudier le besoin et de proposer une solution visant à synchroniser le temps saisi dans jTimer avec la gestion de projet dans chorem, voici les différentes idées/réflexions que j'ai noté par rapport à ce qui m'a été donné comme informations et ce que j'ai pu comprendre qui était demandé. A chaque tâche/projet, on pourrait associer une URL de synchro, qui pourra soit être configurée automatiquement lors de l'utilisation d'un template soit être ajoutée manuellement à la tâche/projet associé par l'utilisateur. Pour enregistrer la synchronisation d'une tache/projet, un fichier texte "nomfichier.extension.sync" contiendrait l'URL de synchronisation ainsi que la date de dernière synchronisation. On garde l'extension du fichier de tache/projet parce que sous jTimer les fichiers de tache sont en .task et les projets en .project. La synchronisation s'effectuerait par l'intermédiaire d'un envoi de fichier JSON. L'id de l'utilisateur envoyant ses temps serait transmis via un token dans l'URL. L'envoi d'une requête GET sur l'URL de synchronisation d'une tâche(/projet) si elle aboutit correctement renvoie la date de dernière synchronisation côté serveur (avec la réponse 200 - OK) permet ensuite de vérifier dans le fichier de synchronisation s'il s'agit de la même, sinon il y a alors envoi d'une requête POST avec un json des données de la tâche en question, suivi d'une mise à jour de la date de dernière synchronisation dans le fichier si tout se passe bien (ce qui permet l'édition à posteriori des temps sur les tâches aussi). (et renvoie des messages d'erreurs avec codes adaptés dans les cas contraires). J'ai réfléchi à un schema json qui permettrait de pouvoir vérifier la validité des données et avoir une définition de la structure à envoyer, les récepteurs pouvant ensuite choisir d'ignorer une partie des données à leur convenance. *Format JSON proposé : * on envoie la tâche avec son chemin, éventuellement son annotation, les dates associées aux temps passés sur cette tâche, le temps total pour cette tâche, et ses sous-tâches s'il y en a. Les dates seront au format YYYY-MM-DDTHH:MM:SS:sssZ (2012-04-23T18:25:43.511Z), le format renvoyé par JSON.stringify() en Javascript, et aussi conforme à la norme ISO 8601 et reconnu par notamment le w3c. Et surtout, facile à trier. Les temps seront sous la forme d'une clé selon la date et d'une valeur en secondes de temps, la date représentant la date de début pour la tâche (et les secondes la durée de travail sur la tâche). Pour les envois à partir de jTimer, la partie HH:MM:SS:sssZ sera systématiquement 00:00:00.000Z, puisque jTimer ne fait pas la distinction sur une même journée de plusieurs suivis d'une même tâche, mais que d'autres pourraient le faire (par exemple pour gérer les demi-journées).