Besoin
Développer un site présentant les logements d'un hotel et permettre aux clients d'effectuer des réservations en ligne. L'administrateur du site souhaite pouvoir gérer la liste des logements ainsi que les types (chambre, appartement, studio) et les catégories (standard, supérieur) de logement disponibles. Il souhaite également que les clients puissent effectuer des réservations en ligne (pour le moment, sans système de paiement).

Conception
Analyse technique, reflexion UML et création de la base de données SQL. Développement du projet sous Symfony avec Twig pour les templates et de Webpack-encore pour la gestion des assets et du SCSS. Utilisation du bundle EasyAdmin pour mettre en place rapidement une interface d'administration pour la gestion des contenus par l'administrateur.
Couleurs
#e6ba0f
#000000
#7f7f7f
preview
Création de fixtures
Afin de gagner du temps sur l'intégration du projet et optimiser les tests de l'application, mise en place de données de test avec le bundle doctrine-fixtures-bundle. Utilisation en parallèle de la librairie Fakers pour générer une dizaine d'utilisateurs et de réservations fictives.
Affichage des chambres
Affichage dynamique de l'ensemble des logements sur la page d'accueil avec visualisation des détails lors du clic sur un logement. Pour l'affichage des différents logements, une requête personnalisée (plus précise que findAll())a été mise en place pour optimiser et réduire le nombre de requête depuis le serveur.
Formulaire de recherche
Ajout d'un bandeau de recherche de logement selon des critères de prix sur la page d'accueil avec affichage dynamique de la liste des types de logements.
Utilisation d'un formulaire Symfony (buildform) pour sécuriser plus facilement (validation des données et éviter les injections SQL) et ajout de contrainte dans les entités pour éviter les requêtes inutiles.
Détails d'un logement
Lors de la sélection d'un logement, le client peut voir les détails de celui-ci et avoir accès à un formulaire de réservation (accès restreint et obligation d'être connecté pour pouvoir faire une réservation).
Administration avec EasyAdmin
Utilisation du bundle EasyAdmin pour mettre en place rapidement l'interface d'administration pour la gestion des contenus par l'administrateur. Mise en place d'un système de connexion sécurisé avec gestion de rôle par l'administrateur et d'une partie sécurisé pour l'utilisateur (notamment pour pouvoir effectuer une réservation). Pour éviter les problèmes de sécurité et avoir une protection contre les attaques CSRF, la gestion des tokens est géré par Symfony.
Résumé de la réservation
Si la réservation de l'utilisateur a réussie, affichage d'une nouvelle page par redirection résumant les détails de celle-ci.