En bref
Mon carnet de natation : chronos, mètres nagés, records et progression, sur tous mes appareils, même hors ligne.
Auteur
Codé avec l'IA. Je ne sais pas écrire seul ce JavaScript ni ce PHP.
Le problème
Je nage et je voulais garder au même endroit mes chronos par épreuve, mes mètres et mes objectifs. Trak était d'abord un suivi d'habitudes, il est devenu un carnet de natation parce que c'est de ça que je me sers.
Mon rôle
J'ai défini ce que l'application devait faire, choisi entre les propositions, testé sur mon téléphone et demandé les corrections. L'IA a écrit le code.
Décisions
- Des fichiers JSON plutôt qu'une base de données. Mon hébergement n'a pas SQLite. À l'échelle de quelques comptes, un fichier par compte suffit. Écarté : MySQL, qui ajoutait de l'administration pour rien.
- Une synchronisation case par case. Chaque valeur porte son horodatage et la plus récente gagne : deux appareils ne s'écrasent pas entièrement. Une suppression laisse une trace, sinon un appareil en retard ferait revenir ce qui a été effacé.
Un vrai bug
Le blocage après trop d'essais de connexion se faisait par adresse IP ou par e-mail. Quelqu'un qui connaissait une adresse pouvait donc bloquer ce compte à distance. Le blocage se fait maintenant par IP seule.
Résultat
Je l'utilise tous les jours. Il fonctionne hors ligne et les modifications partent au retour du réseau.
Limites
Un verrou unique protège tous les fichiers : avec plusieurs dizaines de comptes actifs en même temps, il ralentirait tout. Les inscriptions sont limitées à 15 comptes.
Crédits
Polices libres hébergées sur le serveur, aucun service tiers pour les données.