✈️ RoutyGo — Site de Voyage
Plateforme web de réservation de voyages développée en PHP/MySQL avec espace utilisateur
À propos du projet
RoutyGo est une plateforme web de voyage développée en PHP avec une base de données MySQL. Le site propose aux utilisateurs de découvrir des destinations, de consulter des hôtels et restaurants, et de gérer leur compte personnel. Le projet inclut un système d'authentification complet avec inscription, connexion et déconnexion sécurisées.
Le site comprend également un bandeau de recherche de vols interactif avec un calendrier JavaScript permettant de sélectionner des plages de dates, ainsi qu'un formulaire de contact dont les messages sont enregistrés en base de données.
Fonctionnalités principales
Authentification complète
Inscription, connexion et déconnexion sécurisées via sessions PHP. Affichage conditionnel des boutons selon l'état de connexion.
Espace utilisateur
Page "Mon Espace" accessible uniquement aux utilisateurs connectés. Affichage du profil (nom, email) récupéré depuis la base de données.
Recherche de vols
Bandeau de recherche avec sélection d'aéroport de départ/arrivée, calendrier interactif pour choisir les dates et sélection du nombre de passagers.
Calendrier JavaScript
Calendrier custom en JS pur permettant de sélectionner une plage de dates (aller-retour) avec navigation mensuelle et mise en surbrillance de la sélection.
Pages destinations
Section "Recherches Tendances" avec destinations populaires illustrées (Cappadoce, Chiang Mai, Okinawa…) liées à leur page Wikipédia.
Formulaire de contact
Formulaire de contact avec validation côté serveur. Les messages (nom, email, contenu) sont insérés en base de données avec horodatage.
Réseaux sociaux
Présence sur Facebook, Instagram et LinkedIn avec icônes liées aux vrais profils RoutyGo.
Navigation fluide
Bouton "Retour en haut" avec animation smooth scroll, header fixe avec ombre portée.
Architecture technique
Base de données MySQL
Tables utilisateurs (id, username, email, password) et message (id, name, email, message, date_sent). Connexion via PDO avec gestion des erreurs.
Authentification par session
Démarrage de session avec session_start() sur chaque page. Vérification de $_SESSION['username'] pour protéger l'espace utilisateur et adapter le header.
Formulaire de contact avec BDD
Réception des données POST, validation basique (champs vides), insertion préparée avec PDO::prepare() et execute() pour éviter les injections SQL.
Calendrier JavaScript custom
Calendrier entièrement écrit en JS vanilla : génération dynamique des jours du mois, navigation entre mois, sélection de plage de dates avec mise en surbrillance, fermeture au clic extérieur.
Structure multi-pages
Organisation en dossiers séparés par section : Accueil/, Connexion/, Formulaire/, Destinations/, Hotels/… avec fichiers CSS dédiés par page.
Compétences acquises
- Développement web PHP avec gestion des formulaires POST et sessions
- Connexion et requêtes sécurisées MySQL via PDO
- Authentification complète : inscription, connexion, déconnexion, protection de pages
- JavaScript vanilla : calendrier interactif, événements DOM, logique de sélection de dates
- Organisation d'un projet multi-pages avec CSS modulaire
- Intégration de réseaux sociaux et gestion du footer