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 |
|---|---|
| Liste | Page d’accueil listant toutes les tâches (tableau ou cartes). |
| Création | Formulaire (titre, description, statut) ; validation ; redirection vers la liste après création. |
| Modification | Lien « Modifier » vers un formulaire pré-rempli ; validation ; sauvegarde. |
| Suppression | Bouton ou lien « Supprimer » avec confirmation (JavaScript ou page dédiée). |
| Layout | Un layout Blade (header, contenu, footer) ; les vues étendent ce layout. |
Technique (obligatoire)
- Une ressource : modèle
Taskavec migration (title,descriptionnullable,status). - Routes nommées :
tasks.index,tasks.create,tasks.store,tasks.edit,tasks.update,tasks.destroy. - Contrôleur ressource :
TaskControlleravec 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@erroretold(). - 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_idet middlewareauth.
Étapes suggérées
- Créer le projet :
laravel new task-list(ou projet existant). - Migration :
php artisan make:model Task -m; remplir la migration (title,description,status), puismigrate. - Routes : dans
routes/web.php, déclarer la ressource :Route::resource('tasks', TaskController::class). - Contrôleur :
php artisan make:controller TaskController --resource; implémenter chaque méthode (index, create, store, edit, update, destroy) avec validation et redirections. - Vues : créer un layout (ex.
resources/views/layouts/app.blade.php) et les vuestasks/index,tasks/create,tasks/edit(formulaire partagé ou dupliqué). - 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ère | Exigence |
|---|---|
| Modèle & BDD | Modèle Task, migration avec au moins title, status (et optionnellement description) |
| CRUD | Liste, création, modification, suppression fonctionnelles |
| Routes | Routes ressource, nommées, utilisées dans les liens (e.g. route('tasks.edit', $task)) |
| Validation | Validation des champs (titre requis, etc.) ; erreurs affichées dans le formulaire |
| Blade | Layout commun, formulaires avec @csrf, pas de SQL ni logique lourde dans les vues |
| Sécurité basique | Donné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é.