Aller au contenu principal

Projet 0 – Premier projet Laravel (essentiel)

Niveau 3 / 4 – Premier projet Laravel


Objectif

Réaliser une petite application Laravel pour mettre en pratique les concepts essentiels vus en Laravel fondamental : routes, contrôleurs, Blade, Eloquent, formulaire et validation. Ce projet est volontairement simple pour ancrer les bases avant d’attaquer des projets plus lourds.

Prérequis : avoir suivi les modules 10 à 13 (Introduction Laravel, Routes & Contrôleurs, Blade, Eloquent). L’authentification (module 14) peut être vue avant ou intégrée en cours de projet.


Sujet proposé : « Mes tâches » (Task list)

Une application où un utilisateur peut lister, créer, modifier et supprimer des tâches. Chaque tâche a un titre, une description optionnelle et un statut (à faire / en cours / terminé).

Fonctionnalités attendues

FonctionnalitéDétail
ListePage d’accueil listant toutes les tâches (tableau ou cartes).
CréationFormulaire (titre, description, statut) ; validation ; redirection vers la liste après création.
ModificationLien « Modifier » vers un formulaire pré-rempli ; validation ; sauvegarde.
SuppressionBouton ou lien « Supprimer » avec confirmation (JavaScript ou page dédiée).
LayoutUn layout Blade (header, contenu, footer) ; les vues étendent ce layout.

Technique (obligatoire)

  • Une ressource : modèle Task avec migration (title, description nullable, status).
  • Routes nommées : tasks.index, tasks.create, tasks.store, tasks.edit, tasks.update, tasks.destroy.
  • Contrôleur ressource : TaskController avec les méthodes index, create, store, edit, update, destroy.
  • Validation : $request->validate() dans le contrôleur (titre requis, longueur max, statut dans une liste autorisée).
  • Blade : @extends, @section, @yield ; formulaire avec @csrf ; affichage des erreurs avec @error et old().
  • Pas d’authentification exigée pour ce premier projet (les tâches peuvent être globales). Si vous avez vu le module 14, vous pouvez ajouter « mes tâches par utilisateur » avec user_id et middleware auth.

Étapes suggérées

  1. Créer le projet : laravel new task-list (ou projet existant).
  2. Migration : php artisan make:model Task -m ; remplir la migration (title, description, status), puis migrate.
  3. Routes : dans routes/web.php, déclarer la ressource : Route::resource('tasks', TaskController::class).
  4. Contrôleur : php artisan make:controller TaskController --resource ; implémenter chaque méthode (index, create, store, edit, update, destroy) avec validation et redirections.
  5. Vues : créer un layout (ex. resources/views/layouts/app.blade.php) et les vues tasks/index, tasks/create, tasks/edit (formulaire partagé ou dupliqué).
  6. Tester à la main : créer une tâche, modifier, supprimer, vérifier les messages de validation (champ vide, etc.).

Critères de validation (projet 0)

CritèreExigence
Modèle & BDDModèle Task, migration avec au moins title, status (et optionnellement description)
CRUDListe, création, modification, suppression fonctionnelles
RoutesRoutes ressource, nommées, utilisées dans les liens (e.g. route('tasks.edit', $task))
ValidationValidation des champs (titre requis, etc.) ; erreurs affichées dans le formulaire
BladeLayout commun, formulaires avec @csrf, pas de SQL ni logique lourde dans les vues
Sécurité basiqueDonnées échappées avec {{ }}, pas de {!! !!} sur des données utilisateur

Optionnel : authentification (Breeze) + user_id sur les tâches pour que chaque utilisateur ne voie que ses tâches.


Suite

Une fois ce projet réalisé et validé, vous pouvez enchaîner sur le Projet intermédiaire (Laravel plus costaud) puis le Projet 1 – Application Laravel complète et le Projet 2 – Projet libre encadré.