Skip to content

Final Exam - Created at Le Wagon Coding Bootcamp - A simple Airbnb-like prototype.

Notifications You must be signed in to change notification settings

dimitridepardieu/my-very-cheap-room

Repository files navigation

Rails Book Rooms

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

Setup

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.1.2 is not installed, exécutez la commande suivante pour installez la version de ruby correspondante :

rbenv install 3.1.2 && gem install bundler rubocop pry pry-byebug

Vous pourrez alors réexécuter les commandes habituelles vous permettant de lancer l'application.

Base de données

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.

Interface utilisateur

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.

Spécifications

  • 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.

Ressources

Pour avoir une interface soignée, nous vous conseillons d'utiliser :

About

Final Exam - Created at Le Wagon Coding Bootcamp - A simple Airbnb-like prototype.

Topics

Resources

Stars

Watchers

Forks