Projet 4 – Application Inertia (React ou Vue)
Projets – Niveau 5.2 Inertia
Objectif
Réaliser une application web complète avec Laravel + Inertia et React ou Vue : authentification, au moins une ressource en CRUD (liste, création, édition, suppression), formulaires validés, données partagées (user, flash), et navigation sans rechargement. Ce projet valide la maîtrise du Niveau 5.2 – Laravel Inertia.
Contraintes minimales
- Stack : Laravel (version récente) + Inertia.js + React ou Vue (au choix, rester cohérent).
- Authentification : login (et optionnellement register) ; routes protégées par middleware
auth; utilisateur exposé en shared data. - CRUD : au moins une ressource (ex. articles, tâches, produits) avec liste (pagination), création, édition, suppression. Formulaires avec useForm et affichage des erreurs de validation.
- Layouts : au moins un layout commun (navbar avec liens, user, flash messages).
- Shared data :
auth.useretflashutilisés dans l’UI (menu, toasts ou bandeaux). - Qualité : structure claire (Pages/, Layouts/), validation Laravel, pas de logique métier dupliquée côté client.
- Tests : au moins 1 test Laravel avec assertInertia sur une page (liste ou dashboard).
Idées de sujets
- Dashboard + CRUD : tableau de bord avec stats + une ressource (utilisateurs, articles, projets) en liste/création/édition/suppression.
- Gestion de tâches : listes (colonnes), création/édition de tâches, filtres, auth.
- Catalogue : produits avec recherche, pagination, formulaire produit (avec upload image si souhaité).
- Blog : articles, catégories, commentaires (auth auteur/admin), listes et formulaires Inertia.
Livrable
- Dépôt Git avec README (installation,
composer install,npm install,migrate,seedsi besoin). - L’application doit pouvoir être lancée en local. Optionnel : déploiement, tests E2E (Playwright/Cypress), TypeScript pour les props.
À retenir
Le Projet 4 consolide le Niveau 5.2 : routing Laravel, pages React ou Vue, formulaires, auth, shared data et structure propre. Il peut servir de base pour un projet réel ou pour explorer Laravel Jetstream (Inertia + React/Vue) ensuite.