Refonte Alp'Ski Annecy
Modernisation du site web d'un club de ski
L'objectif
Refonte complète et modernisation du site web du club de ski Alp'Ski Annecy. L'ancien site reposait sur des fichiers .php statiques, sans logique métier, sans back-office et avec une expérience datée.
L'enjeu : transformer le site en une application web dynamique en PHP / Symfony, pensée pour faciliter la gestion du club côté bureau (admins) et simplifier l'expérience des adhérents (consultation des sorties, inscriptions, etc.). Site responsive et optimisé pour le référencement Google.
Les quatre modules clés
⛷️ 1. Gestion des sorties (Trips)
Cœur du site : un calendrier de sorties au ski totalement autonome grâce à une logique mathématique poussée sur les dates.
- Affichage dynamique : séparation automatique entre prochaines sorties et historique de la saison
- Calcul automatique des statuts : « À venir », « Bientôt ouvert », « S'inscrire », « Clôturé », « Terminée », recalculés en fonction de la date du jour
- Cas particuliers gérés : ouverture des inscriptions toujours fixe (Mercredi 00h00 → Jeudi 19h00), même pour une sortie un dimanche ou un week-end spécial (Lundi de Pâques → on recule d'une semaine)
🔐 2. Moteur d'inscription sécurisé
Formulaire blindé pour éviter les erreurs et faciliter le travail de la trésorière :
- Vérification d'adhésion via
AdherentRepository— impossible de s'inscrire sans être dans la base des adhérents à jour - Anti-doublons strict : blocage des inscriptions multiples en croisant Nom + Prénom + Email (permet de gérer familles et homonymes)
- Back-office EasyAdmin : le bureau voit les inscrits et valide individuellement ou en masse (statut
CONFIRME)
👥 3. Espace de convivialité — liste des participants
Fonctionnalité sociale pour renforcer l'esprit club :
- Accès protégé par un « videur » : vérification Nom + Prénom du visiteur avant accès
- Sessions / cookies : l'identification est mémorisée le temps de la navigation
- Fenêtre de tir : liste consultable uniquement pour la sortie de la semaine en cours (mercredi → soir de la sortie), seulement les inscriptions confirmées, sans info privée (email / tel)
🚀 4. Infrastructure, responsive & SEO
Mise en production pro sur les serveurs OVH :
- Redirections 301 (
.htaccess) : passage transparent de l'ancien site.phpvers Symfony, zéro perte de référencement - Responsive design : Twig + Bootstrap 5 finement réglés pour desktop, tablette et mobile (grilles
col-lg, tableaux avec scroll horizontal) - SEO / Google Search Console : implémentation d'une URL canonique (
<link rel="canonical">) pour éviter les pages en double dues auxPHPSESSID - Identité visuelle : logo moderne et favicon intégrés
Stack technique
- Langages : PHP 8, HTML5, CSS3, SQL
- Framework : Symfony (architecture MVC)
- ORM : Doctrine (entités + repositories)
- Templating : Twig avec héritage via
base.html.twig - Frontend : Bootstrap 5, FontAwesome
- Back-office : EasyAdmin
- Hébergement : OVH (Web Cloud, gestion des zones DNS)
Bilan
Un projet très complet qui touche à la fois au backend (logique des dates, requêtes BDD), au frontend (responsive, ergonomie) et à l'ops / DevOps (mise en ligne, .htaccess, SEO).
Montée en compétence sur Symfony, Doctrine et la mise en production d'un site professionnel pour un client réel. J'ai aussi appris à dialoguer avec un commanditaire non-technique (le bureau du club) pour traduire ses besoins métier en fonctionnalités.
Le module de calcul des statuts de sortie a été le plus formateur : un cas concret où la logique métier dicte le code, et où il faut anticiper les exceptions (jours fériés, week-ends spéciaux) plutôt que les ignorer.