>_ DevTrendsfr

Langue

Accueil

Langages

Sections

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embarqué Sécurité
TypeScript

Tirer le meilleur parti de vos journaux d'entraînement avec LiftShift

LiftShift Logo

Si vous allez à la salle de sport et que vous consignez méticuleusement chaque série dans Hevy, Strong ou Lyfta, vous avez probablement remarqué une chose. Les applications de suivi sont excellentes pour collecter des données brutes mais ne vous aident presque jamais à les comprendre. Au mieux, l'application affiche un graphique d'un exercice sur un mois et vous congratule pour un nouveau maximum à une répétition. Le vrai problème, c'est qu'il est difficile de voir quels groupes musculaires vous sous-entraînez régulièrement, où vous avez atteint un véritable plateau et devez modifier votre approche, et ce qui n'est qu'une fatigue normale après la troisième série.

J'ai récemment découvert le projet open source LiftShift. C'est un outil web pour l'analyse approfondie des journaux d'entraînement qui s'exécute directement dans le navigateur et ne nécessite aucune inscription.


Ce que le projet peut faire

L'idée centrale est simple : vous fournissez à l'application votre export ou connectez votre compte, et elle organise vos séances d'entraînement selon une perspective de périodisation sportive.

UI Screenshot 1

UI Screenshot 2

Voici les éléments qui se démarquent immédiatement lors de l'exploration du tableau de bord :

  • Carte thermique des muscles. Un modèle corporel interactif affiche la charge volumique sur chaque groupe musculaire. Vous pouvez cliquer sur un muscle spécifique et voir les exercices qui ont produit ce stimulus. L'algorithme calcule les zones de volume (seuils MEV et MRV) ajustés selon l'expérience d'entraînement et attribue un score d'hypertrophie de 0 à 100.
  • Détection des plateaux. Au lieu d'une simple tendance du poids, l'outil attribue des statuts clairs aux exercices : croissance, plateau ou déclin. Le système distingue les plateaux sans issue (lorsque le poids et les répétitions sont complètement bloqués) des fluctuations en forme d'onde, puis suggère une solution : ajouter une répétition, réduire la charge de travail pendant une semaine de décharge, ou changer la plage de répétitions.
  • Analyse de chaque série. Vous pouvez ouvrir n'importe quelle séance passée et consulter les évaluations des séries. Le système identifie la fatigue normale, les sauts de poids trop brusques, les drop sets bien exécutés ou les séries à l'échec (AMRAP). Chaque série reçoit un badge et des conseils directs pour votre prochaine séance.
  • Fusion des données de différentes applications. Si vous avez utilisé Strong pendant des années puis êtes passé à Hevy, votre historique est généralement fragmenté. Le projet peut faire correspondre différents noms pour les mêmes exercices, supprimer les doublons et assembler le tout en une seule chronologie.
  • Export pour réseaux de neurones. Si les graphiques intégrés ne suffisent pas, les données sont exportées dans un format structuré pour des prompts vers ChatGPT ou Claude. Il existe des modules prêts à l'emploi : audit du volume inutile, vérification de l'équilibre latéral ou évaluation de la charge articulaire.
  • Carte thermique de type GitHub. Vous pouvez voir clairement les séries de séances, les semaines manquées et la régularité sur toute l'année.

UI Screenshot 3

UI Screenshot 4


Sous le capot

L'architecture du projet est axée sur la confidentialité. Tous les calculs, le parsing CSV et le rendu des graphiques se font côté client.

UI Screenshot 5

UI Screenshot 6

Le frontend est construit sur une stack moderne : React 19, TypeScript, Vite, Tailwind CSS et la bibliothèque Recharts pour la visualisation des données. Un petit backend Node.js avec Express et Puppeteer est utilisé exclusivement comme proxy pour les appels API aux applications de suivi comme Hevy et Lyfta, là où les restrictions CORS du navigateur ou l'autorisation sont nécessaires. Les journaux d'entraînement ne sont pas stockés sur le serveur.

Pour travailler avec Strong, les imports de fichiers CSV sont pris en charge avec des délimiteurs point-virgule, des guillemets et des suffixes d'unités de poids dans les en-têtes.


Comment exécuter en local

Si vous souhaitez déployer le projet sur votre machine ou écrire un parser personnalisé, quelques commandes suffisent. Vous aurez besoin de Node.js version 22 ou supérieure.

git clone https://github.com/aree6/LiftShift.git
cd LiftShift
npm install
npm run dev

Après le démarrage, le serveur local s'ouvrira sur le port standard de Vite.

Workflow Steps CSV Upload Analytics Filtering

Si vous utilisez la version publique sur le site du projet, sélectionnez simplement votre plateforme, importez un CSV ou collez votre clé API, spécifiez vos unités (kg ou livres) et dirigez-vous vers le tableau de bord.

Un petit détail : lors de l'export depuis Hevy, l'application se plaint parfois des formats de date. Cela se produit en raison des paramètres régionaux non anglais dans l'application source. Il suffit de basculer temporairement la langue d'export en anglais :

Hevy Language Settings


À qui le projet est destiné

LiftShift comble parfaitement le vide entre les simples carnets de musculation et les tableurs complexes des coachs en Excel. Si vous êtes trop paresseux pour calculer manuellement le tonnage par groupe musculaire et chercher les déséquilibres, le client web le fait en quelques secondes.

Le projet est distribué sous la licence AGPL-3.0. La base de code est propre, écrite en TypeScript strict, donc si vous souhaitez ajouter la prise en charge de votre application de fitness préférée ou implémenter de nouvelles métriques de périodisation, contribuer ici est assez agréable.

Projets similaires