Mini plateforme LMS permettant à un administrateur de gérer des formations, chapitres, sous-chapitres, quiz et apprenants. Les apprenants consultent leurs contenus, passent des quiz et visualisent leurs notes.
- PHP >= 8.2
- Composer
- MySQL 8+ (ou MariaDB 10.4+)
- Node.js + npm (pour les assets Breeze si utilisés)
git clone <url-du-repo> mini-lms
cd mini-lms
composer installcp .env.example .env
php artisan key:generateÉditer .env :
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=mini_lms
DB_USERNAME=root
DB_PASSWORD=votre_mot_de_passeCREATE DATABASE mini_lms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;php artisan migrate
php artisan db:seedphp artisan serveL'application est disponible sur http://localhost:8000
| Rôle | Mot de passe | |
|---|---|---|
| Admin | admin@lms.fr | password |
| Apprenant | jean@lms.fr | password |
| Apprenant | marie@lms.fr | password |
app/
├── Http/
│ ├── Controllers/
│ │ ├── Admin/
│ │ │ ├── FormationController.php
│ │ │ ├── ChapitreController.php
│ │ │ ├── SousChapitreController.php
│ │ │ ├── QuizController.php
│ │ │ ├── NoteController.php
│ │ │ └── ApprenantController.php
│ │ ├── Auth/
│ │ │ └── AuthenticatedSessionController.php
│ │ └── ApprenantController.php
│ └── Middleware/
│ └── IsAdmin.php
├── Models/
│ ├── User.php
│ ├── Formation.php
│ ├── Chapitre.php
│ ├── SousChapitre.php
│ ├── Contenu.php
│ ├── Quiz.php
│ ├── Question.php
│ ├── Reponse.php
│ ├── Note.php
│ └── QuizResultat.php
database/
├── migrations/ ← 11 migrations
└── seeders/
└── DatabaseSeeder.php
resources/views/
├── layouts/app.blade.php
├── auth/login.blade.php
├── admin/
│ ├── dashboard.blade.php
│ ├── formations/ (index, create, edit, show)
│ ├── chapitres/ (index, create, edit)
│ ├── sous-chapitres/ (index, create, edit)
│ ├── quiz/ (index, create, edit)
│ ├── notes/ (index, create, edit)
│ └── apprenants/ (index, create, edit, show)
└── apprenant/
├── dashboard.blade.php
├── formation.blade.php
├── sous-chapitre.blade.php
├── quiz.blade.php
├── quiz-resultat.blade.php
└── notes.blade.php
routes/
├── web.php
└── auth.php
- Tableau de bord avec statistiques (formations, apprenants, quiz, notes)
- Formations : CRUD complet + gestion des inscriptions apprenants
- Chapitres : CRUD nestés sous chaque formation
- Sous-chapitres : CRUD avec éditeur de contenu HTML + import IA
- Quiz : création dynamique (questions + réponses à choix multiple)
- Notes : saisie et modification des notes /20
- Apprenants : création et gestion des comptes
- Dashboard avec ses formations et ses derniers résultats de quiz
- Consultation du contenu (HTML rendu, tableaux, ressources)
- Quiz interactifs avec calcul automatique du score
- Page de résultat avec pourcentage et appréciation
- Mes notes avec moyenne calculée et indicateurs visuels
Dans le formulaire de création d'un sous-chapitre, un bouton "Générer avec IA" affiche :
- Un prompt suggéré à copier dans ChatGPT
- Une zone de texte pour coller le contenu généré
- Un bouton d'import qui injecte le contenu dans l'éditeur
users (id, name, email, password, role)
└─ enrollments (user_id, formation_id)
└─ notes (user_id, formation_id, matiere, note)
└─ quiz_resultats (user_id, quiz_id, score, total)
formations (id, nom, description, niveau, duree_heures)
└─ chapitres (id, formation_id, titre, description, ordre)
└─ sous_chapitres (id, chapitre_id, titre, contenu, ordre)
├─ contenus (id, sous_chapitre_id, titre, resume, lien_ressource, genere_ia)
└─ quiz (id, sous_chapitre_id, titre)
└─ questions (id, quiz_id, question, ordre)
└─ reponses (id, question_id, texte, est_correcte)
php artisan migrate:fresh --seed- Laravel 11 — framework PHP
- MySQL — base de données relationnelle
- Bootstrap 5.3 — interface utilisateur
- Bootstrap Icons — icônes
- Eloquent ORM — relations et requêtes
- Blade — moteur de templates