Construire une plate-forme EdTech à l'aide de microservices et de docker
Description du projet
Le projet se compose de trois microservices à savoir:
- Microservice utilisateur
- Microservice de cours
- Microservice d'inscription
Le microservice utilisateur aide à enregistrer un utilisateur dans l'application. Il aide ensuite l'utilisateur à se connecter dans son compte et à avoir une session distincte pour eux-mêmes. Ce microservice a une base de données indépendante (dans ce cas, la base de données MongoDB) qui est responsable de la maintenance des informations d'identification de l'utilisateur. Le mot de passe qui est stocké dans la base de données est Encrptyed et garantit donc la sécurité des utilisateurs qui s'inscrivent sur l'application Web.
Courses Microservice aide un utilisateur enregistré à s'inscrire à un cours particulier. L'utilisateur connecté peut alors apprendre à son propre rythme des cours inscrits. Une fonctionnalité unique de cette application Web est que tout utilisateur est autorisé à télécharger ses propres cours contrairement aux applications Web éducatives traditionnelles. Tout utilisateur peut télécharger son contenu pour que d'autres utilisateurs puissent apprendre.
Le microservice d'inscription transférera essentiellement la demande d'API à un service de paiement tiers et qui s'occupera de tous les paiements effectués par l'utilisateur et aidera en conséquence à l'activation de l'accès au cours particulier de l'utilisateur.
Comment gérer ce projet localement?
- Cloner ce référentiel.
- Assurez-vous que vous disposez du fichier ".env" dans votre base de code. Mettez à jour le contenu dans le fichier Env pour inclure votre Razorpay KeyId et Secret_key
- Entrez URL Cloudinary pour votre projet en modifiant JS -> Script.js -> <bloudinary_url>
- Installez Docker et démarrez.
- Utilisez le terminal et écrivez la commande suivante.
docker-compose up --build --remove-orphans
- Accédez à http: // localhost: 5000 pour trouver le site Web en cours d'exécution.
URL du site Web
URL du site Web en direct: http://129.213.124.99:5000/
Plateforme cloud: Oracle Cloud Infrastructure
Vidéos
Vidéo détaillée et explication: https://drive.google.com/file/d/1fmqwxorlnv5u1ksagilcfcrnljfw6gn8/view?usp=sharing
Crourte vidéo: https://drive.google.com/file/d/1eyqw0__sejbi9onpoak35rzrsozpd8wg/view?usp=sharing
Comment déployer le site Web sur le cloud?
- Créez un compte Oracle Cloud, en utilisant l'abonnement à niveau gratuit (si nécessaire).
- Créer Virtual Cloud Network (VCN).
- Configurez la liste de sécurité par défaut pour le VCN en ajoutant des règles d'entrée pour les ports 22, 80. Ajoutez les ports que vous utiliserez pour le projet. Par exemple, dans ce projet, nous avons des ports 5000, 5001, 7000, 30002.
- Créer et connecter à l'instance cloud.
- Installez Git, Docker et Docker-Compose sur le terminal d'instance cloud.
- Cloner ce référentiel et exécuter
docker-compose up --build -d
- Configurez le pare-feu à l'aide des commandes suivantes:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-port=5000/tcp <ALL REQUIRED PORTS>
sudo firewall-cmd --reload
- Allez à votre IP publique: port! Le tour est joué! Votre site Web est déployé sur le cloud! :)
Document technique
Document présenté à la conférence IEEE Pune par @ aparna0522 (Aparna Naik) en décembre 2021.
Document publié dans IEEE Xplore le 31 janvier 2022.
Lien papier: https://ieeexplore.ieee.org/document/9686535
Unicité de l'application
- Cette application permet à tout utilisateur de télécharger son cours afin que d'autres puissent apprendre du même cours. (Perspective utilisateur)
- Cette application utilise une architecture de microservices qui le rend évolutif, délégué et robuste par rapport aux applications architecturées monolithiques. (Perspective technologique)
Travail futur
- Laissez les pairs se connecter en tête-à-tête, réseauter, apprendre et grandir ensemble, en intégrant un service de chat (permettant uniquement aux utilisateurs enregistrés de voir d'autres utilisateurs et en masquant les détails d'identité, sauf si l'utilisateur le souhaite autrement).
- Capacité pour les instructeurs à créer des quides pour une évaluation facile.
- Peut ajouter un système de surveillance des analyses pour le téléchargeur de cours.
- Service de recommandation.
- Nouveau service de notification de cours.
Caractéristiques importantes de l'application:
- Indépendamment des autres microservices.
- Si un service tombe en panne, il n'affecte pas d'autres services.
- Mise à l'échelle des services.
- Efficace.
- Portablity.