← Retour au portfolio
DEUXIÈME STAGE — BTS SIO SLAM

Refonte Alp'Ski Annecy

Modernisation du site web d'un club de ski

PHP 8 Symfony Doctrine Twig Bootstrap 5 EasyAdmin OVH

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 .php vers 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 aux PHPSESSID
  • Identité visuelle : logo moderne et favicon intégrés

Stack technique

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.

Captures d'écran

[ screenshots à venir ]
[ RETOUR AU PORTFOLIO ] [ ME CONTACTER ]