Dans cet exercice, vous devez implémenter des fonctionnalités dans une application web rails
à partir du cahier des charges spécifié ci-dessous et correspondant à votre sujet :
Vous devez créer une plateforme pour réserver des chambres d'hôtel à prix réduit
Clonez le dépôt GitHub et exécutez les commandes habituelles vous permettant de lancer l'application sur votre ordinateur.
Si vous voyez s'afficher le message rbenv: version 3.0.3 is not installed
, exécutez la commande suivante pour installez la version de ruby
correspondante :
rbenv install 3.0.3 && gem install bundler rubocop pry pry-byebug
Vous pourrez alors réexécuter les commandes habituelles vous permettant de lancer l'application.
Effectuez les modifications du code nécessaires à l'obtention du schema de données suivant :
Une chambre n'est pas valide :
- Si elle n'a pas de capacité (de nombre de lits) indiquée.
- Si la capacité de sa chambre n'est pas un entier et si elle n'est pas supérieure à zéro.
- Si elle n'a pas de prix journalier.
- Si son prix journalier est inférieur ou égal à zéro.
Un hôtel n'est pas valide :
- S'il n'a pas de nom.
- S'il n'a pas d'adresse.
Une réservation n'est pas valide :
- Si elle n'a pas de date de début.
- Si elle n'a pas de date de fin.
La suppression d'un hôtel doit entraîner la suppression de ses chambres et de ses réservations. La suppression d'une chambre doit entraîner la suppression de ses réservations.
NB : La gem devise
a déjà été ajoutée et la table users
a déjà été créée.
NB : Il n'est pas demandé d'implémenter de système de geocoding pour l'adresse de l'hôtel.
Effectuez les modifications du code nécessaires à l'implémentation des parcours utilisateurs suivants :
- En tant qu'utilisateur, je peux accéder à la page d'accueil.
- En tant qu'utilisateur, je peux voir la liste de toutes les chambres.
- En tant qu'utilisateur, je peux accéder aux détails d'une chambre.
- En tant qu'utilisateur, je peux réserver une chambre.
- Respectez les conventions de
rails
. - La page d'accueil doit contenir un lien permettant d'accéder à la liste des chambres.
- La page listant les chambres doit contenir les liens permettant d'accéder aux détails de chaque chambre.
- La page affichant les détails d'une chambre doit contenir un lien permettant de retourner sur la page listant toutes les chambres.
- La page affichant les détails d'une chambre doit contenir le formulaire permettant de faire une réservation.
- Le formulaire de réservation doit utiliser un sélecteur de date Flatpickr pour faciliter la saisie des dates, de type range, le plus adapté a la saisie d'une période.
- Lors de la soumission du formulaire de réservation, l'utilisateur doit être redirigé vers la page de détails de la chambre et une notification flash doit s'afficher pour confirmer la réservation.
Pour avoir une interface soignée, nous vous conseillons d'utiliser :
- Bootstrap (déjà installé)
- L'UI Kit du Wagon