Logo

Office de la Formation Professionnelle et de la Promotion du Travail

Direction Régionale Nord Ouest II

Solicode Examen de Fin de Module Date EFM : 12/02/2025
Filière : DMB Base de données Durée : 1 h 30 min
Groupe : 101 Variante 1 Année de formation : 2024/2025

Contexte Général

Tu travailles sur une application Laravel permettant de gérer des articles de blog avec leurs relations :

L’application doit afficher les articles, mettre à jour certaines de leurs données et permettre l’édition et la suppression des articles.

L’examen est divisé en deux parties :

  1. Partie 1 : Live Coding (30 minutes, 20 points)
    • Affichage des articles et de leurs relations.
    • Incrémentation du nombre de vues de l’article et de ses commentaires via un Service.
    • Ajout automatique de la catégorie Populaire pour les articles ayant plus de 10 vues.
  2. Partie 2 : Mini-Projet (45 minutes, 20 points)
    • Ajout d’un formulaire permettant de modifier les catégories associées à un article.
    • Ajout des boutons “Modifier” et “Supprimer” pour chaque article.
    • Amélioration du design de la page avec du CSS.

Partie 1 : Live Coding (30 min - 20 points)

Barème & Questions (20 points)

Création de la classe ArticleService (6 points)

Implémentation du ArticleController (6 points)

Création de la Vue index.blade.php (6 points)

Définition de la Route et Test (2 points)

Partie 2 : Mini-Projet (45 min - 20 points)

Barème & Questions (20 points)

Modification des catégories d’un article (Many-to-Many) (8 points)

Question 10 : Ajouter une méthode updateArticleCategories(Article $article, array $categoryIds) dans ArticleService pour modifier les catégories associées à un article. (3 points)
Question 11 : Créer une méthode edit($id) dans ArticleController qui retourne un formulaire d’édition avec la liste des catégories disponibles et celles déjà attachées à l’article. (2 points)
Question 12 : Implémenter une méthode update(Request $request, $id) dans ArticleController qui met à jour les catégories d’un article en utilisant ArticleService. (2 points)
Question 13 : Implémenter une méthode show($id) dans ArticleController. (1 points)

Ajout des boutons “Modifier” et “Supprimer” (6 points)

Question 14 : Ajouter dans index.blade.php une colonne avec un bouton “Modifier” redirigeant vers la page d’édition de l’article. (2 points)
Question 15 : Ajouter un bouton “Supprimer” avec un formulaire DELETE pour supprimer un article. (2 points)
Question 16 : Implémenter la méthode destroy($id) dans ArticleController pour gérer la suppression d’un article. (2 points)

Amélioration de l’affichage avec du CSS (6 points)

Question 17 : Modifier index.blade.php pour afficher les articles sous forme de tableau stylisé en ajoutant un fichier CSS. (2 points)
Question 18 : Améliorer le formulaire d’édition pour qu’il soit plus clair et agréable visuellement. (2 points)
Question 19 : Vérifier que les boutons sont bien alignés et que l’affichage est responsive. (2 points)

Remarque

Bonne chance ! 🚀