UE INF222 — Système de gestion de cours en ligne
Auteur : BONGKEM HERODIA
Matricule : 24F2986
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ô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 |
- 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)
├── 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
- PHP ≥ 8.1 avec extensions :
pdo_mysql,mbstring,json,fileinfo - MariaDB / MySQL ≥ 10.5
- Un navigateur web moderne
-
Cloner le dépôt
git clone <url-du-depot> cd TPINF222
-
Configurer la base de données
Éditer
config/database.phpsi nécessaire (identifiants par défaut) :$dbHost = 'localhost'; $dbUser = 'lms_user'; $dbPass = 'lms_password_24F2986'; $dbName = 'lms_db';
-
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.phpCette page crée la base de données, les tables et les comptes de test.
-
Lancer le serveur de développement
php -S 0.0.0.0:8080 -c php.ini
-
Accéder à l'application
http://localhost:8080
Après exécution de setup.php :
| Rôle | Mot de passe | |
|---|---|---|
| Promoteur | promoteur@lms.com |
promoteur123 |
| Enseignant | enseignant@lms.com |
enseignant123 |
| Étudiant | etudiant@lms.com |
etudiant123 |
- 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
- 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
- Gestion des modules (ajout, modification)
- Association cours / modules / enseignants
- Gestion des inscriptions étudiants
- Validation des modules
- Génération de certificats
- 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)
Projet académique — UE INF222