Page d'accueil de www.estcalade.fr
Projet Technologie

EsTcalade.fr

Application web et PWA de gestion de séances sportives — escalade, randonnée, vélo : invitations, discussions, notifications push et statistiques de progression, pour un club ou un groupe d'amis.

Conception, développement et exploitation 2026 27 avril 2026 13 vues
EsTcalade.fr est une application web de gestion de séances sportives et de communication entre membres d'un club ou d'un groupe d'amis. On y crée une séance d'escalade, de randonnée ou de vélo, on invite ses coéquipiers, chacun répond présent ou non, discute dans le fil de la séance, puis enregistre ses performances. Conçue comme une Progressive Web App, elle s'installe sur l'écran d'accueil du téléphone et envoie de vraies notifications push — sans passer par les magasins d'applications. L'application est en ligne : app.estcalade.fr.

Remplacer le groupe de messagerie et le tableur

Organiser une sortie à plusieurs finit toujours en fil de discussion illisible : qui vient, où, à quelle heure, qui assure qui. L'application centralise l'invitation, la réponse, le lieu, l'horaire et la conversation au même endroit.

Une application mobile sans application mobile

Installation sur l'écran d'accueil, affichage plein écran, notifications push : le comportement d'une application native, obtenu avec une PWA — donc aucun magasin d'applications, aucune validation, aucune version à maintenir par plateforme.

Trois sports, un même cadre

Escalade, randonnée et vélo partagent l'organisation des séances mais pas les données de performance : cotations et assurage d'un côté, distance, dénivelé et vitesse de l'autre. Le type d'activité commande ce qui s'affiche et ce qui se saisit.

Des groupes réels, avec leurs droits

L'application s'organise autour de « teams » : un utilisateur peut être modérateur de l'une et simple membre d'une autre. Les inscriptions sont validées par un humain, jamais automatiques.

Contexte & Problématique

Le projet part d'un constat très concret : dans un club ou un groupe de grimpeurs, l'organisation se fait dans une messagerie instantanée, et le suivi des performances dans un carnet ou un tableur que personne ne tient vraiment à jour.

L'organisation se perd dans la conversation

« Qui vient vendredi ? » se noie sous trente messages. Personne ne sait qui a répondu, l'information n'est plus retrouvable, et le rappel de la veille dépend de la bonne volonté de quelqu'un.

Le mobile d'abord, sans magasin d'applications

L'usage est mobile : on consulte la séance sur le pouce, on répond en marchant. Mais publier une application native pour un club amateur — deux plateformes, deux validations, deux mises à jour — était hors de proportion.

Trois pratiques, des données différentes

Une voie se décrit par une cotation, un nombre de montées et un assureur ; une randonnée par une distance, un dénivelé et une durée. Le même formulaire pour les deux aurait été inutilisable.

Un club n'est pas un réseau social ouvert

Les inscriptions devaient rester sous contrôle humain, les statistiques personnelles privées par défaut, et les droits s'exercer au niveau du groupe auquel on appartient.

Réalisation

L'application est construite autour du cycle de vie d'une séance, de sa création à la consultation des statistiques, avec les notifications comme fil conducteur.
  1. 1. Inscription validée par un humain

    L'utilisateur choisit un identifiant et un code PIN à quatre chiffres — l'unicité est vérifiée pendant la saisie. Un administrateur ou un modérateur valide la demande, et le compte est activé immédiatement. Une notice d'accueil en quatre écrans guide alors le nouveau venu : installation sur l'écran d'accueil, activation des notifications, partage des statistiques, changement du code PIN.

  2. 2. Créer une séance

    Type d'activité, date, heure de début et de fin, lieu choisi dans un annuaire illustré, informations complémentaires, puis invitation d'une team entière ou d'une sélection de personnes. Une discussion est automatiquement créée pour la séance.

  3. 3. Inviter, rappeler, tenir informé

    Chaque invité reçoit une notification et répond présent ou non. Deux rappels automatiques suivent : la veille, puis une heure avant. Toute annulation prévient les participants, et les messages flash des modérateurs s'affichent sur la page d'accueil.

  4. 4. Discuter autour de la séance

    Le fil de discussion suit les inscriptions : les participants y sont ajoutés automatiquement. Photos, réactions par emoji, historique complet — et des notifications qu'on peut couper globalement ou pour une seule conversation.

  5. 5. Enregistrer ses performances

    Après la séance, chacun consigne ses ascensions — voie ou bloc, cotation normalisée de 3 à 9c, montées, tops, réussite au premier essai, assureur — ou sa sortie randonnée ou vélo, avec distance, dénivelés et durée. Ces données restent privées.

  6. 6. Suivre sa progression

    La page statistiques présente trois onglets, un par activité : histogrammes empilés par cotation, répartition voie/bloc, radar mensuel par groupe de difficulté, distances et dénivelés par sortie. Le partage sur le profil public est désactivé par défaut.

  7. 7. Administrer sans tout ouvrir

    Les modérateurs valident les inscriptions, gèrent les lieux et les messages flash de leurs teams ; les administrateurs gardent la main sur les comptes, les rôles, les types de séance et la modération globale.

Stack technique

Backend

Python 3.11 FastAPI SQLAlchemy 2 Alembic Pydantic Settings APScheduler

Données

PostgreSQL 16 migrations Alembic + script de migration idempotent

PWA

manifest service worker Web Push API (VAPID) pywebpush mode standalone

Interface

Jinja2 Bootstrap Chart.js (chargé uniquement sur la page statistiques) WebSocket

Sécurité

code PIN haché bcrypt JWT signé validation humaine des inscriptions contrôle des droits côté serveur

Exploitation

Docker Compose image publiée sur Docker Hub uploads persistés hors conteneur

Résultats & Impact

L'application est en service sur app.estcalade.fr, avec sa vitrine publique sur www.estcalade.fr. Elle est gratuite et ouverte aux groupes, équipes et clubs.
3
activités : escalade, randonnée, vélo
PWA
installable, sans magasin d'applications
7
événements déclenchant une notification push
0 €
gratuit pour les groupes et les clubs

L'organisation ne se perd plus

Invitation, réponses, lieu, horaires et discussion vivent au même endroit, avec des rappels automatiques la veille et une heure avant.

Installée comme une application

Ajoutée à l'écran d'accueil, elle s'ouvre en plein écran et reçoit les notifications même navigateur fermé.

Chaque sport a ses données

Cotations et score d'assurage pour l'escalade, distance, dénivelé et vitesse pour la randonnée et le vélo — avec des statistiques dédiées par onglet.

Déploiement reproductible

Docker Compose, image publiée, script de migration idempotent : une mise à jour se résume à tirer l'image et appliquer les migrations.

Galerie

Retour au portfolio