À 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

01

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.

02

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.

03

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.

04

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.

05

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