Guide de déploiement et de configuration d'une plateforme e-learning basée sur les microservices

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 AccessKey et SecretKey dans 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.

Étiquettes: Microservices spring-cloud Nacos vuejs nuxtjs

Publié le 1 juillet à 18h27