Skip to content

Decency52/LMS-INF222

Repository files navigation

LMS - Learning Management System

UE INF222 — Système de gestion de cours en ligne

Auteur : BONGKEM HERODIA
Matricule : 24F2986


Description

Application web de type LMS (Learning Management System) développée avec HTML, CSS, JavaScript (AJAX), PHP et MySQL (MariaDB). Le système permet la gestion de cours, de leçons (PDF/vidéo), d'évaluations et de certificats à travers trois interfaces dédiées.

Rôles utilisateurs

Rôle Description
Étudiant Suit les cours, passe les évaluations, consulte ses résultats et certificats
Enseignant Crée et gère ses cours, ajoute des leçons (PDF/vidéo), crée des évaluations, consulte les notes
Promoteur Administre les modules, associe des cours, gère les étudiants, valide les modules, génère des certificats

Technologies

  • Frontend : HTML5, CSS3 (custom properties, grid, flexbox), JavaScript (AJAX natif)
  • Backend : PHP 8.4
  • Base de données : MariaDB 11.8 (MySQL)
  • Serveur : PHP built-in server (développement)

Structure du projet

├── api/                    # Endpoints API (AJAX)
│   ├── get_lecons.php
│   ├── get_progression.php
│   ├── get_questions.php
│   ├── submit_evaluation.php
│   └── upload_handler.php
├── assets/
│   ├── css/style.css       # Styles globaux
│   └── js/main.js          # JavaScript utilitaires + AJAX
├── config/
│   └── database.php        # Configuration BDD
├── ENSEIGNANT/             # Interface enseignant
│   ├── ens_dashboard.php
│   ├── ens_cours.php
│   ├── ens_ajouter_cours.php
│   ├── ens_modifier_cours.php
│   ├── ens_lecons.php
│   ├── ens_ajouter_lecon.php
│   ├── ens_evaluations.php
│   ├── ens_ajouter_evaluation.php
│   └── ens_notes.php
├── ETUDIANT/               # Interface étudiant
│   ├── etu_dashboard.php
│   ├── etu_cours.php
│   ├── etu_suivre_cours.php
│   ├── etu_lecon.php
│   ├── etu_evaluation.php
│   ├── etu_resultat.php
│   └── etu_certificats.php
├── PROMOTEUR/              # Interface promoteur
│   ├── pro_dashboard.php
│   ├── pro_modules.php
│   ├── pro_ajouter_module.php
│   ├── pro_modifier_module.php
│   ├── pro_associer_cours.php
│   ├── pro_etudiants.php
│   ├── pro_valider_module.php
│   └── pro_generer_certificat.php
├── includes/
│   ├── auth.php            # Authentification et sessions
│   ├── functions.php       # Fonctions utilitaires
│   ├── header.php          # En-tête HTML + barre latérale
│   └── footer.php          # Pied de page + scripts JS
├── sql/
│   └── lms_database.sql    # Schéma de la base de données
├── uploads/                # Fichiers uploadés (PDF, vidéos, certificats)
├── dashboard.php           # Routeur principal
├── index.php               # Page d'accueil
├── login.php               # Connexion
├── register.php            # Inscription
├── logout.php              # Déconnexion
├── setup.php               # Initialisation de la base de données
└── php.ini                 # Configuration PHP personnalisée

Installation

Prérequis

  • PHP ≥ 8.1 avec extensions : pdo_mysql, mbstring, json, fileinfo
  • MariaDB / MySQL ≥ 10.5
  • Un navigateur web moderne

Étapes

  1. Cloner le dépôt

    git clone <url-du-depot>
    cd TPINF222
  2. Configurer la base de données

    Éditer config/database.php si nécessaire (identifiants par défaut) :

    $dbHost = 'localhost';
    $dbUser = 'lms_user';
    $dbPass = 'lms_password_24F2986';
    $dbName = 'lms_db';
  3. Initialiser la base de données

    php -S 0.0.0.0:8080 -c php.ini

    Puis ouvrir dans le navigateur :

    http://localhost:8080/setup.php
    

    Cette page crée la base de données, les tables et les comptes de test.

  4. Lancer le serveur de développement

    php -S 0.0.0.0:8080 -c php.ini
  5. Accéder à l'application

    http://localhost:8080
    

Comptes de test

Après exécution de setup.php :

Rôle Email Mot de passe
Promoteur promoteur@lms.com promoteur123
Enseignant enseignant@lms.com enseignant123
Étudiant etudiant@lms.com etudiant123

Fonctionnalités

Étudiant

  • Tableau de bord avec progression
  • Parcours des cours et leçons (PDF / vidéo)
  • Passation des évaluations à temps limité
  • Consultation des résultats et certificats

Enseignant

  • Création et modification de cours
  • Upload de leçons (PDF ou vidéo, max 50 Mo)
  • Création d'évaluations avec questions à choix multiples
  • Consultation des notes et statistiques

Promoteur

  • Gestion des modules (ajout, modification)
  • Association cours / modules / enseignants
  • Gestion des inscriptions étudiants
  • Validation des modules
  • Génération de certificats

Limites techniques

  • Taille max upload : 50 Mo (configurable dans php.ini)
  • Vidéos acceptées : MP4, AVI, MOV, WebM, MKV
  • Serveur de développement uniquement (ne pas utiliser en production)

Licence

Projet académique — UE INF222

About

Learning Management system

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors