Prérequis Techniques
Pour assurer le bon fonctionnement de la plateforme, les versions minimales suivantes sont requises :
- JDK : 1.8 ou supérieur
- MySQL : 5.7 ou supérieur
- Maven : 3.0 ou supérieur
- Redis : Dernière version stable
- Nacos : 1.x (recommandé pour la découverte de services)
- Senitnel : 2.0 (optionnel, pour le contrôle de flux)
- Node.js : 6.x ou supérieur (pour la compilation des interfaces)
Architecture des Modules
Le projet est structuré en plusieurs microservices et modules partagés :
plateforme-elearning/
├── portail-web # Interface publique (Port 80)
├── interface-admin # Tableau de bord administratif (Port 81)
├── passerelle-api # API Gateway (Port 9728)
├── contrats-api # Définitions des interfaces
│ ├── api-paiement # Endpoints de transaction
│ ├── api-utilisateurs # Gestion des comptes
│ ├── api-contenus # Gestion des cours
│ └── api-streaming # Service de vidéo à la demande (VOD)
├── noyau-commun # Bibliothèques partagées
│ ├── utilitaires # Classes d'aide et helpers
│ ├── configuration # Configurations de base
│ └── securite # Authentification et autorisation
├── services-metier # Logique applicative
│ ├── svc-auth # Service d'authentification
│ ├── svc-utilisateurs # Service de gestion des profils
│ ├── svc-cms # Gestion du contenu du portail
│ ├── svc-paiement # Traitement des transactions
│ ├── svc-contenus # Gestion des métadonnées des cours
│ ├── svc-notifications # Envoi de SMS et emails
│ ├── svc-stockage # Gestion des fichiers
│ └── svc-streaming # Intégration VOD
└── pom.xml # Gestionnaire de dépendances parent
Configuration de l'Environnement Backend
1. Initialisation de la Base de Données
Créez une base de données nommée elearning_db et exécutez le script d'initialisation schema_elearning.sql pour générer les tables et insérer les données de base.
2. Persistance Nacos avec MySQL
Pour stocker les configurations de manière persistante, modifize le fichier application.properties de Nacos pour y inclure la source de données MySQL :
# Configuration de la base de données pour Nacos
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8&useSSL=false
db.user=admin_db
db.password=secure_password_123
3. Intégration des Services Tiers
- Streaming Vidéo (VOD) : Configurez les identifiants
AccessKeyetSecretKeydans le centre de configuration Nacos. Assurez-vous que la région de stockage correspond à celle définie dans votre classe utilitaire SDK. - Notifications SMS : Intégrez les clés API de votre fournisseur de SMS dans les propriétés du service
svc-notifications. - Paiement : Pour les tests, configurez l'environnement sandbox de votre passerelle de paiement en renseignant les clés publiques et privées dans le module
svc-paiement.
4. Installation des Dépendances Personnalisées
Certains SDK propriétaires, comme celui pour le téléchargement VOD, ne sont pas toujours disponibles dans les dépôts publics. Installez-les manuellement dans votre dépôt local Maven :
mvn install:install-file \
-Dfile=lib/sdk-vod-upload-1.4.14.jar \
-DgroupId=com.cloud.provider \
-DartifactId=vod-upload-sdk \
-Dversion=1.4.14 \
-Dpackaging=jar
5. Configuration des Services
Dans chaque microservice, éditez le fichier bootstrap.yml pour pointer vers l'adresse correcte du serveur Nacos :
spring:
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
config:
server-addr: 127.0.0.1:8848
file-extension: yaml
Démarrage des Services Backend
Une fois les configurations validées, compilez le projet avec Maven. Démarrez ensuite les classes principales de chaque module (par exemple, AuthApplication, GatewayApplication). Vérifiez dans les logs que l'enregistrement auprès de Nacos s'est effectué avec succès.
Initialisation des Interfaces Frontend
Le projet comprend deux interfaces utilisateur distinctes :
- Portail Public : Développé avec Nuxt.js pour le rendu côté serveur.
- Tableau de Bord Admin : Développé avec Vue.js.
Configuration et Lancement
Pour chaque projet frontend, modifiez l'URL de l'API backend dans les fichiers de configuration respectifs (vue.config.js pour l'admin, utils/request.js pour le portail).
Installez les dépendances et lancez le serveur de développement :
# Pour le tableau de bord administratif
cd interface-admin
npm install
npm run dev
# Pour le portail public
cd portail-web
npm install
npm run dev
Les identifiants par défaut pour l'administration sont généralement admin / 111111.