Date : 17/12/2025
Version : 1.0
Projet : Application de gestion d'hôtels et de congressistes
L'application Gestion Congrès est une solution web permettant de gérer l'hébergement des participants à un congrès. Elle offre des fonctionnalités pour l'administration des hôtels (création, modification, suppression) et l'affectation des chambres aux congressistes, en respectant des règles de gestion strictes (disponibilité, facturation).
- Langage Backend : PHP 8.x
- Base de Données : MySQL
- Architecture : MVC (Modèle-Vue-Contrôleur) "maison"
- Interface Serveur : Apache (via WAMP/XAMPP)
- Frontend : HTML5, CSS3, JavaScript (Vanilla)
- Accès Données : PDO avec requêtes préparées
Le projet suit une structure MVC claire :
classe/: Classes objets (DTO), ex:Hotel.php.config/: Configuration de la base de données (Database.php).controller/: Logique de traitement (HotelController,AuthController,mainController).modele/: Accès aux données (DAO), ex:md.hotel.php.vue/: Vues HTML (Templates et pages).index.php: Point d'entrée unique (Front Controller).
Le fichier index.php délègue la requête au mainController.php, qui agit comme un routeur ("Dispatcher"). Il sélectionne le contrôleur spécifique (HotelController, AuthController, HomeController) en fonction du paramètre GET action.
Exemples de routes :
Index.php?action=hotels: Liste des hôtels ->HotelController.Index.php?action=login: Connexion ->AuthController.
L'application repose sur une base MySQL relationnelle nommée congres.
-
hotelid_hotel(PK): Identifiant unique.nom_hotel,adresse_hotel: Informations générales.prix,prix_supplement_petit_dejeuner: Tarification.etoile: Catégorie (Stars).chambre_disponible: Stock de chambres.
-
congressisteid_congressiste(PK): Identifiant unique.nom,prenom,email: Identité.password: Hashé pour l'authentification.id_hotel(FK): Clé étrangère vershotel(peut être NULL).acompte: Booléen indiquant si l'acompte est versé.
-
facture( Table de contrainte )- Utilisée pour bloquer la ré-attribution si une facture est émise pour un congressiste.
- Relation
1,1entre Congressiste et Hôtel (un seul hôtel par congressiste). - La suppression d'un hôtel entraîne la désattribution automatique des congressistes associés (mise à NULL de
id_hotel).
- Lister : Visualisation des hôtels avec filtres sur le nombre d'étoiles et les chambres disponibles.
- Ajouter : Formulaire de création d'hôtel.
- Modifier : Édition des informations.
- Supprimer : Suppression sécurisée avec gestion des dépendances (désattribution).
- Attribuer : Affecte un congressiste à un hôtel.
- Contrainte : Vérifie la disponibilité (
chambre_disponible > 0). - Action : Décrémente le stock de chambres.
- Contrainte : Vérifie la disponibilité (
- Désattribuer : Libère la chambre.
- Action : Incrémente le stock de chambres.
- Contrainte : Impossible si une facture existe.
- Transactions SQL : Utilisées pour garantir la cohérence des données lors des attributions/désattributions (ex:
beginTransaction,commit,rollBack). - Injections SQL : Protection via l'utilisation systématique de
bindValuedans PDO. - Authentification : Hashage des mots de passe.
- Cloner le projet dans le dossier web (
wwwouhtdocs). - Importer le script SQL de la base de données.
- Configurer l'accès BDD dans
config/Database.php:private $host = "localhost"; private $database_name = "congres"; private $username = "root"; private $password = "";
- Accéder via
http://localhost/congres/.