---
title: 'Référence'
description: 'Comment utiliser TrainUs : exercices, combos, séances, collections, exécution et statistiques.'
weight: 3
date: 2026-06-14
---

> Cette page décrit chaque écran de TrainUs en détail : actions disponibles, champs des formulaires, raccourcis clavier. Pour une présentation générale, voir [Démarrage rapide]({{< relref "demarrage-rapide.fr.md" >}}) ; pour le « pourquoi » des choix, voir [Comprendre TrainUs]({{< relref "comprendre.fr.md" >}}).

## Premier lancement

La toute première fois que vous ouvrez TrainUs, une fenêtre d'avertissement unique explique deux contraintes importantes de l'application :

- **Un seul onglet à la fois** — TrainUs ne peut être ouvert que dans un seul onglet de navigateur. L'ouvrir dans un second onglet provoque des erreurs.
- **Pas de navigation privée** — TrainUs ne fonctionne pas en navigation privée/incognito ; vos données ne seraient pas sauvegardées.

Cliquez sur **J'ai compris** pour fermer la fenêtre — elle ne réapparaîtra plus.

## Accueil

La page d'accueil (`#/home`) est la page par défaut. Elle donne un aperçu de votre activité récente.

### Aperçu de l'activité

Deux cartes en haut de page :

- **Séances (7 derniers jours)** : nombre de séances exécutées au cours des 7 derniers jours.
- **Séances (30 derniers jours)** : nombre de séances exécutées au cours des 30 derniers jours.

### Séances récentes

Les 4 séances les plus récemment exécutées sont affichées en cartes. Chaque carte montre :

- Le titre de la séance et la date d'exécution (au format de votre langue).
- La durée totale de la séance (si elle a été terminée sans sortie anticipée).
- Un résumé compact de chaque exercice réalisé — répétitions, poids et durée réels par série. Les éléments de type combo affichent le nombre de tours et le détail des exercices.
- Un **bouton lecture (▶)** pour relancer immédiatement cette séance.

Cliquez sur la carte (en dehors du bouton lecture) pour aller au détail de la séance.

S'il n'y a encore aucune séance exécutée, un message d'état vide s'affiche.

> **Note** : les séances n'apparaissent ici qu'une fois exécutées en mode exécution. Créer une séance dans le formulaire ne l'ajoute pas à cette liste.

### Historique

Sous les séances récentes, la section **Historique** montre toutes vos exécutions passées, groupées par jour (les plus récentes d'abord).

- Chaque jour affiche sa date, et chaque carte en dessous montre une exécution avec sa durée, son résumé d'exercices et un bouton lecture.
- Deux sélecteurs de date (**Du** / **Au**) permettent de restreindre la plage. Par défaut : les 30 derniers jours.
- Le filtre s'applique immédiatement, sans rechargement.

### Export HTML

Dès que vous avez de l'historique, un bouton **`</> HTML`** apparaît dans la barre d'action. Il génère un fichier HTML autonome de votre page d'accueil — statistiques, séances récentes et plage d'historique actuelle — sans aucun lien de navigation, bouton lecture ni contrôle interactif. Une boîte de dialogue vous demande de nommer le fichier avant l'enregistrement. Le fichier peut être sauvegardé, imprimé ou partagé : avec un ami, ou avec votre coach pour qu'il suive votre historique d'entraînement. Les images (comme l'icône de l'application) sont intégrées directement dans le fichier.

---

## Navigation

TrainUs utilise une navigation responsive :

- **Grand écran** (plus de 700px) : un menu fixe sur la gauche, avec des liens libellés.
- **Tablette / mobile** (700px ou moins) : une barre de navigation en bas, avec icônes et libellés.
- **Petit mobile** (400px ou moins) : une barre compacte en bas, icônes seules.

La navigation donne accès à 7 sections : **Accueil**, **Exercices**, **Combos**, **Séances**, **Collections**, **Statistiques** et **Réglages**.

---

## Raccourcis clavier

TrainUs prend en charge des raccourcis clavier pour naviguer plus vite. La plupart sont **ignorés quand le curseur est dans un champ texte, une zone de texte ou une liste déroulante** — les exceptions sont précisées ci-dessous.

### Menu de navigation

| Touche            | Action                                                                     |
| ----------------- | -------------------------------------------------------------------------- |
| `Tab` / `Maj+Tab` | Déplacer le focus vers et hors du menu de navigation                       |
| `↑` `↓` `←` `→`   | Déplacer le focus entre les éléments du menu (quand l'un d'eux a le focus) |
| `Entrée`          | Aller à l'élément de menu ayant le focus                                   |

### Écrans de liste

Ces raccourcis sont disponibles sur les listes Exercices, Combos, Séances et Collections.

| Touche            | Action                                         |
| ----------------- | ---------------------------------------------- |
| `Tab` / `Maj+Tab` | Déplacer le focus entre les cartes de la liste |
| `N`               | Ouvrir le formulaire « Nouveau »               |
| `↓`               | Focus sur la carte suivante                    |
| `↑`               | Focus sur la carte précédente                  |
| `Entrée`          | Ouvrir la carte ayant le focus                 |
| `Échap`           | Désélectionner la carte ayant le focus         |

### Écrans de formulaire

Ces raccourcis sont disponibles sur tous les formulaires de création et d'édition (Exercice, Combo, Séance, Collection). Ils fonctionnent **même quand un champ texte a le focus**.

| Touche        | Action                                                       |
| ------------- | ------------------------------------------------------------ |
| `Ctrl+Entrée` | Enregistrer le formulaire (équivalent au bouton Enregistrer) |
| `Échap`       | Annuler et revenir en arrière sans enregistrer               |

Survolez le bouton **Enregistrer** pour voir le raccourci dans une infobulle.

### Écrans de détail

Ces raccourcis sont disponibles sur les écrans de détail Exercice, Combo, Séance et Collection.

| Touche  | Action                         |
| ------- | ------------------------------ |
| `E`     | Ouvrir le formulaire d'édition |
| `Échap` | Revenir à la liste             |

### Boîtes de dialogue

| Touche  | Action                      |
| ------- | --------------------------- |
| `Échap` | Fermer la boîte de dialogue |

---

## Exercices

La section Exercices, accessible via le lien **Exercices** du menu, permet de créer, voir, modifier, rechercher et supprimer des exercices individuels.

### Liste des exercices

|             |                                                                    |
| ----------- | ------------------------------------------------------------------ |
| **Route**   | `#/exercises`                                                      |
| **Contenu** | Une liste de cartes d'exercice, ou un message si la liste est vide |
| **Actions** | Recherche (loupe) et Nouveau (plus) dans la barre d'action         |

Chaque carte affiche :

- **Titre** (toujours visible)
- **Badge répétitions** (si répétitions par défaut > 0) — ex. « 12 reps »
- **Badge poids** (si poids par défaut > 0) — ex. « 10 kg »
- **Icône asymétrique** (si l'exercice est asymétrique)

Cliquez sur une carte pour ouvrir le détail de l'exercice.

### Créer un exercice

|           |                                     |
| --------- | ----------------------------------- |
| **Route** | `#/exercises/new`                   |
| **Accès** | Bouton **+** dans la barre d'action |

| Champ                  | Type          | Obligatoire | Notes                                                               |
| ---------------------- | ------------- | ----------- | ------------------------------------------------------------------- |
| Titre                  | Texte         | Oui         | Doit être unique parmi tous les exercices                           |
| Description            | Zone de texte | Non         | [Markdown basique pris en charge](#annexe--aide-mémoire-markdown)   |
| Asymétrique            | Case à cocher | Non         | Affiche les options d'alternance si cochée                          |
| Alternance             | Boutons radio | Non         | Visible seulement si Asymétrique est cochée                         |
| Répétitions par défaut | Nombre        | Non         | Doit être ≥ 0                                                       |
| Poids par défaut       | Nombre        | Non         | Doit être ≥ 0                                                       |
| URLs d'images          | Liste d'URLs  | Non         | Une URL à la fois ; HTTP(S) valide                                  |
| URLs de vidéos         | Liste d'URLs  | Non         | Une URL à la fois ; les URLs YouTube sont intégrées automatiquement |

> **Images ou vidéos ?** Préférez les images si vous voulez travailler hors ligne : une fois qu'une image a été affichée au moins une fois sur votre appareil, elle reste disponible hors ligne. Les vidéos, elles, sont chargées depuis internet à chaque visionnage et ne fonctionnent donc pas sans connexion.

Cliquez sur **Enregistrer** pour créer l'exercice, ou **Annuler** pour revenir en arrière sans enregistrer.

### Détail d'un exercice

|             |                                                                         |
| ----------- | ----------------------------------------------------------------------- |
| **Route**   | `#/exercises/:id`                                                       |
| **Accès**   | Cliquer sur une carte exercice dans la liste                            |
| **Actions** | Retour, Modifier (crayon), Supprimer (corbeille) dans la barre d'action |

Affiche toutes les informations en lecture seule, y compris images et vidéos YouTube intégrées. La description est rendue en Markdown formaté.

### Modifier un exercice

|           |                                         |
| --------- | --------------------------------------- |
| **Route** | `#/exercises/:id/edit`                  |
| **Accès** | Icône **crayon** dans la barre d'action |

Le formulaire d'édition est identique au formulaire de création, pré-rempli avec les données actuelles.

### Supprimer un exercice

Cliquez sur l'icône **corbeille** dans la barre d'action. Une boîte de dialogue de confirmation apparaît ; si l'exercice a déjà été exécuté, elle indique combien d'entrées de journal seront supprimées avec lui, et s'il est utilisé dans des séances ou des combos, elle indique combien, car l'exercice en sera retiré. En confirmant, l'exercice est supprimé définitivement — ainsi que les entrées de journal d'exécution qui le concernent — et vous revenez à la liste.

> Le reste de chaque séance enregistrée (les autres exercices de ce même journal) reste intact.

### Rechercher des exercices

Cliquez sur l'icône **loupe** dans la barre d'action. À chaque caractère tapé, la liste se filtre en temps réel (avec un court délai). La recherche porte sur le titre (insensible à la casse, correspondance partielle). Un bouton **d'effacement (×)** apparaît dans le champ dès qu'il contient du texte — cliquez-le pour vider le champ sans quitter le mode recherche. Cliquez à nouveau sur l'icône loupe ou videz le champ pour retrouver la liste complète.

---

## Combos

La section Combos permet de regrouper des exercices — utile pour des supersets, des circuits, ou des formats minutés (EMOM, AMRAP, TABATA).

### Liste des combos

|             |                                                               |
| ----------- | ------------------------------------------------------------- |
| **Route**   | `#/combos`                                                    |
| **Contenu** | Une liste de cartes combo, ou un message si la liste est vide |
| **Actions** | Recherche (loupe) et Nouveau (plus) dans la barre d'action    |

Chaque carte affiche : **Titre**, **Badge type** (NONE / EMOM / AMRAP / TABATA), **Nombre d'exercices**.

### Créer un combo

|           |                                     |
| --------- | ----------------------------------- |
| **Route** | `#/combos/new`                      |
| **Accès** | Bouton **+** dans la barre d'action |

| Champ               | Type             | Obligatoire | Notes                                                             |
| ------------------- | ---------------- | ----------- | ----------------------------------------------------------------- |
| Titre               | Texte            | Oui         | Doit être unique parmi tous les combos                            |
| Description         | Zone de texte    | Non         | [Markdown basique pris en charge](#annexe--aide-mémoire-markdown) |
| Type                | Liste déroulante | Non         | NONE (par défaut), EMOM, AMRAP ou TABATA                          |
| Réglage du minuteur | Nombre           | Non         | Durée en minutes pour EMOM/AMRAP ; nombre de tours pour TABATA    |
| Exercices           | Liste ordonnée   | Non         | Ajoutés depuis votre bibliothèque ; réordonnables par flèches     |

**Ajouter des exercices à un combo :**

1. Choisissez un exercice dans la liste déroulante et cliquez sur **Ajouter l'exercice**.
2. Pour chaque exercice, réglez **Répétitions** (≥ 1) et **Poids** en kg (≥ 0).
3. Utilisez les flèches haut/bas pour réordonner, l'icône corbeille pour retirer.

Cliquez sur **Enregistrer** pour créer le combo.

### Détail d'un combo

|             |                                                                         |
| ----------- | ----------------------------------------------------------------------- |
| **Route**   | `#/combos/:id`                                                          |
| **Accès**   | Cliquer sur une carte combo dans la liste                               |
| **Actions** | Retour, Modifier (crayon), Supprimer (corbeille) dans la barre d'action |

Affiche les informations du combo, y compris la liste ordonnée des exercices avec répétitions et poids. Les noms d'exercices renvoient à leur détail. La description est rendue en Markdown formaté.

### Modifier un combo

|           |                                         |
| --------- | --------------------------------------- |
| **Route** | `#/combos/:id/edit`                     |
| **Accès** | Icône **crayon** dans la barre d'action |

### Supprimer un combo

Cliquez sur l'icône **corbeille** dans la barre d'action. Si le combo est utilisé dans des séances, la boîte de confirmation indique combien, car le combo en sera retiré. En confirmant, le combo est supprimé définitivement.

---

## Séances

La section Séances permet de construire des séances d'entraînement — des listes ordonnées d'exercices et/ou de combos. Ce sont les séances que vous exécutez lors d'un entraînement.

### Liste des séances

|             |                                                                |
| ----------- | -------------------------------------------------------------- |
| **Route**   | `#/sessions`                                                   |
| **Contenu** | Une liste de cartes séance, ou un message si la liste est vide |
| **Actions** | Recherche (loupe), Nouveau (plus), et bouton lecture par carte |

Chaque carte affiche : **Titre**, **Nombre d'éléments**, et un **bouton lecture (▶)** pour lancer l'exécution.

### Créer une séance

|           |                                     |
| --------- | ----------------------------------- |
| **Route** | `#/sessions/new`                    |
| **Accès** | Bouton **+** dans la barre d'action |

| Champ       | Type           | Obligatoire | Notes                                                             |
| ----------- | -------------- | ----------- | ----------------------------------------------------------------- |
| Titre       | Texte          | Oui         | Doit être unique parmi toutes les séances                         |
| Description | Zone de texte  | Non         | [Markdown basique pris en charge](#annexe--aide-mémoire-markdown) |
| Éléments    | Liste ordonnée | Non         | Mélange d'exercices et de combos ; réordonnable par flèches       |

**Ajouter des éléments à une séance :**

1. Choisissez le type d'élément : **Exercice** ou **Combo**.
2. Sélectionnez un élément dans la liste déroulante correspondante et cliquez sur **Ajouter**.
3. Pour chaque élément, réglez :
   - **Répétitions** (≥ 1) — pour un combo, c'est le nombre de tours complets de la liste d'exercices du combo.
   - **Poids** en kg (≥ 0) — remplace le poids par défaut de l'exercice pendant l'exécution.
4. Utilisez les flèches haut/bas pour réordonner, l'icône corbeille pour retirer.

Cliquez sur **Enregistrer** pour créer la séance.

### Détail d'une séance

|             |                                                               |
| ----------- | ------------------------------------------------------------- |
| **Route**   | `#/sessions/:id`                                              |
| **Accès**   | Cliquer sur une carte séance dans la liste                    |
| **Actions** | Retour, Lecture (▶), Modifier (crayon), Supprimer (corbeille) |

Affiche la description (rendue en Markdown) et la liste ordonnée des éléments avec leurs répétitions et poids. Les noms d'éléments renvoient à leur détail.

### Modifier une séance

|           |                                         |
| --------- | --------------------------------------- |
| **Route** | `#/sessions/:id/edit`                   |
| **Accès** | Icône **crayon** dans la barre d'action |

Le formulaire d'édition est identique au formulaire de création, pré-rempli avec les données actuelles.

### Supprimer une séance

Cliquez sur l'icône **corbeille** dans la barre d'action. Une boîte de dialogue de confirmation apparaît ; si la séance a des journaux d'exécution passés, elle indique combien seront supprimés avec elle, et si la séance appartient à des collections, elle indique combien, car la séance en sera retirée. En confirmant, la séance est supprimée définitivement, ainsi que tout son historique d'exécution — cette action est irréversible.

---

## Collections

La section Collections permet de regrouper des séances dans des ensembles ordonnés — utile pour organiser un programme hebdomadaire, des phases d'entraînement, ou des séances thématiques.

### Liste des collections

|             |                                                                    |
| ----------- | ------------------------------------------------------------------ |
| **Route**   | `#/collections`                                                    |
| **Contenu** | Une liste de cartes collection, ou un message si la liste est vide |
| **Actions** | Recherche (loupe) et Nouveau (plus) dans la barre d'action         |

Chaque carte affiche : **Libellé** et **Badge nombre de séances** (ex. « 3 séances »).

### Créer une collection

|           |                                     |
| --------- | ----------------------------------- |
| **Route** | `#/collections/new`                 |
| **Accès** | Bouton **+** dans la barre d'action |

| Champ   | Type           | Obligatoire | Notes                                                          |
| ------- | -------------- | ----------- | -------------------------------------------------------------- |
| Libellé | Texte          | Oui         | Doit être unique parmi toutes les collections                  |
| Séances | Liste ordonnée | Non         | Ajoutées depuis votre bibliothèque ; réordonnables par flèches |

Une même séance ne peut apparaître qu'une fois dans une collection. Cliquez sur **Enregistrer** pour créer la collection.

### Détail d'une collection

|             |                                                  |
| ----------- | ------------------------------------------------ |
| **Route**   | `#/collections/:id`                              |
| **Accès**   | Cliquer sur une carte collection dans la liste   |
| **Actions** | Retour, Modifier (crayon), Supprimer (corbeille) |

Affiche la liste ordonnée des séances. Les noms de séances renvoient à leur détail.

### Modifier une collection

|           |                                         |
| --------- | --------------------------------------- |
| **Route** | `#/collections/:id/edit`                |
| **Accès** | Icône **crayon** dans la barre d'action |

### Supprimer une collection

Cliquez sur l'icône **corbeille** dans la barre d'action. En confirmant, la collection est supprimée définitivement (les séances elle-mêmes **ne sont pas** supprimées — seul le regroupement disparaît).

---

## Export / Import de données

TrainUs peut exporter et importer vos données sous forme de fichiers JSON. Cela permet de partager des données entre appareils, de collaborer avec d'autres utilisateurs, ou de garder des sauvegardes structurées par type d'entité.

### Exporter des données

Plusieurs points d'export possibles :

| Depuis                                            | Portée                                                                                                                            |
| ------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| **Liste** Exercice / Combo / Séance / Collection  | Tous les éléments de ce type, ou seulement ceux filtrés si une recherche est active (icône téléchargement dans la barre d'action) |
| **Détail** Exercice / Combo / Séance / Collection | Un seul élément (icône téléchargement dans la barre d'action)                                                                     |
| **Réglages → Exporter des données**               | N'importe quelle combinaison de types d'entité (boîte de filtres)                                                                 |

Avant l'enregistrement, une boîte de dialogue permet de renommer le fichier — elle est préremplie avec un nom par défaut construit à partir du type d'entité et de la date (ex. `trainus-exercises-2026-05-26`, ou `trainus-full-2026-05-26` pour un export complet depuis les Réglages). L'extension `.json` est fixe et affichée à côté du champ de nom. Cliquez sur **Enregistrer** pour valider le nom (ou appuyez sur Entrée pour garder le nom par défaut), ou sur **Annuler** pour abandonner sans rien enregistrer.

Exporter un combo, une séance ou une collection (depuis une liste, une vue détail, ou une sélection filtrée) embarque toujours les entités dont il dépend — exporter une séance inclut aussi ses combos et exercices, exporter une collection inclut aussi ses séances, combos et exercices — afin que le fichier puisse être importé seul sans référence manquante, même si vous n'avez sélectionné qu'un seul type d'entité dans la boîte de filtres des Réglages.

### Importer des données

Pour importer un fichier JSON précédemment exporté depuis TrainUs :

1. Cliquez sur l'icône d'import sur une liste, ou sur **Importer des données** dans les Réglages.
2. Sélectionnez le fichier `.json`.

**Si le fichier vient de votre propre compte** (même utilisateur), TrainUs vous montre les conflits éventuels (éléments déjà existants avec le même identifiant, ou avec le même titre si un autre élément le porte déjà). Pour chaque conflit :

- **Remplacer** : écrase l'élément existant par la version importée (en conservant son identifiant d'origine en cas de conflit de titre).
- **Ignorer** : garde votre élément actuel. Si d'autres éléments du même fichier y faisaient référence (ex. un combo utilisant cet exercice), ils sont automatiquement redirigés vers votre élément existant.
- **Tout remplacer** ou **Tout ignorer** pour traiter le lot en une seule fois.

**Si le fichier vient d'un autre utilisateur**, on vous demande de choisir un court suffixe (ex. « JD »). Tous les titres importés reçoivent ce suffixe : « Pompes [JD] ». Si vous importez à nouveau depuis le même utilisateur externe, le suffixe existant est réutilisé automatiquement — et si le titre suffixé entre en conflit avec un élément déjà importé précédemment, le même choix Remplacer/Ignorer s'applique.

Un écran de prévisualisation résume ce qui va être importé avant toute modification. Après l'import, un rapport indique combien d'éléments ont été ajoutés, mis à jour ou ignorés.

### Gérer les suffixes d'import

Après avoir importé des données d'autres utilisateurs, une section **Suffixes d'import** apparaît dans les Réglages. Vous pouvez :

- **Modifier** un suffixe : le changement met à jour automatiquement tous les titres concernés, dans tous les types d'entité (exercices, combos, séances, collections).
- **Supprimer** une entrée de suffixe (ne supprime pas les éléments déjà importés).

---

## Mode Exécution

Le mode exécution permet de dérouler une séance étape par étape, en enregistrant les répétitions et le poids réellement utilisés.

### Lancer une séance

- Depuis la **liste des Séances** : bouton **lecture (▶)** sur n'importe quelle carte.
- Depuis le **détail d'une séance** : bouton **lecture** dans la barre d'action.

### Pendant l'exécution

L'écran d'exécution affiche :

1. **Barre de progression** — nombre d'étapes terminées sur le total.
2. **Carte de l'étape en cours** — l'exercice en cours, avec des champs répétitions et poids modifiables.
3. **Aperçu de l'étape suivante** — l'exercice à venir (titre, répétitions, contexte du combo si applicable).

Pour les exercices asymétriques, un bouton **Côté** apparaît. Il permet d'alterner entre GAUCHE et DROITE.

Cliquez sur **✓ Terminé** pour enregistrer l'étape en cours et passer à la suivante.

### Détail de l'exercice pendant l'exécution

Le titre de l'exercice dans la carte de l'étape en cours est cliquable. Cliquer dessus déplie un panneau de détail montrant la description, les images et les liens vidéo de l'exercice — pratique pour vérifier un point technique en plein effort.

- **Cliquer sur le titre** → le panneau se déplie et le chronomètre (s'il tourne) se met en pause automatiquement.
- **Cliquer à nouveau** → le panneau se replie et le chronomètre reprend.

Si vous aviez déjà mis le chronomètre en pause manuellement avant de déplier le panneau, il reste en pause en le repliant — seuls les chronomètres mis en pause par le dépliage reprennent automatiquement.

Le panneau se referme automatiquement quand vous passez à l'étape suivante.

### Les combos en mode exécution

Quand un élément de la séance est un combo :

- Chaque exercice du combo est présenté comme sa propre étape, avec le nom du combo et le numéro du tour affichés.
- Les tours s'enchaînent **automatiquement** — terminer le dernier exercice d'un tour passe directement au premier exercice du tour suivant, sans écran de pause.
- Après le **dernier exercice du dernier tour**, un écran de fin de tours apparaît :
  - **Continuer →** — passer à l'élément suivant de la séance (ou terminer la séance s'il n'en reste pas).
  - **+ Un tour de plus** — ajouter un tour supplémentaire et continuer.

| EMOM                                                           | AMRAP                                                                     |
| -------------------------------------------------------------- | ------------------------------------------------------------------------- |
| ![Combo EMOM en cours, chronomètre à 1 minute](combo-emom.png) | ![Combo AMRAP en cours, chronomètre en compte à rebours](combo-amrap.png) |

| TABATA — phase de travail                                         | TABATA — phase de repos                                                     |
| ----------------------------------------------------------------- | --------------------------------------------------------------------------- |
| ![Combo TABATA, phase de travail en cours](combo-tabata-work.png) | ![Combo TABATA, écran de repos entre deux exercices](combo-tabata-rest.png) |

**EMOM et AMRAP — champ « Durée (min) »** : quand vous ajoutez un combo EMOM ou AMRAP à une séance, le champ **Répétitions** est renommé **Durée (min)** pour clarifier son sens. Pour l'EMOM, c'est le nombre total de minutes : l'application divise par le nombre d'exercices du combo pour calculer le nombre de tours (chaque exercice occupe une tranche de 60 secondes). Pour l'AMRAP, la durée est la longueur du compte à rebours.

### Signaux sonores

TrainUs utilise de courts bips pour vous aider à garder le rythme sans regarder l'écran. Deux sons sont utilisés :

- **bip** — une tonalité courte et douce (440 Hz) : un signal discret ou un repère de compte à rebours.
- **BIP** — une tonalité plus longue et plus forte (880 Hz) : marque un événement important (changement de phase, fin du temps).

| Type de minuteur | Quand                                                   | Son      |
| ---------------- | ------------------------------------------------------- | -------- |
| **EMOM**         | Toutes les 30 secondes restantes                        | bip      |
| **EMOM**         | À 2 s et 1 s restantes                                  | bip      |
| **EMOM**         | Fin du temps (passage automatique)                      | BIP      |
| **AMRAP**        | À chaque minute écoulée (sauf la dernière)              | bip      |
| **AMRAP**        | Exactement à la moitié de la durée totale               | BIP      |
| **AMRAP**        | 30 s restantes dans la dernière minute                  | bip      |
| **AMRAP**        | À 2 s et 1 s restantes                                  | bip, bip |
| **AMRAP**        | Fin du temps                                            | BIP      |
| **TABATA**       | Début de chaque phase de travail ou de repos            | BIP      |
| **TABATA**       | À la moitié de chaque intervalle de travail ou de repos | bip      |
| **TABATA**       | 2 s et 1 s avant la fin de chaque phase                 | bip, bip |

Le motif **bip, bip, BIP** entendu à la fin de chaque intervalle est un compte à rebours à 3 temps régulièrement espacés (un bip par seconde) menant à la phase suivante.

### Pré-remplissage depuis la dernière exécution

Quand vous relancez une séance, les champs répétitions et poids sont pré-remplis avec vos valeurs de la dernière exécution de cette séance. Au premier lancement, les champs prennent les valeurs configurées sur chaque élément de la séance.

### Quitter en cours de séance

Le bouton **✕** permet de quitter à tout moment. Les étapes déjà terminées sont enregistrées dans l'historique ; les étapes non terminées sont omises. La séance apparaît dans l'historique comme une exécution partielle.

### Contrôle par écouteurs / touches multimédia

Si votre appareil et votre navigateur le permettent, vous pouvez contrôler une séance en cours avec les boutons de vos écouteurs, les touches multimédia du système, ou les commandes de l'écran verrouillé — pratique quand votre téléphone reste rangé dans une poche ou un brassard :

| Commande        | Effet                                                                                               |
| --------------- | --------------------------------------------------------------------------------------------------- |
| Lecture / Pause | Met en pause ou reprend le chronomètre actif (EMOM, AMRAP, TABATA)                                  |
| Suivant         | Équivaut à cliquer sur **✓ Terminé** (ou **Continuer**, sur un écran de fin de tour/temps écoulé)   |
| Précédent       | Revient à l'étape précédente — également disponible à l'écran via un bouton **◀** à côté de Terminé |
| Stop            | Quitte immédiatement, sans confirmation (les étapes déjà faites restent enregistrées)               |

Revenir à une étape précédente puis la terminer à nouveau l'enregistre une seconde fois ; rien de ce qui a déjà été sauvegardé n'est supprimé. L'écran verrouillé / l'affichage des écouteurs montre l'exercice en cours.

Cette fonctionnalité dépend de la prise en charge de la Media Session API par votre navigateur et votre système — là où elle n'est pas prise en charge, l'application fonctionne exactement comme avant, simplement sans contrôle par écouteurs.

### Annonces vocales

Pendant l'exécution, une voix synthétisée annonce le nom de l'exercice à chaque nouvelle étape — pratique quand vous ne regardez pas l'écran. Pour les combos EMOM et TABATA, l'application annonce aussi à l'avance le _prochain_ exercice (« Suivant : Squat ») quelques secondes avant : 10 secondes avant la fin d'un créneau EMOM, et dès le début d'une phase de repos TABATA.

La voix suit la langue sélectionnée et partage le même volume que les bips sonores. Vous pouvez la désactiver dans **Paramètres → Son** avec la case **Annonces vocales** ; elle dépend de la prise en charge de la synthèse vocale par votre navigateur — là où elle n'est pas prise en charge, l'application fonctionne exactement comme avant, simplement en silence.

---

## Statistiques

La page Statistiques est accessible via le lien **Statistiques** du menu.

### Date de création de la base

En haut de page : « Vous utilisez TrainUs depuis le [date] » — la date de votre premier lancement de l'application. Le format de date s'adapte à la langue choisie.

### Filtre de période

Quatre onglets permettent de cibler les graphiques et cartes de résumé sur une période donnée :

| Onglet            | Période                               |
| ----------------- | ------------------------------------- |
| 7 jours           | Les 7 derniers jours                  |
| 30 jours          | Les 30 derniers jours (par défaut)    |
| 3 mois            | Les 3 derniers mois                   |
| Tout l'historique | L'ensemble de l'historique enregistré |

### Cartes de résumé

| Carte              | Ce qu'elle montre                                                                                                     |
| ------------------ | --------------------------------------------------------------------------------------------------------------------- |
| Séances            | Séances exécutées dans la période sélectionnée                                                                        |
| Exercices réalisés | Séries d'exercices individuelles terminées dans la période                                                            |
| Jours consécutifs  | Jours calendaires consécutifs (jusqu'à aujourd'hui) avec au moins une séance ; toujours calculé sur tout l'historique |

### Graphique de fréquence

Un graphique en barres montrant le nombre de séances exécutées par semaine ou par mois. Utilisez le bouton **Par semaine / Par mois** pour changer le regroupement.

### Graphique de volume

Un graphique en barres montrant le volume total (répétitions × poids en kg) par exécution de séance, dans le temps. Seuls les exercices avec poids (poids > 0) contribuent au volume.

### Graphique de progression

Un graphique en courbes montrant l'évolution des répétitions et du poids maximal pour un exercice donné, dans le temps. Deux courbes sont tracées sur des axes Y indépendants — répétitions à gauche, poids à droite.

1. Choisissez un exercice dans la liste déroulante.
2. Seuls les exercices ayant au moins une série enregistrée apparaissent dans la liste.

---

## Réglages

La page Réglages (`#/settings`) permet de configurer vos préférences, gérer votre identité, et sauvegarder ou restaurer vos données. Pour le détail des sections base de données et export/import JSON, voir aussi [Comprendre TrainUs]({{< relref "comprendre.fr.md" >}}) et les [Guides pratiques]({{< relref "guides-pratiques.fr.md" >}}).

### Langue

Choisissez votre langue préférée (English ou Français). Toute l'interface est mise à jour immédiatement. Votre choix est enregistré et appliqué au prochain lancement.

### Nom d'utilisateur

Entrez votre nom. La valeur est enregistrée quand vous quittez le champ. Un nom vide ou ne contenant que des espaces est refusé.

### Identifiant utilisateur

Votre identifiant unique, généré automatiquement au premier lancement. Lecture seule. Utilisé en interne pour identifier vos données lors de l'export/import.

### Thème

Basculez entre les thèmes **Clair** et **Sombre**. Appliqué immédiatement et enregistré pour les prochaines visites.

### Volume sonore

Un curseur règle le volume des bips et BIP utilisés pendant les combos minutés (EMOM, AMRAP, TABATA) — voir [Signaux sonores](#signaux-sonores). Le réglage est appliqué immédiatement et enregistré pour les prochaines séances. Cliquez sur **Tester** pour entendre les deux sons (bip puis BIP) au volume actuel.

### Télécharger la base de données

Cliquez sur **Télécharger la base de données** pour exporter une sauvegarde complète de vos données sous forme de fichier SQLite brut. Une boîte de dialogue vous invite à confirmer ou renommer le fichier avant l'enregistrement ; le nom par défaut est :

```
trainus-{version}-backup-AAAAMMJJ-HHhMMmSSs.sqlite3
```

L'horodatage utilise votre heure locale et est complété de zéros pour faciliter le tri. Ce fichier peut être restauré via la fonction Restaurer, ou inspecté avec un outil SQLite quelconque (ex. DB Browser for SQLite). Annuler la boîte de dialogue laisse l'état de votre sauvegarde inchangé — la même invite apparaît aussi pour la sauvegarde obligatoire de l'écran de mise à jour, et le bouton **Mettre à jour** reste désactivé jusqu'à ce que le fichier soit réellement enregistré.

### Restaurer la base de données

La fonction Restaurer remplace **toutes** vos données actuelles par le contenu d'un fichier de base de données précédemment téléchargé.

**Étapes :**

1. Cliquez sur **Restaurer la base de données** et choisissez un fichier `.sqlite3` ou `.db`.
2. Une boîte de dialogue de confirmation vous prévient que toutes les données actuelles seront remplacées.
3. Un indicateur de chargement apparaît pendant la restauration.
4. Une carte de rapport affiche le résultat.

**En cas de succès** : un en-tête vert, la liste des tables restaurées avec leur nombre de lignes, et une note optionnelle si le schéma a été adapté depuis une version plus ancienne. Les réglages (nom, langue, thème) sont mis à jour immédiatement, sans rechargement de page.

**En cas d'échec**, le rapport affiche une erreur précise :

| Erreur               | Signification                                               |
| -------------------- | ----------------------------------------------------------- |
| Fichier invalide     | Pas une base SQLite valide, ou fichier corrompu             |
| Base incomplète      | Tables requises manquantes (pas un fichier TrainUs)         |
| Version incompatible | Pas de chemin de migration depuis ce schéma                 |
| Adaptation échouée   | La migration du schéma depuis une version ancienne a échoué |
| Restauration échouée | Erreur pendant la copie des données                         |

### Initialiser la base de données

Supprime définitivement **toutes** vos données et réinitialise la base à son état initial.

**Étapes :**

1. Cliquez sur **Initialiser la base de données**.
2. Cochez la case de confirmation : « Je comprends que cela supprimera définitivement toutes mes données et que cette action est irréversible. »
3. Cliquez sur **Initialiser la base de données** pour confirmer.
4. La page se recharge avec une base de données vierge.

> **Attention :** cette action est irréversible. Utilisez **Télécharger la base de données** au préalable si vous voulez conserver vos données.

### Rappel de sauvegarde

TrainUs affiche un bouton d'alerte (⚠) dans la barre d'action quand votre dernière sauvegarde date de plus que l'intervalle configuré (7 jours par défaut), ou si vous n'avez jamais sauvegardé.

- **Ce qu'il affiche** : le nombre de jours depuis votre dernière sauvegarde, ou « Pas encore de sauvegarde ».
- **Cliquer sur le bouton** : vous amène aux Réglages, en faisant défiler jusqu'à la section base de données.
- **Le rappel persiste** jusqu'à ce que vous sauvegardiez, ou que vous ajustiez l'intervalle pour que la dernière sauvegarde ne soit plus considérée comme ancienne.
- **Période de grâce** : une base toute neuve (créée dans les 7 derniers jours, ou l'intervalle configuré) n'affiche pas le rappel immédiatement.

### Mises à jour de l'application

Les mises à jour de l'application préservent vos données — vous n'avez jamais besoin d'exporter puis ré-importer quoi que ce soit lors de la sortie d'une nouvelle version de TrainUs.

Quand une nouvelle version est disponible, TrainUs affiche une boîte de dialogue **Mise à jour disponible**. Choisissez **Mettre à jour** pour l'appliquer immédiatement — un court indicateur « Mise à jour en cours… » s'affiche pendant que la nouvelle version prend le relais et que l'application se recharge — ou **Plus tard** pour continuer à travailler ; la boîte de dialogue reviendra à la prochaine ouverture de l'application. Elle n'interrompt jamais un entraînement : si vous êtes en train d'exécuter une séance, elle attend que vous quittiez l'écran d'exécution.

Si une mise à jour change la structure de la base de données, TrainUs affiche un écran de mise à jour unique au démarrage. Par sécurité, il vous demande d'abord de **télécharger une sauvegarde** de vos données ; le bouton **Mettre à jour** devient disponible une fois la sauvegarde enregistrée. La mise à jour s'exécute alors en quelques secondes et l'application continue avec toutes vos données en place. Si quoi que ce soit devait mal se passer, vos données restent inchangées et vous disposez de la sauvegarde que vous venez de télécharger.

Le rappel de sauvegarde habituel reste votre filet de sécurité au quotidien.

Dans la section base de données, vous pouvez aussi voir :

- **Date de dernière sauvegarde** — quand vous avez téléchargé ou restauré une sauvegarde pour la dernière fois.
- **Me le rappeler tous les N jours** — intervalle configurable (1 à 365, 7 par défaut).

### Export / Import de données

**Exporter des données** ouvre une boîte de filtres pour choisir les types d'entité à inclure. Vous pouvez exporter n'importe quelle combinaison d'exercices, combos, séances, collections et journaux d'exécution.

**Importer des données** ouvre un sélecteur de fichier pour un `.json` précédemment exporté depuis TrainUs. Voir [Export / Import de données](#export--import-de-données) plus haut pour le détail du flux d'import et de la gestion des conflits.

### Suffixes d'import

Quand vous avez importé des données d'autres utilisateurs, cette section liste tous les suffixes enregistrés. Chaque entrée affiche le nom de l'utilisateur externe et son suffixe court. Vous pouvez modifier ou supprimer les entrées — voir [Gérer les suffixes d'import](#gérer-les-suffixes-dimport) plus haut.

### Crédits

Cliquez sur le bouton **Crédits** pour ouvrir la boîte de dialogue des crédits. Elle liste les ressources open source utilisées pour construire TrainUs :

- **Mighty Force** (icône de l'application) — par Delapouite, sur [game-icons.net](https://game-icons.net), licence CC BY 3.0. game-icons.net est maintenu par Lorc, Delapouite & contributeurs.
- **Bootstrap Icons** (icônes d'interface utilisées dans toute l'application) — sur [icons.getbootstrap.com](https://icons.getbootstrap.com), licence MIT.
- **Bibliothèques tierces** — [Vue](https://vuejs.org), [Vue Router](https://router.vuejs.org), [Vite](https://vitejs.dev), [SQLite WASM](https://sqlite.org/wasm/), [Chart.js](https://www.chartjs.org), [vue-chartjs](https://vue-chartjs.org), [i18next](https://www.i18next.com), [i18next-vue](https://i18next.github.io/i18next-vue/), [Prettier](https://prettier.io), [vite-plugin-pwa](https://vite-pwa-org.netlify.app), [marked](https://marked.js.org), [DOMPurify](https://github.com/cure53/DOMPurify).
- **Outils de test** — [Playwright](https://playwright.dev/python/), [pytest](https://pytest.org).

### À propos de TrainUs

Cliquez sur le bouton **À propos de TrainUs** pour ouvrir la boîte de dialogue À propos. Elle affiche :

- **Version de l'application** — la version actuelle de TrainUs (ex. `1.0.0`).
- **Version de la base** — la version actuelle du schéma de base de données.
- **Créé par** — David Florance.
- **Licence** — GNU AGPL v3.
- **Liens** — liens vers le dépôt du projet et le site web.
- **Note de copyright** — une courte mention de copyright et un résumé de la licence AGPL, affichés directement dans la boîte de dialogue.
- **Voir la licence** — ouvre le texte complet de la licence GNU AGPL v3 dans une boîte de dialogue.

---

## Annexe : aide-mémoire Markdown

Toutes les descriptions (exercices, combos, séances) acceptent un sous-ensemble de Markdown. Ce que vous tapez dans le champ est déjà ce que vous voyez, mais voici un rappel rapide :

| Vous tapez             | Vous obtenez                        |
| ---------------------- | ----------------------------------- |
| `**gras**`             | **gras**                            |
| `*italique*`           | _italique_                          |
| `- élément`            | <ul><li>élément</li></ul>           |
| `1. élément`           | <ol><li>élément</li></ol>           |
| `` `code` ``           | `code`                              |
| `[texte](https://...)` | [texte](https://www.ubuntu-fr.org/) |
