Youdemy est une plateforme d'apprentissage en ligne interactive et personnalisée pour les étudiants et les enseignants. Ce projet met en œuvre des principes de programmation orientée objet (OOP) en PHP avec une organisation modulaire pour garantir scalabilité et maintenabilité.
- Fonctionnalités
- Technologies Utilisées
- Structure du Projet
- Installation
- Usage
- Captures d'écran
- Améliorations futures
- Consultation du catalogue des cours avec pagination.
- Recherche de cours par mots-clés.
- Inscription avec choix du rôle (enseignant ou étudiant).
- Inscription et accès à des cours.
- Consultation des détails des cours.
- Accès à la section “Mes cours”.
- Ajout, modification et suppression de cours.
- Suivi des statistiques des cours (nombre d'inscrits, répartition).
- Validation des comptes enseignants.
- Gestion des utilisateurs (activation/suspension/suppression).
- Gestion des contenus (cours, catégories, tags).
- Accès aux statistiques globales.
- Backend : PHP 7.4+ (OOP)
- Base de données : MySQL
- Autoload : PSR-4 via Composer
- Frontend : HTML5, CSS3, JavaScript
- Gestion des dépendances : Composer
youdemy_platform/
|App/
├── config/ # Configuration générale du projet
│ └── database.php
├── controllers/ # Contrôleurs pour la gestion des fonctionnalités
│ ├── AuthController.php # Contrôleur pour l'authentification (login, register, logout)
│ ├── UserController.php # Contrôleur pour la gestion des utilisateurs (profil, liste, etc.)
│ ├── CourseController.php # Contrôleur pour la gestion des cours (ajout, modification, inscription)
│ ├── AdminController.php # Contrôleur pour les fonctionnalités spécifiques aux administrateurs
│ └── CategoryController.php # Contrôleur pour la gestion des catégories
├── models/ # Classes et interactions avec la base de données (CRUD)
│ ├── User.php # Classe représentant les utilisateurs
│ ├── Course.php # Classe représentant les cours
│ └── Category.php # Classe représentant les catégories
├── views/ # Fichiers de vue pour l'affichage des pages
│ ├── auth/ # Vues liées à l'authentification
│ │ ├── login.php # Page de connexion
│ │ └── register.php # Page d'inscription
│ ├── courses/ # Vues pour les pages relatives aux cours
│ │ ├── list.php # Liste des cours disponibles
│ │ └── details.php # Détails d'un cours spécifique
│ ├── admin/ # Vues pour les fonctionnalités administratives
│ │ ├── dashboard.php # Tableau de bord pour l'administrateur
│ │ └── users.php # Liste des utilisateurs gérés par l'administrateur
│ └── shared/ # Éléments réutilisables sur toutes les pages
│ ├── header.php # En-tête commun à toutes les pages
│ └── footer.php # Pied de page commun à toutes les pages
├── public/ # Fichiers accessibles au public
│ ├── login.php # Accès direct à la page de connexion
│ ├── register.php # Accès direct à la page d'inscription
│ └── assets/ # Dossier contenant les fichiers statiques
│ ├── css/ # Fichiers de style CSS
│ ├── js/ # Scripts JavaScript
│ └── images/ # Images utilisées sur le site
├── index.php # Point d'entrée principal du projet
├── .env # Variables d'environnement pour configurer l'application
├── composer.json # Fichier de configuration pour Composer, incluant l'autoloading des classes
└── README.md # Documentation du projet
- PHP 7.4 ou plus
- MySQL 5.7 ou plus
- Composer installé
-
Clonez le projet :
git clone https://github.com/MouadHallaffou/Youdemy_plateform/youdemy.git
-
Accédez au dossier du projet :
cd youdemy -
Installez les dépendances via Composer :
composer install
-
Configurez la base de données :
- Importez le fichier SQL dans votre serveur MySQL.
- Configurez
src/Config/Database.phpavec vos paramètres de connexion.
-
Démarrez votre serveur local :
php -S localhost:8000 -t public
-
Accédez à l'application dans votre navigateur :
http://localhost:8000
- Accédez à
login.phppour vous connecter. - Accédez à
register.phppour créer un compte.
- Accédez aux outils de gestion des utilisateurs et des contenus.
- Connectez-vous en tant qu'enseignant.
- Accédez à la section “Ajouter un cours”.
- Page de connexion
- Tableau de bord administrateur
- Ajout d'un système de paiement pour les cours premium.
- Intégration d'API pour des cours externes.
- Optimisation du SEO pour le catalogue des cours.
- Mise en place d'une fonctionnalité de messagerie entre utilisateurs.
Créé avec ❤️ par Mouad Hallaffou