Projet final — SunuLearn complet
Checklist, optimisation et déploiement
Concepts Théoriques
Vous avez construit une application Laravel complète de A à Z. Ce dernier chapitre récapitule ce que vous avez créé, vérifie que tout fonctionne, et ouvre les portes vers la suite.
Ce que SunuLearn fait
- Site public : accueil avec formations featured, catalogue paginé avec filtres, fiche formation avec chapitres
- Authentification : inscription, connexion, déconnexion, mot de passe oublié
- Espace étudiant : dashboard avec formations inscrites et progression
- Espace enseignant : créer, modifier, supprimer des formations avec upload d'image
- Autorisation : rôles (student, teacher, admin), policies, middleware
- API REST : endpoints JSON avec Sanctum pour l'authentification
- Mails : bienvenue + confirmation d'inscription
- Tests : suite Pest avec tests de pages, formulaires et API
Commandes Artisan essentielles
# Développement quotidien
php artisan serve # Lancer le serveur
php artisan tinker # Console interactive
php artisan route:list # Voir toutes les routes
php artisan migrate # Exécuter les migrations
php artisan migrate:fresh --seed # Recréer toute la base + données test
php artisan test # Lancer les tests
# Créer des fichiers
php artisan make:model Nom -mfs # Model + Migration + Factory + Seeder
php artisan make:controller NomController --resource
php artisan make:request NomRequest
php artisan make:resource NomResource
php artisan make:policy NomPolicy --model=Nom
php artisan make:mail NomMail
php artisan make:notification NomNotification
php artisan make:middleware NomMiddleware
php artisan make:test NomTest
# Production
php artisan config:cache # Mettre en cache la configuration
php artisan route:cache # Mettre en cache les routes
php artisan view:cache # Mettre en cache les vues
php artisan optimize # Tout optimiser d'un coupArchitecture du projet final
sunulearn/
├── app/
│ ├── Http/
│ │ ├── Controllers/
│ │ │ ├── HomeController.php
│ │ │ ├── FormationController.php
│ │ │ ├── DashboardController.php
│ │ │ ├── EnrollmentController.php
│ │ │ ├── ContactController.php
│ │ │ └── Api/
│ │ │ ├── FormationController.php
│ │ │ └── AuthController.php
│ │ ├── Middleware/
│ │ │ └── EnsureUserIsTeacher.php
│ │ └── Requests/
│ │ └── StoreFormationRequest.php
│ ├── Mail/
│ │ └── WelcomeMail.php
│ ├── Models/
│ │ ├── User.php
│ │ ├── Category.php
│ │ ├── Formation.php
│ │ └── Chapter.php
│ ├── Notifications/
│ │ └── EnrollmentConfirmation.php
│ └── Policies/
│ └── FormationPolicy.php
├── database/
│ ├── migrations/ (6 fichiers)
│ ├── factories/ (4 fichiers)
│ └── seeders/
│ └── DatabaseSeeder.php
├── resources/views/
│ ├── components/layout.blade.php
│ ├── home.blade.php
│ ├── dashboard.blade.php
│ ├── formations/ (index, show, create, edit)
│ ├── contact.blade.php
│ └── emails/ (welcome, enrollment)
├── routes/
│ ├── web.php
│ └── api.php
└── tests/Feature/ (4+ fichiers de tests)La suite — après ce cours
Filament 3 — Un back-office admin complet en quelques commandes. Au lieu de créer manuellement les pages CRUD pour l'admin, Filament génère un dashboard professionnel avec des formulaires, des tableaux, des filtres, des graphiques. C'est l'outil qui propulse le back-office de JamonoLearn.
Livewire — Des composants interactifs sans écrire de JavaScript. Formulaires en temps réel, recherche live, notifications, modales — tout en PHP.
Queues et Jobs — Envoyer les mails en arrière-plan pour ne pas bloquer l'utilisateur. Traitement d'images, import CSV, tâches longues.
Déploiement — Mettre SunuLearn en ligne sur un serveur. Laravel Forge automatise le déploiement sur DigitalOcean, AWS, ou tout VPS. Laravel Cloud est la nouvelle option hébergée par l'équipe Laravel.
Cache — Redis ou Memcached pour accélérer les requêtes fréquentes (catalogue, formations featured).