Skip to content

daminux/Recrutement

 
 

Repository files navigation

Fonctionnement du projet de recrutement :

Consignes :

  1. L'utilisation de make est interdite !
  2. Réaliser les exercices dans le sens que l'on veut mais, le projet doit pouvoir se lancer.
  3. Temps pour la réalisation des exercices : 1h!
  4. Bien lire tout l'énoncé d'un exercice avant de commencer à coder.
  5. Toutes les consignes ne sont pas testées, faites attention nous regarderons vos codes ensuite.
  6. L'objectif final est de posséder un site 100% fonctionnel.
  7. Un commit initial est demandé puis, un commit à la fin de chaque exercice et enfin, un commit final.

Exercice 1 :

  1. Faire un Fork du projet
  2. Puis, un git clone
  3. Puis, changer le remote url . Le push directement sur la branche distante peut être éliminatoire. Car semblable à une mise en down d'un site.
  4. Lancer composer install.
  5. Faire un yarn install
  6. Puis yarn encore dev
  7. Faire un symfony server:start ou un php -S 127.0.0.1:8000 -t public
  8. Lancer /bin/phpunit tests/Exercice1 pour voir si l'exercice est réussi

Exercice 2 :

  1. Créer l'entité Product (Commande make autorisée pour cet exercice seulement)
  2. Ajouter les propriétés suivantes :
    1. "name", type : string, length : 255, non nullable
    2. "priceHt", type : float, non nullable
    3. "creationDate", type : datetime, non nullable
    4. "dateUpdate", type : datetime, nullable
  3. Mettre a jour le .env avec vos connections mysql sans en créer d'autre
  4. Lancer ./bin/phpunit tests/Exercice2 pour voir si l'exercice est réussi

Exercice 3 :

  1. Créer le ProductController (Commande make interdite)
  2. Créer la méthode index avec l'url correspondante : /product
  3. Cette méthode doit comporter une requête visant à récupérer tous les produits
  4. Faire en sorte que la méthode aille vers le template déjà créé dans templates/product/index.html.twig
  5. Envoyer dans le template le résultat de la requête en nommant votre variable envoyée vers le front par : products
  6. Rajouter le lien vers la page produit dans le header
  7. Lancer ./bin/phpunit tests/Exercice3 pour voir si l'exercice est réussi

Exercice 4 :

  1. Créer la méthode new dans le ProductController
  2. L'url de cette méthode doit être /product/new
  3. Faire le rendu sur le template situé dans /templates/product/new.html.twig
    1. Créer le FormType ProductType qui permettra d'ajouter un nouveau produit (sans le maker)
    2. Faire attention à bien prendre en compte les propriétés de l'entité Product pour construire le formulaire
    3. Ne pas ajouter les champs dateCreation et dateUpdate
    4. Les champs doivent avoir un label et un placeholder obligatoirement
    5. Le champs creationDate doit être rempli par le serveur lors de la soumission du formulaire et non par l'utilisateur
    6. Le champs dateUpdate ne doit pas être rempli
    7. Le bouton de soumission doit avoir inscrit comme label : "Ajouter"
  4. A la soumission du formulaire, il faut que l'entité soit bien enregistrée en base de donnée
  5. A la soumission du formulaire, il faut rediriger l'utilisateur vers la route dont l'url est /product
  6. Le formulaire doit être construit dans le fichier existant : /templates/product/include/_form.html.twig
  7. Lancer ./bin/phpunit tests/Exercice4 pour voir si l'exercice est réussi

Exercice 5 :

  1. Créer la méthode edit dans le ProductController
  2. L'url de cette méthode doit être /product/edit/{id}
  3. Faire le rendu sur le template /templates/product/edit.html.twig
  4. Utiliser le ProductType dans cette méthode
  5. Les informations du produit doivent bien être visible dans les champs correspondants
  6. Le champs creationDate ne doit pas être modifié
  7. Le champs dateUpdate doit être rempli par le serveur lors de la soumission du formulaire
  8. A la soumission du formulaire, il faut que l'entité soit bien modifiée
  9. A la soumission du formulaire, il faut rediriger l'utilisateur vers la route dont l'url est /product
  10. Mettre à jour le template templates/product/index.html.twig pour que le lien éditer fonctionne
  11. Lancer ./bin/phpunit tests/Exercice5 pour voir si l'exercice est réussi. Moins de choses sont testées sur cette partie. Vous devez vous faire confiance

Exercice 6 :

  1. Créer la méthode delete dans le ProductController
  2. L'url de cette méthode doit être /product/delete/{id}
  3. Il faut qu'en cliquant, l'entité soit supprimée en base de donnée
  4. L'utilisateur doit revenir sur la page /product et l'entrée en base de donnée doit être supprimée
  5. Mettre à jour le template templates/product/index.html.twig pour que le lien supprimer fonctionne
  6. Aucun test n'existe pour cette partie, à vous de vous faire confiance

Exercice 7 :

  1. Remplacer la requête de récupération de tous les produits situés dans l'index du ProductController par un queryBuilder qui permet la récupération de tous les produits sans dateUpdate.
  2. La requête doit etre placée au bon endroit et remplacer l'ancienne.
  3. Elle doit abolument être faites en DQL (Query Builder)
  4. Aucun test ne permet de vérifier le résultat, faites vous confiance

Algorithmes :

  1. Aller dans le lien algorithme et suivez les consignes
  2. Résoudre les algorithmes demandés

About

Projet pour test de recrutement

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • PHP 63.2%
  • Twig 24.4%
  • JavaScript 6.4%
  • Shell 3.1%
  • SCSS 2.9%