Aller au contenu principal

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

  1. Stack : Laravel (version récente) + Inertia.js + React ou Vue (au choix, rester cohérent).
  2. Authentification : login (et optionnellement register) ; routes protégées par middleware auth ; utilisateur exposé en shared data.
  3. 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.
  4. Layouts : au moins un layout commun (navbar avec liens, user, flash messages).
  5. Shared data : auth.user et flash utilisés dans l’UI (menu, toasts ou bandeaux).
  6. Qualité : structure claire (Pages/, Layouts/), validation Laravel, pas de logique métier dupliquée côté client.
  7. 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, seed si 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.