
Objectifs du Projet
J’ai eu pour projet de développer en PHP HTML CSS un site de réservation de chambres pour l’Hôtel Fictif Neptune sur Arras avec une base de données MySQL.
Ce projet a été réalisé en équipe de 5 personnes, nous avons du mettre en place une organisation pour parvenir à développer une solution fonctionnelle pour aider l’Hôtel Neptune à faciliter son système de réservation, et le suivi de ses clients, en l’informatisant.
En effet cet hôtel souhaitait informatiser la réservation de ses chambres, et voulait également être contacté par ses clients depuis un formulaire de contact.
Pour réaliser ce projet, différentes tâches principales ont été nécessaires :
- Effectuer une analyse préliminaire de cahier des charges, des besoins et des contraintes.
- Réaliser une maquette du site à l’aide de Figma
- Concevoir un MCD, et une base de données MySQL avec PhPMyAdmin.
- Créer un système d’authentification sécurisé, et hasher les données récupérées, dans la base de données.
- Mettre en place une partie dashboard pour les administrateurs sur le site afin qu’ils puissent gérer les chambres et les réservations facilement à travers un calendrier de réservations, modifiant ainsi l’aspect du site.
- Programmer un système d’envoi de mail automatique pour les clients après leur réservation de chambre pour leur envoyer une facture au format PDF.
Conception MCD | MLD avec Looping

Avant la création d’une base de données MySQL via PhPMyAdmin, j’ai dans un premier temps créer un MCD : Modèle Conceptuel de Données avec la logiciel Looping .
Ce logiciel permet de mettre en place simplement et de manière schématiser en « Drag and Drop » un modèle conceptuel de données mais aussi un MLD : Modèle logique de données.
- MCD : Il sert à organiser, à structurer et à visualiser ces données de manière logique et facilement compréhensible.
- MLD : Il sert à décrire les objets sur lesquels une entreprise souhaite collecter des données et observer les relations entre ces éléments.
Ensuite, une fois que mon modèle de base données pour l’application Web d’un l’Hôtel est devenu satisfaisant, j’ai pu créer et configurer une base de données avec PhpMyAdmin.
Enfin, j’ai vérifié les habilitations des utilisateurs dans l’accès à cette base dans le cadre du développement d’un site de réservation en ligne de chambre pour un hôtel en limitant les accès à un utilisateur avec un système d’authentification fort.
Développement de la présence en ligne : Maquette Figma & HTML | CSS

J’ai pu participer à la valorisation de l’image de l’Hotel Neptune grâce aux maquettes du site réalisées sur avec la solution de design en ligne Figma.
Figma propose des fonctionnalités avancées en terme de maquettes de sites Web; d’applications Mobiles…
Il est même capable de générer le code HTML et CSS, mais celui-ci n’est pas toujours adapté pour les projets.
Dans ce projet, nous avons décidé de l’utiliser uniquement pour avoir un aspect visuel de ce à quoi devra ressembler le site de réservation de chambres d’un Hôtel.
Par la suite, je me suis occupé de la réalisation du code HTML dans les templates de notre projet, puisque celui-ci est structuré en Model View Controler.
Et également du code CSS contenu dans les fichiers .css stockés dans un répertoire static de notre projet.
Création et Planification des tâches d'un Projet de groupe

J’ai analysé les fonctionnalités attendues par la cahier des charges en les traduisant en différentes tâches dans un Trello des étapes techniques à effectué pour obtenir la fonctionnalité souhaitée.
Notre objectif est d’assurer un fonctionnement correcte de l’application, c’est pourquoi son développement nécessite plusieurs phases et tâches concrètes à organiser dans un ordre chronologique.
Trello est accessible en ligne permet de mettre en place un tableau partagé, capable de générer et d’affecter des cartes, représentant nos tâches, pour chaque personne du Projet.
Chaque tâche pour être catégorisé en fonction de son status d’avancement : à faire | en cours | terminée.
Services Mails | Création de PDF automatisé

J’ai participé à la mise en place d’un service d’envoi de mail automatique et de construction de fichier PDF personnalisé par l’organisation.
En effet, une organisation comme un Hôtel, dois pouvoir envoyer des factures par mails à ses clients, lorsqu’ils réservent via le site Web.
Tout d’abord, nousavons développer le système de réservation de chambres d’un Hôtel en orienté Objets avec PHP et Twig.
Fonctionnalité Mail :
Une fois cette fonctionnalité opérationnel, nous avons mis en place le service d’envoi de mail automatique grâce à la Bibliothèque PHPMailer que j’ai ajouté au fichier de bibliothèque du projet Composer.json, qui nous permet de créer simplement la requête du mail, avec l’email source de l’hôtel, et l’email destinataire du Client stockée dans une variable.
Fonctionnalité création de PDF :
Pour ce qui est de générer une facture personnalisée, j’ai utilisé la Bibliothèque Dompdf que j’ai également ajouté au fichier Composer.json du Projet.
Avec cette Bibliothèque, il est possible de créer le contneu du fichier pdf à partir de code HTML.

Programmation Model View Controller

L’apprentissage personnelle de la structure Model-View-Controller (MVC) est un pilier fondamental pour l’organisation de mon développement professionnel dans le domaine de la programmation et des technologies web.
Le modèle MVC, qui sépare les données (Model), la logique de l’application (Controller) et l’interface utilisateur (View), me permet de structurer mes projets de manière claire et modulable. Cette structure m’offre plusieurs avantages :
-
Clarté et maintenabilité : MVC me pousse à organiser mon code en modules bien définis. Ainsi, chaque partie de l’application remplit une fonction spécifique, ce qui facilite la maintenance et les évolutions du projet. Par exemple, si je dois modifier l’interface utilisateur, je n’ai pas besoin de toucher aux données ou à la logique métier. Cette séparation m’aide à gagner du temps et réduit les risques d’erreurs, un atout essentiel pour des projets professionnels.
-
Travail en équipe facilité : Dans un contexte professionnel, les projets sont souvent collaboratifs. Grâce à MVC, les développeurs front-end peuvent travailler sur les vues, tandis que les back-end se concentrent sur les modèles et le contrôleur. Cela favorise le développement en équipe et améliore la productivité, deux qualités très recherchées dans le monde professionnel.
-
Préparation pour des frameworks modernes : De nombreux frameworks, comme Django, Laravel ou même Flask (pour des projets plus légers), adoptent MVC ou des variantes de cette architecture. En maîtrisant MVC, je me prépare à travailler efficacement avec ces outils, ce qui augmente mes compétences et mon employabilité.
-
Adaptabilité aux besoins des clients : Enfin, en maîtrisant MVC, je peux m’adapter facilement aux besoins changeants des clients. La structure modulable de MVC permet d’ajouter de nouvelles fonctionnalités ou de modifier l’interface rapidement, ce qui me rend plus réactif et adaptable, des qualités essentielles dans le développement professionnel.