Construir una plataforma EDTech usando microservicios y Docker
Descripción del proyecto
El proyecto consta de tres microservicios, a saber:
- Microservicio de usuario
- Microservicio de curso
- Microservicio de inscripción
El microservicio de usuario ayuda a registrar un usuario en la aplicación. Luego ayuda al usuario a iniciar sesión en su cuenta y tener una sesión separada para ellos mismos. Este microservicio tiene una base de datos independiente (en este caso MongoDB Base de datos) que es responsable de mantener las credenciales del usuario solamente. La contraseña que se almacena en la base de datos se incluye y, por lo tanto, garantiza la seguridad de los usuarios que se registran en la aplicación web.
El microservicio de cursos ayuda a un usuario iniciado en un curso en un curso en particular. El usuario iniciado en sesión puede aprender a su propio ritmo de los cursos inscritos. Una característica única que tiene esta aplicación web es que, cualquier usuario puede cargar sus propios cursos a diferencia de las aplicaciones web educativas tradicionales. Cualquier usuario puede cargar su contenido para que otros usuarios aprendan.
El microservicio de inscripción básicamente transferirá la solicitud de API a un servicio de pago de terceros y eso se encargará de todos los pagos realizados por el usuario y, en consecuencia, ayudará a habilitar el acceso para el curso particular para el usuario.
¿Cómo ejecutar este proyecto localmente?
- Clon este repositorio.
- Asegúrese de tener el archivo ".env" en su base de código. Actualice el contenido en el archivo ENV para incluir su RazorPay KeyID y Secret_Key
- Ingrese URL en la nube para su proyecto editando js -> script.js -> <cloudinary_url>
- Instale Docker y comience.
- Use el terminal y escriba el siguiente comando.
docker-compose up --build --remove-orphans
- Navegue a http: // localhost: 5000 para encontrar el sitio web en funcionamiento.
URL del sitio web
URL del sitio web en vivo: http://129.213.124.99:5000/
Plataforma en la nube: Oracle Cloud Infrastructure
Videos
Video detallado y explicación: https://drive.google.com/file/d/1fmqwxorlnv5u1ksagilcfcrnljfw6gn8/view?usp=sharing
Video corto: https://drive.google.com/file/d/1eyqw0__sejbi9onpoak35rzrsozpd8wg/view?usp=sharing
¿Cómo implementar el sitio web en la nube?
- Cree la cuenta de Oracle Cloud, utilizando la suscripción de nivel gratuito (si es necesario).
- Crear red en la nube virtual (VCN).
- Configure la lista de seguridad predeterminada para el VCN agregando reglas de ingreso para los puertos 22, 80. Agregue los puertos que utilizará para el proyecto. Por ejemplo, en este proyecto tenemos puertos 5000, 5001, 7000, 30002.
- Crear y conectarse a la instancia de la nube.
- Instale GIT, Docker y Docker-Compose en el terminal de instancia de la nube.
- Clon este repositorio y ejecute
docker-compose up --build -d
- Configure el firewall usando los siguientes comandos:
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
- Vaya a su IP público: Puerto! ¡Voila! ¡Su sitio web está implementado en la nube! :)
Papel técnico
Documento presentado en la Conferencia IEEE Pune por @Aparna0522 (Aparna Naik) en diciembre de 2021.
Documento publicado en IEEE Xplore el 31 de enero de 2022.
Enlace en papel: https://ieeExplore.ieee.org/document/9686535
Singularidad de la aplicación
- Esta aplicación permite a cualquier usuario cargar su curso para que otros puedan aprender del mismo curso. (Perspectiva del usuario)
- Esta aplicación utiliza la arquitectura de microservicios que la hace escalable, dependiente y robusta en comparación con las aplicaciones arquitectadas monolíticas. (Perspectiva tecnológica)
Trabajo futuro
- Permita que los compañeros conecten uno a uno, se reduzcan, aprendan y crezcan juntos, integrando un servicio de chat (permitiendo que solo los usuarios registrados vean a otros usuarios y oculten detalles de identidad, a menos que el usuario desee lo contrario).
- Capacidad para que los instructores creen Quize para una fácil evaluación.
- Puede agregar algunos sistemas de monitoreo de análisis para el cargador del curso.
- Servicio de recomendación.
- Nuevo servicio de notificación del curso.
Características importantes de la aplicación:
- Independiente de otros microservicios.
- Si un servicio cae, no afecta a otros servicios.
- Escala de los servicios.
- Eficiente.
- Portablidad.