Skip to content

Repository files navigation

Mini LMS Pédagogique — Laravel

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.


Prérequis

  • PHP >= 8.2
  • Composer
  • MySQL 8+ (ou MariaDB 10.4+)
  • Node.js + npm (pour les assets Breeze si utilisés)

Installation

1. Cloner et installer les dépendances

git clone <url-du-repo> mini-lms
cd mini-lms
composer install

2. Configurer l'environnement

cp .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_passe

3. Créer la base de données MySQL

CREATE DATABASE mini_lms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

4. Lancer les migrations et le seeder

php artisan migrate
php artisan db:seed

5. Démarrer le serveur

php artisan serve

L'application est disponible sur http://localhost:8000


Comptes de démonstration

Rôle Email Mot de passe
Admin admin@lms.fr password
Apprenant jean@lms.fr password
Apprenant marie@lms.fr password

Structure du projet

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

Fonctionnalités

Parcours Administrateur

  • 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

Parcours Apprenant

  • 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

Fonctionnalité IA

Dans le formulaire de création d'un sous-chapitre, un bouton "Générer avec IA" affiche :

  1. Un prompt suggéré à copier dans ChatGPT
  2. Une zone de texte pour coller le contenu généré
  3. Un bouton d'import qui injecte le contenu dans l'éditeur

Schéma de la base de données

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)

Réinitialiser les données

php artisan migrate:fresh --seed

Technologies utilisées

  • 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

About

application pour cours en ligne

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages