Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
57
.ideai/tickets/179/carnet.md
Normal file
57
.ideai/tickets/179/carnet.md
Normal file
@ -0,0 +1,57 @@
|
||||
---
|
||||
issueRef: "#179"
|
||||
version: 7
|
||||
updatedBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"}
|
||||
updatedAt: 1785408937070
|
||||
---
|
||||
## Clarifications utilisateur — 30 juillet 2026
|
||||
|
||||
### Portée fonctionnelle V1
|
||||
- Les graphes de statistiques sont **téléphone uniquement**.
|
||||
- Ils sont consultables **après la séance** et **dans l'historique**.
|
||||
- La navigation entre `étape`, `série`, `exercice`, `séance` se fera a priori via **un sélecteur de scope** ; UX devra confirmer la meilleure forme pour que cela tienne correctement sur un téléphone.
|
||||
|
||||
### Statistiques V1
|
||||
- V1 limitée à :
|
||||
- `FC`
|
||||
- `distance`
|
||||
- `calories`
|
||||
- Le système doit rester **hexagonal** et conçu pour permettre l'ajout simple d'autres métriques plus tard, sans recadrage structurel.
|
||||
|
||||
### Règles d'affichage des graphes
|
||||
- `FC` : affichage normal + lignes horizontales `min` / `max` quand pertinent.
|
||||
- `distance` et `calories` : même logique générale de graphe, **sans** lignes horizontales `min` / `max`, car métriques cumulatives.
|
||||
- Pour les métriques cumulatives (`distance`, `calories`), la valeur affichée est **relative au scope affiché** :
|
||||
- `étape` : départ visuel à `0` au début de l'étape
|
||||
- `série` : départ visuel à `0` au début de la série
|
||||
- `exercice` : départ visuel à `0` au début de l'exercice
|
||||
- `séance` : départ visuel à `0` au début de la séance
|
||||
- Cette remise à zéro est **uniquement une règle d'affichage** ; on ne duplique pas les données en stockage.
|
||||
|
||||
### Règles de stockage des données pour les graphes
|
||||
- On stocke une donnée **toutes les 15 secondes** pour alimenter les graphes.
|
||||
- Cela concerne **uniquement** les données historisées pour affichage/statistiques, pas le flux live complet.
|
||||
- Source unique : **uniquement les données envoyées par la montre**.
|
||||
- Aucune interpolation.
|
||||
- Pour une fenêtre de 15 secondes, on conserve **la dernière donnée montre non encore consommée** au moment de l'échantillonnage.
|
||||
- Les métriques calculées (ex. calories) ne sont calculées/enregistrées que si la montre a effectivement fourni les valeurs nécessaires.
|
||||
- Ordre de grandeur attendu : sur 2 heures, environ **480 valeurs maximum par statistique**.
|
||||
|
||||
### Trous de données
|
||||
- Si aucune donnée n'est reçue pendant plus de **2 minutes**, le graphe relie la dernière valeur connue à la suivante via un **segment en pointillé**.
|
||||
- Ce segment pointillé est **purement visuel**.
|
||||
- On ne stocke **aucune fausse valeur intermédiaire**.
|
||||
|
||||
### Marqueurs par scope
|
||||
- Vue `étape` : pas de marqueurs supplémentaires demandés.
|
||||
- Vue `série` : marqueurs de **début/fin d'étape**.
|
||||
- Vue `exercice` : marqueurs de **début/fin de série**.
|
||||
- Vue `séance` : marqueurs de **début/fin d'exercice**.
|
||||
|
||||
### Contraintes transverses — 30 juillet 2026
|
||||
- Les modifications doivent être prises en compte sur **toutes les couches de l'application**, **serveur inclus**, pour que la **sauvegarde** et la **synchronisation** fonctionnent correctement.
|
||||
- Il ne faut donc pas livrer une solution limitée au stockage local/UI si les données du ticket doivent voyager ou survivre correctement via les mécanismes de sync/historique.
|
||||
|
||||
### Hors périmètre V1
|
||||
- Aucun buffer/rejeu local côté montre pour compenser une déconnexion téléphone-montre.
|
||||
- Ce sujet pourra être réévalué plus tard, mais il est **hors périmètre V1**.
|
||||
23
.ideai/tickets/179/issue.md
Normal file
23
.ideai/tickets/179/issue.md
Normal file
@ -0,0 +1,23 @@
|
||||
---
|
||||
id: "9aa3e9b3-bf4c-480d-9003-82a02ce8f4a3"
|
||||
number: 179
|
||||
title: "[UI] Statistique par etape, serie, exercice et seance sur le par temps"
|
||||
status: "open"
|
||||
priority: "medium"
|
||||
sprint: "d5c18b44-0eec-46db-b8ab-506cfee0bfea"
|
||||
links: []
|
||||
agentRefs: [{"agentId":"57695b92-24d0-4876-837c-76116e70a6ae","role":"assigned"}]
|
||||
attachments: []
|
||||
createdBy: {"kind":"user"}
|
||||
updatedBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"}
|
||||
createdAt: 1785404943786
|
||||
updatedAt: 1785408937070
|
||||
version: 7
|
||||
---
|
||||
J'aimerais qu'on améliore le detail des statistiques. J'aimerais qu'on les stock par etape, par série, par exercice et par seance ainsi que par temps.
|
||||
|
||||
Le but serait de pouvoir afficher des statistiques sous forme d'une courbe sur un graph à deux axes (en ordonnée l'unité de la statistique et en absisse le temps) sur une étape (simplement les datas de la statistique en fonction du temps avec une barre horiezontal pour le max et une autre pour le min), une série (sur laquelle on ajouterait des marqueur sur le début et la fin de chaque étape ainsi qu'une ligne horizontale en pointillé pour le max de la série, et une pour le min de la série), sur l'exercice (sur laquelle on ajouterait des marqueurs de début et de fin de chaque série ainsi qu'une ligne horizontale en pointillé pour le max de l'exercice, et une pour le min de l'exercice) et enfin de la séance (sur laquelle on ajouterait des marqueurs de début et de fin de chaque exercice ainsi qu'une ligne horizontale en pointillé pour le max de la séance, et une pour le min de la séance). On affichera les barres horizontales min et max seulement pour les statistiques pour lesquelles ça a du sens (La FC seuleemnt pour le moment je dirais). Pour ce qui est des statistiques cumulatives dans le temps (la distance et les calories), je veux que la quantité affichée soit relative à la scope. C'est a dire que les valeurs commencent à 0 à chaque fois sur notre affichage.
|
||||
|
||||
Je pense qu'on peut se contenter de garder une donnée toutes les 15s et uniquement des données envoyée par la montre. Pour les données calculée (comme les calories) on ne fais le calcul et o ne l'enregistre que si la montre a donné les valeurs, on n'interpole rien. C'est a dire que quand la montre a l'écran éteint, elle n'envoie de toute façon qu'une donnée toutes les 30s, donc ça réduira grandement le nombre de données. On utilise a chauqe fois les dernieres données de la montre non consommée, c'est a dire que si la montre envoie une donnée toutes les 10sec et qu'on enregistre nos données pour notre graph toutes les 15s, alors chaque 15s, j'utilise le dernier bas de donnée récéptionné.
|
||||
|
||||
Dans le cas ou il n'y a pas de données recus depuis plus de 2min, on se contentera de relier la derniere valeur à la nouvelle par des pointinllé pour faire comprendre a l'utilisateur qu'il n'y a pas eu de datas. La montre ne garde rien de son côté pour compenser les données non envoyées (si apr exemple la montre et le téléphone se sont déconnecté) sauf si ça ne lui coute rien en énergie et en température de chauffe, ça sera à Main de determiner ça.
|
||||
Reference in New Issue
Block a user