Pilat'1 : site et application de l'association
Le site public d'une association de Pilates, son back-office et l'application mobile des coachs.
- Rôle
- Conception et développement, seul
- Période
- oct. 2026 – en cours · Association Pilat'1
- Stack
- PHP
- Symfony 8
- EasyAdmin 5
- Tailwind CSS
- PostgreSQL
- HelloAsso API
- PWA
- Web Push
- ClamAV
- FrankenPHP
- PHPUnit
Contexte
Une association de Pilates gérait ses inscriptions, ses chèques et ses listes de présence sur papier et dans des tableurs. Il lui fallait un site pour se présenter et recevoir les demandes d'essai, et un outil simple pour le bureau et les coachs.
Ce que j'ai construit
Pour le public
- Site vitrine avec les créneaux, les places restantes calculées (puis « Complet, liste d'attente »), la demande de cours d'essai et l'inscription.
- Paiement en ligne via HelloAsso, en une ou trois fois, rattaché directement à l'adhésion. Ou chèque, virement, espèces.
Pour le bureau
- Tableau de bord de la saison : inscrits et places, cotisations reçues et reste à percevoir, chèques à encaisser, justificatifs à fournir, demandes d'essai à traiter.
- D'une demande d'essai à l'inscription en un clic, rappels de solde par e-mail, attestations PDF pour le CSE ou la mutuelle, export CSV.
- Calendrier de la saison qui retire les jours fériés et les vacances scolaires (données ouvertes officielles).
Pour les coachs : une application installable (PWA)
- Émargement des séances depuis le téléphone, ajout d'une personne venue sans prévenir.
- Messages aux élèves, notifications push au choix, factures du coach.
- Une coach ne voit que ses créneaux et ses élèves.
Points techniques
- Trois rôles imbriqués (coach, bureau, admin) et des droits fins par action.
- Sécurité : jeton CSRF sur toutes les actions, fichiers déposés analysés par antivirus, signature stockée hors du site public, coordonnées bancaires jamais publiées.
- Sobriété des données : aucune donnée de santé collectée, seulement « justificatif reçu » ou non.
- Performance mesurée : j'ai écrit une commande d'audit qui parcourt toutes les pages du back-office avec chaque rôle et relève le nombre de requêtes SQL, la requête la plus répétée (pour repérer un N+1 quel que soit le volume de données), le poids et le temps de chargement estimé en 4G et en 5G.
- Déploiement automatisé : création de la base et des secrets au premier déploiement, migrations à chaque mise en production.