L'objectif de ce test est d'observer votre raisonnement et l'application des bonnes pratiques Laravel préconisées dans la documentation au travers d'un développement similaire à ce qui se fait chez Bynativ.
Vous réaliserez le test en partage d'écran avec un référent bynativ. Vous pourrez prendre le temps qui vous est nécessaire. Nous pensons qu’il peut être réalisé en 1h30 / 2h00, cette durée ne tient pas en compte de l’installation d’un environnement de développement PHP, MySQL, Laravel, Composer, Npm, …
Pour ce test, il vous faudra réaliser une partie d'un CRUD (Create, Read) pour une prise de rendez-vous, à partir de l'énoncé ci-dessous.
Pour l'intégration des éléments HTML/CSS nous vous recommandons d'utiliser un framework comme Bootstrap Le design des pages n'est pas évalué dans ce test, faîtes au plus simple.
Chez Bynativ nous utilisons actuellement la version 7 de Laravel sous PHP 7.4, pour démarrer un projet Laravel 7 :
composer create-project --prefer-dist laravel/laravel:^7.0 Bynativ
php artisan serve
Bon test !
Créer un formulaire de prise de rendez-vous avec les champs suivant :
- Nom (obligatoire).
- Téléphone (format Français).
- Email (obligatoire).
- Date et heure du rendez-vous (obligatoire, format Français).
- Message (facultatif).
- Traiter la réception du formulaire dans un contrôleur.
- Valider les données côté serveur.
- Persister les données.
- Une fois le formulaire de prise de rendez-vous soumis afficher un message de succès ou d'erreur.
- Si succès, afficher un lien pour prévisualiser la dernière demande de rendez-vous avec le message "Consulter votre demande de rendez-vous".
- Créer une route API publique pour récupérer la liste de tous les rendez-vous.
La route API est publique, il n'est pas nécessaire d'utiliser une authentification.
- Le format de date persisté doit être au format EN avec le timezone UTC.
- Un email de confirmation de rendez-vous doit être envoyé.
- Avoir une route dédiée afin de voir apparaitre les nouveaux rendez-vous sans rechargement de page grâce à un websocket Pusher : (https://laravel.com/docs/master/http-tests)
Effectuer une série de tests (https://laravel.com/docs/master/http-tests) pour vérifier que les routes suivantes soient fonctionnelles :
- Affichage du formulaire.
- Affichage du dernier rendez-vous.
- Traitement du formulaire.
- Route API.
Il est recommandé d'utiliser aux mieux le framework Laravel dans sa version 7, ci-après une liste de lien vers la documentation.
Route :
Templating et formulaire :
Contrôleur, injection et validation :
- https://laravel.com/docs/7.x/controllers#basic-controllers
- https://laravel.com/docs/7.x/controllers#dependency-injection-and-controllers
- https://laravel.com/docs/7.x/validation
API :
Modèle, propriété et migration :
- https://laravel.com/docs/7.x/eloquent#defining-models
- https://laravel.com/docs/7.x/eloquent-mutators#accessors-and-mutators
- https://laravel.com/docs/7.x/migrations#generating-migrations
Notification mail :
- https://laravel.com/docs/7.x/eloquent#observers
- https://laravel.com/docs/7.x/notifications
- https://laravel.com/docs/7.x/notifications#on-demand-notifications
Tests :