Everprep

Everprep es una plataforma de aprendizaje (e-learning) de múltiples merchant (multi-tenant) que permite a los usuarios generar cursos para vender una suscripción, a su vez pueden suscribirse a uno o más de estos contenidos.

Existen dos tipos de usuarios, los creadores que principalmente pueden generar contenido y los estudiantes que se enrolan para tomar estos cursos. Cada curso puede incluir información general, cuestionarios, exámenes de prueba entre otras opciones. Un creador puede comenzar a publicar el contenido para cualquier persona interesada. Luego, los estudiantes puedan pagar por esos cursos, avanzar y registrar sus métricas para poder ver la evolución que tienen. Una parte clave del sistema es el algoritmo de estudio único que ofrece preguntas adecuadas a los estudiantes, con una frecuencia que garantizan recordar una buena cantidad de información en cada sesión de estudio.

Fase de desarrollo

La aplicación web se creó desde cero en función del servicio AWS Amplify para la REST API basados en NodeJS y la interfaz de usuario (frontend) la creamos implementando ReactJS + Material UI. Combinamos tecnologías GraphQL y Redux para crear una aplicación web totalmente reactiva. Además de las tecnologías principales, también utilizamos varios servicios de AWS como CloudFront, Route53, DynamoDB, Cognito, funciones Lambda, SEN, SNS y S3 para alcanzar una infraestructura serverless automatizada. Para todo el procesos DevOps también usamos CloudWatch, AppSync y AWS Backups.

Finalmente, completamos la aplicación actualizando un diseño web final proporcionado en Adobe XD que completa el comportamiento receptivo para adaptar plantillas multiplataforma y multinavegador. Hemos desarrollado 2 aplicaciones para permitir que tanto los usuarios creadores como los usuarios estudiantes creen contenido y se suscriban al contenido, respectivamente. Planeamos mantener un enfoque de UX enfocado para los roles de cada usuario, aumentando las funciones de las aplicaciones e incluyendo una tercera aplicación para los administradores de la plataforma en un futuro próximo.

Detalles técnicos

Desde el inicio de este proyecto, definimos una conocida infraestructura escalable para maximizar la mejor combinación costo-beneficio. Es por eso que AWS Amplify fue ideal para crear un backend sin servidor que se combina con Amazon Cognito (grupo de identidades) para manejar la autenticación de los usuarios. Hemos implementado Amplify CLI para implementar todos los servicios necesarios, así como soporte para múltiples entornos (Dev, QA, Prod). Con base en esta infraestructura, definimos un enfoque monorepo para proceder con un código más limpio y componentes compartidos organizados.

Con respecto a la aplicación frontend, podemos decir que es un React+Redux bastante normal que usa plantillas JSX, donde hemos integrado Material UI con un desarrollo personalizado basado en el diseño web de Adobe XD que recibimos de nuestro cliente. Todas las páginas y secciones se han creado siguiendo la aplicación de reacción Principios de diseño para cada componente.

El comportamiento de la aplicación es básicamente una serie de funciones simples de AWS lambda donde tenemos reglas de control y seguridad para todo el sistema. Todos los datos e información de acceso se manejan dentro de cada función. Esto también brinda la capacidad de activar secciones asíncronas en todas las aplicaciones web (SPA), lo que hace que la aplicación sea mucho más rápida y óptima en términos de usabilidad. Todos los datos dependen del servicio Amazon DynamoDB. Hemos configurado un clúster con almacenamiento básico para esta etapa inicial del negocio, pero con un enfoque súper escalable para crecer rápidamente y aumentar el volumen cuando sea necesario.

Como parte de la etapa de desarrollo, utilizamos el sistema Cypress.io para automatizar la prueba de las funciones críticas de la aplicación. Para validar todos los cambios que estamos lanzando a producción y asegurarnos de que sean compatibles con la versión actual del sistema. De esta forma, cada cambio que se envía al entorno se valida automáticamente, si se encuentra un error, los cambios no se aplican al entorno.

Todo este proceso está automatizado dentro de AWS pipeline, por lo tanto las acciones manuales y la intervensión del equipo son mínimos para el deploy de la aplicación.

Actualmente estamos planeando el desarrollo de la aplicación móvil nativa, este será el próximo paso en este proyecto para continuar mejorando la experiencia del usuario.

¿Quieres saber más detalles técnicos? No dudes en contactarnos!


Etiquetado como


Feb 2022 - Everprep

Serfe info(at)serfe.com https://www.serfe.com/images/serfe_logo_text.png https://www.serfe.com/images/serfe_logo_text.png FALUCHO 2032, S3016LDB, SANTO TOME, SANTA FE, ARGENTINA 1-305-5375397
Cookies & Privacy: 
This website uses cookies to ensure you get the best experience on our website.


Privacy Policy