Tous les projets

Logiciel - suivi de musculation

Unstuck

L’application que j’utilise à la salle pour noter mes séances et suivre ma progression, même sans réseau.

Accueil d’Unstuck sur téléphone : le bouton orange « Reprendre la séance », les séances de la semaine et du mois, et la dernière séance.
Contexte
Projet personnel, fait seul
Format
Application web installable, pensée pour le téléphone
Technique
Preact, IndexedDB, Cloudflare D1 et R2
Aujourd’hui
Je m’en sers à chaque séance

Le point de départ

À la salle, le réseau passe souvent mal, et entre deux séries il faut retrouver vite ce qu’on a soulevé la dernière fois.

J’ai conçu Unstuck pour moi : noter une série en quelques appuis, voir tout de suite si je progresse, et ne jamais rien perdre.

01La séance

Un appui, et la séance commence.

« Nouvelle séance » lance le chrono. Chaque exercice s’affiche avec ses séries et leur progression, et on en ajoute un depuis une grille, avec une recherche et un filtre par groupe musculaire.

Après chaque série validée, le minuteur de repos se lance. Il prévient de la fin du repos par un son et une vibration, selon le téléphone.

Séance en cours dans Unstuck : chrono, 5 exercices avec leurs séries et leurs records, et le minuteur de repos en bas.

02La saisie

La dernière fois est déjà remplie.

Pour chaque série, le poids et les répétitions de la séance précédente sont proposés d’office. De gros boutons + et - les ajustent selon le pas de la machine, sans rien taper.

Un record battu s’affiche tout de suite sur la série : nouveau max, nouveau poids validé ou plus de répétitions.

Saisie du développé incliné haltères : trois séries validées, un record sur la dernière, et le minuteur de repos lancé.

03Les records

Des records calculés, pas recopiés.

Le poids validé est le plus lourd soulevé sur au moins deux séries de 10 répétitions. L’application calcule aussi le max sur une série, un max théorique et le volume soulevé.

En fin de séance, le résumé donne la durée, le volume et chaque record, avec l’ancienne valeur à côté.

Résumé de fin de séance : durée, volume, 16 séries, 3 records avec l’ancienne valeur, puis le détail de chaque exercice.

04Rien ne se perd

Même si le téléphone ferme l’application.

Tout est enregistré sur le téléphone à chaque appui, y compris ce qui est en train d’être tapé et l’heure de fin du repos. Si le téléphone ferme l’application pendant le repos, elle rouvre au même écran, avec le temps restant.

Dès qu’il y a du réseau, les séances partent dans une sauvegarde en ligne protégée par une clé secrète. Un export dans un fichier complète le tout.

Écran Sauvegarde d’Unstuck : sauvegarde en ligne à jour, récupération des données et export dans un fichier.

Dans la durée

Chaque progrès se voit.

L’historique place chaque séance sur un calendrier. Chaque exercice a ses courbes de progression, et le bilan compare mes séries par groupe musculaire aux repères de mon objectif.

  • Historique d’octobre dans Unstuck : calendrier des séances de salle et des sorties, puis la liste des 16 séances.
  • Progression du développé couché : poids validé, max, max théorique, objectif, puis les courbes du poids et du volume.
  • Bilan personnalisé d’Unstuck : objectifs, séries par semaine et par groupe musculaire, équilibre, exercices qui stagnent, force et rythme des séances.

La technique

Le téléphone d’abord, le serveur ensuite.

L’application lit et écrit uniquement sur le téléphone, dans sa base locale (IndexedDB). Chaque appui est donc instantané, avec ou sans réseau.

Chaque modification rejoint une file d’attente, envoyée dès que possible à un serveur Cloudflare : les données dans une base D1, les photos des machines dans un stockage R2.

Elle est écrite en TypeScript avec Preact, et s’installe sur l’écran d’accueil comme une application classique.

En bref

Ce que ce projet montre.

Parlons de votre application

Un besoin que les logiciels du commerce ne couvrent pas ? Décrivez-le, et on regarde ensemble ce qu’un outil sur mesure pourrait faire pour vous.

Prendre contact