Aplicación Desplegada
Proyecto RealWorld
Este proyecto utiliza la aplicación de ejemplo Conduit del proyecto RealWorld, una aplicación de ejemplo que implementa un blog y una red social. La aplicación está dividida en dos partes: el backend y el frontend. El objetivo del proyecto RealWorld es proporcionar una aplicación de ejemplo que sirva como referencia para el desarrollo de aplicaciones web modernas utilizando diferentes tecnologías y frameworks. La aplicación incluye características como autenticación de usuarios, creación y edición de artículos, comentarios, seguimiento de usuarios, etc. En este caso, se ha utilizado la implementación de RealWorld con React + Redux para el frontend y Node.js + Express con Mongoose para el backend. Esta versión del backend utiliza MongoDB como base de datos, que se desplegará en ambas infraestructuras (nube pública y nube privada).
Modificaciones realizadas sobre el código original
No se han realizado modificaciones severas sobre el código original de la aplicación Conduit. Se han realizado algunas modificaciones menores para adaptarlo al proyecto, como la configuración de las variables de entorno y la integración entre el frontend y el backend.
Pruebas Realizadas
Pruebas unitarias
No ha sido necesario añadir pruebas unitarias al proyecto de frontend, ya que el código original ya incluye pruebas unitarias y cumpliedo con los requisitos de cobertura del 100%. En el caso del backend, se han añadido pruebas unitarias para cubrir las funcionalidades de la API y asegurar que el código funciona correctamente. El código del backend original no incluía pruebas unitarias. En ambos proyectos, se ha utilizado Jest como framework de pruebas.
Pruebas E2E
En el proyecto de frontend se han añadido pruebas E2E utilizando Cypress para asegurar que la aplicación funciona correctamente en un entorno real. Estas pruebas cubren las funcionalidades principales de la aplicación, como el registro de usuarios, inicio de sesión, creación y edición de artículos, comentarios, etc. Las pruebas E2E se ejecutan en el pipeline de CI/CD cuando se lanza sobre la rama pre, atacaando el despliegue realizado en el clúster de Kubernetes de preproducción.